具体实施方式
为了克服现有网关Mac静态绑定技术中所存在的操作复杂问题,本发明提供一种实现网关Mac绑定的技术方案,下面将进行详细说明。
首先,本发明提供了一种实现网关Mac绑定的方法,基于以下两个方面考虑:一方面,由于网络设备如二/三层交换机和路由器都是由VLAN网络维护者进行维护的,不可能主动发起网络攻击行为,因此其发送的信息可靠;另一方面,合法的网关Mac地址传输路径都是从网络设备再到终端,因此,仅开放网络设备之间相连接端口的绑定权限时,就为保证交换机不被Host发出的伪装报文所迷惑提供了前提条件,因此通过执行以下步骤即可实现网关Mac地址与端口的正确绑定:当网络物理拓扑结构发生变化时,激活网络设备之间相互连接端口的绑定权限;当一网络设备接收到一标识网关Mac地址的第一/第二指定格式报文时,检测接收到所述第一/第二指定格式报文的端口是否为已激活绑定权限的端口;是则,所述交换机自动绑定/解绑定所述端口与所述网关Mac地址的对应关系。上述步骤不仅适用于二层/三层交换机,也适用于路由器等基于Mac端口转发报文的网络设备。
其中,可以进一步设置所述绑定权限被激活的端口支持对标识网关Mac地址的第一/第二指定格式报文的识别,则通过检测是否能够识别出第一/第二指定格式报文即可完成对端口是否激活绑定权限的识别。
由于在任一次网络拓扑结构变化时,网络设备全部的端口的设置都将清零,因此,网络物理拓扑结构变化前端口绑定权限的激活情况不会对变化后的网络设备产生影响。
如图2所示,为本发明所提供的实现网关Mac绑定的方法一较佳实施例的流程图,包括以下步骤:
首先,当网络物理拓扑结构发生变化时,需要激活网络设备之间相互连接端口的绑定权限;本领域技术人员可以理解,无论网络物理拓扑结构发生何种变化,都将首先去激活原有的端口绑定权限,并触发对网络设备之间相互连接关系的重新检查,并对相应端口的绑定权限执行激活操作,保证新形成的拓扑结构中,网络设备之间全部相互连接端口的绑定权限都被激活。
具体使端口绑定权限激活/去激活的方法可以根据实际需要具体设置,本发明的实施例通过提供一套在网络设备之间交换网关Mac的协议为例进行具体描述,但本领域技术人员可以了解,这种激活方式仅为举例而非限制。在本实施例中,所提供的协议被命名为UpDown协议,在出厂或者网络架构时被网络设备默认安装,从而为网络设备端口提供了绑定权限这一属性。当某网络设备端口使能了该协议时,该端口绑定权限即被激活;当该端口去使能该协议时,该端口绑定权限被去激活,该去激活的过程在网络物理拓扑发生变化时自动进行。
因此,本实施例的步骤101为:当网络物理拓扑结构发生变化时,使能网络设备之间相互连接端口的UpDown协议。
步骤102、一网络设备接收到一标识网关Mac地址的第一/第二指定格式报文;
网络设备接收到的报文包括从网关发出的报文和从Host发出的报文两种,为了实现网关Mac的正确绑定,需要设置标识网关Mac地址的指定格式报文。同时,为了实现绑定/解绑定的不同目的,报文类型需要有所区别,本实施例以两种类型来表征:一种是告知接收方该端口开通的报文,另一种是告知接收方该端口取消的报文。具体的,可以分别在UpDown协议下设置为Up报文(第一指定格式报文)和Down报文(第二指定格式报文)。
UpDown协议的报文格式可参考以下内容:
目的Mac地址:6个字节,是网关Mac地址;
源Mac地址:6个字节,是网关Mac地址;
类型:2个字节,标识UpDown协议;因为是自行指定的协议,可以随意分配一个尚未占用的字段,如0xff88;如果需要将该协议标准化,可以向相应的标准化组织提出申请;
报文类型:1个字节,比如0x00标识Up报文,0x01标识Down报文,其他0x02~0xff予以保留,可用于标识其他类型的UpDown协议报文;
其他字节:可以根据需要指定报文长度,当上述内容按照一定的组合顺序排列完成后,报文的其他字节以0填充。
可以看出,这种指定格式的报文,其目的地址和源地址相同,因此不会被网络设备如交换机的芯片转发,而是通过网关和交换机UpDown协议的程序端软件实现发送/接收;该程序端软件可以采用命令行的形式实现,指令网关将指定格式的报文从使能了该协议的端口发送出去,同时,指令非网关的交换机从除接收端口外的、使能了该协议的端口进行转发。
同时,由于报文格式特别,网络设备很容易识别出该报文为标识网关Mac地址的报文。
在实际使用过程中,网络设备所接收到的指定格式报文可能有以下三种来源:1、为网关直接发送的指定格式报文;2、网关发出的、并由其他网络设备转发的指定格式报文;3、Host伪造该指定格式的报文,并将其发送到网络设备。
其中,对于情况1,当一网关的任一端口满足预设条件时,从该端口发送第一/第二指定格式报文,可以包括以下情况:
当该端口的绑定权限被激活时,从该端口发送第一指定格式报文,在UpDown协议中为Up报文;
当绑定权限被激活的端口到达预设周期时,从所述端口发送第一指定格式报文,在UpDown协议中为Up报文;
当绑定权限被激活的端口切换脱离一VLAN或者断开与一网络设备的逻辑连接时,从所述端口发送第二指定格式报文,在UpDown协议中为Down报文;
当绑定权限被激活的端口切换进入一VLAN或者建立与一网络设备的逻辑连接时,从所述端口发送第一指定格式报文,在UpDown协议中为Up报文。
对于情况2,当任一网络设备接收到指定格式报义的端口绑定权限已激活时,还进行查询本网络设备是否存在其他已激活端口,是则将所接收到的报文从其他已激活端口转发出去,被转发报文的类型不会发生改变。
下表1给出了发送UpDown协议报文的一个状态机示例,但并非穷举:
事件 |
动作 |
三层交换机接入VLAN |
在该VLAN内所有端口(路由器就从本接口)发送Up报文 |
三层交换机定时器到期 |
在VLAN内所有端口(路由器就从本接口)发送Up报文 |
三层交换机某一端口加入VLAN |
在这个端口发送Up报文 |
三层交换机脱离VLAN |
在VLAN的所有端口(路由器就从本接口)发送Down报文 |
三层交换机某一端口从VLAN删除或者属性发生 |
在这个端口发送Down报文 |
表1
步骤103、网络设备检测接收到所述报文的端口是否为已激活绑定权限的端口,是则执行步骤104,否则不进行绑定处理,结束;
通过上述步骤102的描述,可以看出接收到的报文有可能是Host所伪造的,那么如果网络设备不加以甄别就学习该网关Mac和接口的对应关系,仍然会导致学习结果的错误。
为此,借助步骤101所提供的端口绑定权限,完成对发送指定格式报文端的识别,杜绝从Host学习错误对应关系的可能性。其中,对于非激活绑定权限的端口,可以抛弃所述报文,或者向管理平台上报攻击风险。
进一步的,由于在本实施例中,指定格式报文设置于UpDown协议下,因此,步骤103可具体为检测是否识别出Up/Down报文,是则说明接收到该报文的端口绑定权限已激活,否则由于根本未实现对报文的识别,自然不会造成误学习。
步骤104、当接收到Up报文时,网络设备自动绑定所述端口与所述网关Mac地址的对应关系,结束;当接收到Down报文时,网络设备自动解绑定所述端口与所述网关Mac地址的对应关系,结束;
由于已激活绑定权限的端口是网络设备之间相连接的端口,因此,根据该端口进行端口与网关Mac地址的绑定/解绑定配置可以保证报文来源的可靠性。
在实际配置过程中,可以通过自动配置端口与网关对应关系的属性选项为“Static”来实现绑定,也可以设置一对应关系的属性选项“Trusted”,该属性级别高于“Learned”,但低于“Static”,则通过自动配置端口与网关对应关系的属性选项为“Trusted”同样能够实现绑定,下面分别加以描述。
参见图3,为网络设备自动绑定/解绑定所述端口与所述网关Mac地址的对应关系的实施例1,以交换机为例,对应关系的属性选项为“Static”和“Learned”,与现有技术相同;该实施例1包括以下步骤:
1041、交换机检测接收到的标识网关Mac的报文,为Up报文,执行步骤1042,否则为Down报文,执行步骤1046;
1042、将接收到报文的端口和报文中标识的网关Mac地址与地址表进行比对;此时存在以下两种可能性:
(1)匹配,则说明地址表中已经保存有网关Mac与端口的对应关系;但是,该对应关系可能是交换机学习的结果,其原属性选项为“Learned”,也有可能是前次绑定后的结果,其原属性选项已经为“Static”;不加以区分的执行绑定有可能是对“Static”属性的反复设置,造成资源的无益浪费,因此,执行步骤1043;
(2)不匹配,说明地址表中尚无网关Mac与端口的对应关系,比如刚刚拓扑完成的VLAN,执行步骤1045;
1043、检测所匹配对应关系的属性是否为Static,是则说明已经执行过绑定操作,无需对地址表进行修改,结束;否则说明该对应关系为交换机通过正常学习程序获得,因此执行步骤1044;
1044、将对应关系的属性设置为“Static”,完成绑定操作,结束;
此时,可以通过维持一个定时器并将该定时器设置为无穷达到静态化效果,实现“Static”自动设置。
1045、在地址表中建立所述端口与网关Mac地址的对应关系,并将该对应关系的属性选项设置为“Static”,完成绑定操作,结束;
在此步骤中,同样通过维持一个定时器并将该定时器设置为无穷达到静态化效果,实现“Static”自动设置。
1046、删除地址表中所述端口与网关Mac地址的对应关系记录,结束。
为了避免误删除手工绑定的对应关系,此步骤可具体为:检查是否由定时器来维护“Static”属性,是则证明为自动绑定,删除并结束;否则为手工绑定,不进行删除,结束。
由于在实际应用中,一般手工设置的级别要高于自动配置,以利用VLAN的管理,因此,本发明提供了网络设备自动绑定/解绑定端口与网关Mac地址的对应关系的较佳实施例2,仍以交换机为例,如图4所示,包括以下步骤:
1041′、交换机检测接收到的标识网关Mac的报文,为Up报文,执行步骤1042′,否则为Down报文,执行步骤1046′;
1042′、将接收到报文的端口和报文中标识的Mac地址与地址表进行比对,匹配则执行步骤1043′,否则执行步骤1045′;
1043′、检测所述属性;
为“Static”,表明该对应关系已经被手工绑定,不进行处理,结束;
为“Trusted”,表明该对应关系已经被自动绑定,不进行处理,结束;
为“Learned”,表明该对应关系仅为自动学习的结果,随时可被新的学习结果刷新,因此执行步骤1044′;
1044′、在地址表中配置所述端口与网关Mac地址对应关系的属性为“Trusted”,完成绑定,结束。
1045′、在地址表中建立所述端口与网关Mac地址的对应关系,并将该对应关系的属性设置为“Trusted”,完成绑定操作,结束;
1046′、检测所述属性选项;
为“Static”,表明该对应关系已经被手工绑定,不进行处理,结束;
为“Trusted”,表明该对应关系为自动绑定,执行步骤1047′;
为“Learned”,表明该对应关系仅为自动学习的结果,执行步骤1047′;
1047′、删除地址表中所述端口与网关Mac地址的对应关系记录,结束。
通过上述实施例可以看出,由于端口绑定权限基于网络物理拓扑结构获得激活,即使有Host伪装Mac地址并伪造指定报文格式进行攻击,由于与该主机相连接的网络设备端口的绑定权限必然处于非激活状态,因此,该攻击无效。且在此过程中,无需手工静态化处理网关Mac,即使网关发生变化,也能够即时作出自动反馈。需要网络管理员作出的工作仅仅是根据网络物理拓扑结构,及时激活端口绑定权限,无需进一步去调用变化后的Mac地址以及静态化处理;甚至于,可以根据网络物理拓扑结构的变化,通过编制程序自动激活端口绑定权限,从而实现人工的真正解放。
参见表2,为一个接收UpDown协议报文后进行处理的状态机示例:
事件 |
动作 |
收到Up报文 |
如果对应的网关Mac和出端口已经存在且是Static属性,保持static属性不变,否则学习网关Mac并设置与端口的对应关系为Trusted属性 |
收到Down报文 |
判断Mac表中的网关Mac是否是Trusted属性,如果是删除,是其它属性,不作处理。 |
表2
下面通过一具体实施例来进一步描述本发明提供的实现网关Mac绑定的方法,参见图5,为本具体实施例中所采用的VLAN示意图,为有多个二层交换机级联组网的情况,具体如下:
Switch A是作为网关的三层交换机,其interface vlan 1使能Updown协议,周期性的发送Up报文;二层交换机Swich B的端口Port 1和Port3使能Updown协议,这样在Portl就能够学习到网关Mac地址0-0-1并静态化,同时Switch B同一VLAN的Port 3也使能了Updown协议,Up报文被转发出Port 3;而Switch C的端口Port 1也使能了UpDown协议,这样Switch C的port 1也能够学到Mac地址0-0-1并静态化。由于SwitchB和Switch C的其它端口未使能Updown协议,故有伪造Up报文进行攻击,也达不到攻击的效果。
综上所述,本发明实施例所提供的实现网关Mac绑定的方法,使网关通过指定的协议报文告知其它网络设备其自身的Mac地址,其他网络设备能够识别接收协议报文的端口的权限,并将具有权限的端口所提供的网关Mac从该端口学习并固化下来,从而避免了伪装Mac攻击网络的情况,且无需大量的手工配置。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
当网络物理拓扑结构发生变化时,激活网络设备之间相互连接端口的绑定权限;当一网络设备接收到一标识网关Mac地址的第一/第二指定格式报文时,检测接收到所述第一/第二指定格式报文的端口是否为已激活绑定权限的端口;是则,所述网络设备自动绑定/解绑定所述端口与所述第一/第二指定格式报文标识的网关Mac地址的对应关系。
所述的存储介质包括:ROM/RAM、磁碟或者光盘等
相应的,本发明的实施例还提供了实现网关Mac绑定的组件,如图6所示,包括:
Mac发送装置21,用于指令网关已激活绑定权限的端口发送第一/第二指定格式报文,所述第一/第二指定格式报文标识网关Mac地址;
Mac绑定装置22,用于识别检测网络设备接收到第一/第二指定格式报文的端口是否已激活绑定权限;以及,在该端口为已激活绑定权限端口的情况下,指令在地址表中绑定/解绑定所述端口与所述网关Mac地址的对应关系。
其中,组件还可包括Mac转发装置23,由Mac绑定装置22在已激活绑定权限端口接收到第一/第二指定格式报文时触发,指令该端口所在网络设备的其他已激活绑定权限的端口转发所述第一/第二指定格式报文。
还包括定时器(图中未示),用于周期性触发Mac发送装置21,从而周期性的发送网关Mac地址;该定时器可以装设于Mac发送装置21之内,也可以装设在该Mac发送装置21之外。
还包括网关端口感应装置(图中未示),用于在网关端口绑定权限激活时,或者网关端口属性变化比如建立与交换机的逻辑连接或者断开与交换机的逻辑连接,或者切换进入/脱离某一VLAN时,触发所述Mac发送装置21。同样的,该网关端口感应装置可以装设于Mac发送装置21之内,也可以装设在该Mac发送装置21之外。
还包括Mac激活装置24,用于检测网络物理拓扑结构的变化,并相应执行激活网络设备之间相互连接端口的端口绑定权限的操作。
同时,Mac绑定装置22可以指令地址表将学习到的Mac地址和端口设置成Trusted属性,这种属性比通过普通二层以太网报文学习的Learned属性优先级高,这样从其它端口学习到相同的Mac,由于其属性为Learned,不会覆盖这条Mac记录,完成网关Mac与出端口正确的绑定。
本发明实施例所提供组件可以为程序功能块,需要装设在实际的交换机/路由器中发挥作用。
其中,Mac发送装置21典型应用在网关,包括三层交换机和路由器,本发明相应提供了实现网关Mac绑定的网关,该网关中设有Mac发送装置21,还可设有定时器和网关端口感应装置。该网关的一个发送UpDown协议报文的状态机示例请参见表1。
该网关中还可设有Mac绑定装置22,用于在不同的VLAN级联时,接收其它三层网关交换机/路由器发送的指定格式报文。
Mac绑定装置22的典型应用是二层交换机,该二层交换机中设有Mac绑定装置22。
该二层交换机中还可设有Mac转发装置23,用于由Mac绑定装置22在接收到指定格式报文时触发,指令该二层交换机的其他已激活绑定权限的端口转发所述报文。需要指出,在二层交换机非级联的情况下,通过在设备中仅设置Mac绑定装置22,就可避免伪装网关Mac攻击网络的情况,因此,Mac转发装置23可选择性安装。
本发明实施例还提供了一种实现网关Mac绑定的VLAN,包括网关交换机/路由器、二层交换机及主机终端,所述网关交换机、路由器和二层交换机为上述实现网关Mac绑定的网络设备。
该VLAN中还可包括Mac激活装置24,分别与网关交换机/路由器和二层交换机连接,用于检测网络拓扑结构的变化,并相应执行激活上述交换机端口绑定权限的操作,从而实现人力的真正解放。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。