基于控制报文监听的源地址验证方法及装置的制作方法

文档序号:7701234阅读:156来源:国知局

专利名称::基于控制报文监听的源地址验证方法及装置的制作方法
技术领域
:本发明一般地涉及互联网
技术领域
,更具体地涉及真实IP源地址验证技术。
背景技术
:互联网上的采用伪造IP源地址的攻击相当泛滥,据互联网观测组织的统计,每周至少有4000起釆用伪造源地址的拒绝服务攻击。这类攻击具有容易发起但是难以追溯的的特点,这是造成伪造源地址攻击泛滥的原因。目前已经有很多技术被提出来希望能控制这类攻击。它们可以分为三类路径过滤类(Filtering),这一类技术主要是使用路由信息来过滤掉一部分伪造源地址的才艮文。典型的例子如入口过滤(Ingressfiltering),就是通过检查网关上接收到的报文其源地址是否在接入子网的地址空间范围内,从而判断报文是否合法。端到端认证类(End-to-EndApproach),这一类4支术在源端给t艮文加入标记,这一标记在报文的目的端被检查用来判断报文中所含源地址的真实性。回溯类(Traceback),回溯类技术是一种^皮动的纟支术。它希望获取报文在互联网上所经过的路径,在攻击发生时,通过分析报文路径来获取攻击源的i也址。IPv6的部署越来越广泛,保护IPv6源地址不被伪造也成了新的需求。但是,目前还没有针对IPv6源地址的细粒度路径过滤方案。由于IPv6源地址数量更多,前缀级别的过滤方案无法有效遏制伪造源地址攻击。因此,需要一种主才几粒度的IPv6源地址验证方案。考虑到双栈网络的普及,该方案同时需要考虑对IPv4源地址的保护。
发明内容为了解决上述问题之一,本发明提出了一种验证源地址的方法,包括以下步骤网络接入设备判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;如果所述报文为来自于不直接相连的主机的报文,则检查所述报文的源地址是否存在于绑定关系表中,如果存在,则丟弃所述报文;如果不存在,则转发所述报文;如果所述报文为来自直接相连的主机的数据报文,则检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丢弃所述报文,若存在,则转发所述报文;如果所述报文为来自直接相连的主机的控制报文,则检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丢弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。本发明还提出了一种验证源地址的装置,包括判断模块,其用于判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;第一处理模块,其用于在所述报文为来自于不直接相连的主机的报文时,一企查所述报文的源地址是否存在于绑定关系表中,如果存在,则丟弃所述报文;如果不存在,则转发所述报文;第二处理模块,其用于在所述报文为来自直接相连的主机的数据报文时,检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丢弃所述报文,若存在,则转发所述报文;第三处理模块,其用于在所述报文为来自直接相连的主机的控制报文时,检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丟弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;绑定操作模块,其用于根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。本发明所提出的验证源地址的方法及装置是细粒度的,适用于IPv6和IPv4,且不必修改主机及现有的协议。本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中图1为根据本发明的一个实施例的绑定状态转移图2为根据本发明的一个实施例的验证源地址的方法的流程图3为根据本发明的一个实施例的装置的示意图。具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本发明的一个实施例提出了一种验证源地址的方法,如图1所示为该方法的流程图。该方法包括以下步骤网络接入设备判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;源地址是否存在于绑定关系表中,如杲存在,则丢弃所述报文;如果不存在,则转发所述报文;如果所述报文为来自直接相连的主机的数据报文,则检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丟弃所述报文,若存在,则转发所述报文;如果所述报文为来自直接相连的主机的控制报文,则检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丟弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。作为本发明的一个实施例,-险证源地址的方法在与主才几直4妾相连的网络接入设备上实现,例如交换机和无线接入点。作为本发明的一个实施例,需要部署的交换机的一个端口不能被多个主机共享,或者主机接口具有安全的链路层地址;所述安全的链路层地址,是指在802.11i(无线安全标准)或者802.1ae/af(局域网安全标准)被使用时,主机的MAC(MediaAccessControl,介质访问控制子层)地址;所述交换机一个端口不能被多个主机共享,是指多个主机的接口不能通过集线器等设备接入到交换机的同一个接口;如果本方案被部署在交换机上,在交换机的端口上可能连接其他接入设备,如交换机、路由器等,这些端口需要和直接连接主机的端口加以区别;作为本发明的一个实施例,对不直接连接到部署该方案设备的主机不进行主机粒度的源地址过滤。作为本发明的一个实施例,在部署之后,建立源地址与部署设备的端口或者主机链路层地址的绑定关系,并对报文进行过滤;作为本发明的一个实施例,使用一个数据结构存储绑定关系,在本说明书中称为绑定关系表,另外可以使用一个数据结构存储绑定关系的状态和生命期,在本说明书中称为绑定关系状态表;作为本发明的一个实施例,根据控制报文,如DHCPv4(DynamicHostConfigurationProtocolversion4,动'态主才几酉己置十办议版本4),DHCPv6(DynamicHostConfigurationProtocolversion6,动态主机配置协议版本6),NeighborDiscoveryProtocol(邻居发现协议),ARP(AddressResolutionProtocol,地址解析协议)等等、时间、和其他事件来对绑定关系表和绑定关系状态表进行修改。作为本发明的一个实施例,源地址过滤规则的建立,依次按以下步骤实现对于静态IP地址,部署设备通过读取配置文件或者设备管理者手动将该静态地址和被分配该静态地址的主机连接的端口(若部署设备是交换机,且该端口被主机独占)或者链路层地址(若主机使用安全的链路层地址)的绑定关系加入到绑定关系表;部署设备嗅探来自直接连接的主机的如下类型的才艮文DHCPv4Request(DHCPv4请求),DHCPv6R叫uest(DHCPv6i奮求),DHCPv6Confirm(DHCPv6确i^),DuplicateAddressDetectionNeighborSolicitation(冲突地址才企测的邻居恳求),GratuitousARP(免费ARP);如果嗅探到的第一个报文是如上几种报文之一,将分别进入如下几个步骤如果上述步骤嗅探到的报文是DHCPv4Request报文,部署设备将等待DHCP服务器或者DHCP中继发送给该主机的DHCPAcknowledgement(DHCP应答)报文;如果在一定时间内(例如,配置为IO秒)部署设备没有等待到所述DHCPAcknowledgement报文,将退出本步骤,返回到上述步骤,等待上述步骤中所述的几种报文;如果在一定时间内(例如配置为10秒)部署设备等待到所述DHCPAcknowledgement报文,部署设备将等待主机发送的GratuitousARP报文,所述GratuitousARP报文的目标地址必须是所述DHCPAcknowledgement报文中的目的地址;如果在一定时间内(例如配置为l秒),部署设备未等待到所述GratuitousARP报文,将退出本步骤;如果在一定时间内,部署设备等待到所述GratuitousARP报文,将等待同一网络下其他节点针对这一GratuitousARP报文回复的ARPReply报文;如果在一段时间内(例如配置为l秒),部署设备嗅探到所述ARPRelpy报文,将退出该步骤;如果在一段时间内(例如配置为l秒),部署设备没有嗅探到所述ARPRelpy报文,将在绑定关系表中新建表项,使用该表项保存上述DHCP服务器DHCPAcknowledgement报文中分配的地址与主一几所连接的端口(若部署i殳备是交换机,且该端口4皮主机独占)或者链路层地址(若主机使用安全的链路层地址)的绑定关系,同时在绑定关系状态表中加入该表项,表项的生命期为所述DHCPAcknowledgement报文中指明的地址租约时间,表项的状态记为DHCPv4绑定状态,并退出本步骤;如果嗅探到的报文是DHCPv6R叫uest报文或者DHCPv6Confirm报文,部署设备将等待DHCP服务器或者DHCP中继发送给该主机的DHCPv6Reply(DHCPv6回复);如果在一定时间内(例如配置为10秒)部署设备没有等待到所述DHCPv6Reply报文,将退出本步骤,等待上述步骤中所述的几种报文;如果在一定时间内(例如配置为10秒)部署设备等待到所述DHCPv6Reply报文,部署设备将等待主机发送的DuplicateAddressDetectionNeighborSolicitation净艮文,所述DuplicateAddressDetectionNeighborSolicitation才艮文的目标地址必须是所述DHCPv6Reply才艮文中的建议地址;如果在一定时间内(例如配置为1秒),部署设备未等待到所述DuplicateAddressDetectionNeighborSolicitation才艮文,^i寻退出本步骤;如果在一定时间内,部署设备等待到所述DuplicateAddressDetectionNeighborSolicitation报文,将等待同一网络下其他节点针对这一DuplicateAddressDetectionNeighborSolicitation才艮文回复的NeighborAdvertisement(邻居宣告)报文;如果在一段时间内(例如配置为l秒),部署设备嗅探到所述NeighborAdvertisement报文,将退出该步骤;如果在一段时间内(例如配置为l秒),部署设备没有嗅探到所述NeighborAdvertisement报文,将在绑定关系表中新建表项,使用该表项保存上述DHCP服务器DHCPv6Reply报文中分配的地址与主机所连接的端口(若部署设备是交换机,且该端口被主机独占)或者链路层地址(若主机使用安全的链路层地址)的绑定关系,同时在绑定关系状态表中加入该表项,表项的生命期为所述DHCPv6Reply报文中指明的地址租约时间,表项的状态记为DHCPv6绑定状态,并退出本步骤;如果嗅〗笨到的才艮文是DuplicateAddressDetectionNeighborSolicitation报文,部署设备将等待同一网络下其他节点针对这一DuplicateAddressDetectionNeighborSolicitation才艮文回复的NeighborAdvertisement才艮文;^口果在一段时间内(例如配置为1秒),部署设备嗅探到所述NeighborAdvertisement报文,将退出该步骤;如果在一段时间内(例如配置为1秒),部署设备没有嗅探到所述NeighborAdvertisement报文,将在绑定关系表中新建表项,使用该表项保存上述DuplicateAddressDetectionNeighborSolicitation中的目标地址与主机所连接的端口(若部署设备是交换机,且该端口被主机独占)或者链路层地址(若主机使用安全的链路层地址)的绑定关系,同时在绑定关系状态表中加入该表项,表项的生命期为可配置的无状态IPv6地址生存时间(例如配置为4个小时),表项的状态记为无状态IPv6绑定状态,并退出本步骤;如果嗅探到的报文是GratuitousARP报文,部署设备将等待同一网络下其他节点针对这一GratuitousARP报文回复的ARPReply报文;如果在一段时间内(例如配置为l秒),部署设备嗅探到所述ARPReply报文,将退出该步骤;如果在一段时间内(例如配置为1秒),部署设备没有嗅探到所述ARPReply报文,将在绑定关系表中新建表项,使用该表项保存上述GratuitousARP中的目标地址与主机所连接的端口(若部署设备是交换机,且该端口被主机独占)或者链路层地址(若主机使用安全的链路层地址)的绑定关系,同时在绑定关系状态表中加入该表项,表项的生命期为可配置的手动IPv4地址生存时间(例如配置为4个小时),表项的状态记为手动IPv4绑定状态,并退出本步骤。作为本发明的一个实施例,对于绑定关系表和绑定状态表的修改,分别按以下步骤实现部署设备嗅探来自直接连接的主机的如下类型的报文DHCPv4Decline(DHCPv4才巨纟色),DHCPv4Release(DHCPv4释》文),DHCPv6Decline(DHCPv6才巨纟色),和DHCPv6Release(DHCPv6释方欠),^口果出现此类4艮文,且对应的地址是相应主才几釆用DHCP方式获得的,将>^人绑定关系表和绑定状态表中删除对应的表项;同时,部署设备嗅探任何针对直接相连主机已经绑定地址的NeighborSolicitation和ARP报文,如果主机在一段时间内没有做出回复(例如配置为2秒),且该地址是无状态方式或者手动分配的,将删去此绑定;此外,部署设备还需要嗅探来自于DHCP服务器的DHCPv4Renew/Rebind(DHCPv4延期/重绑定)报文和DHCPv6Renew/Rebind(DHCPv6延期/重绑定)报文,如果出现此类报文,将更新本地对应的绑定的生存期为新的租约时间;部署设备监视绑定状态表中的绑定的生存期;对于DHCP协议建立的表项,如果生存期为0,将删除该绑定;对于无状态和手动分配的地址,将向对应的主才几发送针对相应地址的NeighborSolicitation才艮文(对于IPv6地址)或ARP报文(对于IPv4地址),如果没有回复,将删除对应的绑定表项,如果有回复,将更新表项的生存期为新的生存期(例如配置为4小时);对于静态配置的地址,任何情况下都不主动删除绑定表项;如果直接连接的主机从部署设备断开,将删除所有和该主机相关的绑定。作为本发明的一个实施例,使用源地址过滤规则对报文进行过滤,依次按以下步骤实现本方案区分来自于直接相连的主机的报文和来自非直接相连的主机的报文;所述非直接相连的主机的报文,是指通过其他网络设备接入部署本方案的设备的主机发送的,经过该部署设备的报文;对于这两类报文的区分需要依赖于对部署设备的配置,如果方案被部署在交换机上,需要明确地配置交换机的哪些端口是连接到直接相连的主机,哪些是连接的其他网络设备;如果方案被部署在无线接入点上,需要明确配置哪些链路层地址属于其他的无线接入设备;对于来自非直接相连主机的报文,本方案只判断该报文的源地址是否已经-波分配给本地主机,如果该地址已经;故本地主枳4吏用,将丢弃该报文,如果该地址没有被使用,将转发该报文;对于来自直接相连的主机的所有的报文,本方案首先区分是数据报文,或者是控制报文(DHCPv4,DHCPv6,NeighborDiscoveryProtocol,ARP);对于数据报文,本方案按照已经建立的过滤规则表进行严格的过滤,即,如果报文的IP源地址和发送报文的主机的端口或者链^各层地址与绑定关系表中的表项不一致,或者该绑定关系不存在,则扔掉该报文;对于控制报文,需要被检查,之后或者被用于建立新的绑定,或者被用于修改已经存在的绑定的状态,或者被直接转发;对于来自直接相连的主机的控制报文,必须经过源地址检查,再转发或(和)用于触发和修改绑定关系表和绑定状态表中的源地址的绑定关系;对于NeighborSolicitation报文,其源地址必须是已经绑定到该主机的地址,或者是全0的地址;对于NeighborAdvertisement报文,其源地址和目的地址必须是已经绑定到该主才几的地址;对于ARP报文,其源IP地址必须是已经绑定到该主机的地址,或者该报文是一个GratuitousARP报文;对于DHCP报文,其源地址必须是全0的地址,或者已经绑定到该主^/L的地址;不满足上述要求的报文将被直接丢弃,满足要求的报文将被用于建立或者^修改相应的绑定关系,并进行转发。如图2所示为根据本发明的一个实施例的绑定状态转移图。作为本发明的一个实施例,验证源地址的方法包括以下步骤首先区分来自直接相连的主机的报文和不直接相连的主机的报文。对于来自不直接相连的主机的报文,按照如下的步骤处理步骤1:检查报文源地址是否存在于绑定关系表中。如果存在,则丢弃该报文;如果不存在,则转发该报文。对于来自直接相连的主机的报文,本发明首先区分是数据报文还是控制报文。对于数据报文,按照如下的步骤进行处理步骤2:检查报文源地址和报文到达端口(若部署在交换机上)或报文中源链路层地址(若使用安全的链路层地址)的组合是否存在于绑定关系表中。若不存在,则丢弃该报文;若存在,则转发该报文。对于来自直接相连主机的控制报文,按照如下的步骤进行处理步骤3:本方法按照如下步骤处理来自直接相连主机的控制报文步骤3.1:本方法检查报文的源地址是否合法。对于所有的DHCP、ARP、NDP(NeighborDiscoveryProtocol,邻居发现协议)报文,其源地址必须是已经绑定到该主坤几的地址,或者是全0的地址(对于DHCP和NeighborSolicitation),或者才艮文是GratuitousARP才艮文。对于NeighborAdvertisement报文,同时需要检查其目标地址必须是已经绑定到该主机的地址。丢弃不合法的报文。步骤3.2:DHCPv4Request,DHCPv6Request,DHCPv6Confirm,GratuitousARP,DuplicateAddressDetectionNeighborSolicitation才艮文将用于触发绑定的建立。步骤3.3:DHCPv4Decline,DHCPv4Release,DHCPv6Decline,DHCPv6Release将用于解除已经存在的、由DHCP报文触发的绑定。步骤3.4:转发所有合法的报文。为了正确地建立、修改和删除绑定,本发明还需要嗅探到达本地的控制才艮文,具有如下的步骤步骤4:本方法嗅探到达本地的控制报文来建立、修改和删除绑定。步骤4.1:DHCPv4AcknowledgementDHCPv6Reply将用于绑定的建立。步骤4.2:针对本地已经绑定地址的ARP报文和NeighborSolicitation报文,将用于质询本地已经绑定的地址是否依然被使用。如果质询没有得到回复,绑定将被删除。步骤4.3:针对本地处于未完全绑定状态的地址的ARPResponse(ARP应答,地址解析协议回复)和NeighborAdvertisement,将^皮用于删除该绑定。为了明确说明如何建立、修改和删除绑定,对各种情况的步骤如下,如图1所示。步骤5:本步骤说明如何根据DHCPv4协议建立绑定,以及对该绑定的修改和删除步骤5.1:如果从直接相连的主机嗅探到DHCPv4R叫uest报文,部署设备将在绑定状态表中新建一个绑定,绑定的状态为DHCPv4开始状态。步骤5.2:如果有DHCPv4Acknowledgement才艮文发送到该主机,部署i殳备将在绑定中记录该地址,并记录下租约的时间。绑定的状态改变为DHCPv4激活状态。如果在一定时间内没有收到该报文,删除此绑定。步骤5.3:如果收到主机发送的针对该地址的GratuitousARP报文,将绑定的状态改变为DHCPv4探测状态。如果一段时间没有收到该报文,删除此绑定。步骤5.4:如果收到主机发送的针对该地址的DHCPv4Decline报文,删除此绑定。如果一4殳时间没有收到任何针对该GratuitousARP报文的ARPResponse,将绑定的状态改变为DHCPv4绑定状态。如果收到其他主机发送的针对该地址的ARPResponse,删除该绑定。步骤5.5:如果收到DHCP服务器发送的针对该地址的DHCPv4Renew/Rebind报文,将绑定的生存期更变为新的租约时间。步骤5.6:如果收到主机发送的DHCPv4Release报文,或者主机从部署设备断开,或者绑定的生存期到期,删除相应的绑定。步骤6:本步骤说明如何根据DHCPv6协议建立绑定,以及对该绑定的^ff改和删除步骤6.1:如果从直接相连的主机嗅探到DHCPv6Request/Confirm报文,部署设备将在绑定状态表中新建一个绑定,绑定的状态为DHCPv6开始状态。步骤6.2:如果有DHCPv6Reply报文发送到该主机,部署设备将在绑定中记录该地址,并记录下租约的时间。绑定的状态改变为DHCPv6激活状态。如果在一定时间内没有收到该报文,删除此绑定。步骤6.3:如果收到主冲几发送的针对该地址的DuplicatedAddressDetectionNeighborSolicitation报文,将绑定的状态改变为DHCPv6探测状态。如果一段时间没有收到该报文,删除此绑定。步骤6.4:如果收到主机发送的针对该地址的DHCPv6Decline报文,删除此绑定。如果一段时间没有收到任何针对该DuplicatedAddressDetectionNeighborSolicitation才艮文的NeighborAdvertisement才艮文,4夸绑定的状态改变为DHCPv6绑定状态。如果收到其他主机发送的针对该地址的NeighborAdvertisement,删除该绑定。步骤6.5:如果收到DHCP服务器发送的针对该地址的DHCPv6Renew/Rebind报文,将绑定的生存期更变为新的租约时间。步骤6.6:如果收到主机发送的DHCPv6Release报文,或者主机从部署设备断开,或者绑定的生存期到期,删除相应的绑定。步骤7:本步骤说明如何根据NeighborDiscoveryProtocol协议建立绑定,以及只于该绑定的^f'务改和删除步骤7.1:如果收到主机发送的针对某地址的DuplicatedAddressDetectionNeighborSolicitation报文,将绑定的状态改变为IPv6无状态开始状态。并在绑定中记录报文的目标地址。步骤7.2:如果一段时间没有收到任何针对该DuplicatedAddressDetectionNeighborSolicitation才艮文的NeighborAdvertisement才艮文,一寻绑定的状态改变为IPv6无状态绑定状态。如果收到其他主机发送的针对该地址的NeighborAdvertisement,删除该绑定。步骤7.3:如果收到对处于IPv6无状态绑定状态的地址的NeighborSolicitation报文,若主才几没有回复,删除该绑定,如果主才几有回复,将绑定的生命期重新设置为最大生命期。步骤7.4:如果主机从部署设备断开,删除相应的绑定。如果绑定的生命期到期,部署设备发送针对该地址的NeighborSolicitation报文,如果得到回复,将绑定的生命期重新设置为最大生命期,如果没有回复,删除该绑定。步骤8:本步骤说明如何根据ARP协议建立绑定,以及对该绑定的修改和删除步骤8.1:如果收到主机发送的针对某地址的GratuitousARP报文,将绑定的状态改变为IPv4手动开始状态。并在绑定中记录才艮文的目标地址。步骤8.2:如果一段时间没有收到任何针对该GratuitousARP报文的ARPResponse报文,将绑定的状态改变为IPv4手动绑定状态。如果收到其他主才几发送的针对该地址的ARPResponse,删除该绑定。步骤8.3:如果收到对处于IPv4手动绑定状态的地址的ARPRequest报文,若主机没有回复,删除该绑定,如果主机有回复,将绑定的生命期重新设置为最大生命期。步骤8.4:如果主机从部署设备断开,删除相应的绑定。如果绑定的生命期到期,部署设备发送针对该地址的ARPR叫uest报文,如果得到回复,将绑定的生命期重新设置为最大生命期,如果没有回复,删除该绑定。作为本发明的一个实施例,绑定关系使用两个数据结构绑定关系表和绑定状态表,如表1和表2所示。绑定关系表用于存储绑定本身,并用滤。表l:绑定关系表<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>图3示出了根据本发明的一个实施例的装置的示意图。其中根据本发明的实施例的交换才几有一些直接相连的主机和通过其他网络设备连接的主机。其中本发明的实施例的交换机包括判断模块,其用于判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;时,检查所述报文的源地址是否存在于绑定关系表中,如果存在,则丢弃所述报文;如果不存在,则转发所述报文;第二处理模块,其用于在所述报文为来自直接相连的主机的数据报文时,检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丟弃所述报文,若存在,则转发所述报文;第三处理模块,其用于在所述报文为来自直接相连的主机的控制报文时,检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丢弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;绑定操作模块,其用于根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。作为示例,绑定表为端口1,地址10.1.1.1端口1,地址2001::l端口1,地址2002::1绑定状态表为端口1,地址10丄l.l,DHCPv4绑定,生命期65535端口1,地址2001::1,DHCPv6绑定,生命期65535端口1,地址2002::1,IPv6无状态绑定,生命期650交换机会通过对控制报文的嗅探来建立起绑定关系,绑定关系存放在绑定关系表和绑定状态表中。在图中实例中,交换机已经通过嗅探建立起端口l上的地址绑定关系,端口1和主才几直4妄相连。通过DHCPv4分配的地址10.1.1.1,通过DHCPv6分配的地址2001::1,通过无状态方式获得的地址2002::1都^皮绑定在端口1上。在上述绑定关系建立之后,来自端口2,3的所有报文都不允许具有上述源地址。端口2与另一台主机直接相连,端口3连接的是其他网络设备。但是端口2上依然可以申请到其他地址并进行绑定。端口3尽管也会有申请地址的报文,但是设备不对端口3上的地址进行绑定。本发明所提出的验证源地址的方法及装置可以支持IPv4和IPv6,能达到主机粒度的,不修改主机和协议栈,不增加新的协议,满足所有的地址分配方式。相比于入口过滤方法,它具有细粒度和支持IPv6等特点。相比于IPSourceGuard(IP源地址保护),它能够支持IPv6。相比与其他方法,它的主要优点是不修改主机,且能满足所有的地址分配方式。本发明可以作为交换机、路由器以及无线接入点的扩展功能实现。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。权利要求1、一种验证源地址的方法,其特征在于,包括以下步骤网络接入设备判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;如果所述报文为来自于不直接相连的主机的报文,则检查所述报文的源地址是否存在于绑定关系表中,如果存在,则丢弃所述报文;如果不存在,则转发所述报文;如果所述报文为来自直接相连的主机的数据报文,则检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丢弃所述报文,若存在,则转发所述报文;如果所述报文为来自直接相连的主机的控制报文,则检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丢弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。2、根据权利要求1所述的验证源地址的方法,其特征在于,检查所述报文的源地址是否合法的步骤包括对于动态主才几配置协议DHCP、地址解析协议ARP、邻居发现协议NDP报文,如果其源地址是已经绑定到所述主机的地址,或者是全0的地址,则判断所述报文合法;如果所述报文是免费ARP报文,则判断所述报文合法;对于邻居宣告报文,如果其目标地址已经绑定到该主机的地址,则判断所述报文合法。3、根据权利要求1所述的验证源地址的方法,其特征在于,所述根据报文的类型对所述绑定关系表中的绑定关系进行操作包括才艮据动态主才几配置协议版本4DHCPv4应答才艮文、动态主才几配置协议版本6DHCPv6回复才艮文建立绑定关系;才艮据本地已经绑定地址的ARP报文和邻居恳求报文,质询本地已经绑定的地址是否依然被使用,如果质询没有得到回复,删除所述绑定关系;除所述绑定关系。4、根据权利要求1所述的验证源地址的方法,其特征在于,根据DHCPv4报文对所述绑定关系表中的绑定关系进行操作包括如果所述报文为从直接相连的主机嗅探到的DHCPv4请求报文,则在所述绑定状态表中新建一个绑定关系,所述绑定关系的状态设置为DHCPv4开始状态;如果所述报文为DHCPv4应答报文,则在所述绑定关系表中记录该地址,并记录下租约的时间,将所述绑定关系的状态设置为DHCPv4激活状态,如果在一定时间内没有收到该报文,则删除所述绑定关系;如果所述报文为主机发送的针对该地址的免费ARP报文,则将绑定关系的状态设置为DHCPv4探测状态,如果在一定时间内没有收到该报文,删除所述绑定关系;如果所述报文为主机发送的针对该地址的DHCPv4拒绝报文,则删除所述绑定关系,如果在一定时间没有收到针对所述免费ARP报文的ARP应答,将将所述绑定关系的状态设置为DHCPv4绑定状态,如果收到其他主机发送的针对该地址的ARP应答,删除所述绑定关系;定报文,则将绑定关系的生存期变更为新的租约时间;如果所述报文为主机发送的DHCPv4释放报文,或者主机从所述网络接入设备断开,或者绑定的生存期到期,删除相应的绑定关系。5、根据权利要求1所述的验证源地址的方法,其特征在于,根据DHCPv6报文对所述绑定关系表中的绑定关系进行操作包括如果所述报文为从直接相连的主机嗅探到的DHCPv6请求/确认报文,则在所述绑定状态表中新建一个绑定关系,将所述绑定关系的状态设置为DHCPv6开始状态;如果所述报文为发送到主机的DHCPv6回复报文,则所述网络接入设备在所述绑定关系表中记录该地址,并记录下租约的时间,将绑定关系的状态设置为DHCPv6激活状态,如果在一定时间内没有收到该报文,删除所述绑定关系;如果所述报文为主机发送的针对该地址的沖突地址检测的邻居恳求报文,将绑定关系的状态设置为DHCPv6探测状态,如果一段时间没有收到该报文,则删除所述绑定关系;如果收到主机发送的针对该地址的DHCPv6拒绝报文,则删除所述绑定关系,如果在一定时间没有收到针对所述冲突地址检测的邻居恳求报文的邻居宣告报文,则将所述绑定关系的状态设置为DHCPv6绑定状态,如果收到其他主机发送的针对该地址的邻居宣告报文,则删除所述绑定关系;定报文,则将所述绑定关系的生存期更变为新的租约时间;如果所述^艮文为主才几发送的DHCPv6释》文l艮文,或者主冲几从网络接入设备断开,或者绑定的生存期到期,则删除相应的绑定关系。6、根据权利要求1所述的验证源地址的方法,其特征在于,根据邻居发现协议报文对所述绑定关系表中的绑定关系进行操作包括如果收到主机发送的针对某地址的沖突地址检测的邻居恳求报文,则将绑定的状态设置为IPv6无状态开始状态,并在所述绑定关系表中记录所述才艮文的目标地址;如果一段时间没有收到针对所述沖突地址检测的邻居恳求报文的邻居宣告报文,则将所述绑定关系的状态设置为IPv6无状态绑定状态,如果收到其他主机发送的针对该地址的邻居宣告报文,则删除所述绑定关系;如果收到对处于IPv6无状态绑定状态的地址的邻居恳求报文,若主机没有回复,则删除所述绑定关系,如果主机回复,则将所述绑定关系的生命期设置为最大生命期;如果主机从网络接入设备断开,则删除相应的绑定关系,如果绑定关系的生命期到期,网络接入设备发送针对该地址的邻居恳求报文,如果得到回复,则将所述绑定关系的生命期重新设置为最大生命期,如果没有回复,则删除所述绑定关系。7、根据权利要求1所述的验证源地址的方法,其特征在于,根据ARP报文对所述绑定关系表中的绑定关系进行操作包括如果收到主机发送的针对某地址的免费ARP报文,则将绑定的状态设置为IPv4手动开始状态,并在所述绑定关系表中记录报文的目标地址;如果在一定时间内没有收到任何针对所述免费ARP报文的ARP应答报文,则将所述绑定关系的状态设置为IPv4手动绑定状态,如果收到其他主机发送的针对该地址的ARP应答报文,则删除所述绑定关系;如果收到对处于IPv4手动绑定状态的地址的ARP请求报文,若主机没有回复,则删除所述绑定关系,如果主机回复,则将所述绑定关系的生命期设置为最大生命期;如果主^L从网络4妾入"i殳备断开,则删除相应的绑定关系,如果绑定关系的生命期到期,则网络接入设备发送针对该地址的ARP请求才艮文,如果得到回复,则将所述绑定关系的生命期设置为最大生命期,如果没有回复,则删除所述绑定关系。8、一种验证源地址的装置,其特征在于,包括判断模块,其用于判断接收到的报文是否为来自不直接相连的主机的报文、来自直接相连的主机的数据报文或来自直接相连的主机的控制报文;时,检查所述报文的源地址是否存在于绑定关系表中,如果存在,则丟弃所述报文;如果不存在,则转发所述报文;时,检查报文源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在,则丢弃所述报文,若存在,则转发所述报文;第三处理模块,其用于在所述报文为来自直接相连的主机的控制报文时,检查所述报文的源地址是否合法,如果所述来自直接相连的主机的控制报文不合法,则丢弃所述报文;如果所述来自直接相连的主机的控制报文合法,则转发所述报文;绑定操作模块,其用于根据所述报文的类型对所述绑定关系表中的绑定关系进行操作。全文摘要本发明提出了一种验证源地址的方法及装置,该方法包括以下步骤网络接入设备判断接收到的报文的类型;如果报文为来自于不直接相连的主机的报文,则检查其源地址是否存在于绑定关系表中,如果存在,则丢弃报文;如果不存在,则转发报文;如果报文为来自直接相连的主机的数据报文,则检查其源地址和报文到达端口或报文中源链路层地址的组合是否存在于绑定关系表中,若不存在则丢弃,若存在则转发;如果报文为来自直接相连的主机的控制报文,则检查其源地址是否合法,如果不合法则丢弃;如果合法则转发;根据报文类型对绑定关系进行操作。本发明所提出的方法和装置是细粒度的,适用于IPv6和IPv4,且不必修改主机及现有的协议。文档编号H04L29/12GK101605070SQ200910088190公开日2009年12月16日申请日期2009年7月10日优先权日2009年7月10日发明者吴建平,广姚,军毕申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1