CN112152928A - 一种邻居表项学习方法、装置及路由设备 - Google Patents
一种邻居表项学习方法、装置及路由设备 Download PDFInfo
- Publication number
- CN112152928A CN112152928A CN202011109845.6A CN202011109845A CN112152928A CN 112152928 A CN112152928 A CN 112152928A CN 202011109845 A CN202011109845 A CN 202011109845A CN 112152928 A CN112152928 A CN 112152928A
- Authority
- CN
- China
- Prior art keywords
- address
- table entry
- message
- neighbor table
- consistent
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种邻居表项学习方法、装置及路由设备。其中,方法包括:获取地址重复检测DAD报文;根据DAD报文,确定第一信息,第一信息包括:DAD报文的第一源MAC地址、DAD报文所请求的目标IP地址、发送DAD报文的主机所属第一虚拟局域网VLAN以及路由设备中接收到DAD报文的第一三层接口;根据第一信息,生成邻居表项,邻居表项中包含第一源MAC地址、目标IP地址、用于表示第一VLAN的VLAN标识以及用于表示第一三层接口的接口信息。可以使得路由设备在接收到下行流量前预先根据DAD报文中携带的信息学习到用于表示如何转发目的地址为全球单播地址的报文的邻居表项,提高下行流量初始的转发效率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种邻居表项学习方法、装置及电子设备。
背景技术
在一些网络中路由设备可以自动学习用于表示如何向与网络设备存在邻居关系的主机发送报文的邻居表项,并根据学习到邻居表项将接收到的报文转发至与网络设备存在邻居关系的主机。
示例性的,在无状态地址自动配置的IPV6(Internet Protocol Version,互联网协议第6版)网络中,路由设备可以向下挂的无状态地址主机发送的RA(Router Advertise,路由通告)报文,主机通过RA报文自动生成主机的全球单播地址,并针对生成的全球单播地址进行DAD(Duplicate Address Detection,地址重复检测),如果通过DAD则主机可以利用生成的全球单播地址作为该主机自身的全球单播地址向其他网络设备发送报文。
当路由设备接收到其他设备回应主机的报文时,由于这些报文的目的地址为主机的全球单播地址,而主机的全球单播地址的主机自动生成的,因此路由设备需要学习如何转发这些报文的邻居表项。相关技术中,路由设备可以发送NS(Neighbor Solicitation,邻居请求)报文,并根据主机接收到NS报文后回应的NA(Neighbor Advertise,邻居通告)报文学习用于表示以该全球单播地址为目的地址的报文如何转发的邻居表项。
但是,当路由设备下行存在模糊终结组网时,由于模糊终结组网中包括多个VLAN(Virtual Local Area Network,虚拟局域网),因此路由设备在发送NS报文时需要遍历模糊终结组网中的各个VLAN,即NS报文的发送效率较低,路由设备需要花费较长时间才能够学习到用于转发下行流量的邻居表项,影响下行流量初始的转发效率。
发明内容
本发明实施例的目的在于提供一种邻居表项学习方法、装置及路由设备,以实现提高下行流量初始的转发效率。具体技术方案如下:
在本发明实施例的第一方面提供了一种邻居表项学习方法,应用于路由设备,所述路由设备下行存在模糊终结组网,所述方法包括:
获取地址重复检测DAD报文;根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
结合第一方面在第一种可能的实施例中,所述生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
当获取邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
结合第一方面的第一种可能的实施例在第二种可能的实施例中,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,所述方法还包括:
如果所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
结合第一方面的第一种可能的实施例在第三种可能的实施例中,在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
结合第一方面的第三种可能的实施例在第四种可能的实施例中,所述如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时未获取到NA报文,向所述主机发送不可达探测NUD报文。
在本发明实施例的第二方面提供了一种邻居表项学习方法,应用于路由设备,所述路由设备下行存在模糊终结组网,所述装置包括:
DAD报文嗅探模块,用于获取地址重复检测DAD报文;
DAD报文解析模块,用于根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;
邻居表项生成模块,用于根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
结合第二方面在第一种可能的实施例中,所述邻居表项生成模块生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
所述邻居表项生成模块在所述生成状态为待确认状态的邻居表项之后,还用于当获取到邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
结合第二方面的第一种可能的实施例在第二种可能的实施例中,所述邻居表项生成模块,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,还用于所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
结合第二方面的第一种可能的实施例在第三种可能的实施例中,所述邻居表项生成模块在所述生成状态为待确认状态的邻居表项之后,还用于如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在所述向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
结合第二方面的第三种可能的实施例在第四种可能的实施例中,所述邻居表项生成模块如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时时未获取到NA报文,向所述主机发送不可达探测NUD报文。
在本发明实施例的第三方面,提供了一种路由设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的邻居表项学习方法、装置及路由设备,可以通过监控DAD报文并利用DAD报文中携带有主机的全球单播地址的特点,使得路由设备可以接收到下行流量之前预先根据DAD报文中携带的信息学习到用于表示如何转发目的地址为全球单播地址的报文的邻居表项,从而使得路由设备在接收到下行流量时可以根据预先学习到的邻居表项进行转发,提高了下行流量初始的转发效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的邻居表项学习方法的一种流程示意图;
图2为本发明实施例提供的邻居表项学习方法的另一种流程示意图;
图3为本发明实施例提供的邻居表项学习方法的另一种流程示意图;
图4为本发明实施例提供的邻居表项学习方法的另一种流程示意图;
图5为本发明实施例提供的邻居表项学习装置的一种结构示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为更清楚的对本发明实施例提供的邻居表项学习方法进行说明,下面将对本发明实施例提供的邻居表项的一种可能的应用场景进行示例性说明。可以理解的是,以下示例仅是本发明实施例提供的邻居表项学习方法的一种可能的应用场景的示例,在其他可能的实施例中,本发明实施例提供的邻居表项学习方法也可以应用于其他可能的应用场景,以下示例对此不做任何限制。
假设IPV6网络中,路由设备的下行存在模糊终结组网,则当路由设备在上行通路中接收到下行流量时时,由于这些下行流量的目的地址为主机的全球单播地址,而在初始转发下行流量时,路由设备此前并没有学习到用于表示如何转发以全球单播地址为目的地址的报文的邻居表项。
因此,路由设备可以向各主机发送NS报文,并根据主机回应的NA报文,学习用于表示如何转发以全球单播地址为目的地址的报文的邻居表项。但是由于主机分布在模糊组网中的各个VLAN内,因此路由设备需要遍历模糊终结组网中的各个VLAN以向各主机发送NS报文,该过程将花费较长时间,因此路由设备在接收到下行流量后需要花费较长时间才能够学习到用于转发下行流量的邻居表项,路由设备在学习到用于转发下行流量的邻居表项后才能够根据学习到的邻居表项对下行流量进行转发,因此下行流量的初始的转发效率较低。
基于此,本发明实施例提供了一种邻居表项学习方法,应用于路由设备,该路由设备下行存在模糊终结组网,邻居表项学习方法可以如图1所示,包括:
S101,获取DAD报文。
S102,根据DAD报文,确定第一信息,第一信息包括:DAD报文的第一源MAC地址、目的IP地址、发送DAD报文的主机所属第一VLAN以及路由设备中接收到DAD报文的第一三层接口。
S103,根据第一信息,生成邻居表项,邻居表项中包含第一源MAC地址、DAD报文所请求的目标IP地址、用于表示第一VLAN的VLAN标识以及用于表示第一三层接口的接口信息。
选用该实施例,可以通过监控DAD报文并利用DAD报文中携带有主机的全球单播地址的特点,使得路由设备可以在接收到下行流量之前预先根据DAD报文中携带的信息学习到用于表示如何转发目的地址为全球单播地址的报文的邻居表项,从而使得路由设备在接收到下行流量时可以根据预先学习到的邻居表项进行转发,提高了下行流量初始的转发效率。
在S101中,DAD报文为模糊终结组网中主机在进行DAD时发送的NS报文。主机在生成IPV6地址后,可以组播以所生成的IPV6地址为目标IP地址的DAD报文,DAD报文的第一源MAC地址为该主机的MAC地址,DAD报文的目的MAC地址为组播MAC地址,DAD报文的目的IP地址为组播IP地址,DAD报文的源IP地址为::,并且DAD报文中携带有目标IP地址,即携带有该主机所生成的IPV6地址。
并且主机在接收到DAD报文后,可以确定该DAD报文是否为该主机发送的DAD报文,如果该DAD报文为该主机发送的DAD报文则忽略该DAD报文。如果该DAD报文不为该主机发送的DAD报文,则确定该DAD报文中携带的目标IP地址是否为该主机正在使用的全球单播地址,如果该DAD报文所携带的目标IP地址不为该主机正在使用的全球单播地址则忽略该DAD报文,如果该DAD报文所携带的目标IP地址为该主机正在使用的全球单播地址则向发送该DAD报文的主机发送NA报文。
进行DAD的主机在发送DAD报文后,如果在预设时长内未收到其他主机回应的NA报文,则确定所生成的IPV6地址尚未被其他主机占用,因此可以确定该主机成功完成DAD,该主机组播用于表示该主机已经成功完成DAD的NA报文。如果在预设时长内收到其他主机回应的NA报文,则确定所生成的IPV6地址已经被其他主机占用,因此可以确定该主机未成功通过DAD。
在S102中,DAD报文的第一源MAC地址、DAD报文所请求的目标IP地址、发送DAD报文的主机所属第一VLAN可以通过解析DAD报文获取。第一三层接口的接口信息可以根据接收到DAD报文的三层接口确定。
在S103中,为描述方便,假设邻居表项中包含的第一源MAC地址为MAC地址1,包含的目标IP地址为IP地址1,包含的VLAN标识所表示的VLAN为VLAN 1,包含的接口信息所表示的接口为接口A。
则按照该邻居表项,路由设备在接收到目的IP地址为IP地址1的报文时,通过接口A在VLAN 1中将该报文转发至MAC地址1。可以理解的是,由于IP地址1为发送DAD报文的主机生成的全球单播地址,而MAC地址1为该主机的MAC地址。因此理论上按照该邻居表项,路由设备可以在接收到以该主机的全球单播地址为目的IP地址的报文时将该报文转发至该主机。即路由设备可以按照该邻居表项可以准确的对报文进行转发。
在一种可能的实施例中,在生成邻居表项之前可以查询已经生成的邻居表项中是否已经存在包含的IP地址与目标IP地址相同的邻居表项,例如可以是在接收到DAD报文的第一三层接口下查询第一三层接口下是否已经存在包含的IP地址与目标IP地址相同的邻居表项。如果已经存在包含的IP地址与目标IP地址相同的邻居表项,则不生成邻居表项。如果不存在包含的IP地址与目标IP地址相同的邻居表项,则生成邻居表项。选用该实施例,可以避免生成重复的邻居表项,节省路由设备的***资源。
可以理解的是,DAD报文为主机进行DAD时发送的报文,而主机可能未通过DAD,如果主机未通过DAD,则DAD报文的目的地址与主机的全球单播地址不同。因此,基于从DAD报文中确定的第一信息生成的邻居表项可能不够准确。
基于此,在一种可能的实施例中,本发明实施例提供的邻居表项学习方法可以如图2所示,包括:
S201,获取DAD报文。
该步骤与前述S101相同,可以参见前述关于S101的相关说明,在此不再赘述。
S202,根据DAD报文,确定第一信息。
该步骤与前述S102相同,可以参见前述S102中的相关说明,在此不再赘述。
S203,根据第一信息,生成状态为待确认状态的邻居表项。
该邻居表项中包括DAD报文的第一源MAC地址、DAD报文所请求的目标IP地址、用于表示发送DAD报文的主机所属第一VLAN的VLAN标识以及用于表示接收到DAD报文的第一三层接口的接口信息。
路由设备不将处于待确认状态(unconfirmed)的邻居表项下发至硬件层,邻居表项可以是缓存于路由设备的CPU的缓存中。因此处于待确认状态的邻居表项并不会占用路由设备的硬件层的资源。可以理解的是,如前述分析由于此时尚未确定目标主机是否能够成功通过DAD,因此邻居表项可能不够准确,因此可以将生成的邻居表项设置为待确认状态,以避免硬件层的资源的浪费。
S204,当获取到NA报文时,根据NA报文,确定第二信息,第二信息包括NA报文的第二源MAC地址、源IP地址、发送NA报文的主机所属第二VLAN以及路由设备中接收到NA报文的第二三层接口。
其中,NA报文为主机在成功完成DAD后组播发送的。NA报文的第二源MAC地址、源IP地址、第二VLAN可以通过解析NA报文获取。
S205,判断第二源MAC地址与第一源MAC地址是否一致、源IP地址与目标IP地址是否一致、第二VLAN与第一VLAN是否一致以及第二三层接口与第一三层接口是否一致。
可以是根据生成的邻居表项,判断第二信息中的第二源MAC地址与邻居表项包含的第一源MAC地址是否相同,并且判断第二信息中的源IP地址与邻居表项包含的目标IP地址是否相同,并且判断第二信息中的第二VLAN是否为邻居表项包含的VLAN标识所表示的VLAN,并且判断第二信息中的第二三层接口是否为邻居表项包含的接口信息所表示的三层接口。
可以理解的是,在主机成功完成DAD后正式使用生成的IPV6地址作为该主机自身的全球单播地址,因此理论上该NA报文中的源IP地址为主机生成的IPV6地址。又由于该主机的MAC地址、所属VLAN以及接入路由设备所通过的三层接口理论上没有发生变化,因此第二信息理论上应当与邻居表项包含的信息一致。
S206,如果第二源MAC地址与第一源MAC地址一致,并且源IP地址与目标IP地址一致,并且第二VLAN与第一VLAN一致,并且第二三层接口与第一三层接口一致,以使得路由设备按照邻居表项对接收到的报文进行转发。
可以理解的是,由于NA报文为主机在成功完成DAD后组播的,因此如果路由设备接收到该NA报文且第二信息与邻居表项中包含的信息一致,则可以确定主机已经成功完成DAD并且开始正式使用所生成的IPV6作为该主机自身的全球单播地址,即可以确定在步骤S202中确定的目标IP地址为主机的全球单播地址,因此生成的邻居表项是准确的,可以按照该邻居表项对接收到的报文进行转发,因此可以将邻居表项的状态切换为可达(reachable)状态。
参见图3,图3所示为本发明实施例提供的邻居表项学习方法的另一种流程示意图,可以包括:
S301,获取地址重复检测DAD报文。
该步骤与前述S101相同,可以参见前述关于S101的相关说明,在此不再赘述。
S302,根据DAD报文,确定第一信息。
该步骤与前述S102相同,可以参见前述S102中的相关说明,在此不再赘述。
S303,根据第一信息,生成状态为待确认状态的邻居表项。
该步骤与前述S203相同,可以参见前述S203中的相关说明,在此不再赘述。
S304,当获取到NA报文时,根据NA报文,确定第二信息。
该步骤与前述S204相同,可以参见前述S204中的相关说明,在此不再赘述。
S305,判断第二源MAC地址与第一源MAC地址是否一致、源IP地址与目标IP地址是否一致、第二VLAN与第一VLAN是否一致以及第二三层接口与第一三层接口是否一致,如果第二源MAC地址与第一源MAC地址一致、并且源IP地址与目标IP地址一致、并且第二VLAN与第一VLAN一致、并且第二三层接口与第一三层接口一致,则执行S306,如果第二源MAC地址与第一源MAC地址不一致、或源IP地址与目标IP地址不一致、或第二VLAN与第一VLAN不一致、或第二三层接口与第一三层接口不一致,则执行S307。
该步骤与前述S205相同,可以参见前述S205中的相关说明,在此不再赘述。
S306,将邻居表项的状态切换至可达状态,以使得路由设备按照邻居表项对接收到的报文进行转发。
该步骤与前述S206相同,可以参见前述S206中的相关说明,在此不再赘述。
S307,将邻居表项的状态切换至陈旧状态。
可以理解的是,由于NA报文为主机在成功完成DAD后组播的,因此如果路由设备接收到该NA报文且第二信息与邻居表项包含的信息不一致,则可以确定该主机已经通过DAD,在步骤S302中确定的目标地址即为主机的全球单播地址,但是邻居表项中包含的信息可能存在错误,即生成的邻居表项可能是不准确的,因此无法确定能否按照该邻居表项将报文转发至该主机,因此可以将邻居表项的状态切换为陈旧(stale)状态。
参见图4,图4所示为本发明实施例提供的邻居表项学习方法的另一种流程示意图,可以包括:
S401,获取DAD报文。
该步骤与前述S101相同,可以参见前述关于S101的相关说明,在此不再赘述。
S402,根据DAD报文,确定第一信息。
该步骤与前述S102相同,可以参见前述S102中的相关说明,在此不再赘述。
S403,根据第一信息,生成状态为待确认状态的邻居表项。
该步骤与前述S203相同,可以参见前述S203中的相关说明,在此不再赘述。
S404,如果未获取到NA报文,向主机发送NUD(Neighbor Unreachable Detection,不可达探测)报文。
可以理解的是,如果未获取到主机在成功完成DAD后组播发送的NA报文,则表示主机可能未成功完成DAD,因此可以向主机发送NUD报文,以确定目标主机是否成功完成DAD,其中,NUD报文的目的IP地址为该主机发送的DAD报文所请求的目标IP地址,NUD报文的目的MAC地址为该DAD报文的源MAC地址。S404的执行时机根据应用场景的不同可以不同,示例性的,在一种可能的实施例中可以是在生成邻居表项的预设时长后执行S404,例如在生成邻居表项后维护一表项状态定时器,该表项状态定时器在预设时长后超时,当该表项状态定时器超时时执行S404。在另一种可能的实施例中,也可以是在接收到下行流量时执行S404。在其他可能的实施例中,也可以是在生成邻居表项的预设时长后以及接收到下行流量时均执行S404。
S405,如果在向主机发送NUD报文之后接收到NA报文,将邻居表项的状态切换至可达状态,以使得路由设备按照邻居表项对接收到的报文进行转发。
如果可以在向主机发送NUD报文之后接收到NA报文,则该NA报文为主机针对NUD报文回应的NA报文,因此可以确定该主机已经成功完成DAD并正式将生成的IPV6地址作为该主机自身的全球单播地址,即可以按照邻居表项向主机发送报文,因此此时可以认为邻居表项是准确的。可以按照该邻居表项对接收到的报文进行转发,因此可以将邻居表项的状态切换为可达状态。
参见图5,图5所示为本发明实施例邻居表项学习装置的一种结构示意图,可以包括:
DAD报文嗅探模块501,用于获取地址重复检测DAD报文;
DAD报文解析模块502,用于根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;
邻居表项生成模块503,用于根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
在一种可能的实施例中,所述邻居表项生成模块503生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
所述邻居表项生成模块503在所述生成状态为待确认状态的邻居表项之后,还用于当获取到邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
在一种可能的实施例中,所述邻居表项生成模块503,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,还用于所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
在一种可能的实施例中,所述邻居表项生成模块503在所述生成状态为待确认状态的邻居表项之后,还用于如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在所述向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
在一种可能的实施例中,所述邻居表项生成模块503如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时时未获取到NA报文,向所述主机发送不可达探测NUD报文。
本发明实施例还提供了一种电子设备,如图6所示,包括:
存储器601,用于存放计算机程序;
处理器602,用于执行存储器601上所存放的程序时,实现如下步骤:
获取地址重复检测DAD报文;
根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;
根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
在一种可能的实施例中,所述生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
当获取邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
在一种可能的实施例中,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,所述方法还包括:
如果所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
在一种可能的实施例中,在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
在一种可能的实施例中,所述如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时未获取到NA报文,向所述主机发送不可达探测NUD报文。
上述路由设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一邻居表项学习方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一邻居表项学习方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、路由设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种邻居表项学习方法,其特征在于,应用于路由设备,所述路由设备下行存在模糊终结组网,所述方法包括:
获取地址重复检测DAD报文;
根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;
根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
2.根据权利要求1所述的方法,其特征在于,所述生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
当获取邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
3.根据权利要求2所述的方法,其特征在于,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,所述方法还包括:
如果所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
4.根据权利要求2所述的方法,其特征在于,在所述生成状态为待确认状态的邻居表项之后,所述方法还包括:
如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
5.根据权利要求4所述的方法,其特征在于,所述如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时未获取到NA报文,向所述主机发送不可达探测NUD报文。
6.一种邻居表项学习装置,其特征在于,应用于路由设备,所述路由设备下行存在模糊终结组网,所述模糊终结组网包括多个VLAN,所述装置包括:
DAD报文嗅探模块,用于获取地址重复检测DAD报文;
DAD报文解析模块,用于根据所述DAD报文,确定第一信息,所述第一信息包括:所述DAD报文的第一源MAC地址、所述DAD报文所请求的目标IP地址、发送所述DAD报文的主机所属第一虚拟局域网VLAN以及所述路由设备中接收到所述DAD报文的第一三层接口;
邻居表项生成模块,用于根据所述第一信息,生成邻居表项,所述邻居表项中包含所述第一源MAC地址、所述目标IP地址、用于表示所述第一VLAN的VLAN标识以及用于表示所述第一三层接口的接口信息。
7.根据权利要求6所述的装置,其特征在于,所述邻居表项生成模块生成邻居表项,包括:
生成状态为待确认状态的邻居表项,处于所述待确认状态的邻居表项缓存于所述路由设备的CPU的缓存中;
所述邻居表项生成模块在所述生成状态为待确认状态的邻居表项之后,还用于当获取到邻居通告NA报文时,根据所述NA报文,确定第二信息,所述第二信息包括所述NA报文的第二源MAC地址、源IP地址、发送所述NA报文的主机所属第二VLAN以及所述路由设备中接收到所述NA报文的第二三层接口;
判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致;
如果所述第二源MAC地址与所述第一源MAC地址一致,并且所述源IP地址与所述目标IP地址一致,并且所述第二VLAN与所述第一VLAN一致,并且所述第二三层接口与所述第一三层接口一致,则将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
8.根据权利要求7所述的装置,其特征在于,所述邻居表项生成模块,在所述判断所述第二源MAC地址与所述第一源MAC地址是否一致、所述源IP地址与所述目标IP地址是否一致、所述第二VLAN与所述第一VLAN是否一致以及所述第二三层接口与所述第一三层接口是否一致之后,还用于所述第二源MAC地址与所述第一源MAC地址不一致,或所述源IP地址与所述目标IP地址不一致,或所述第二VLAN与所述第一VLAN不一致,或所述第二三层接口与所述第一三层接口不一致,则将所述邻居表项的状态切换至陈旧状态。
9.根据权利要求7所述的装置,其特征在于,所述邻居表项生成模块在所述生成状态为待确认状态的邻居表项之后,还用于如果未获取到NA报文,向所述主机发送不可达探测NUD报文;
如果在所述向所述主机发送NUD报文之后接收到NA报文,将所述邻居表项的状态切换至可达状态,以使得所述路由设备按照所述邻居表项对接收到的报文进行转发。
10.根据权利要求9所述的装置,其特征在于,所述邻居表项生成模块如果未获取到NA报文,向所述主机发送不可达探测NUD报文,包括:
如果在接收到网络端设备发往所述主机的流量时时未获取到NA报文,向所述主机发送不可达探测NUD报文。
11.一种路由设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109845.6A CN112152928A (zh) | 2020-10-16 | 2020-10-16 | 一种邻居表项学习方法、装置及路由设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109845.6A CN112152928A (zh) | 2020-10-16 | 2020-10-16 | 一种邻居表项学习方法、装置及路由设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112152928A true CN112152928A (zh) | 2020-12-29 |
Family
ID=73952256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011109845.6A Withdrawn CN112152928A (zh) | 2020-10-16 | 2020-10-16 | 一种邻居表项学习方法、装置及路由设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152928A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865800A (zh) * | 2022-11-24 | 2023-03-28 | 深圳创维数字技术有限公司 | IPv6地址的获取方法、装置以及存储介质 |
CN116094998A (zh) * | 2022-12-29 | 2023-05-09 | 天翼云科技有限公司 | 一种基于ovs的邻居表项的vxlan报文的转发方法及装置 |
WO2023098319A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种地址检测方法及装置 |
-
2020
- 2020-10-16 CN CN202011109845.6A patent/CN112152928A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023098319A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种地址检测方法及装置 |
CN115865800A (zh) * | 2022-11-24 | 2023-03-28 | 深圳创维数字技术有限公司 | IPv6地址的获取方法、装置以及存储介质 |
CN116094998A (zh) * | 2022-12-29 | 2023-05-09 | 天翼云科技有限公司 | 一种基于ovs的邻居表项的vxlan报文的转发方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152928A (zh) | 一种邻居表项学习方法、装置及路由设备 | |
KR101978173B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠 제공자가 데이터 패킷을 전송하는 방법 및 그 컨텐츠 제공자 | |
US8189580B2 (en) | Method for blocking host in IPv6 network | |
CN107547349B (zh) | 一种虚拟机迁移的方法及装置 | |
US10530735B2 (en) | Pro-active mechanism to detect LISP movable silent host | |
US8842577B2 (en) | Enabling media access control address mobility in an ethernet virtual private network | |
CN113595897B (zh) | 一种路径探测方法及装置 | |
US9385925B1 (en) | Anycast route detection | |
WO2018121589A1 (zh) | 数据链路的检测方法、装置及*** | |
WO2019085822A1 (zh) | 用于实现组播业务的方法和装置 | |
CN102647312B (zh) | 一种整网组播拓扑的探测方法及装置 | |
US12034631B2 (en) | Loop avoidance communications method, device, and system | |
CN104168140B (zh) | Vtep异常情况处理方法及装置 | |
CN110768901B (zh) | 路由发布方法、路由选择方法、相关装置及*** | |
WO2020042899A1 (zh) | 一种重复地址检测方法及装置、计算机可读存储介质 | |
JP2023518594A (ja) | Macアドレス送信方法、装置、およびシステム、ならびに関連デバイス | |
CN106899706B (zh) | 一种泛洪抑制方法及装置 | |
WO2021139568A1 (zh) | 发送应答报文的方法、装置、计算设备和存储介质 | |
CN110958124B (zh) | 多播组管理方法、装置、可读存储介质、及计算机 | |
WO2018006684A1 (zh) | 报文处理方法、装置及路由器 | |
CN114124888A (zh) | 一种域名解析方法及装置 | |
CN115665262A (zh) | 一种请求处理方法、装置、电子设备及存储介质 | |
CN112511440B (zh) | 报文转发方法、***、存储介质和电子设备 | |
US9800541B2 (en) | Extensions to address utilization and neighbor cache processing functions of IPv6 | |
CN113472699A (zh) | 一种网络表项同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201229 |