CN101827138B - 一种优化的ipv6过滤规则处理方法和设备 - Google Patents
一种优化的ipv6过滤规则处理方法和设备 Download PDFInfo
- Publication number
- CN101827138B CN101827138B CN 201010179092 CN201010179092A CN101827138B CN 101827138 B CN101827138 B CN 101827138B CN 201010179092 CN201010179092 CN 201010179092 CN 201010179092 A CN201010179092 A CN 201010179092A CN 101827138 B CN101827138 B CN 101827138B
- Authority
- CN
- China
- Prior art keywords
- interface
- list item
- port
- access device
- acl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种优化的IPV6过滤规则处理方法,包括以下步骤:所述接入设备接收来自所述用户设备的邻居发现ND报文,并当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口标识ID和IPv6地址;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址;所述接入设备根据所述接口ID表项维护端口访问控制列表ACL。本发明中,减少了对系统ACL资源的消耗。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种优化的IPV6过滤规则处理方法和设备。
背景技术
IPv6(Internet Protocol Version 6,IP协议版本6)地址可以手工配置或者自动配置。其中,自动配置的方式包括ND(Neighbor Discovery,邻居发现)无状态自动配置和DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)有状态自动配置。
具体的,DHCP是一种使网络管理员能够集中管理和自动分配IP地址的通信协议,DHCP使网络管理员在中心结点监控和分配IP地址。其中,DHCPv6(DHCP for IPv6,支持IPv6的动态主机配置协议)是针对IPv6设计的,通过使用DHCPv6实现了客户端IP地址的自动配置。ND协议是IPv6的基本组成部分,该ND协议实现了在IPv4中的ARP(Address Resolution Protocol,地址解析协议)、ICMP(Internet Control Message Protocol,控制报文协议)中的路由器发现部分、重定向协议的所有功能,并且具有邻居不可达检测机制。
另外,ACL(Access Control List,访问控制列表)提供了控制用户设备访问网络资源和限制用户设备访问权限的功能。当用户设备上线时,如果RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证服务器)服务器上配置了授权ACL,则设备会根据RADIUS服务器下发的授权ACL对用户设备所在端口的数据流进行控制。其中,在RADIUS服务器上配置授权ACL之前,还需要在设备上配置相应的ACL规则,管理员可以通过改变RADIUS服务器的授权ACL设置或设备上对应的ACL规则来改变用户设备的访问权限。
现有技术中,ND Snooping(探听)功能用于二层交换网络环境,通过侦听DAD(Duplicate Address Detection,重复地址检测)NS(Neighbor Request,邻居请求)消息来建立ND Snooping表项,其中,该ND Snooping表项中的内容包括报文的源IPv6地址、源MAC(MediaAccess Control,介质访问控制)地址、所属VLAN(Virtual Local Area Network,虚拟局域网)和入端口等信息。
具体的,当一个VLAN使能ND Snooping后,该VLAN内所有端口接收的ND报文均会被重定向到CPU(Central Processing Unit,中央处理单元)中,该CPU通过对这些ND报文进行分析,获取该ND报文的源IPv6地址、源MAC地址、源VLAN和入端口等信息,并根据这些信息来新建或更新NDSnooping表项。
进一步的,该ND Snooping表项可以与ND Detection(检测)功能配合使用,保证ND报文的合法性;另外,该ND Snooping表项还可以与IP Source(源)Guard(保护)功能配合使用,保证数据报文的合法性。
(1)ND Snooping表项与ND Detection功能配合使用,保证ND报文的合法性。其中,ND Detection功能用于在接入设备上检查用户设备的合法性,对于合法用户设备的ND报文进行正常转发,对于非法用户设备的ND报文直接丢弃,从而防止仿冒用户、仿冒网关的攻击。
具体的,ND Detection功能将接入设备上的端口分为两种,分别为:ND信任端口和ND非信任端口。对于ND信任端口来说,不需要进行用户设备的合法性检查;对于ND非信任端口来说,如果接收到RA(Router Advertisement,路由器通告)消息和RR(Router Request,路由器请求)消息,则认为是非法报文直接丢弃,如果接收到其它类型的ND报文,则需要进行用户设备的合法性检查,以防止仿冒用户的攻击。
用户设备的合法性检查是根据ND报文中的源IPv6地址和源MAC地址,检查来自用户设备的ND报文是否为接收到端口所属VLAN上的合法用户设备,包括基于IP Source Guard静态绑定表项的检查、基于ND Snooping表项的检查和基于DHCPv6 Snooping安全表项的检查。
在上述三种表项均存在的情况下,该检查过程具体包括:基于IP SourceGuard静态绑定表项的检查;a)如果找到了对应源IPv6地址和源MAC地址的静态绑定表项,则认为该ND报文合法,进行转发;b)如果找到了对应源IPv6地址的静态绑定表项,但源MAC地址不符,则认为该ND报文非法,进行丢弃;c)如果没有找到对应源IPv6地址的静态绑定表项,则继续进行DHCPv6 Snooping安全表项和ND Snooping安全表项检查。
进一步的,在基于IP Source Guard静态绑定表项检查之后,还需要进行基于DHCPv6 Snooping安全表项和基于ND Snooping安全表项的检查,只要符合两者中的任何一个,则认为该ND报文是合法报文,进行转发;如果所有检查都没有找到匹配的表项,则认为该ND报文是非法报文,直接丢弃。
(2)ND Snooping表项与IP Source Guard功能配合使用,保证数据报文的合法性。其中,IP Source Guard功能在接入设备接入用户侧的端口上启用,可以对端口接收到的数据报文进行过滤控制,防止非法数据报文通过端口,从而限制了对网络资源的非法使用(例如,非法用户仿冒合法用户IP接入网络),并提高了端口的安全性。
具体的,IP Source Guard在端口上用于过滤数据报文的特征项包括:源IP地址、源MAC地址和VLAN标签。其中,这些特征项可以单独或组合起来与端口进行绑定,从而形成绑定表项。例如,IP、MAC、IP+MAC、IP+VLAN、MAC+VLAN和IP+MAC+VLAN等。
但是,按照现有IPv6协议规定,每个用户设备对应的IPv6地址至少为两个,一个是链路本地地址,一个是全球单播地址。而且在接入设备上,每个接口可以配置多个IPv6单播地址,如果用户设备接入的路由器公告多个前缀,或者用户设备接入了多个路由器时,则该用户设备将会生成多个IPv6单播地址。
而在现有的实现中,需要对每个IPv6地址都生成相应的ACL表项,然后利用该ACL表项对转发报文进行过滤,此时,如果每个用户设备有多个(至少两个)IPv6地址,则会对应的生成多个ACL表项,从而占用较多的系统ACL资源(例如,包括存储资源和处理时间),并由于接入设备的ACL资源有限,导致ACL资源被消耗光,影响用户设备的正常使用。
发明内容
本发明提供一种优化的IPV6过滤规则处理方法和设备,以在每个用户设备对应多个IPv6地址的情况下,为每个用户设备设置一个端口ACL,以减少ACL的资源消耗。
为了达到上述目的,本发明提出了一种优化的IPV6过滤规则处理方法,应用于包括用户设备和接入设备的系统中,所述方法包括以下步骤:
所述接入设备接收来自所述用户设备的邻居发现ND报文,并当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口标识ID和IPv6地址;
当接口ID列表中不存在所述接口ID时,所述接入设备根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址;
所述接入设备根据所述接口ID表项维护端口访问控制列表ACL。
所述接口ID表项中的信息包括:接口ID、介质访问控制MAC地址、端口、虚拟局域网VLAN和关联地址;
所述接入设备根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项,具体包括:所述接入设备以所述接口ID为索引,将所述IPv6地址记录为所述接口ID表项中的关联地址;
所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址,具体包括:所述接入设备将所述IPv6地址记录为所述接口ID表项中的关联地址。
将所述IPv6地址记录为所述接口ID表项中的关联地址,之后还包括:
所述接入设备为所述IPv6地址设置第一老化时间,并在到达所述第一老化时间时,对所述IPv6地址进行探测,在第二老化时间之内探测结果为不可达时,从所述接口ID表项中将所述第一老化时间对应的所述IPv6地址删除;
如果所述接口ID对应的所有IPv6地址均从所述接口ID表项中删除,所述接入设备从接口ID列表中删除所述接口ID表项。
所述端口ACL中的信息包括:接口ID、MAC地址、端口、VLAN;
所述接入设备根据所述接口ID表项维护端口访问控制列表ACL,具体包括:
当接口ID列表中建立接口ID表项时,所述接入设备判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果不存在,所述接入设备根据所述接口ID表项建立端口ACL;如果存在,所述接入设备确定不需要根据所述接口ID表项建立端口ACL;
当接口ID列表中删除接口ID表项时,所述接入设备判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果存在,所述接入设备删除所述接口ID对应的端口ACL。
所述接入设备根据所述接口ID表项维护端口访问控制列表ACL,之后还包括:
所述接入设备根据所述端口ACL对来自所述用户设备的数据报文进行处理,具体包括:
当接收到来自所述用户设备的数据报文时,所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息;
如果所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息与所述端口ACL中的信息均匹配成功时,所述接入设备转发所述数据报文;否则,所述接入设备丢弃所述数据报文。
所述方法还包括:
所述接入设备获取所有合法前缀的信息,并根据所述合法前缀的信息为所述用户设备建立全局前缀ACL;
所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息,之前还包括:
所述接入设备根据所述全局前缀ACL中的信息匹配所述数据报文中携带的IPv6前缀;
如果所述数据报文中携带的IPv6前缀与所述全局前缀ACL中的信息匹配成功时,则执行所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息的操作;否则,所述接入设备丢弃所述数据报文。
一种接入设备,应用于包括用户设备和接入设备的系统中,该设备进一步包括:
收发模块,用于接收来自所述用户设备的邻居发现ND报文;
获取模块,与所述收发模块连接,用于当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口ID和IPv6地址;
接口ID表项维护模块,与所述获取模块连接,用于当接口ID列表中不存在所述接口ID时,根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,在所述接口ID对应的接口ID表项中记录所述IPv6地址;
端口ACL维护模块,与所述接口ID表项维护模块连接,用于根据所述接口ID表项维护端口ACL。
所述接口ID表项中的信息包括:接口ID、介质访问控制MAC地址、端口、虚拟局域网VLAN和关联地址;
所述接口ID表项维护模块具体用于,当接口ID列表中不存在所述接口ID时,以所述接口ID为索引,将所述IPv6地址记录为所述接口ID表项中的关联地址;或者,
当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,将所述IPv6地址记录为所述接口ID表项中的关联地址。
所述接口ID表项维护模块还用于,为所述IPv6地址设置第一老化时间,并在到达所述第一老化时间时,对所述IPv6地址进行探测,在第二老化时间之内探测结果为不可达时,从所述接口ID表项中将所述第一老化时间对应的所述IPv6地址删除;
如果所述接口ID对应的所有IPv6地址均从所述接口ID表项中删除,从接口ID列表中删除所述接口ID表项。
所述端口ACL中的信息包括:接口ID、MAC地址、端口、VLAN;
所述端口ACL维护模块具体用于,当接口ID列表中建立接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果不存在,根据所述接口ID表项建立端口ACL;如果存在,确定不需要根据所述接口ID表项建立端口ACL;
当接口ID列表中删除接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果存在,删除所述接口ID对应的端口ACL。
还包括:
处理模块,与所述端口ACL维护模块连接,用于根据所述端口ACL对来自所述用户设备的数据报文进行处理,并进一步用于,
当接收到来自所述用户设备的数据报文时,根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息;如果所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息与所述端口ACL中的信息均匹配成功时,转发所述数据报文;否则,丢弃所述数据报文。
所述获取模块还用于,获取所有合法前缀的信息;
所述处理模块还用于,根据所述合法前缀的信息为所述用户设备建立全局前缀ACL;并根据所述全局前缀ACL中的信息匹配所述数据报文中携带的IPv6前缀;如果所述数据报文中携带的IPv6前缀与所述全局前缀ACL中的信息匹配成功时,则执行根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息的操作;否则,丢弃所述数据报文。
与现有技术相比,本发明具有以下优点:
通过使用用户设备的接口ID为每个用户设备建立对应的ACL表项,保证了对于每个用户设备的多个IPv6地址,只需要建立一个ACL表项,减少了对系统ACL资源的消耗,并能够保证用户设备的正常使用。
附图说明
图1为本发明提出的一种优化的IPV6过滤规则处理方法流程图;
图2为本发明提出的一种应用场景示意图;
图3为对应图2应用场景所提出的一种优化的IPV6过滤规则处理方法流程图;
图4为本发明提出的一种接入设备的结构图。
具体实施方式
本发明中,通过在控制层面根据接口ID为每个用户设备建立接口ID表项,对于每个用户设备的多个IPv6地址来说,由于具有相同的接口ID,则该多个IPv6地址将对应同一个接口ID表项。而在数据转发层面上,根据接口ID表项为用户设备下发端口ACL,在为每个用户设备建立端口ACL表项时,能够根据接口ID表项中的接口ID为使用相同接口ID的多个IPv6地址建立一个端口ACL表项,从而保证了对于每个用户设备的多个IPv6地址来说,只需要建立一个端口ACL表项,减少了对系统ACL资源的消耗。
基于上述思想,本发明中提供一种优化的IPV6过滤规则处理方法,应用于包括用户设备和接入设备的系统中,在本发明中,该用户设备包括至少两个IPv6地址,且所述至少两个IPv6地址使用相同的接口ID,并在接入设备上预先维护了接口ID列表,如图1所示,该方法包括以下步骤:
步骤101,所述接入设备接收来自所述用户设备的邻居发现ND报文,并当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口标识ID和IPv6地址。
步骤102,当接口ID列表中不存在所述接口ID时,所述接入设备根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址。
步骤103,所述接入设备根据所述接口ID表项维护端口访问控制列表ACL。
为了更加清楚的阐述本发明提供的技术方案,以下结合一种具体的应用场景对本发明进行详细描述。如图2所示,为本发明提供的一种组网示意图,在图2中,包括接入设备和多个用户设备,该接入设备与各个用户设备分别连接,各个用户设备分别为用户设备1、用户设备2和用户设备3。在实际应用中,各个用户设备均分别对应了至少两个IPv6地址,为了方便描述,本应用场景下以用户设备1为例进行说明,对于其他用户设备的处理方式,与用户设备1相同,本应用场景下不再详加赘述。
本应用场景下,用户设备1对应了至少两个IPv6地址(以IPv6地址1和IPv6地址2为例进行说明),且IPv6地址1和IPv6地址2使用了相同的接口ID,该接口ID在本链路内是唯一的。
基于上述情况,如图3所示,本发明提供的优化的IPV6过滤规则处理方法中,包括以下步骤:
步骤301,当接收到来自用户设备的ND报文时,接入设备根据该ND报文判断该用户设备是否合法。当该用户设备合法时,则转到步骤302,当该用户设备不合法时,则接入设备丢弃该ND报文。
具体的,在接入设备上维护了ND Snooping表项,该ND Snooping表项中的内容包括但不限于源IPv6地址、源MAC地址、所属VLAN和入端口等信息,当接收到来自用户设备的ND报文时,该接入设备能够对来自用户设备的ND报文进行侦听,并根据ND Snooping表项和该ND报文判断该用户设备是否合法,该过程与现有技术的处理方式相同,本应用场景下不再说明。
步骤302,接入设备获取该用户设备的接口ID和IPv6地址。
对于每个用户设备来说,具有唯一的接口ID,而在用户设备向接入设备发送的ND报文中携带了该用户设备的接口ID和IPv6地址,即接入设备能够根据该ND报文获取该用户设备的接口ID。
步骤303,接入设备判断自身的接口ID列表中是否存储了该接口ID对应的接口ID表项。
具体的,在接入设备上维护了接口ID列表,而该接口ID列表中记录了各个接口ID对应的接口ID表项,该接口ID表项以接口ID为索引,当获取到用户设备的接口ID后,能够根据该接口ID列表判断出接入设备上是否存储了该接口ID对应的接口ID表项;如果存储了该接口ID对应的接口ID表项时,则转到步骤304,否则,转到步骤305。
步骤304,接入设备确定不需要为用户设备建立接口ID表项。
当存储了该接口ID对应的接口ID表项时,则说明接入设备上已经建立了该用户设备对应的接口ID表项,不再需要重新为该用户设备建立接口ID表项。
步骤305,接入设备根据该接口ID和IPv6地址为该用户设备建立对应的接口ID表项。
当没有存储该接口ID对应的接口ID表项时,则说明接入设备上还没有为该用户设备建立对应的接口ID表项,此时,需要根据该接口ID和IPv6地址为该用户设备建立对应的接口ID表项。
本发明中,该接口ID表项中的信息包括但不限于:接口ID、MAC地址、端口、VLAN和关联地址(即关联的IPv6地址)等信息。因此,在根据该接口ID和IPv6地址为该用户设备建立对应的接口ID表项时,还需要从ND报文中获取MAC地址、端口、VLAN等信息,并根据接口ID、MAC地址、端口、VLAN和IPv6地址等信息为该用户设备建立对应的接口ID表项。如表1所示,为一种接口ID列表。
表1
接口ID | MAC地址 | 端口 | VLAN | 关联地址 |
接口ID 1 | MAC地址1 | 端口1 | VLAN1 | 关联地址1 |
… | … | … | … | … |
可以理解的是,当接收到来自用户设备1的ND报文时,如果在接口ID表项中没有用户设备1的接口ID(接口ID 1)的记录,则需要为用户设备1建立接口ID表项。例如,建立表1所示的接口ID 1对应的接口ID表项。
需要注意的是,由于一个接口ID可能被多个IPv6地址所使用,因此本发明中,在建立接口ID表项的过程中,需要以接口ID为索引,将所有使用该接口ID的IPv6地址都记录到该接口ID对应的接口ID表项中。
因此,本应用场景下,在步骤304中,接入设备确定不需要为用户设备建立接口ID表项之后,该接入设备还需要根据步骤302中获取的IPv6地址判断是否需要对相应的接口ID表项进行更新。
具体的,当接口ID列表中存在接口ID且接口ID列表中不存在IPv6地址时,则说明接口ID列表具有接口ID对应的接口ID表项,但是该接口ID表项中没有记录该IPv6地址,此时,需要在接口ID对应的接口ID表项中记录该IPv6地址。当接口ID列表中存在接口ID且接口ID列表存在IPv6地址时,不需要进行相关处理,可以直接丢弃步骤301中接收到的ND报文。
例如,该ND报文中携带的接口ID为接口ID1且关联地址为关联地址2,在接入设备上已经维护了表1所示的接口ID表项,此时,该接入设备需要将关联地址2更新到该接口ID表项中,如表2所示的更新后的接口ID表项。
表2
接口ID | MAC地址 | 端口 | VLAN | 关联地址 | 关联地址 |
接口ID 1 | MAC地址1 | 端口1 | VLAN1 | 关联地址1 | 关联地址2 |
… | … | … | … | … | … |
需要说明的是,接入设备还需要为接口ID表项中的每个关联地址设置老化时间(例如,第一老化时间),该老化时间可以根据实际需要任意选择。对于不同的关联地址,老化时间可以相同,也可以不同。例如,对于用户设备1来说,由于用户设备1对应了两个IPv6地址,则在接口ID表项中,用户设备1对应了两个关联地址,如表3所示。
表3
接口ID | MAC地址 | 端口 | VLAN | 关联地址 | 老化时间 | 关联地址 | 老化时间 |
接口ID1 | MAC地址1 | 端口1 | VLAN1 | 关联地址1 | 老化时间1 | 关联地址2 | 老化时间2 |
… | … | … | … | … | … | … | … |
需要注意的是,对于每一个关联地址来说,当到达该关联地址的老化时间时,还需要对该关联地址进行探测,并在预设老化时间内不可达时,从接口ID表项中将该关联地址删除。例如,当到达老化时间1时,需要对关联地址1进行探测,如果在老化时间(例如,第二老化时间,该第二老化时间可以根据实际需要任意选择)之内探测结果为不可达时,则需要将关联地址1从接口ID表项中删除。
进一步的,如果接口ID对应的所有关联地址均从接口ID表项中删除时,还需要删除该接口ID表项。例如,当到达老化时间1和老化时间2时,且关联地址1和关联地址2均为不可达时,需要将关联地址1和关联地址2从接口ID表项中删除,此时,对于接口ID 1来说,已经没有对应的关联地址,需要将该接口ID 1对应的接口ID表项删除。
本应用场景下,通过使用上述步骤,即可以在接入设备的控制层面上建立每个用户设备对应的接口ID表项。
进一步的,当在控制层面上为用户设备建立了接口ID表项之后,还需要根据该接口ID表项为用户设备在数据转发层面维护端口ACL,并根据该端口ACL对数据报文进行过滤。
在端口ACL中携带的信息包括但不限于接口ID、MAC地址、端口、VLAN信息等,在根据接口ID表项为用户设备在数据转发层面维护端口ACL时,可以分为以下两种情况:(1)当接口ID列表中建立接口ID表项时,接入设备需要判断端口ACL列表中是否存在该接口ID表项中的接口ID,如果不存在,则需要根据接口ID表项建立端口ACL;如果存在,则不需要根据接口ID表项建立端口ACL。(2)当接口ID列表中删除接口ID表项时,接入设备判断端口ACL列表中是否存在接口ID表项中的接口ID,如果存在,则删除接口ID对应的端口ACL;如果不存在,则不需要进行相关处理。
具体的,在根据接口ID表项为用户设备建立端口ACL时,可以根据接口ID表项中的接口ID、MAC地址、端口、VLAN等信息直接获取到端口ACL中的接口ID、MAC地址、端口、VLAN等信息,从而建立对应的端口ACL。
可以看出,由于端口ACL为根据接口ID表项获得的,该接口ID表项以接口ID为索引,将所有使用同一个接口ID的IPv6地址记录为一个接口ID表项,则在建立端口ACL中,所有使用同一个接口ID的IPv6地址也将对应一个端口ACL,从而在每个用户设备具有多个IPv6地址时,为每个用户设备建立一个端口ACL,节省了端口ACL表项的资源。
进一步的,当接口ID表项发生更新时,还需要根据更新后的接口ID表项更新端口ACL表项。例如,当删除了接口ID 1对应的接口ID表项时,则需要将接口ID 1对应的端口ACL删除。
基于上述端口ACL,本应用场景下,当接收到来自用户设备的数据报文时,还可以包括以下步骤:
步骤306,接入设备根据端口ACL中的信息匹配该数据报文中携带的接口ID、MAC地址、端口和VLAN信息。
具体的,在端口ACL中,存储了接口ID、MAC地址、端口和VLAN等信息,而在数据报文中,也携带了用户设备的接口ID、MAC地址、端口和VLAN信息。如果端口ACL中的接口ID、MAC地址、端口和VLAN,与用户设备的接口ID、MAC地址、端口和VLAN信息完全匹配时,则说明该数据报文为来自合法用户设备的数据报文,转到步骤307;否则,说明该数据报文为来自非法用户设备的数据报文,丢弃该数据报文。
步骤307,接入设备继续转发该数据报文。
另外,本应用场景下,考虑到前缀伪造的预防,还需要针对所有的端口ACL建立全局前缀ACL表项。
具体的,接入设备需要获取所有合法前缀的信息(即所有的端口ACL使用到的前缀),并根据所有合法前缀的信息为用户设备建立全局前缀ACL表项,如表4所示。
表4
合法前缀 | 公告发出时间 | 前缀生存期 |
接口ID 1对应的前缀 | ||
… |
可以看出,在表4中,如果到达合法前缀(例如,接口ID 1对应的前缀)的前缀生存期时,需要将该接口ID 1对应的前缀从全局前缀ACL中删除,本应用场景下不再赘述。
基于这种情况,在步骤306之前,接入设备还需要根据全局前缀ACL表项中的信息(合法前缀)匹配该数据报文中携带的IPv6前缀;如果数据报文中携带的IPv6前缀与全局前缀ACL表项中的信息匹配成功时,则执行步骤306中的操作,否则,接入设备需要丢弃该数据报文。
其中,本发明中的各个步骤还可以根据实际的需要进行调整。
基于与上述方法同样的发明构思,本发明还提出了一种接入设备,应用于包括用户设备和接入设备的系统中,如图4所示,该设备进一步包括:
收发模块11,用于接收来自所述用户设备的邻居发现ND报文。
获取模块12,与所述收发模块11连接,用于当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口ID和IPv6地址。
接口ID表项维护模块13,与所述获取模块12连接,用于当接口ID列表中不存在所述接口ID时,根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,在所述接口ID对应的接口ID表项中记录所述IPv6地址。
本发明中,所述接口ID表项中的信息包括但不限于:接口ID、介质访问控制MAC地址、端口、虚拟局域网VLAN和关联地址;所述接口ID表项维护模块13具体用于,当接口ID列表中不存在所述接口ID时,以所述接口ID为索引,将所述IPv6地址记录为所述接口ID表项中的关联地址;或者,当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,将所述IPv6地址记录为所述接口ID表项中的关联地址。
另外,所述接口ID表项维护模块13还用于,为所述IPv6地址设置第一老化时间,并在到达所述第一老化时间时,对所述IPv6地址进行探测,在第二老化时间之内探测结果为不可达时,从所述接口ID表项中将所述第一老化时间对应的所述IPv6地址删除;如果所述接口ID对应的所有IPv6地址均从所述接口ID表项中删除,从接口ID列表中删除所述接口ID表项。
端口ACL维护模块14,与所述接口ID表项维护模块13连接,用于根据所述接口ID表项维护端口ACL。
所述端口ACL中的信息包括:接口ID、MAC地址、端口、VLAN;所述端口ACL维护模块14具体用于,当当接口ID列表中建立接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果不存在,根据所述接口ID表项建立端口ACL;如果存在,确定不需要根据所述接口ID表项建立端口ACL;当接口ID列表中删除接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果存在,删除所述接口ID对应的端口ACL。
处理模块15,与所述端口ACL维护模块14连接,用于根据所述端口ACL对来自所述用户设备的数据报文进行处理,并进一步用于,当接收到来自所述用户设备的数据报文时,根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息;如果所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息与所述端口ACL中的信息均匹配成功时,转发所述数据报文;否则,丢弃所述数据报文。
另外,考虑到前缀伪造的预防,还需要针对所有的端口ACL表项建立全局前缀ACL表项。此时,
所述获取模块12还用于获取所有合法前缀的信息。
所述处理模块15还用于根据所述合法前缀的信息为所述用户设备建立全局前缀ACL;并根据所述全局前缀ACL中的信息匹配所述数据报文中携带的IPv6前缀;如果所述数据报文中携带的IPv6前缀与所述全局前缀ACL中的信息匹配成功时,则执行根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息的操作;否则,确定需要丢弃所述数据报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (12)
1.一种优化的IPv6过滤规则处理方法,应用于包括用户设备和接入设备的系统中,其特征在于,所述用户设备包括至少两个IPv6地址,且所述至少两个IPv6地址使用相同的接口ID,所述方法包括以下步骤:
所述接入设备接收来自所述用户设备的邻居发现ND报文,并当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口标识ID和IPv6地址;
当接口ID列表中不存在所述接口ID时,所述接入设备根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址;
所述接入设备根据所述接口ID表项维护端口访问控制列表ACL;其中,在为所述用户设备建立端口ACL表项时,根据接口ID表项中的接口ID为使用相同接口ID的多个IPv6地址建立一个端口ACL表项。
2.如权利要求1所述的方法,其特征在于,所述接口ID表项中的信息包括:接口ID、介质访问控制MAC地址、端口、虚拟局域网VLAN和关联地址;
所述接入设备根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项,具体包括:所述接入设备以所述接口ID为索引,将所述IPv6地址记录为所述接口ID表项中的关联地址;
所述接入设备在所述接口ID对应的接口ID表项中记录所述IPv6地址,具体包括:所述接入设备将所述IPv6地址记录为所述接口ID表项中的关联地址。
3.如权利要求2所述的方法,其特征在于,将所述IPv6地址记录为所述接口ID表项中的关联地址,之后还包括:
所述接入设备为所述IPv6地址设置第一老化时间,并在到达所述第一老化时间时,对所述IPv6地址进行探测,在第二老化时间之内探测结果为不可达时,从所述接口ID表项中将所述第一老化时间对应的所述IPv6地址删除;
如果所述接口ID对应的所有IPv6地址均从所述接口ID表项中删除,所述接入设备从接口ID列表中删除所述接口ID表项。
4.如权利要求3所述的方法,其特征在于,所述端口ACL中的信息包括:接口ID、MAC地址、端口、VLAN;
所述接入设备根据所述接口ID表项维护端口访问控制列表ACL,具体包括:
当接口ID列表中建立接口ID表项时,所述接入设备判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果不存在,所述接入设备根据所述接口ID表项建立端口ACL;如果存在,所述接入设备确定不需要根据所述接口ID表项建立端口ACL;
当接口ID列表中删除接口ID表项时,所述接入设备判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果存在,所述接入设备删除所述接口ID对应的端口ACL。
5.如权利要求4所述的方法,其特征在于,所述接入设备根据所述接口ID表项维护端口访问控制列表ACL,之后还包括:
所述接入设备根据所述端口ACL对来自所述用户设备的数据报文进行处理,具体包括:
当接收到来自所述用户设备的数据报文时,所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息;
如果所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息与所述端口ACL中的信息均匹配成功时,所述接入设备转发所述数据报文;否则,所述接入设备丢弃所述数据报文。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述接入设备获取所有合法前缀的信息,并根据所述合法前缀的信息为所述用户设备建立全局前缀ACL;
所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息,之前还包括:
所述接入设备根据所述全局前缀ACL中的信息匹配所述数据报文中携带的IPv6前缀;
如果所述数据报文中携带的IPv6前缀与所述全局前缀ACL中的信息匹配成功时,则执行所述接入设备根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息的操作;否则,所述接入设备丢弃所述数据报文。
7.一种接入设备,应用于包括用户设备和接入设备的系统中,其特征在于,该接入设备进一步包括:
收发模块,用于接收来自所述用户设备的邻居发现ND报文,其中,所述用户设备包括至少两个IPv6地址,且所述至少两个IPv6地址使用相同的接口ID;
获取模块,与所述收发模块连接,用于当根据所述ND报文确定所述用户设备合法时,获取所述用户设备的接口ID和IPv6地址;
接口ID表项维护模块,与所述获取模块连接,用于当接口ID列表中不存在所述接口ID时,根据所述接口ID和所述IPv6地址为所述用户设备建立接口ID表项;当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,在所述接口ID对应的接口ID表项中记录所述IPv6地址;
端口ACL维护模块,与所述接口ID表项维护模块连接,用于根据所述接口ID表项维护端口ACL;其中,在为所述用户设备建立端口ACL表项时,根据接口ID表项中的接口ID为使用相同接口ID的多个IPv6地址建立一个端口ACL表项。
8.如权利要求7所述的接入设备,其特征在于,所述接口ID表项中的信息包括:接口ID、介质访问控制MAC地址、端口、虚拟局域网VLAN和关联地址;
所述接口ID表项维护模块具体用于,当接口ID列表中不存在所述接口ID时,以所述接口ID为索引,将所述IPv6地址记录为所述接口ID表项中的关联地址;或者,
当接口ID列表中存在所述接口ID且接口ID列表中不存在所述IPv6地址时,将所述IPv6地址记录为所述接口ID表项中的关联地址。
9.如权利要求8所述的接入设备,其特征在于,
所述接口ID表项维护模块还用于,为所述IPv6地址设置第一老化时间,并在到达所述第一老化时间时,对所述IPv6地址进行探测,在第二老化时间之内探测结果为不可达时,从所述接口ID表项中将所述第一老化时间对应的所述IPv6地址删除;
如果所述接口ID对应的所有IPv6地址均从所述接口ID表项中删除,从接口ID列表中删除所述接口ID表项。
10.如权利要求9所述的接入设备,其特征在于,所述端口ACL中的信息包括:接口ID、MAC地址、端口、VLAN;
所述端口ACL维护模块具体用于,当接口ID列表中建立接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果不存在,根据所述接口ID表项建立端口ACL;如果存在,确定不需要根据所述接口ID表项建立端口ACL;
当接口ID列表中删除接口ID表项时,判断端口ACL列表中是否存在所述接口ID表项中的接口ID,如果存在,删除所述接口ID对应的端口ACL。
11.如权利要求10所述的接入设备,其特征在于,还包括:
处理模块,与所述端口ACL维护模块连接,用于根据所述端口ACL对来自所述用户设备的数据报文进行处理,并进一步用于,
当接收到来自所述用户设备的数据报文时,根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息;如果所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息与所述端口ACL中的信息均匹配成功时,转发所述数据报文;否则,丢弃所述数据报文。
12.如权利要求11所述的接入设备,其特征在于,
所述获取模块还用于,获取所有合法前缀的信息;
所述处理模块还用于,根据所述合法前缀的信息为所述用户设备建立全局前缀ACL;并根据所述全局前缀ACL中的信息匹配所述数据报文中携带的IPv6前缀;如果所述数据报文中携带的IPv6前缀与所述全局前缀ACL中的信息匹配成功时,则执行根据所述端口ACL中的信息匹配所述数据报文中携带的接口ID、MAC地址、端口和VLAN信息的操作;否则,丢弃所述数据报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010179092 CN101827138B (zh) | 2010-05-21 | 2010-05-21 | 一种优化的ipv6过滤规则处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010179092 CN101827138B (zh) | 2010-05-21 | 2010-05-21 | 一种优化的ipv6过滤规则处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101827138A CN101827138A (zh) | 2010-09-08 |
CN101827138B true CN101827138B (zh) | 2013-06-05 |
Family
ID=42690834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010179092 Active CN101827138B (zh) | 2010-05-21 | 2010-05-21 | 一种优化的ipv6过滤规则处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101827138B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025641B (zh) * | 2010-12-27 | 2015-01-28 | 中兴通讯股份有限公司 | 一种报文过滤方法和交换设备 |
CN102438028B (zh) * | 2012-01-19 | 2016-06-15 | 神州数码网络(北京)有限公司 | 一种防止dhcp服务器欺骗的方法、装置及系统 |
CN102571807A (zh) * | 2012-02-08 | 2012-07-11 | 神州数码网络(北京)有限公司 | 一种确保IPv6重定向消息安全的方法和系统 |
CN102546431A (zh) * | 2012-02-08 | 2012-07-04 | 神州数码网络(北京)有限公司 | 一种路由器公告安全接入方法、系统及装置 |
CN102611764A (zh) * | 2012-03-20 | 2012-07-25 | 中兴通讯股份有限公司 | 一种查询IPv6地址的方法及装置 |
CN104333520A (zh) * | 2014-11-28 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种交换机mac地址表双老化时间控制方法 |
CN105791107A (zh) * | 2014-12-22 | 2016-07-20 | 中兴通讯股份有限公司 | 一种acl规则的配置方法、匹配方法及相关装置 |
CN106302844A (zh) * | 2015-05-28 | 2017-01-04 | 国网辽宁省电力有限公司丹东供电公司 | 一种IPv6地址回收禁用方法及装置 |
CN106953849B (zh) * | 2017-02-28 | 2021-01-12 | 华为技术有限公司 | 一种基于IPv6地址的数据报文匹配方法及装置 |
CN107547407B (zh) * | 2017-09-15 | 2021-03-09 | 新华三技术有限公司 | 报文传输方法、装置和实现装置 |
CN111131545B (zh) * | 2019-12-27 | 2020-10-27 | 浪潮思科网络科技有限公司 | 一种ND Snooping绑定表更新方法、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645895A (zh) * | 2009-08-31 | 2010-02-10 | 杭州华三通信技术有限公司 | 一种实现隧道安全的方法和设备 |
CN101656725A (zh) * | 2009-09-24 | 2010-02-24 | 杭州华三通信技术有限公司 | 一种实现安全接入的方法和一种接入设备 |
-
2010
- 2010-05-21 CN CN 201010179092 patent/CN101827138B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645895A (zh) * | 2009-08-31 | 2010-02-10 | 杭州华三通信技术有限公司 | 一种实现隧道安全的方法和设备 |
CN101656725A (zh) * | 2009-09-24 | 2010-02-24 | 杭州华三通信技术有限公司 | 一种实现安全接入的方法和一种接入设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101827138A (zh) | 2010-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101827138B (zh) | 一种优化的ipv6过滤规则处理方法和设备 | |
US8239549B2 (en) | Dynamic host configuration protocol | |
CN101651696B (zh) | 一种防止nd攻击的方法及装置 | |
US8806565B2 (en) | Secure network location awareness | |
CN102771149B (zh) | 用于管理IPv6地址和访问策略的系统和方法 | |
US11671363B2 (en) | Method and apparatus for cross-service-zone communication, and data center network | |
US8190755B1 (en) | Method and apparatus for host authentication in a network implementing network access control | |
Ullrich et al. | {IPv6} Security: Attacks and Countermeasures in a Nutshell | |
CN108418806B (zh) | 一种报文的处理方法及装置 | |
CN105472048B (zh) | 一种地址分配方法、信息聚合方法及相关设备 | |
CN101459653B (zh) | 基于Snooping技术的防止DHCP报文攻击的方法 | |
CN101820432A (zh) | 无状态地址配置的安全控制方法及装置 | |
JP2006287299A (ja) | ネットワーク管理方法および装置並びに管理プログラム | |
CN112910863A (zh) | 一种网络溯源方法及系统 | |
CN101577723B (zh) | 一种防止邻居发现协议报文攻击的方法及装置 | |
EP2677716A1 (en) | Access control method, access device and system | |
US7987255B2 (en) | Distributed denial of service congestion recovery using split horizon DNS | |
CN102546429B (zh) | 基于dhcp监听的isatap隧道的认证方法和系统 | |
CN101945053B (zh) | 一种报文的发送方法和装置 | |
US20060193330A1 (en) | Communication apparatus, router apparatus, communication method and computer program product | |
US20080201477A1 (en) | Client side replacement of DNS addresses | |
CN109120738B (zh) | Dhcp服务器及其进行网络内部设备管理的方法 | |
CN101938411A (zh) | 一种nd探听表项的处理方法和设备 | |
CN106878291B (zh) | 一种基于前缀安全表项的报文处理方法及装置 | |
CN114500118B (zh) | 卫星网络拓扑的隐藏方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |