应用链路状态路由的二层协议中的地址对应关系发送方法

文档序号:7759290阅读:194来源:国知局
专利名称:应用链路状态路由的二层协议中的地址对应关系发送方法
技术领域
本发明涉及网络通信领域,尤其涉及一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送与MAC表更新方法和装置。
背景技术
多连结透明互连(Transparent Interconnect of Lots of Links, TRILL)是一种应用于路由桥设备(Routing Bridges或RBridges,RB)的协议。TRILL运行在数据链路层(Data Link Layer),即开放式通信系统互联参考模型(Open System Interconnection Reference Model)中的二层。它主要整合了网桥(bridges)和路由器(Routers)的优点, 将链路状态路由(Link State Routing)技术用在数据链路层,而且不会干扰上层路由器的工作。TRILL是为了替代生成树协议(Spanning Tree Protocol, STP)而诞生的。相对于 STP,TRILL提高了对单播和组播在多路(Multi-Pathing)方面的支持并减低了延迟。虽然生成树协议几十年来一直都在企业网络(Enterprise Network)中发挥了很大的作用,但它无法满足当前的某些需求,如虚拟机的实时迁移、带宽密集实时媒体应用以及通过网络中心桥接聚合网络结构。Rbridges运行中间系统到中间系统(Intermediate system tointermediate system, IS-IS)协议,将连接信息广播到所有Rbridges。因此每个Rbridges可以知道所有其他Rbridges及它们之间的连接关系。这样就给了 Rbridges足够的信息计算到任意网络节点的单播的最优路径,并可以为未知目的地址,组播或广播的帧计算分发树。终端地址分发信息(End Station Address Distribution Information, ESADI) 协议是TRILL的一个可选项,用于终端地址的学习以及将终端地址信息分发到远端,通过扩充IS-IS的类型-长度-值(type-length-value,TLV)来进行实现。TRILL报文的报文头如下所示+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+I V I R IMI Op-Length I Hop Count+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+I Egress RBridge Nickname | Ingress RBridge Nickname
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+I Options …+-+-+-+-+-+-+-+-+-+-+-+-单播报文发送时,第一个收到该报文的RB为入口 RB,负责进行TRILL封装。入口 RB根据目的介质访问控制(Media Access Control, MAC)地址查找出转发路径上的最后一个RB,称为出口 RB。入口 RB将出口 RB的昵称作为出口路由桥昵称(Egress Rbridge Nickname),把自己的昵称作为入口路由桥昵称Qngress RBridge Nickname)放在TRILL 头中。昵称(Nicknames)是一个动态指定的16位数,作为RBridges的IS-IS标识的缩写使用,以得到紧凑编码的效果。所有的RB之间会运行一个动态的nickname获取的协议。对于组播或广播报文来说,egress RB nickname是表示了一个分发树,该nickname是分发树的根。入口 RB负责选择使用哪颗树来进行组播或广播转发。中间的RB(非入口 RB和出口 RB),每收到一个报文都根据出口 RB来决定下一跳的RB的二层地址并把它作为外部二层报文头的目的地址,把自己的二层地址作为外部二层报文头的源地址,并递减跳计数(Hop Count)的值。尽管外部二层报文头每跳都会改变,但是原本的报文(即内层报文)的内容并不会变化。最短路径桥接(Shortest Path Bridging, SPB)提供和TRILL类似的功能。使用基于IS-IS的链路状态路由技术来扩散和通告拓扑以及逻辑网络的成员关系,在传统以太网架构上提供了逻辑的以太网。SPB应用MAC-in-MAC的封装方法,将客户以太网帧封装到运营商以太网帧中。由于MAC-in-MAC增加了业务实例标签(instance tag, I-Tag)字段,运营商利用这个字段,就可以分配服务质量(Quality of Service, QoS)参数和定义用户唯一标识符 (instance service identifier, I-SID)。因此,可以给每个客户流量分配唯一的I_Tag, 并且可以根据客户而非虚拟局域网(Virtual Local Area Network, VLAN)执行QoS。SPB通过2层IS-IS协议建立最短转发路径。边缘网桥是客户网络和服务提供商网络之间的接口,类似于TRILL中的RB设备。当以太报文从用户设备到达边缘网桥的时候,这类设备封装带有mac-in-mac帧头的客户以太网帧,并插入相应的目的地址对应的边缘网桥的骨干目的 MAC 地址(Backbone destination MAC address,B-DA),骨干 VLAN 标识(VLAN ID)和I-I^ag。骨干网中的交换机负责根据骨干虚拟局域网标识(Backbone VLAN identifier,B-VID)使用预定路由在网络中转发帧。采用SPB的骨干网内的交换机与常规以太网交换机的不同之处在于,它们不采用STP方法。虽然TRILL和SPB只用的封装格式不同,但是两者的用途以及方法类似,都是将链路状态路由应用在数据链路层的协议。地址解析协议(Address Resolution Protocol, ARP)实现通过网际协议 (Internet Protocol, IP)地址得知设备的物理地址的功能。在IP网络环境下,每个主机都分配了一个32位的IP地址,IP地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网络上传送,必须知道对方目的主机的物理地址,这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位的IP地址根据地址对应关系转换成为48位的以太网的地址,即MAC地址。这就需要在网络层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。由于TRILL和SPB的使用,克服了原来二层网络使用STP带来的问题,从而使得更大规模的二层网络,即大二层网络成为可能。但是大二层网络又会带来其他的一些新问题, 由于二层网络的扩大,网络节点数目会大大增加,如果仍然使用传统的ARP协议,那么每个主机的ARP请求都会在VLAN中进行广播,这样广播报文的流量将会占据较多的带宽。另外, 边缘的RB,即连接终端设备的RB,由于需要储存所有终端设备的MAC信息,所以MAC表有可能会十分巨大。

发明内容
本发明实施例的目的是提供一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送与MAC表更新方法和装置,用以解决应用链路状态路由的数据链路层协议中地址对应关系信息请求广播占用带宽多的问题。本发明实施例的目的是通过以下技术方案实现的一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送方法,其特征在于,包括网络节点接收本地链路上的地址对应关系通告报文;根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的介质访问控制MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述网络节点的设备标识的对应关系;当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息;通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应关系 fn息ο一种应用链路状态路由的数据链路层协议中的介质访问控制MAC表更新方法,其特征在于,包括关闭网络侧的MAC地址学习功能;接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识;根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系;当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息;接收本地链路上的地址对应关系信息请求报文;当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送装置,其特征在于,包括接收单元,用于网络节点接收本地链路上的地址对应关系通告报文;获取单元,用于根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的介质访问控制MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述网络节点的设备标识的对应关系;记录单元,用于当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息;发送单元,用于通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应关系信息。一种应用链路状态路由的数据链路层协议中的介质访问控制MAC表更新装置,其特征在于,所述更新装置网络侧的MAC地址学习功能处于关闭状态,所述更新装置包括第一接收单元,用于接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识;获取单元,用于根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系;增加单元,用于当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息;第二接收单元,用于接收本地链路上的地址对应关系信息请求报文;生成单元,用于当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。采用本发明实施例提供的技术方案,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。


图1为本发明一个实施例中应用链路状态路由的数据链路层协议中的地址对应关系信息发送方法流程图;图2为本发明一个实施例中应用链路状态路由的数据链路层协议中的MAC表更新方法流程图;图3为本发明又一个实施例中应用链路状态路由的数据链路层协议中的地址对应关系信息发送装置框图;图4为本发明一个实施例中应用链路状态路由的数据链路层协议中的MAC表更新装置框图;图5为本发明实施例的一个具体应用场景中的地址对应关系信息发送示意图。
具体实施例方式以下结合图1说明本发明一个实施例图1为本发明一个实施例中应用链路状态路由的数据链路层协议中的地址对应关系信息发送方法流程图。该方法包括102、网络节点接收本地链路上的地址对应关系通告报文。上述应用链路状态路由的数据链路层协议可以是TRILL,也可以是S1Ortest Path Bridging。在TRILL中,该网络节点可以是接收到地址对应关系通告报文的路由桥设备。在 SPB中,该网络节点可以是接收到地址对应关系通告报文的边缘网桥设备。在TRILL中,该网络节点即地址对应关系通告报文的入口 RB,也是发送该地址对应关系通告报文的终端设备今后将发送的同一个VLAN下其他报文的入口 RB,因此可以简称为入口 RB。在SPB中,该网络节点即地址对应关系通告报文的入口边缘网桥设备,也是发送该地址对应关系通告报文的终端设备今后将发送的同一个VLAN下其他报文的入口边缘网桥设备,因此可以简称为入口边缘网桥设备。因此,该网络节点可以统称为入口网络节点ο地址对应关系通告报文中携带有发送该地址对应关系通告报文的终端设备的MAC 地址和IP地址。在网际协议第六版(IPv6)中,地址对应关系通告报文可以是非请求邻居通告 (unsolicited ΝΑ)报文。unsolicited NA 报文的目标地址(Target Address)为发送该报文的终端设备的IP地址,该IP地址可以是本地IP地址或全局IP地址;目的IP地址为全网络节点组播地址(all-nodes multicast address);目标链路层地址(Target Link-Layer Address)为发送该报文的终端设备的链路层地址,链路层地址在以太网中即为MAC地址; 请求标志位(Solicited flag)置零。在网际协议第四版(IPv4)中,地址对应关系通告报文可以是ARP报文。具体的, 该ARP报文可以是免费ARP(gratuitous ARP)报文,可以是反向ARP(Reverse Address Resolution Protocol, RARP)报文,也可以是广播的ARP应答(ARP Reply)报文。免费ARP 报文的报文类型是请求,发送方地址为发送该报文的终端设备的IP地址,发送方MAC地址为发送该报文的终端设备的MAC地址,目标IP地址为发送该报文的终端设备的IP地址,目标MAC地址为广播地址。广播的ARP R印Iy报文的格式基本相同,但报文类型是应答,目标 IP地址为广播地址。RARP报文中的报文类型是请求,发送方IP地址为缺省值,例如为全零, 因此第一 ARP信息中的IP地址也为缺省值。网络节点接收地址对应关系通告报文时,按照通常方式进行MAC地址学习。104、根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的IP地址与所述网络节点的设备标识的对应关系。第一地址对应关系信息即发送地址对应关系通告报文的终端设备的MAC地址、IP 地址与该终端设备的入口网络节点的设备标识的对应关系。该终端设备的入口网络节点的设备标识就是接收到该地址对应关系通告报文的网络节点的设备标识。在IPv6中,第一地址对应关系信息包括第一邻居缓存信息。在IPv4中,第一地址对应关系信息包括第一 ARP信息。在TRILL中,上述设备标识可以使用路由桥设备的昵称,也可以直接用路由桥设备的IS-IS标识。在SPB中,该设备标识可以是边缘网桥设备的B-MAC。当网络节点记录自身的设备标识时,可以在地址对应关系信息表中用特殊的标识,例如“本地”(Local),代替网络节点记录自身的实际设备标识。当然,网络节点在发送报文时仍使用自身的实际设备标识。106、当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息。地址对应关系信息表为网络节点中用于保存地址对应关系信息的表。在IPv6中, 地址对应关系信息表为邻居缓存(Neighbor Cache)信息表。在IPv4中,地址对应关系信息表为ARP信息表。由于第一地址对应关系信息除了 MAC地址和IP地址之外还包括入口网络节点的设备标识,因此,与通常的邻居缓存和ARP表相比,邻居缓存信息表和ARP信息表的每个表项都多了设备标识的内容。本领域普通技术人员可以理解,上述地址对应关系信息表可以是一张单独的表,也可以由多个单独的表组合而成。上述第一地址对应关系信息不在地址对应关系信息表中,是指第一地址对应关系信息中MAC地址、IP地址或设备标识三者当中至少一个不在地址对应关系信息表中,即三者当中至少一个与地址对应关系信息表的所有表项都不同。在IPv6中,当所述第一邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,入口网络节点在所述邻居缓存信息表中增加所述第一邻居缓存信息。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息中的IP和MAC地址相同,并且所述第一邻居缓存信息中的设备标识与所述已有邻居缓存信息中的设备标识不同时,可以认为是原先以其他设备为入口网络节点的终端设备更换了接入位置即终端设备发生了迁移。此时入口网络节点用第一邻居缓存信息更新该已有邻居缓存信息。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测 (duplicate address detection,DAD),所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当第一地址对应关系信息中的IP地址不在地址对应关系信息表中,即当第一 ARP信息中的IP地址与ARP信息表中任意一条ARP信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,入口网络节点在ARP信息表中增加第一 ARP信息。当第一 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与该已有ARP信息中的MAC地址相同,并且第一 ARP信息中的设备标识,即入口网络节点自身的设备标识与该已有ARP信息中的设备标识不同时,可以认为是原先以其他设备为入口网络节点的终端设备更换了接入位置即终端设备发生了迁移。此时入口网络节点用第一 ARP信息更新该已有ARP信息。由于入口网络节点已进行过MAC地址学习,此时不需要检查或更新MAC表。当终端设备是虚拟机时,管理程序(Hypervisor)层只是负责虚拟物理设备的作用,其中虚拟网卡以及MAC生成是其管理范畴,而IP地址是由客户操作系统(Guest OS)管理和分配的,与hypervisor层无关。如果要发出带IP信息的ARP报文,就需要Guest OS的协助,但是这就需要针对不同的操作系统类型开发相应的工具。为了简化虚拟机复杂度,虚拟机迁移后通常会利用RARP报文通告迁移,此时,RARP报文中的发送方IP地址为缺省值, 例如为全零,因此第一 ARP信息中的IP地址也为缺省值。该RARP报文仅用于通告迁移,不需要应答。因此,当所述第一 ARP信息中的IP地址为缺省值,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,并且所述第一 ARP信息中的设备标识与所述已有 ARP信息中的设备标识不同时,可以认为是发生了虚拟机迁移。此时入口网络节点用所述第一 ARP信息中的设备标识更新所述已有ARP信息中的设备标识,并用所述已有ARP信息中的IP地址替换所述第一 ARP信息中的IP地址。此时,之后通过控制平面的报文发送的第一 ARP信息或者在TRILL中,TRILL封装单播发送的ARP报文,或者在SPB中,按照MAC-in-MAC 封装单播发送的ARP报文中的IP地址都不是缺省值,而是第一 ARP信息中的IP地址。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,并且所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同时,可以认为是发生了地址冲突或者终端设备更换了网卡而仍使用原来的IP地址接入。此时可以有两种做法,一是入口网络节点用第一 ARP信息更新已有ARP信息。可选的,还可以封装ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至上述已有ARP信息中的设备标识对应的网络节点。上述封装报文的方式可以是TRILL封装或 MAC-in-MAC封装。二是,在第一 ARP信息中的设备标识与已有ARP信息中的设备标识不同的情况下,先不更新已有ARP信息,而是封装ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至上述已有ARP信息中的设备标识对应的网络节点。该网络节点,即出口网络节点,解封装得到ARP报文后在与封装后的ARP报文对应的本地链路上广播该ARP报文。与封装后的ARP报文对应的本地链路是指,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,出口网络节点在本地链路的该VLAN上广播该ARP报文。 如果是地址冲突造成了上述情况,与发送该ARP报文的终端设备有地址冲突的终端设备会回应ARP Reply报文,否则说明是终端设备更换了网卡而仍使用原来的IP地址接入的情况或有地址冲突的终端设备已下线。因此,如果预设时间内未收到与所述第一 ARP信息中的 IP地址相同的ARP响应报文,即可用第一 ARP信息更新已有ARP信息。在第一 ARP信息中的设备标识与已有ARP信息中的设备标识相同的情况下,在该ARP报文对应的本地链路广播该ARP报文,即在接收到该ARP报文的VLAN上广播该ARP报文,如果预设时间内未收到与所述第一 ARP信息中的IP地址相同的ARP响应报文,则用所述第一 ARP信息更新所述已有ARP信息。当第一地址对应关系信息在地址对应关系信息表中时,可能是收到了重复的ARP 报文,可以只在对应的本地链路广播该ARP报文,不需要在网络侧广播该ARP报文,也不需要继续进行108。108、通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应
关系信息。
由于控制平面的报文不会触发网络节点进行MAC地址学习,所以不会增加边缘网络节点的MAC表。这里的控制平面的报文是指基于链路状态路由的数据链路层通告报文。 在TRILL中,这里的控制平面的报文可以采用ESADI报文,也可以采用其他可以扩散地址对应关系信息的控制平面的报文。在SPB中,控制平面的报文可以采用基于IS-IS TLV定义的格式,该信息至少包括第一地址对应关系信息中的IP地址和MAC地址信息。当一个网络节点通过控制平面的报文接收到第一地址对应关系信息后,在其地址对应关系信息表中记录该第一地址对应关系信息。由于当第一地址对应关系信息在入口网络节点的地址对应关系信息表中时,入口网络节点不会扩散该第一地址对应关系信息,因此该第一地址对应关系信息必然不在通过控制平面的报文接收到第一地址对应关系信息的网络节点的地址对应关系信息表中。在IPv6中,当所述第一邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,在所述邻居缓存信息表中增加所述第一邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点只需用所述第一邻居缓存信息更新所述已有邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点需要用所述第一邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当所述第一 ARP信息中的IP地址与所述ARP信息表中任意一条ARP 信息中的IP地址都不同时,通过控制平面的报文接收到第一地址对应关系信息的网络节点在所述ARP信息表中增加第一 ARP信息。当第一 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址相同,已有ARP信息中的设备标识与通过控制平面的报文接收到第一地址对应关系信息的网络节点的设备标识不同, 可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于 MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点只需用第一 ARP信息更新所述已有ARP信息。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP 信息中的设备标识与通过控制平面的报文接收到第一地址对应关系信息的网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。 并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时, 由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点需要用第一 ARP信息更新所述已有ARP信息和所述已有MAC表项。此时不需要在本地通告该终端设备已进行了迁移,因为对于本地的终端设备来说,无论非本地的终端设备是否进行了迁移,与其通信都只须将报文发送至入口网络节点,后续处理都交给入口网络节点完成,本地的终端设备关于进行了迁移的非本地终端设备的信息,如IP地址、MAC地址、发送端口等都没有改变。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用第一 ARP信息更新所述已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此通过控制平面的报文接收到第一地址对应关系信息的网络节点只需要更新ARP信息表即可。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。通过控制平面的报文接收到第一地址对应关系信息的网络节点用第一 ARP信息更新所述已有ARP信息和所述已有MAC表项,并生成第一信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第一 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点可以生成出和入口网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,控制平面的报文应当含有该VLAN的信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点在本地链路的该VLAN上广播生成出的ARP报文。对于106中采用封装ARP报文单播发送至已有ARP信息中的设备标识对应的网络节点的方案,上述方案已经足够。然而,如果不采用入口网络节点封装ARP报文单播发送至已有ARP信息中的设备标识对应的网络节点的方案,通过控制平面的报文接收到第一地址对应关系信息的网络节点还需要做以下判断和动作当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在该网络节点的本地链路上。因此网络节点需要生成第一 ARP信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第一 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点可以生成出和入口网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,控制平面的报文应当含有该VLAN的信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点在本地链路的该VLAN上广播生成出的ARP报文。如果网络节点接收到了其他网络节点通过控制平面的报文发送的第二地址对应关系信息,在其地址对应关系信息表中记录该第二地址对应关系信息。第二地址对应关系信息可以是上述其他网络节点根据其从本地链路上接收到的地址对应关系通告报文获取的。在IPv6中,当所述第二邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,在所述邻居缓存信息表中增加所述第二邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第二地址对应关系信息的网络节点只需用所述第二邻居缓存信息更新所述已有邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第二地址对应关系信息的网络节点需要用所述第二邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当第二 ARP信息中的IP地址与所述ARP信息表中任意一条ARP信息中的IP地址都不同时,网络节点在所述ARP信息表中增加第二 ARP信息。当第二 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与已有ARP信息中的MAC地址相同,所述已有ARP信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。网络节点只需用第二 ARP信息更新所述已有ARP fn息ο当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。网络节点需要用第二 ARP信息更新所述已有ARP信息和所述已有MAC表项。此时不需要在本地通告该终端设备已进行了迁移,因为对于本地的终端设备来说,无论非本地的终端设备是否进行了迁移,与其通信都只须将报文发送至入口网络节点,后续处理都交给入口网络节点完成,本地的终端设备关于进行了迁移的非本地终端设备的信息,如IP地址、MAC地址、发送端口等都没有改变。当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用第二 ARP信息更新所述已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此网络节点只需要更新ARP信息表即可。当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。网络节点用第二 ARP信息更新所述已有ARP信息和所述已有MAC表项,并生成第二信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第二 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,网络节点可以生成出和其他网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当 ARP报文是终端设备从某个VLAN发送到其他网络节点时,控制平面的报文应当含有该VLAN 的信息,网络节点在本地链路的该VLAN上广播生成出的ARP报文。对于采用封装ARP报文单播发送至已有ARP信息中的设备标识对应的网络节点的方案,上述方案已经足够。然而,如果不采用其他网络节点封装ARP报文单播发送至已有 ARP信息中的设备标识对应的网络节点的方案,网络节点还需要做以下判断和动作当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在网络节点的本地链路上,或者终端设备迁移前的入口网络节点是本网络节点。因此网络节点需要生成第二 ARP信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第二 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,网络节点可以生成出和其他网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到其他网络节点时,控制平面的报文应当含有该VLAN的信息,网络节点在本地链路的该VLAN上广播生成出的ARP报文。由于控制平面的报文不会触发MAC地址学习,因此网络节点需要在合适的时候在 MAC表中增加相应表项以保证报文正确转发。网络节点在接收到本地链路上的地址对应关系信息请求报文时,如果地址对应关系信息请求报文中的目标IP地址与地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,则不需要向网络侧转发该地址对应关系信息请求报文。接收到地址对应关系信息请求报文的网络节点生成已有地址对应关系信息对应的地址对应关系信息响应报文,向发送地址对应关系信息请求报文的终端设备发送该响应报文。由于终端设备发送地址对应关系信息请求报文意味着该终端设备很可能接下来就需要与被请求的终端设备通信,因此网络节点此时即根据已有地址对应关系信息更新MAC表。在应用链路状态路由的数据链路层协议中,网络节点的MAC表对应于网络侧的表项保存MAC地址和网络节点的设备标识的对应关系,因此只需要将地址对应关系信息表项中相应内容增加到MAC表即可。在IPv6中,地址对应关系信息请求报文包括邻居请求(Neighbor Solicitation, NS)报文,地址对应关系信息响应报文包括邻居通告(Neighbor Advertisement,ΝΑ)报文。 NS报文的源地址为发送该NS报文的终端设备的IP地址,目的地址为被请求地址对应关系信息的终端设备的被请求网络节点组播地址(solicited-node multicast address),目标地址为被请求地址对应关系信息的终端设备的IP地址。NA报文的源地址为邻居缓存信息表中已有邻居缓存信息的IP地址,目的地址为对应的NS报文的源地址,目标地址为对应的 NS报文的目标地址,目标链路层地址为邻居缓存信息表中已有邻居缓存信息的MAC地址, 请求标志位置一。在IPv4中,地址对应关系信息请求报文包括ARP请求(ARP Request)报文,地址对应关系信息响应报文包括ARP应答(ARP Reply)报文。ARP Request报文的报文类型是请求,发送方地址为发送该ARP Request报文的终端设备的IP地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。ARP R印Iy报文的报文类型是应答,发送方地址为 ARP信息表中已有ARP信息的IP地址,目标地址为对应的ARP Request报文的目标地址,目标链路层地址为ARP信息表中已有ARP信息的MAC地址。ARP信息表或邻居缓存信息表通常由中央处理器(Central Processing Unit, CPU)控制和访问,存储在内存中,访问和查找速度较慢,对规格也没有明确限制。而MAC 表通常由特殊应用集成电路(Application-specific integrated circuit,ASIC)、元件可编程逻辑门阵列(FPGA,Field Programmable Gate Array)或网络处理器(Network processor, NP)控制和访问,存储在内容可寻址存储器(Content-addressable memory, CAM)中,访问和查找速度快,但是成本高、功耗大,对规格也有一定限制。由于控制平面的报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表, 减小了设备复杂度,降低了对MAC表规格的要求。可选的,上述方法还可以包括网络节点对本地链路上的终端设备进行老化探测。 当需要老化终端设备的地址对应关系信息时,网络节点老化该地址对应关系信息,并可以进一步删除MAC表中相应的表项。网络节点通过控制平面的报文向其他网络节点发送终端设备的地址对应关系信息,接收到该控制平面的报文的其它网络节点根据控制平面报文的指示老化该终端设备的地址对应关系信息,并可以进一步删除MAC表中相应的表项。网络节点都只对自己本地链路上的终端设备进行老化探测,并且不主动老化已保存的地址对应关系信息。举例来说,可以将通过控制平面的报文获得的地址对应关系信息设置为具有较高的信任值(confidence level),如254。只有当探测到本地链路上的终端设备需要老化时,或者接收到其他网络节点通过控制平面的报文发送的老化指示时才老化已保存的地址
对应关系信息。采用本发明实施例提供的技术方案,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。另外,由于控制平面的报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,减小了边缘网络节点的MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表,减小了设备复杂度,降低了对MAC表规格的要求。以下结合图2说明本发明另一个实施例图2为本发明一个实施例中应用链路状态路由的数据链路层协议中的MAC表更新方法流程图。该方法包括202、网络节点关闭网络侧的MAC地址学习功能。通常网络节点在接收到网络侧的报文时会进行MAC地址学习,即用报文的源MAC 地址和入口网络节点的设备标识更新MAC表。本实施例中,关闭该网络侧的MAC地址学习功能,而不改变本地链路侧的MAC地址学习功能。204、接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识。在IPv6中,地址对应关系通告报文可以是unsolicited NA报文。unsolicited NA 报文的目标地址为发送该报文的终端设备的IP地址,该IP地址可以是本地IP地址或全局 IP地址;目的IP地址为全网络节点组播地址;目标链路层地址为发送该报文的终端设备的链路层地址,链路层地址在以太网中即为MAC地址;请求标志位置零。在IPv4中,地址对应关系通告报文可以是ARP报文。具体的,该ARP报文可以使免费ARP报文,也可以是广播的ARP R印Iy报文。当发生虚拟机迁移时,虚拟机迁移后会利用RARP报文通告迁移,此时,在本地链路上收到该RARP报文的网络节点根据自身的地址对应关系信息表,将该RARP报文转换为地址对应关系通告报文,如免费ARP报文或广播的 ARP Reply报文,封装该地址对应关系通告报文后向网络侧发送,封装信息中包含封装该地址对应关系通告报文的网络节点的设备标识。免费ARP报文的报文类型是请求,发送方IP 地址为发送该报文的终端设备的IP地址,发送方MAC地址为发送该报文的终端设备的MAC 地址,目标IP地址为发送该报文的终端设备的IP地址,目标MAC地址为广播地址。广播的 ARP R印Iy报文的格式基本相同,但报文类型是应答,目标IP地址为广播地址。RARP报文中的报文类型是请求,发送方IP地址为缺省值,例如为全零,因此第一 ARP信息中的IP地址也为缺省值。入口网络节点在接收到地址对应关系通告报文后,封装该地址对应关系通告报文,封装信息中包含其自身的设备标识,并广播该地址对应关系通告报文。因此其他网络节点可以接收到该封装信息中封装所述地址对应关系通告报文的网络节点的设备标识的地址对应关系通告报文。上述封装报文的方式可以是TRILL封装或MAC-in-MAC封装。206、根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系。第一地址对应关系信息即发送地址对应关系通告报文的终端设备的MAC地址、IP 地址与该终端设备的入口网络节点的设备标识的对应关系。在TRILL中,该终端设备的入口网络节点的设备标识可以从封装后的地址对应关系通告报文的报文头的入口路由桥昵称域获得。在SPB中,该终端设备的入口网络节点的设备标识即B-MAC,可以从封装后的地址对应关系通告报文的骨干源MAC地址(Backbone source MAC address, S-DA)字段获得。 在IPv6中,第一地址对应关系信息包括第一邻居缓存信息。在IPv4中,第一地址对应关系信息包括第一 ARP信息。208、当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息。地址对应关系信息表为网络节点中用于保存地址对应关系信息的表。在IPv6中, 地址对应关系信息表为邻居缓存信息表。在IPv4中,地址对应关系信息表为ARP信息表。 由于第一地址对应关系信息除了 MAC地址和IP地址之外还包括入口网络节点的设备标识, 因此,与通常的邻居缓存和ARP表相比,邻居缓存信息表和ARP信息表的每个表项都多了设备标识的内容。在IPv6中,当第一邻居缓存信息中的IP地址与邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。 此时,接收到封装后的地址对应关系通告报文的网络节点在邻居缓存信息表中增加所述第
一邻居缓存信息。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。此时接收到封装后的地址对应关系通告报文的网络节点用所述第一邻居缓存信息更新所述已有邻居缓存信息。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。此时接收到封装后的地址对应关系通告报文的网络节点用所述第一邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当第一地址对应关系信息中的IP地址不在地址对应关系信息表中,即当第一 ARP信息中的IP地址与ARP信息表中任意一条ARP信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,接收到封装后的地址对应关系通告报文的网络节点在ARP信息表中增加第一 ARP信息。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,已有ARP 信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。此时接收到封装后的地址对应关系通告报文的网络节点用第一 ARP信息更新所述已有ARP信息。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与 MAC表中的一条已有MAC表项的MAC地址相同时,由于MAC表中有该终端设备的MAC地址, 说明已有本地的终端设备与该终端设备进行过通信。此时接收到封装后的地址对应关系通告报文的网络节点用所述第一 ARP信息更新所述已有ARP信息和所述已有MAC表项。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址不同,并且已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用第一 ARP信息更新已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此网络节点只需要更新ARP信息表即可。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,所述第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址不同,并且已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。网络节点用第一 ARP信息更新已有ARP信息和已有MAC表项,在与封装后的ARP报文对应的本地链路上广播解封装后的ARP报文。与封装后的ARP报文对应的本地链路是指,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,接收到封装后的地址对应关系通告报文的网络节点在本地链路的该VLAN上广播解封装后的该ARP报文。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在该网络节点的本地链路上,或者终端设备迁移前的入口网络节点是本网络节点。此时接收到封装后的地址对应关系通告报文的网络节点在与所述封装后的ARP报文对应的本地链路上广播解封装后的所述ARP报文。210、接收本地链路上的地址对应关系信息请求报文。在IPv6中,地址对应关系信息请求报文包括邻居请求NS报文,NS报文的源地址为发送该NS报文的终端设备的IP地址,目的地址为被请求地址对应关系信息的终端设备的被请求网络节点组播地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。
在IPv4中,地址对应关系信息请求报文包括ARP Request报文,ARP Request报文发送方地址为发送该ARP Request报文的终端设备的IP地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。212、当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。网络节点在接收到本地链路上的地址对应关系信息请求报文时,如果地址对应关系信息请求报文中的目标地址与地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,则不需要向网络侧转发该地址对应关系信息请求报文,生成已有地址对应关系信息对应的地址对应关系信息响应报文,向发送请求报文的终端设备发送该响应报文。在IPv6中,地址对应关系信息响应报文包括NA报文,NA报文的源地址为邻居缓存信息表中已有邻居缓存信息的IP地址,目的地址为对应的NS报文的源地址,目标地址为对应的NS报文的目标地址,目标链路层地址为邻居缓存信息表中已有邻居缓存信息的MAC 地址,请求标志位置一。在IPv4中,地址对应关系信息响应报文包括ARP Reply报文,ARPR印Iy报文的发送方地址为ARP信息表中已有ARP信息的IP地址,目标地址为对应的ARP Request报文的目标地址,目标链路层地址为ARP信息表中已有ARP信息的MAC地址。由于边缘网络节点关闭了网络侧的MAC地址学习功能,因此需要在合适的时候在 MAC表中增加相应表项以保证报文正确转发。因为终端设备发送地址对应关系信息请求报文意味着该终端设备很可能接下来就需要与被请求的终端设备通信,因此网络节点此时即根据已有地址对应关系信息更新MAC表。在应用链路状态路由的数据链路层协议中,网络节点的MAC表对应于网络侧的表项保存MAC地址和网络节点的设备标识的对应关系,因此只需要将地址对应关系信息表项中相应内容增加到MAC表即可。在某些情况下,终端设备可能不发送地址对应关系信息相关消息,直接进行数据报文的通信。此时,为了避免关闭MAC地址学习造成MAC表无法更新,上述方法还可以包括以下步骤。接收到数据报文的网络节点在MAC表中找不到相应的表项时,如果地址对应关系信息表存在相应表项,则将该表项中相应内容增加到MAC表。接收到数据报文的网络节点在MAC表中找不到相应的表项时,如果地址对应关系信息表也不存在相应表项,则生成地址对应关系信息请求报文,封装后广播该地址对应关系信息请求报文。其他网络节点接收到该报文后在相应的本地链路广播该地址对应关系信息请求报文。被请求的终端设备发送地址对应关系信息响应报文。被请求的终端设备的入口网络节点将该报文封装后,向接收到数据报文的网络节点发送。接收到数据报文的网络节点根据该地址对应关系信息响应报文更新地址对应关系信息表和MAC表。同时,被请求的终端设备的入口网络节点根据地址对应关系信息响应报文生成相应的地址对应关系信息通告报文,将该报文封装后广播该报文,接收到该广播报文的网络节点按照上述实施例所述方法继续处理。ARP信息表或邻居缓存信息表通常由CPU控制和访问,存储在内存中,访问和查找速度较慢,对规格也没有明确限制。而MAC表通常由ASIC、FPGA或NP控制和访问,存储在内容可寻址存储器CAM中,访问和查找速度快,但是成本高、功耗大,对规格也有一定限制。由于关闭了网络侧的MAC地址学习功能,网络侧的地址对应关系通告报文、地址对应关系请求报文或地址对应关系响应报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表,减小了设备复杂度,降低了对MAC表规格的要求。另外,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。以下结合图3说明本发明又一个实施例图3为本发明又一个实施例中应用链路状态路由的数据链路层协议中的地址对应关系信息发送装置框图。该发送装置通常由网络中的网络节点实现。上述应用链路状态路由的数据链路层协议可以是TRILL,也可以是Shortest Path Bridging。在TRILL中,该网络节点通常为路由桥设备。在SPB中,该网络节点通常为边缘网桥设备。该发送装置包括接收单元302,用于接收本地链路上的地址对应关系通告报文。在TRILL中,该网络节点可以是接收到地址对应关系通告报文的路由桥设备。在 SPB中,该网络节点可以是接收到地址对应关系通告报文的边缘网桥设备。在TRILL中,该网络节点即地址对应关系通告报文的入口 RB,也是发送该地址对应关系通告报文的终端设备今后将发送的同一个VLAN下其他报文的入口 RB,因此可以简称为入口 RB。在SPB中,该网络节点即地址对应关系通告报文的入口边缘网桥设备,也是发送该地址对应关系通告报文的终端设备今后将发送的同一个VLAN下其他报文的入口边缘网桥设备,因此可以简称为入口边缘网桥设备。因此,该网络节点可以统称为入口网络节点ο地址对应关系通告报文中携带有发送该地址对应关系通告报文的终端设备的MAC 地址和IP地址。在IPv6中,地址对应关系通告报文可以是unsolicited NA报文。unsolicited NA报文的Target Address为发送该报文的终端设备的IP地址,该IP地址可以是本地IP
IP iikJah ;巨的 IP i&tlt为 all-nodes multicast address ;Target Link-Layer Address为发送该报文的终端设备的链路层地址,链路层地址在以太网中即为MAC地址; Solicited flag 置零。在网IPv4中,地址对应关系通告报文可以是ARP报文。具体的,该ARP报文可以是免费ARP报文,可以是RARP报文,也可以是广播的ARP Reply报文。免费ARP报文的报文类型是请求,发送方地址为发送该报文的终端设备的IP地址,发送方MAC地址为发送该报文的终端设备的MAC地址,目标IP地址为发送该报文的终端设备的IP地址,目标MAC地址为广播地址。广播的ARP R印Iy报文的格式基本相同,但报文类型是应答,目标IP地址为广播地址。RARP报文中的报文类型是请求,发送方IP地址为缺省值,例如为全零,因此第一 ARP信息中的IP地址也为缺省值。网络节点接收地址对应关系通告报文时,按照通常方式进行MAC地址学习。获取单元304,用于根据所述地址对应关系通告报文获取第一地址对应关系信息, 所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、 发送所述地址对应关系通告报文的终端设备的IP地址与所述网络节点的设备标识的对应关系。第一地址对应关系信息即发送地址对应关系通告报文的终端设备的MAC地址、IP 地址与该终端设备的入口网络节点的设备标识的对应关系。该终端设备的入口网络节点的设备标识就是接收到该地址对应关系通告报文的网络节点的设备标识。在IPv6中,第一地址对应关系信息包括第一邻居缓存信息。在IPv4中,第一地址对应关系信息包括第一 ARP fn息ο在TRILL中,上述设备标识可以使用路由桥设备的昵称,也可以直接用路由桥设备的IS-IS标识。在SPB中,该设备标识可以是边缘网桥设备的B-MAC。当网络节点记录自身的设备标识时,可以在地址对应关系信息表中用特殊的标识,例如“本地”(Local),代替网络节点记录自身的实际设备标识。当然,网络节点在发送报文时仍使用自身的实际设备标识。记录单元306,用于当所述第一地址对应关系信息不在地址对应关系信息表中时, 在所述地址对应关系信息表中记录所述第一地址对应关系信息。地址对应关系信息表为网络节点中用于保存地址对应关系信息的表。在IPv6中, 地址对应关系信息表为邻居缓存(Neighbor Cache)信息表。在IPv4中,地址对应关系信息表为ARP信息表。由于第一地址对应关系信息除了 MAC地址和IP地址之外还包括入口网络节点的设备标识,因此,与通常的邻居缓存和ARP表相比,邻居缓存信息表和ARP信息表的每个表项都多了设备标识的内容。本领域普通技术人员可以理解,上述地址对应关系信息表可以是一张单独的表,也可以由多个单独的表组合而成。上述第一地址对应关系信息不在地址对应关系信息表中,是指第一地址对应关系信息中MAC地址、IP地址或设备标识三者当中至少一个不在地址对应关系信息表中,即三者当中至少一个与地址对应关系信息表的所有表项都不同。在IPv6中,当所述第一邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,记录单元306在所述邻居缓存信息表中增加所述第一邻居缓存信息。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息中的IP和MAC地址相同,并且所述第一邻居缓存信息中的设备标识与所述已有邻居缓存信息中的设备标识不同时,可以认为是原先以其他设备为入口网络节点的终端设备更换了接入位置即终端设备发生了迁移。此时记录单元306用第一邻居缓存信息更新该已有邻居缓存信息。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测 (duplicate address detection,DAD),所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当第一地址对应关系信息中的IP地址不在地址对应关系信息表中,即当第一 ARP信息中的IP地址与ARP信息表中任意一条ARP信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,记录单元306在ARP信息表中增加第一 ARP信息。当第一 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与该已有ARP信息中的MAC地址相同,并且第一 ARP信息中的设备标识,即入口网络节点自身的设备标识与该已有ARP信息中的设备标识不同时,可以认为是原先以其他设备为入口网络节点的终端设备更换了接入位置即终端设备发生了迁移。此时记录单元306用第一 ARP信息更新该已有ARP信息。由于入口网络节点已进行过MAC地址学习,此时不需要检查或更新MAC表。当终端设备是虚拟机时,管理程序(Hypervisor)层只是负责虚拟物理设备的作用,其中虚拟网卡以及MAC生成是其管理范畴,而IP地址是由客户操作系统(Guest OS)管理和分配的,与hypervisor层无关。如果要发出带IP信息的ARP报文,就需要Guest OS的协助,但是这就需要针对不同的操作系统类型开发相应的工具。为了简化虚拟机复杂度,虚拟机迁移后通常会利用RARP报文通告迁移,此时,RARP报文中的发送方IP地址为缺省值, 例如为全零,因此第一 ARP信息中的IP地址也为缺省值。该RARP报文仅用于通告迁移,不需要应答。因此,当所述第一 ARP信息中的IP地址为缺省值,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,并且所述第一 ARP信息中的设备标识与所述已有 ARP信息中的设备标识不同时,可以认为是发生了虚拟机迁移。此时记录单元306用所述第一 ARP信息中的设备标识更新所述已有ARP信息中的设备标识,并用所述已有ARP信息中的IP地址替换所述第一 ARP信息中的IP地址。此时,之后通过控制平面的报文发送的第一 ARP信息或者在TRILL中,TRILL封装单播发送的ARP报文,或者在SPB中,按照MAC-in-MAC 封装单播发送的ARP报文中的IP地址都不是缺省值,而是第一 ARP信息中的IP地址。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,并且所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同时,可以认为是发生了地址冲突或者终端设备更换了网卡而仍使用原来的IP地址接入。此时可以有两种做法,一是记录单元306用第一 ARP信息更新已有ARP信息。可选的,还可以封装ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至上述已有ARP信息中的设备标识对应的网络节点。上述封装报文的方式可以是TRILL封装或 MAC-in-MAC封装。二是,记录单元306在第一 ARP信息中的设备标识与已有ARP信息中的设备标识不同的情况下,先不更新已有ARP信息,而是封装ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至上述已有ARP信息中的设备标识对应的网络节点。该网络节点,即出口网络节点,解封装得到ARP报文后在与封装后的ARP报文对应的本地链路上广播该ARP报文。与封装后的ARP报文对应的本地链路是指,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,出口网络节点在本地链路的该VLAN上广播该ARP报文。如果是地址冲突造成了上述情况,与发送该ARP报文的终端设备有地址冲突的终端设备会回应ARP Reply报文,否则说明是终端设备更换了网卡而仍使用原来的IP地址接入的情况或有地址冲突的终端设备已下线。因此,如果预设时间内未收到与所述第一 ARP信息中的IP地址相同的ARP响应报文,记录单元306即可用第一 ARP信息更新已有 ARP信息。在第一 ARP信息中的设备标识与已有ARP信息中的设备标识相同的情况下,在该 ARP报文对应的本地链路广播该ARP报文,即在接收到该ARP报文的VLAN上广播该ARP报文,如果预设时间内未收到与所述第一 ARP信息中的IP地址相同的ARP响应报文,则记录单元306用所述第一 ARP信息更新所述已有ARP信息。当第一地址对应关系信息在地址对应关系信息表中时,可能是收到了重复的ARP 报文,可以只在对应的本地链路广播该ARP报文,不需要在网络侧广播该ARP报文。发送单元308,用于通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应关系信息。由于控制平面的报文不会触发网络节点进行MAC地址学习,所以不会增加边缘网络节点的MAC表。这里的控制平面的报文是指基于链路状态路由的数据链路层通告报文。 在TRILL中,这里的控制平面的报文可以采用ESADI报文,也可以采用其他可以扩散地址对应关系信息的控制平面的报文。在SPB中,控制平面的报文可以采用基于IS-IS TLV定义的格式,该信息至少包括第一地址对应关系信息中的IP地址和MAC地址信息。当一个网络节点通过控制平面的报文接收到第一地址对应关系信息后,在其地址对应关系信息表中记录该第一地址对应关系信息。由于当第一地址对应关系信息在入口网络节点的地址对应关系信息表中时,发送单元308不会扩散该第一地址对应关系信息,因此该第一地址对应关系信息必然不在通过控制平面的报文接收到第一地址对应关系信息的网络节点的地址对应关系信息表中。在IPv6中,当所述第一邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,在所述邻居缓存信息表中增加所述第一邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点只需用所述第一邻居缓存信息更新所述已有邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点需要用所述第一邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当所述第一 ARP信息中的IP地址与所述ARP信息表中任意一条ARP 信息中的IP地址都不同时,通过控制平面的报文接收到第一地址对应关系信息的网络节点在所述ARP信息表中增加第一 ARP信息。当第一 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址相同,已有ARP信息中的设备标识与通过控制平面的报文接收到第一地址对应关系信息的网络节点的设备标识不同, 可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于 MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点只需用第一 ARP信息更新所述已有ARP信息。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP 信息中的设备标识与通过控制平面的报文接收到第一地址对应关系信息的网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。 并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时, 由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。通过控制平面的报文接收到第一地址对应关系信息的网络节点需要用第一 ARP信息更新所述已有ARP信息和所述已有MAC表项。此时不需要在本地通告该终端设备已进行了迁移,因为对于本地的终端设备来说,无论非本地的终端设备是否进行了迁移,与其通信都只须将报文发送至入口网络节点,后续处理都交给入口网络节点完成,本地的终端设备关于进行了迁移的非本地终端设备的信息,如IP地址、MAC地址、发送端口等都没有改变。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用第一 ARP信息更新所述已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此通过控制平面的报文接收到第一地址对应关系信息的网络节点只需要更新ARP信息表即可。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。通过控制平面的报文接收到第一地址对应关系信息的网络节点用第一 ARP信息更新所述已有ARP信息和所述已有MAC表项,并生成第一信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第一 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点可以生成出和入口网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,控制平面的报文应当含有该VLAN的信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点在本地链路的该VLAN上广播生成出的ARP报文。对于记录单元306中采用封装ARP报文单播发送至已有ARP信息中的设备标识对应的网络节点的方案,上述方案已经足够。然而,如果不采用封装ARP报文单播发送至已有 ARP信息中的设备标识对应的网络节点的方案,通过控制平面的报文接收到第一地址对应关系信息的网络节点还需要做以下判断和动作当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在该网络节点的本地链路上。因此网络节点需要生成第一 ARP信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第一 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点可以生成出和入口网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,控制平面的报文应当含有该VLAN的信息,通过控制平面的报文接收到第一地址对应关系信息的网络节点在本地链路的该VLAN上广播生成出的ARP报文。记录单元306还用于当接收单元302接收到了其他网络节点通过控制平面的报文发送的第二地址对应关系信息时,在其地址对应关系信息表中记录该第二地址对应关系信息。第二地址对应关系信息可以是上述其他网络节点根据其从本地链路上接收到的地址对应关系通告报文获取的。在IPv6中,当所述第二邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,记录单元306在所述邻居缓存信息表中增加所述第二邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。记录单元306只需用所述第二邻居缓存信息更新所述已有邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。记录单元306需要用所述第二邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。
在IPv4中,当第二 ARP信息中的IP地址与所述ARP信息表中任意一条ARP信息中的IP地址都不同时,网络节点在所述ARP信息表中增加第二 ARP信息。当第二 ARP信息中的IP地址与ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与已有ARP信息中的MAC地址相同,所述已有ARP信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。记录单元306只需用第二 ARP信息更新所述已有 ARP信息。当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP 信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。记录单元306需要用第二 ARP信息更新所述已有 ARP信息和所述已有MAC表项。此时不需要在本地通告该终端设备已进行了迁移,因为对于本地的终端设备来说,无论非本地的终端设备是否进行了迁移,与其通信都只须将报文发送至入口网络节点,后续处理都交给入口网络节点完成,本地的终端设备关于进行了迁移的非本地终端设备的信息,如IP地址、MAC地址、发送端口等都没有改变。当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有 ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用第二 ARP信息更新所述已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此记录单元306只需要更新ARP信息表即可。当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。记录单元306用第二 ARP信息更新所述已有ARP信息和所述已有MAC表项,并生成第二信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第二 ARP信息对应的ARP报文。 由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,网络节点可以生成出和其他网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARPR印Iy报文,当ARP报文是终端设备从某个VLAN发送到其他网络节点时,控制平面的报文应当含有该VLAN的信息,网络节点在本地链路的该VLAN上广播生成出的ARP报文。对于采用封装ARP报文单播发送至已有ARP信息中的设备标识对应的网络节点的方案,上述方案已经足够。然而,如果不采用其他网络节点封装ARP报文单播发送至已有 ARP信息中的设备标识对应的网络节点的方案,记录单元306还用于当第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在网络节点的本地链路上,或者终端设备迁移前的入口网络节点是本网络节点。因此记录单元306需要生成第二 ARP信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播第二 ARP信息对应的ARP报文。由于控制平面的报文中携带了足够重构原先的ARP报文的所有信息,记录单元306可以生成出和其他网络节点接收到的ARP报文对应的ARP报文,如免费ARP报文或广播的ARP Reply报文,当ARP报文是终端设备从某个VLAN发送到其他网络节点时,控制平面的报文应当含有该VLAN的信息,记录单元306在本地链路的该VLAN上广播生成出的ARP报文。由于控制平面的报文不会触发MAC地址学习,因此记录单元306需要在合适的时候在MAC表中增加相应表项以保证报文正确转发。网络节点在接收到本地链路上的地址对应关系信息请求报文时,如果地址对应关系信息请求报文中的目标IP地址与地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,则不需要向网络侧转发该地址对应关系信息请求报文。接收到地址对应关系信息请求报文的网络节点生成已有地址对应关系信息对应的地址对应关系信息响应报文,向发送地址对应关系信息请求报文的终端设备发送该响应报文。由于终端设备发送地址对应关系信息请求报文意味着该终端设备很可能接下来就需要与被请求的终端设备通信,因此记录单元306此时即根据已有地址对应关系信息更新MAC表。在应用链路状态路由的数据链路层协议中,网络节点的MAC表对应于网络侧的表项保存MAC地址和网络节点的设备标识的对应关系,因此记录单元306只需要将地址对应关系信息表项中相应内容增加到MAC表即可。在IPv6中,地址对应关系信息请求报文包括NS报文,地址对应关系信息响应报文包括NA报文。NS报文的源地址为发送该NS报文的终端设备的IP地址,目的地址为被请求地址对应关系信息的终端设备的solicited-node multicast address,目标地址为被请求地址对应关系信息的终端设备的IP地址。NA报文的源地址为邻居缓存信息表中已有邻居缓存信息的IP地址,目的地址为对应的NS报文的源地址,目标地址为对应的NS报文的目标地址,目标链路层地址为邻居缓存信息表中已有邻居缓存信息的MAC地址,请求标志位置一。在IPv4中,地址对应关系信息请求报文包括ARP请求(ARP Request)报文,地址对应关系信息响应报文包括ARP应答(ARP Reply)报文。ARP Request报文的报文类型是请求,发送方地址为发送该ARP Request报文的终端设备的IP地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。ARP R印Iy报文的报文类型是应答,发送方地址为 ARP信息表中已有ARP信息的IP地址,目标地址为对应的ARP Request报文的目标地址,目标链路层地址为ARP信息表中已有ARP信息的MAC地址。 ARP信息表或邻居缓存信息表通常由CPU控制和访问,存储在内存中,访问和查找速度较慢,对规格也没有明确限制。而MAC表通常由ASIC、FPGA或NP控制和访问,存储在 CAM中,访问和查找速度快,但是成本高、功耗大,对规格也有一定限制。由于控制平面的报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表, 减小了设备复杂度,降低了对MAC表规格的要求。可选的,上述发送装置还可以包括老化单元,用于对本地链路上的终端设备进行老化探测。当需要老化终端设备的地址对应关系信息时,老化单元老化该地址对应关系信息,并可以进一步删除MAC表中相应的表项。老化单元通过控制平面的报文向其他网络节点发送终端设备的地址对应关系信息,接收到该控制平面的报文的其它网络节点的老化单元根据控制平面报文的指示老化该终端设备的地址对应关系信息,并可以进一步删除MAC 表中相应的表项。老化单元都只对自己本地链路上的终端设备进行老化探测,并且不主动老化已保存的地址对应关系信息。举例来说,可以将通过控制平面的报文获得的地址对应关系信息设置为具有较高的信任值(confidence level),如254。只有当探测到本地链路上的终端设备需要老化时,或者接收到其他网络节点通过控制平面的报文发送的老化指示时老化单元才老化已保存的地址对应关系信息。采用本发明实施例提供的技术方案,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。另外,由于控制平面的报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,减小了边缘网络节点的MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表,减小了设备复杂度,降低了对MAC表规格的要求。以下结合图4说明本发明另一个实施例图4为本发明一个实施例中应用链路状态路由的数据链路层协议中的MAC表更新装置框图。该更新装置通常由网络中的网络节点实现。该更新装置网络侧的MAC地址学习功能处于关闭状态。通常网络节点在接收到网络侧的报文时会进行MAC地址学习,即用报文的源MAC地址和入口网络节点的设备标识更新MAC表。本实施例中,实现该更新装置的网络节点关闭网络侧的MAC地址学习功能,而不改变本地链路侧的MAC地址学习功能。上述应用链路状态路由的数据链路层协议可以是TRILL,也可以是Siortest Path Bridging。 在TRILL中,该网络节点通常为路由桥设备。在SPB中,该网络节点通常为边缘网桥设备。 该更新装置包括第一接收单元402,用于接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识。在IPv6中,地址对应关系通告报文可以是unsolicited NA报文。unsolicited NA 报文的目标地址为发送该报文的终端设备的IP地址,该IP地址可以是本地IP地址或全局 IP地址;目的IP地址为全网络节点组播地址;目标链路层地址为发送该报文的终端设备的链路层地址,链路层地址在以太网中即为MAC地址;请求标志位置零。在IPv4中,地址对应关系通告报文可以是ARP报文。具体的,该ARP报文可以使免费ARP报文,也可以是广播的ARP R印Iy报文。当发生虚拟机迁移时,虚拟机迁移后会利用RARP报文通告迁移,此时,在本地链路上收到该RARP报文的网络节点根据自身的地址对应关系信息表,将该RARP报文转换为地址对应关系通告报文,如免费ARP报文或广播的 ARP Reply报文,封装该地址对应关系通告报文后向网络侧发送,封装信息中包含封装该地址对应关系通告报文的网络节点的设备标识。免费ARP报文的报文类型是请求,发送方IP 地址为发送该报文的终端设备的IP地址,发送方MAC地址为发送该报文的终端设备的MAC地址,目标IP地址为发送该报文的终端设备的IP地址,目标MAC地址为广播地址。广播的 ARP R印Iy报文的格式基本相同,但报文类型是应答,目标IP地址为广播地址。RARP报文中的报文类型是请求,发送方IP地址为缺省值,例如为全零,因此第一 ARP信息中的IP地址也为缺省值。入口网络节点在接收到地址对应关系通告报文后,封装该地址对应关系通告报文,封装信息中包含其自身的设备标识,并广播该地址对应关系通告报文。因此其他网络节点的接收单元可以接收到该封装信息中封装所述地址对应关系通告报文的网络节点的设备标识的地址对应关系通告报文。上述封装报文的方式可以是TRILL封装或MAC-in-MAC 封装。获取单元404,用于根据所述地址对应关系通告报文获取第一地址对应关系信息, 所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、 发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系。第一地址对应关系信息即发送地址对应关系通告报文的终端设备的MAC地址、IP 地址与该终端设备的入口网络节点的设备标识的对应关系。在TRILL中,该终端设备的入口网络节点的设备标识可以从封装后的地址对应关系通告报文的报文头的入口路由桥昵称域获得。在SPB中,该终端设备的入口网络节点的设备标识即B-MAC,可以从封装后的地址对应关系通告报文的S-DA字段获得。在IPv6中,第一地址对应关系信息包括第一邻居缓存信息。在IPv4中,第一地址对应关系信息包括第一 ARP信息。增加单元406,用于当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息。地址对应关系信息表为网络节点中用于保存地址对应关系信息的表。在IPv6中, 地址对应关系信息表为邻居缓存信息表。在IPv4中,地址对应关系信息表为ARP信息表。 由于第一地址对应关系信息除了 MAC地址和IP地址之外还包括入口网络节点的设备标识, 因此,与通常的邻居缓存和ARP表相比,邻居缓存信息表和ARP信息表的每个表项都多了设备标识的内容。在IPv6中,当第一邻居缓存信息中的IP地址与邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。 此时,增加单元406在邻居缓存信息表中增加所述第一邻居缓存信息。上述更新装置还可以包括更新单元。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。此时更新单元用所述第一邻居缓存信息更新所述已有邻居缓存信息。当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC表项的 MAC地址相同时,由于MAC表中有该终端设备的MAC地址,说明已有本地的终端设备与该终端设备进行过通信。此时更新单元用所述第一邻居缓存信息更新所述已有邻居缓存信息和所述已有MAC表项。由于终端设在发送unsolicited NA报文之前,已经进行过重复地址探测,所以通常不会有迁移之外的其他类型的重复地址现象。在IPv4中,当第一地址对应关系信息中的IP地址不在地址对应关系信息表中,即当第一 ARP信息中的IP地址与ARP信息表中任意一条ARP信息中的IP地址都不同时,可以认为是新的终端设备上线或者终端设备变更IP地址。此时,增加单元406在ARP信息表中增加第一 ARP信息。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,已有ARP 信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,由于MAC表中没有该终端设备的MAC地址,说明尚没有本地的终端设备与该终端设备进行过通信。此时更新单元用第一 ARP信息更新所述已有ARP信息。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有ARP信息中的设备标识与所述网络节点的设备标识不同,可以认为终端设备进行了迁移,并且迁移前的入口网络节点不是本网络节点。并且所述已有ARP信息中的MAC地址与 MAC表中的一条已有MAC表项的MAC地址相同时,由于MAC表中有该终端设备的MAC地址, 说明已有本地的终端设备与该终端设备进行过通信。此时更新单元用所述第一 ARP信息更新所述已有ARP信息和所述已有MAC表项。当第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址不同,并且已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,更新单元用第一 ARP信息更新已有ARP信息。由于尚没有本地的终端设备与该终端设备进行过通信,因此更新单元只需要更新ARP信息表即可。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的 IP地址相同,所述第一 ARP信息中的MAC地址与已有ARP信息中的MAC地址不同,并且已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,由于已有本地的终端设备与该终端设备进行过通信,必须更新该本地的终端设备的ARP信息。更新单元用第一 ARP信息更新已有ARP信息和已有MAC表项,在与封装后的ARP报文对应的本地链路上广播解封装后的ARP报文。与封装后的ARP报文对应的本地链路是指,当ARP报文是终端设备从某个VLAN发送到入口网络节点时,接收到封装后的地址对应关系通告报文的网络节点在本地链路的该VLAN上广播解封装后的该ARP报文。当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,说明可能发生地址冲突的终端设备可能在该网络节点的本地链路上,或者终端设备迁移前的入口网络节点是本网络节点。此时更新单元在与所述封装后的ARP报文对应的本地链路上广播解封装后的所述ARP报文。第二接收单元408,用于接收本地链路上的地址对应关系信息请求报文。在IPv6中,地址对应关系信息请求报文包括邻居请求NS报文,NS报文的源地址为发送该NS报文的终端设备的IP地址,目的地址为被请求地址对应关系信息的终端设备的被请求网络节点组播地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。在IPv4中,地址对应关系信息请求报文包括ARP Request报文,ARP Request报文发送方地址为发送该ARP Request报文的终端设备的IP地址,目标地址为被请求地址对应关系信息的终端设备的IP地址。生成单元410,用于当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。网络节点在接收到本地链路上的地址对应关系信息请求报文时,如果地址对应关系信息请求报文中的目标地址与地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,则不需要向网络侧转发该地址对应关系信息请求报文,生成单元410生成已有地址对应关系信息对应的地址对应关系信息响应报文,向发送请求报文的终端设备发送该响应报文。在IPv6中,地址对应关系信息响应报文包括NA报文,NA报文的源地址为邻居缓存信息表中已有邻居缓存信息的IP地址,目的地址为对应的NS报文的源地址,目标地址为对应的NS报文的目标地址,目标链路层地址为邻居缓存信息表中已有邻居缓存信息的MAC 地址,请求标志位置一。在IPv4中,地址对应关系信息响应报文包括ARP Reply报文,ARPR印Iy报文的发送方地址为ARP信息表中已有ARP信息的IP地址,目标地址为对应的ARP Request报文的目标地址,目标链路层地址为ARP信息表中已有ARP信息的MAC地址。由于边缘网络节点关闭了网络侧的MAC地址学习功能,因此需要在合适的时候在 MAC表中增加相应表项以保证报文正确转发。因为终端设备发送地址对应关系信息请求报文意味着该终端设备很可能接下来就需要与被请求的终端设备通信,因此生成单元410此时即根据已有地址对应关系信息更新MAC表。在应用链路状态路由的数据链路层协议中, 网络节点的MAC表对应于网络侧的表项保存MAC地址和网络节点的设备标识的对应关系, 因此只需要将地址对应关系信息表项中相应内容增加到MAC表即可。在某些情况下,终端设备可能不发送地址对应关系信息相关消息,直接进行数据报文的通信。此时,为了避免关闭MAC地址学习造成MAC表无法更新,上述更新装置还可以包括以下单元。MAC增加单元,用于接收到数据报文的网络节点在MAC表中找不到相应的表项时, 如果地址对应关系信息表存在相应表项,则将该表项中相应内容增加到MAC表。
广播单元,用于接收到数据报文的网络节点在MAC表中找不到相应的表项时,如果地址对应关系信息表也不存在相应表项,则生成地址对应关系信息请求报文,封装后广播该地址对应关系信息请求报文。其他网络节点接收到该报文后在相应的本地链路广播该地址对应关系信息请求报文。被请求的终端设备发送地址对应关系信息响应报文。被请求的终端设备的入口网络节点将该报文封装后,向接收到数据报文的网络节点发送。接收到数据报文的网络节点根据该地址对应关系信息响应报文更新地址对应关系信息表和MAC 表。同时,被请求的终端设备的入口网络节点根据地址对应关系信息响应报文生成相应的地址对应关系信息通告报文,将该报文封装后广播该报文,接收到该广播报文的网络节点按照上述实施例所述方法继续处理。ARP信息表或邻居缓存信息表通常由CPU控制和访问,存储在内存中,访问和查找速度较慢,对规格也没有明确限制。而MAC表通常由ASIC、FPGA或NP控制和访问,存储在内容可寻址存储器CAM中,访问和查找速度快,但是成本高、功耗大,对规格也有一定限制。由于关闭了网络侧的MAC地址学习功能,网络侧的地址对应关系通告报文、地址对应关系请求报文或地址对应关系响应报文不会使边缘网络节点学习MAC地址,并且地址对应关系信息中包括了入口网络节点的设备标识,当接收到地址对应关系信息请求后可以直接根据已有地址对应关系信息更新MAC表,在保证报文正确转发的同时减小了边缘网络节点的MAC表,减小了设备复杂度,降低了对MAC表规格的要求。另外,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。以下结合图5说明本发明实施例的一个具体应用场景图5为本发明实施例的一个具体应用场景中的地址对应关系信息发送示意图。该具体应用场景应用于基于TRILL的IPv4网络中。其中,RBl至RB6为路由桥设备,RBl为Sl和S3的路由桥设备,RB2为S2的路由桥设备。RBl接收到Sl发送的免费ARP报文后,获取第一 ARP信息,即Sl的MAC地址、Sl 的IP地址和RBl自身的昵称的对应关系。RBl发现该对应关系不在ARP信息表中,则在ARP 信息表中记录该对应关系。RBl根据该对应关系生成ESADI报文,根据Sl的MAC地址和IP 地址填写ESADI报文的相应TLVdf RBl自身的昵称作为入口路由桥昵称,广播该ESADI报文。RB2至RB6都接收到该报文,根据相应TLV中的MAC地址和IP地址以及入口路由桥昵称获取第一 ARP信息,各路由桥设备都发现第一 ARP信息不在其ARP信息表中,则在各自的 ARP信息表中记录第一 ARP信息。当S2需要和Sl通信时,发送ARP Request报文,RB2接收到该ARPRequest报文后,发现ARP Request中的目标IP地址在其ARP信息表中有相应表项,则生成相应的ARP Reply报文,向S2发送该ARP Reply报文。RB2将其ARP信息表中相应表项的Sl的MAC地址和RBl的昵称写入MAC表。假设这之后Sl迁移到了 RB2下(图中虚线位置)。Sl发送的免费ARP报文,RB2 接收到Sl发送的免费ARP报文后,获取第一 ARP信息,即Sl的MAC地址、Sl的IP地址和 RB2自身的昵称的对应关系。RB2发现该对应关系不在ARP信息表中,则在ARP信息表中记录该对应关系。具体的,Sl的MAC地址和IP地址都没有改变,已有ARP信息中的设备标识即RBl昵称与RB2自身的设备标识不同,可以认为Sl进行了迁移,并且迁移前的路由桥设备即RBl不是本路由桥设备。由于RB2已对Sl发送的免费ARP报文进行过MAC地址学习, 此时不需要检查或更新MAC表。RB2根据第一 ARP信息生成ESADI报文,根据Sl的MAC地址和IP地址填写ESADI 报文的相应TLV,将RB2自身的昵称作为入口路由桥昵称,广播该ESADI报文。RB1,RB3至 RB6都接收到该报文,根据相应TLV中的MAC地址和IP地址以及入口路由桥昵称获取第一 ARP信息。对于RB3至RB6,第一 ARP信息中的IP地址与RB3至RB6的ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与RB3至RB6中该已有ARP信息中的MAC地址相同,该已有ARP信息中的设备标识即RBl的昵称与RB3至RB6的昵称不同,因此RB3至RB6更新各自的已有ARP信息。如果,RB4下有终端设备曾试图与Sl通信, 则其MAC表中会有相应MAC表项,此时还需要更新该MAC表项。此时RB4不需要在本地通告该终端设备已进行了迁移,因为对于RB4本地的终端设备来说,无论Sl是否进行了迁移, 与Sl通信都只须将报文发送至RB4,后续处理都交给RB4完成,本地的终端设备关于Sl的信息,如IP地址、MAC地址、发送端口等都没有改变。对于RB1,第一 ARP信息中的IP地址与RBl的ARP信息表中的一条已有ARP信息中的IP地址相同,第一 ARP信息中的MAC地址与RBl中该已有ARP信息中的MAC地址相同,该已有ARP信息中的设备标识即RBl的昵称,与RBl的设备标识即RBl的昵称相同,因此RBl更新已有ARP信息。因为Sl在RBl上线时,RBl已经对Sl的免费ARP报文做过MAC 地址学习,因此,还需要更新MAC表。RBl生成第一 ARP信息对应的免费ARP报文,在ESADI 报文对应VLAN的本地链路上广播该免费ARP报文。如果原先Sl与RBl之间还有一个交换机(switch),并且原先与Sl同在RBl下的S3也在该switch下,因为该交换机,在Sl在RBl 上线时已根据RBl广播的免费ARP报文得到了 Sl的信息,如果该交换机不知道Sl已经发生了迁移,则S3需要和Sl通信时,该交换机会将接收到的S3发往Sl的报文向原先Sl所在的端口转发而不会发往RB。所以RBl需要广播与第一 ARP信息对应的该免费ARP报文, 以更新本地链路上个终端设备例如S3的关于Sl的ARP及MAC信息。RBl至RB6对本地链路上的终端设备进行老化探测。当Sl下线后,RB2发现需要对Sl的ARP及MAC信息进行老化。RB2老化该ARP信息,并进一步删除MAC表中相应的表项。RB2广播需要老化Sl信息的ESADI报文,RBl,RB3至RB6各自老化Sl的ARP信息,并进一步删除MAC表中相应的表项。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是R0M/RAM,磁盘或光盘等。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送方法,其特征在于,包括网络节点接收本地链路上的地址对应关系通告报文;根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的介质访问控制MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述网络节点的设备标识的对应关系;当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息;通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应关系信息。
2.根据权利要求1所述的方法,其特征在于,还包括对本地链路上的终端设备进行老化探测;当需要老化所述终端设备的地址对应关系信息时,通过控制平面的报文向其他网络节点发送所述终端设备的地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中老化所述终端设备的地址对应关系信息。
3.根据权利要求1所述的方法,其特征在于,还包括接收所述本地链路上的地址对应关系信息请求报文;当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法应用于IPv6中,所述地址对应关系通告报文包括非请求邻居通告unsolicited NA报文,所述地址对应关系信息包括邻居缓存信息,所述第一地址对应关系信息包括第一邻居缓存信息,所述地址对应关系信息表包括邻居缓存信息表。
5.根据权利要求4所述的方法,其特征在于,所述当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息,包括当所述第一邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,在所述邻居缓存信息表中增加所述第一邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息中的IP和MAC地址相同,并且所述第一邻居缓存信息中的设备标识与所述已有邻居缓存信息中的设备标识不同时,用所述第一邻居缓存信息更新所述已有邻居缓存信肩、ο
6.根据权利要求5所述的方法,其特征在于,还包括接收其他网络节点通过控制平面的报文发送的第二邻居缓存信息;当所述第二邻居缓存信息中的IP地址与所述邻居缓存信息表中任意一条邻居缓存信息中的IP地址都不同时,在所述邻居缓存信息表中增加所述第二邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有 MAC表项的MAC地址都不同时,用所述第二邻居缓存信息更新所述已有邻居缓存信息;当所述第二邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC 表项的MAC地址相同时,用所述第二邻居缓存信息更新所述已有邻居缓存信息和所述已有 MAC表项。
7.根据权利要求1所述的方法,其特征在于,所述方法应用于IPv4中,所述地址对应关系通告报文包括地址解析协议ARP报文,所述地址对应关系信息包括ARP信息,所述第一地址对应关系信息包括第一 ARP信息,所述地址对应关系信息表包括ARP信息表。
8.根据权利要求7所述的方法,其特征在于,所述当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息,包括当所述第一 ARP信息中的IP地址与所述ARP信息表中任意一条ARP信息中的IP地址都不同时,在所述ARP信息表中增加所述第一 ARP信息。
9.根据权利要求8所述的方法,其特征在于,所述当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息,还包括当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,并且所述第一 ARP信息中的设备标识与所述已有ARP信息中的设备标识不同时,用所述第一 ARP信息更新所述已有ARP信息。
10.根据权利要求8所述的方法,其特征在于,所述当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息,还包括当所述第一 ARP信息中的IP地址为缺省值,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,并且所述第一 ARP信息中的设备标识与所述已有ARP信息中的设备标识不同时,用所述第一 ARP信息中的设备标识更新所述已有ARP信息中的设备标识,并用所述已有ARP信息中的IP地址替换所述第一 ARP信息中的IP地址。
11.根据权利要求8所述的方法,其特征在于,所述当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息,还包括当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同时,用所述第一 ARP信息更新所述已有ARP信息。
12.根据权利要求9至11任一项所述的方法,其特征在于,在所述地址对应关系信息表中记录所述第一地址对应关系信息之后,还包括封装所述ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至所述已有ARP信息中的设备标识对应的网络节点。
13.根据权利要求7所述的方法,其特征在于,当所述第一ARP信息中的IP地址与所述 ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述第一 ARP信息中的设备标识与所述已有ARP 信息中的设备标识不同时,所述在ARP信息表中记录所述第一 ARP信息,还包括,封装所述ARP报文,封装信息中包含所述第一地址对应关系信息中的设备标识,单播发送至所述已有ARP信息中的设备标识对应的网络节点,如果预设时间内未收到与所述第一 ARP信息中的IP地址相同的ARP响应报文,则用所述第一 ARP信息更新所述已有ARP信息;所述通过控制平面的报文向其他网络节点发送所述第一 ARP信息,包括,如果预设时间内未收到与所述第一 ARP信息中的IP地址相同的ARP响应报文,则通过控制平面的报文向其他网络节点发送所述第一 ARP信息。
14.根据权利要求7所述的方法,其特征在于,还包括接收其他网络节点通过控制平面的报文发送的第二 ARP信息;当所述第二 ARP信息中的IP地址与所述ARP信息表中任意一条ARP信息中的IP地址都不同时,在所述ARP信息表中增加所述第二 ARP信息。
15.根据权利要求14所述的方法,其特征在于,还包括当所述第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有 ARP信息中的设备标识与所述网络节点的设备标识不同,并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用所述第二 ARP信息更新所述已有ARP信息;当所述第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有 ARP信息中的设备标识与所述网络节点的设备标识不同,并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,用所述第二 ARP信息更新所述已有 ARP信息和所述已有MAC表项。
16.根据权利要求14所述的方法,其特征在于,还包括当所述第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用所述第二 ARP信息更新所述已有ARP信息;当所述第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第二 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,用所述第二 ARP信息更新所述已有ARP信息和所述已有MAC表项,并生成第二 ARP信息对应的ARP 报文,在所述控制平面的报文对应的本地链路上广播所述第二 ARP信息对应的ARP报文。
17.根据权利要求14至16任一项所述的方法,其特征在于,还包括当所述第二 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,生成第二 ARP信息对应的ARP报文,在所述控制平面的报文对应的本地链路上广播所述第二 ARP 信息对应的ARP报文。
18.一种应用链路状态路由的数据链路层协议中的介质访问控制MAC表更新方法,其特征在于,包括关闭网络侧的MAC地址学习功能;接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识;根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系;当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息;接收本地链路上的地址对应关系信息请求报文;当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。
19.根据权利要求18所述的方法,其特征在于,所述方法应用于IPv6中,所述地址对应关系通告报文包括非请求邻居通告imsolicitedNA报文,所述地址对应关系信息包括邻居缓存信息,所述第一地址对应关系信息包括第一邻居缓存信息,所述地址对应关系信息表包括邻居缓存信息表,所述地址对应关系信息请求报文包括邻居请求NS报文,所述地址对应关系信息响应报文包括邻居通告NA报文。
20.根据权利要求19所述的方法,其特征在于,还包括当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,并且所述已有邻居缓存信息中的MAC地址与MAC表中的任意一条已有 MAC表项的MAC地址都不同时,用所述第一邻居缓存信息更新所述已有邻居缓存信息;当所述第一邻居缓存信息中的IP和MAC地址与所述邻居缓存信息表中的一条已有邻居缓存信息都中的IP和MAC地址相同,所述已有邻居缓存信息中的设备标识与所述网络节点的设备标识不同,并且所述已有邻居缓存信息中的MAC地址与MAC表中的一条已有MAC 表项的MAC地址相同时,用所述第一邻居缓存信息更新所述已有邻居缓存信息和所述已有 MAC表项。
21.根据权利要求18所述的方法,其特征在于,所述方法应用于IPv4中,所述地址对应关系通告报文包括地址解析协议ARP报文,所述地址对应关系信息包括ARP信息,所述第一地址对应关系信息包括第一 ARP信息,所述地址对应关系信息表包括ARP信息表,所述地址对应关系信息请求报文包括ARP请求Request报文,所述地址对应关系信息响应报文包括 ARP应答R印Iy报文。
22.根据权利要求21所述的方法,其特征在于,在所述根据所述ARP报文获取第一ARP 信息之后,还包括当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有 ARP信息中的设备标识与所述网络节点的设备标识不同,并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用所述第一 ARP信息更新所述已有ARP信息;当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址相同,所述已有 ARP信息中的设备标识与所述网络节点的设备标识不同,并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,用所述第一 ARP信息更新所述已有 ARP信息和所述已有MAC表项。
23.根据权利要求21所述的方法,其特征在于,还包括当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有ARP信息中的MAC地址与MAC表中的任意一条已有MAC表项的MAC地址都不同时,用所述第一 ARP信息更新所述已有ARP信息;当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,所述第一 ARP信息中的MAC地址与所述已有ARP信息中的MAC地址不同,并且所述已有ARP信息中的MAC地址与MAC表中的一条已有MAC表项的MAC地址相同时,用所述第一 ARP信息更新所述已有ARP信息和所述已有MAC表项,在与所述封装信息中包含所述第一地址对应关系信息中的设备标识的ARP报文对应的本地链路上广播解封装后的所述ARP 报文。
24.根据权利要求21至23任一项所述的方法,其特征在于,还包括当所述第一 ARP信息中的IP地址与所述ARP信息表中的一条已有ARP信息中的IP地址相同,并且所述已有ARP信息中的设备标识与所述网络节点的设备标识相同时,在与所述封装信息中包含所述第一地址对应关系信息中的设备标识的ARP报文对应的本地链路上广播解封装后的所述ARP报文。
25.一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送装置,其特征在于,包括接收单元,用于网络节点接收本地链路上的地址对应关系通告报文;获取单元,用于根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的介质访问控制MAC 地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述网络节点的设备标识的对应关系;记录单元,用于当所述第一地址对应关系信息不在地址对应关系信息表中时,在所述地址对应关系信息表中记录所述第一地址对应关系信息;发送单元,用于通过控制平面的报文向其他网络节点发送所述第一地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中记录所述第一地址对应关系信息。
26.根据权利要求25所述的装置,其特征在于,还包括老化单元,所述老化单元,用于对本地链路上的终端设备进行老化探测,当需要老化所述终端设备的地址对应关系信息时,通过控制平面的报文向其他网络节点发送所述终端设备的地址对应关系信息,所述控制平面的报文使所述其他网络节点在其地址对应关系信息表中老化所述终端设备的地址对应关系信息。
27.根据权利要求25所述的装置,其特征在于,所述接收单元,还用于接收所述本地链路上的地址对应关系信息请求报文; 所述记录单元,还用于当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。
28.一种应用链路状态路由的数据链路层协议中的介质访问控制MAC表更新装置,其特征在于,所述更新装置网络侧的MAC地址学习功能处于关闭状态,所述更新装置包括第一接收单元,用于接收地址对应关系通告报文,所述地址对应关系通告报文的封装信息中包含封装所述地址对应关系通告报文的网络节点的设备标识;获取单元,用于根据所述地址对应关系通告报文获取第一地址对应关系信息,所述第一地址对应关系信息包括发送所述地址对应关系通告报文的终端设备的MAC地址、发送所述地址对应关系通告报文的终端设备的网际协议IP地址与所述地址对应关系通告报文中的设备标识的对应关系;增加单元,用于当所述第一地址对应关系信息中的IP地址与地址对应关系信息表中任意一条地址对应关系信息中的IP地址都不同时,在所述地址对应关系信息表中增加所述第一地址对应关系信息;第二接收单元,用于接收本地链路上的地址对应关系信息请求报文; 生成单元,用于当所述地址对应关系信息请求报文中的目标地址与所述地址对应关系信息表中的一条已有地址对应关系信息中的IP地址相同时,生成所述已有地址对应关系信息对应的地址对应关系信息响应报文,向发送所述地址对应关系信息请求报文的终端设备发送所述已有地址对应关系信息对应的地址对应关系信息响应报文,根据所述已有地址对应关系信息更新MAC表。
全文摘要
本发明实施例的目的是提供一种应用链路状态路由的数据链路层协议中的地址对应关系信息发送与MAC表更新方法和装置,用以解决应用链路状态路由的数据链路层协议中地址对应关系信息请求广播占用带宽多的问题。采用本发明实施例提供的技术方案,由于除了入口网络节点的其他网络节点的地址对应关系信息表中也保存了终端设备的地址对应关系信息,当接收到地址对应关系信息请求后可以直接回应地址对应关系信息响应,不需要广播该请求,减少了应用链路状态路由的数据链路层协议中广播地址对应关系信息请求占用的带宽。
文档编号H04L29/12GK102404181SQ201010275209
公开日2012年4月4日 申请日期2010年9月8日 优先权日2010年9月8日
发明者厉益舟, 李晋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1