CN110944068A - 从重复网络地址自动恢复 - Google Patents

从重复网络地址自动恢复 Download PDF

Info

Publication number
CN110944068A
CN110944068A CN201910885997.6A CN201910885997A CN110944068A CN 110944068 A CN110944068 A CN 110944068A CN 201910885997 A CN201910885997 A CN 201910885997A CN 110944068 A CN110944068 A CN 110944068A
Authority
CN
China
Prior art keywords
network
address
network interface
assigned
temporary
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.)
Granted
Application number
CN201910885997.6A
Other languages
English (en)
Other versions
CN110944068B (zh
Inventor
J·乔斯
P·德恩
R·托马斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN110944068A publication Critical patent/CN110944068A/zh
Application granted granted Critical
Publication of CN110944068B publication Critical patent/CN110944068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本公开的实施例涉及从重复网络地址自动恢复。网络中的网络设备可以确定针对网络设备的网络接口的临时网络地址,并且可以确定临时网络地址是否与网络中的任何一个网络地址重复。如果临时网络地址与被分配给网络中的另一网络接口的网络地址重复,则网络设备可以存储另一网络接口的指示。响应于接收到新的网络地址被分配给该另一网络接口的指示,网络设备可以重新确定临时网络地址是否与网络中的任何一个网络地址重复。如果网络设备确定临时网络地址不与网络中的多个网络地址中的任何一个网络地址重复,则网络设备可以将临时网络地址分配给网络接口。

Description

从重复网络地址自动恢复
技术领域
本公开涉及计算机网络,并且更特别地涉及计算机网络内的网络设备的网络地址。
背景技术
计算机网络是交换数据和共享资源的互连网络设备的集合。网络设备可以被实现为物理设备(例如,台式计算机、服务器和网络装置),或者可以被部署为虚拟设备(例如,在虚拟基础设施上执行的虚拟机)。在一些网络中,虚拟或物理网络设备的每个网络接口都被分配唯一的硬件地址,诸如介质访问控制(MAC)地址。
当网络设备加入计算机网络的网络段时,网络设备可以根据互联网协议版本6(IPv6)来自动配置其网络接口。例如,网络设备可以生成针对网络接口的链路本地地址,链路本地地址是针对网络接口的、仅对网络设备所连接的网络段内的通信有效的网络地址。网络设备还可以生成对网络段之外的网络内的通信有效的全局网络地址。因为网络设备可能在接收到与网络段中的其他网络接口相关联的链路本地地址的指示之前生成链路本地地址,所以网络设备可能生成已与网络段中的另一网络接口相关联的链路本地地址。因此,当网络设备生成链路本地地址时,网络设备可以执行重复地址检测,以验证网络段内链路本地地址的唯一性。在S.Thomson等,“IPv6 Stateless Address Autoconfiguration”,Network Working Group Request for Comments(RFC)4862,2007年9月中描述了执行重复地址检测的细节。
发明内容
总体上,本公开描述了用于在针对网络段中的网络设备的网络接口的网络地址被确定为与已被分配给网络段中的另一网络接口的网络地址重复时自动恢复的技术。
本文所描述的技术可以提供一个或多个优点。通过执行自动恢复来解决针对网络段中的网络设备的网络接口的网络地址被确定为与已被分配给网络段中的另一网络接口的网络地址重复时的情况,本文所描述的技术可以减少连接到网络段的网络接口和网络设备的管理员执行这样的恢复可能需要的手动干预的量。
此外,通过减少所需的手动干预量,本文所描述的技术还可以减少解决被分配给网络段内的网络接口的重复网络地址所花费的时间量。相反,当需要手动干预时,管理员可能不会立即知道重复网络地址的情况,也不能立即执行从重复网络地址手动恢复,从而延迟从重复链路本地地址恢复。
在网络段中的网络设备可能存在于不同的数据中心、不同的互联网服务提供方、不同的云提供方、不同的供应方和/或不同的管理域中的情况下,这些数据中心、服务提供方、供应方、管理域等中的每一个中的不同管理员以及时的方式彼此通信和协调来解决重复网络地址可能是困难且耗时的。通过能够解决在网络段中的网络设备的网络接口的网络地址被确定为与已被分配给网络段中的另一网络接口的网络地址重复时的情况,以生成针对网络接口的有效的、不冲突的网络地址,本文所描述的技术可以减少其可能花费的时间量并且可以减少或消除管理员进行通信或协调的潜在需要,以便网络设备从生成针对网络接口的重复网络地址中恢复,并且以便网络设备生成针对网络接口的有效网络地址。
在一方面,本公开涉及一种方法。方法包括:由网络段中的网络设备确定临时网络地址,该临时网络地址针对与网络设备相关联的第一网络接口。方法还包括:由网络设备确定临时网络地址是否与多个网络地址中的任何一个网络地址重复,该多个网络地址被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口。方法还包括:响应于确定临时网络地址与被分配给多个其他网络接口的第二网络接口的网络地址重复,由网络设备存储第二网络接口的指示。方法还包括:响应于接收到新的网络地址被分配给第二网络接口的指示,由网络设备重新确定临时网络地址是否与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复。方法还包括:响应于确定临时网络地址不与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复,由网络设备将临时网络地址分配给第一个网络接口。
在另一方面,本公开涉及一种网络设备。网络设备包括可连接到网络段的第一网络接口。网络设备还包括存储器。网络设备还包括可操作地耦合到存储器和网络接口的处理电路系统。处理电路系统被配置为:确定网络段中的临时网络地址,该临时网络地址针对网络设备的第一网络接口。处理电路系统还被配置为:确定临时网络地址是否与多个网络地址中的任何一个网络地址重复,该多个网络地址被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口。处理电路系统还被配置为:响应于确定临时网络地址与被分配给多个其他网络接口中的第二网络接口的网络地址重复,将第二网络接口的指示存储在存储器中。处理电路系统还被配置为:响应于接收到新的网络地址被分配给第二网络接口的指示,重新确定临时网络地址是否与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复。处理电路系统还被配置为:响应于确定临时网络地址不与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复,将临时网络地址分配给第一个网络接口。
在另一方面,本公开涉及一种网络设备的存储指令的非瞬态计算机可读存储介质。该指令在由网络设备的处理电路系统执行时,使网络设备的处理电路系统:确定网络段中的临时网络地址,该临时网络地址针对与网络设备相关联的第一网络接口。该指令在由网络设备的处理电路系统执行时,还使网络设备的处理电路系统:确定临时网络地址是否与多个网络地址中的任何一个网络地址重复,该多个网络地址被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口。该指令在由网络设备的处理电路系统执行时,还使网络设备的处理电路系统:响应于确定临时网络地址与被分配给多个其他网络接口中的第二网络接口的网络地址重复,存储第二网络接口的指示。该指令在由网络设备的处理电路系统执行时,还使网络设备的处理电路系统:响应于接收到新的网络地址被分配给第二网络接口的指示,重新确定临时网络地址是否与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复。该指令在由网络设备的处理电路系统执行时,还使网络设备的处理电路系统:响应于确定临时网络地址不与被分配给与网络段中的多个其他网络设备相关联的多个其他网络接口的多个网络地址中的任何一个网络地址重复,将临时网络地址分配给第一网络接口。
在附图和以下描述中阐述了本文所描述的技术的一个或多个示例的细节。根据描述和附图以及权利要求,本文所描述的技术的其他特征、目的和优点将显而易见。
附图说明
图1A和图1B是图示根据本公开中描述的技术的网络系统的框图,其中网络设备可以从生成网络段中的重复的网络地址中恢复。
图2是图示根据本文所描述的技术的示例网络设备的框图,该示例网络设备被配置为解决由网络设备确定的临时网络地址与网络段中的另一网络地址重复时的情况。
图3A和图3B图示了根据本公开中描述的技术的用于跟踪网络接口的示例数据结构。
图4A和图4B是图示根据本公开中描述的技术的用于执行从生成重复网络地址自动恢复的示例过程的流程图。
图5是图示根据本公开中描述的技术的用于执行从生成重复网络地址自动恢复的示例过程的流程图。
具体实施方式
图1A和图1B是图示根据本公开中描述的技术的网络系统2的框图,其中网络设备10A可以从生成网络段4中的重复网络地址中恢复。如图1A和图1B所示,网络系统2包括网络段4和网络设备10A-10N(“网络设备10”)。网络设备10可以包括连接到网络段4的网络接口8A-8Q(“网络接口8”)。网络设备10中的每一个可以包括网络接口8中的一个或多个。
网络段4可以是计算机网络的一部分,其例如通过桥接器、路由器或交换机与计算机网络的其余部分分离。网络段4可以包括有助于经由网络接口8的、网络设备10之间的通信的各种设备和网络链路。例如,网络段4可以包括一个或多个路由器、集线器、中继器和/或交换机。网络段4的示例可以包括以太网网络、无线网络或其他类型的网络。
连接到网络段4的网络接口8可以各自被分配唯一的链路本地地址,其用于在网络段4内标识网络接口8中的每一个网络接口。网络接口8也可以各自被分配唯一的全局网络地址,其用于在计算机网络内、网络段4之外标识网络接口8中的每一个网络接口。例如,网络段4可以是局域网,而计算机网络的其余部分可以是诸如互联网的广域网。在该示例中,网络接口8可以连接到网络段4和互联网两者。网络接口8可以通过被分配给网络接口8的链路本地地址在网络段4内被标识,并且可以通过被分配给网络接口8的全局网络地址在网络段4之外且在互联网内被标识。
网络设备10A可以包括各种类型的计算设备。例如,网络设备10A可以包括路由器、交换机、服务器计算机、刀片式服务器、个人计算机、移动计算设备(例如,平板计算机、智能电话)或其他类型的配备网络的计算设备。网络设备10B-10N可以各自包括类似类型的配备网络的计算设备。
网络设备10A还可以包括网络接口8A。网络接口8A可以是将网络设备10A连接到网络段4的任何合适的硬件、软件或软件和硬件的组合。在一些示例中,网络接口8A可以是物理接口,诸如网络接口控制器(NIC),该物理接口可以是将网络设备10A连接到网络段4的计算机硬件组件。在其他示例中,网络接口8A可以是在网络设备10A的一个或多个处理器上执行的虚拟机的网络接口。在网络接口8A是虚拟机的网络接口的示例中,网络接口8A可以与网络设备10A的NIC通信,以将网络设备10A连接到网络段4。尽管网络设备10A被示为包括单个网络接口8A,但是网络设备10A可以包括任何数目的网络接口,并且网络接口8A可以是网络设备10A中的任何数目的网络接口中的一个的示例。网络接口8B-8Q各自可以包括类似类型的网络接口。
网络设备10A还可以包括重复地址恢复应用12。重复地址恢复应用12可以在网络设备10A的处理电路系统上执行,并且可以将处理电路系统配置为执行本公开中描述的示例技术。例如,网络设备10A的存储器可以存储处理电路系统取回和执行的、用于重复地址恢复应用的计算机可读指令。然后,指令的执行将处理电路系统配置为执行本公开中描述的示例操作。在一些示例中,处理电路系统可以是固定功能电路系统(例如,具有不可变操作)和可编程电路系统的组合。例如,处理电路系统可以包括一个或多个处理器,并且作为一个示例,处理器将包括可编程核和固定功能电路系统。
网络设备10A还可以包括数据存储库14。数据存储库14可以包括用于存储可以由重复地址恢复应用12使用以执行本公开中描述的示例技术的数据的任何合适的计算机可读存储设备。
当网络设备加入网络段时,网络设备可以对网络设备中包括的一个或多个网络接口进行自动配置,以确定针对网络设备中包括的一个或多个网络接口中的每一个网络接口的链路本地地址,从而在网络段内唯一地标识网络设备中包括的一个或多个网络接口中的每一个网络接口。网络设备还可以对网络设备中包括的一个或多个网络接口进行自动配置,以确定针对一个或多个网络接口中的每一个网络接口的全局网络地址,从而在网络内唯一地标识一个或多个网络接口中的每一个网络接口,其中网络段是网络的一部分。全局网络地址的示例可以包括互联网协议版本4(IPv4)地址、互联网协议版本6(IPv6)地址等。网络设备可以以各种方式中的一种或多种方式生成链路本地地址和全局网络地址。例如,网络设备可以自动生成针对网络接口的链路本地地址和全局网络地址。在另一示例中,网络设备可以选择针对在MAC地址池、全局网络地址池和链路本地地址池之外的网络设备上执行的虚拟机的网络接口的MAC地址、全局网络地址以及链路本地地址。在一些示例中,网络设备可以至少部分地基于被分配给网络设备的MAC地址来导出针对网络设备的链路本地地址。
如图1A所示,网络设备10A可以自动配置其网络接口8A,包括确定针对网络接口8A的链路本地地址,以在网络段4内唯一地标识网络接口8A。如上所述,网络设备10A可以以任何合适的方式来确定链路本地地址。例如,网络设备10A可以至少部分地基于网络接口8A的MAC地址来导出64位扩展唯一标识符(EUI-64)格式的链路本地地址,作为与网络接口8A相关联的链路本地地址。在其他示例中,网络设备10A可以确定不基于网络接口8A的MAC地址的、针对网络接口8A的链路本地地址。
因为链路本地地址唯一地标识网络段4中的特定网络接口,所以网络段4中的网络接口8中的每一个必须与唯一的链路本地地址相关联,该唯一的链路本地地址不同于与网络接口8中的其他网络接口相关联的任何其他链路本地地址,以避免网络流量被发送到不正确的目的地。因此,网络设备10A可以确定针对网络接口8A的临时链路本地地址,并且重复地址恢复应用12可以在网络设备10A上执行,以在网络设备10A将临时链路本地地址分配给网络接口8A之前,确定临时链路本地地址是否与和连接到网络段4的另一网络接口(即,网络接口8B-8Q中的一个)相关联的任何其他链路本地地址相同。
响应于生成针对网络接口8A的临时链路本地地址,重复地址恢复应用12可以确定临时链路本地地址是否与被分配给连接到网络段4的多个其他网络接口(即,网络接口8B-8Q中的一个)的多个链路本地地址中的任何一个重复。例如,重复地址恢复应用12可以基于RFC 4862(上文引用的)中描述的技术来执行重复地址检测。作为执行重复地址检测的一部分,重复地址恢复应用12可以向连接到网络段4的网络设备10B-10N中的每一个发送相邻方请求消息16A,相邻方请求消息16A包括由网络设备10A生成的临时链路本地地址的指示。在图1的示例中,相邻方请求消息16A包括对针对网络接口8A生成的临时链路本地地址“fe80::3e61:04ff:feb6:ca95”的指示。
网络设备10B-10N中的每一个可以接收相邻方请求消息16A,并且可以将由相邻方请求消息16A指示的临时链路本地地址与被分配给网络设备10B-10N中的相应网络接口8B-8Q的链路本地地址进行比较。如果来自网络设备10B-10N的网络设备确定所指示的临时链路本地地址与已被分配给网络设备中的网络接口的链路本地地址相同,则网络设备可以响应于相邻方请求消息,向发送相邻方请求消息的网络设备发送相邻方通告消息,以指示该链路本地地址已在网络段4中使用。
在图1A的示例中,网络设备10A针对网络接口8A生成的临时链路本地地址可能与已被分配给网络设备10B的网络接口8B的链路本地地址相同。因此,响应于从网络设备10A接收到相邻方请求消息16A,网络设备10B可以向网络设备10A发送相邻方通告消息18A,以指示由网络设备10A生成的临时链路本地地址与被分配给网络设备10A的网络接口8B的链路本地地址重复。
相邻方通告消息可以包括标识已被分配给网络段4中的、与网络设备10A生成的临时链路本地地址相同的链路本地地址的网络接口(例如,网络接口8B)的信息。例如,相邻方通告消息18A可以包括与网络接口8B相关联的链路本地地址的指示、与网络接口8B相关联的全局网络地址的指示、与网络接口8B相关联的MAC地址等。全局网络地址可以是在网络段4之外的网络上标识网络接口8B的网络地址,例如,在诸如互联网的网络中标识网络接口8B的IPv6地址。在图1的示例中,相邻方通告消息18A可以包括被分配给网络接口8B的MAC地址“fe80::3e61:04ff:feb6:ca95”的指示、被分配给网络接口8B的全局网络地址“2002:8192:5666:9915”的指示、以及被分配给网络接口8B的链路本地地址“fe80:3e61:04ff:feb6:ca95”的指示。
由于网络设备10B响应于接收到来自网络设备10A的相邻方请求消息16A而发送相邻方通告消息18A,因此由网络设备10B发送的相邻方通告消息18A是经请求的相邻方通告消息。这与可以由网络设备10中的一个不响应于接收到相邻方请求消息而发送的未经请求的相邻方通告消息不同。
重复地址恢复应用12可以至少部分地基于其是否从其他网络设备10B-10N中的一个接收到响应于由网络设备10A发送的相邻方请求消息的经请求的相邻方通告,确定网络设备10A针对网络接口8A生成的临时链路本地地址是否与被分配给连接到网络段4的其他网络接口(即,网络接口8B-8Q)的多个链路本地地址中的任何一个重复。如果网络设备10A没有从其他网络设备10B-10N中的一个接收到响应于由网络设备10A发送的相邻方请求消息的经请求的相邻方通告,则重复地址恢复应用12可以确定临时链路本地地址不与被分配给连接到网络段4的其他网络接口8B-8Q的任何一个链路本地地址重复。另一方面,如果网络设备10A从网络设备10B-10N中的一个接收到响应于由网络设备10A发送的相邻方请求消息的经请求的相邻方通告消息,则重复地址恢复应用12可以确定临时链路本地地址与已被分配给连接到网络段4的其他网络接口8B-8Q中的一个网络接口的链路本地地址重复。
在图1的示例中,网络设备10A可以接收网络设备10B响应于接收到来自网络设备10A的相邻方请求消息16A而发送的相邻方通告消息18A。响应于接收到来自网络设备10B的相邻方通告消息18A,重复地址恢复应用12可以确定由网络设备10A生成的临时链路本地地址与已被分配给网络接口8B的链路本地地址重复。因此,网络设备10A不能将临时生成的链路本地地址分配给网络接口8A。
根据本公开的各方面,重复地址恢复应用12可以响应于确定由网络设备10A针对网络接口8A生成的临时链路本地地址与被分配给网络段4中的另一网络接口的链路本地地址重复,根据该确定执行自动恢复,以将网络接口8A与有效链路本地地址相关联,该有效链路本地地址不与网络段4中的被分配给网络接口8B-8Q的任何其他链路本地地址重复。重复地址恢复应用12可以执行这样的自动恢复,以等待网络段4中的被分配给其他网络接口8B-8Q的链路本地地址改变,而无需在网络设备10A处、例如由网络设备10A的管理员进行任何手动干预。通过执行自动恢复,重复地址恢复应用12能够通过将网络接口8A与有效链路本地地址相关联来解决临时链路本地地址与被分配给网络设备8B的链路本地地址重复的情形,该有效链路本地地址不与网络段4中的、和其他网络接口8B-8Q相关联的任何其他链路本地地址重复。
重复地址恢复应用12可以根据重复地址确定执行自动恢复,该重复地址确定至少部分地基于对当前与网络设备10A针对网络接口8A生成的临时链路本地地址相同的链路本地地址相关联的网络接口进行跟踪。因为由网络设备10A接收的经请求的相邻方通告消息指示网络接口8B是当前与网络设备10A针对网络接口8A生成的临时链路本地地址相同的链路本地地址相关联的网络接口,所以重复地址恢复应用12可以跟踪网络接口8B来确定网络接口8B何时被分配给新的链路本地地址。
因为被分配给网络接口8B的新的链路本地地址将不同于先前被分配给网络接口8B的链路本地地址,所以当新的链路本地地址被分配给网络接口8B时,临时链路本地地址将不再与被分配给网络接口8B的链路本地地址重复。因此,当网络接口8B被分配给新的链路本地地址时,网络设备10A可以能够将临时链路本地地址分配给网络接口8A。
重复地址恢复应用12可以跟踪网络接口8B,以至少部分地基于由网络设备10B发送的相邻方通告消息中包括的信息来确定网络接口8B是否已被分配给新的链路本地地址。特别地,网络设备10A可以在数据存储库14中存储网络接口8B的指示,使得当网络设备10A接收到指示新的链路本地地址已被分配给来自网络接口8B-8Q的网络接口的消息时,重复地址恢复应用12可以使用网络接口8B的指示来确定消息是否指示新的链路本地地址已被分配给网络接口8B。
被存储在网络设备10A的数据存储库14中的网络接口8B的指示可以包括由网络设备10B发送的相邻方通告消息中包括的信息,该信息唯一地标识网络8B并且即使在网络接口8B将其自身与新的链路本地地址相关联时也不会改变。如上所述,由网络设备10B发送的相邻方通告消息可以包括与网络接口8B相关联的链路本地地址的指示、与网络接口8B相关联的全局网络地址的指示、与网络接口8B相关联的MAC地址等。
因为当网络接口8B与新的链路本地地址相关联时,与网络接口8B相关联的链路本地地址将改变,所以网络设备10A不能仅通过存储被分配给网络接口8B的链路本地地址的指示来跟踪网络接口8B。此外,如果至少部分地基于与网络接口8B相关联的MAC地址生成与网络接口8B相关联的链路本地地址,例如在与网络接口8B相关联的链路本地地址是EUI-64格式的情况下,则网络接口8B的链路本地地址的改变指示被分配给网络接口8B的MAC地址也已改变。在这种情况下,重复地址恢复应用12可能无法通过存储与网络接口8B相关联的MAC地址的指示来跟踪网络接口8B,因为在被分配给网络接口8B的链路本地地址改变时,与网络接口8B相关联的MAC地址将改变。替代地,为了跟踪网络接口8B,重复地址恢复应用12可以将与网络接口8B相关联的全局网络地址的指示存储在数据存储库14中。
在数据存储库14中存储网络接口的指示可以包括存储网络接口的指示和网络接口的当前链路本地地址之间的关联。以这种方式,重复地址恢复应用12可以将被分配给被跟踪的网络接口的新的链路本地地址与被存储在数据存储库14中的被跟踪的网络接口的链路本地地址进行比较,以确定新的链路本地地址是否不同于被跟踪的网络接口的链路本地地址。在数据存储库14存储被分配给被跟踪的网络接口的全局网络地址的指示的示例中,数据存储库14可以存储被分配给被跟踪的网络接口的当前链路本地地址与被跟踪的网络接口的全局网络地址之间的关联。
当被分配给网络接口的链路本地地址已改变时,例如当新的链路本地地址被分配给网络接口时,包括该网络接口的网络设备可以向网络段内的网络设备发送未经请求的相邻方通告消息,以指示新的链路本地地址被分配给该网络接口。如上所述,未经请求的相邻方通告消息不是响应于相邻方请求消息而发送的相邻方通告消息。
类似于经请求的相邻方通告消息,未经请求的相邻方通告消息可以包括已改变其相关联的链路本地地址的网络接口的指示。例如,当网络设备10B向网络接口8B分配新的链路本地地址时,网络设备10B可以将未经请求的相邻方通告消息20A发送到连接到网络段4的网络设备10A和10C-10N,未经请求的相邻方通告消息20A包括与网络接口8B相关联的新的链路本地地址的指示、与网络接口8B相关联的全局网络地址的指示、与网络接口8B相关联的MAC地址等。
在图1的示例中,未经请求的相邻方通告消息20A可以包括被分配给网络接口8B的MAC地址“3c:61:04:b6:ca:78”的指示、被分配给网络接口8B的全局网络地址“2002:8192:5666:9915”的指示以及被分配给网络接口8B的新的链路本地地址“fe80:3e61:04ff:feb6:ca78”的指示。虽然被分配给网络接口8B的全局网络地址保持与之前相同,但被分配给网络接口8B的新的链路本地地址不同于先前被分配给网络接口8B的链路本地地址“fe80:3e61:04ff:feb6:ca95”,并且被分配给网络接口8B的新MAC地址也不同于先前被分配给网络接口8B的MAC地址。
当网络设备10A接收到未经请求的相邻方通告消息20B时,重复地址恢复应用12可以基于被存储在数据存储库14中的网络接口指示来确定未经请求的相邻方通告消息20B是否与由网络设备10A跟踪的网络接口(例如,网络接口8B)相关联。如果是,则重复地址恢复应用12可以确定未经请求的相邻方通告消息20B是否指示新的链路本地地址被分配给由网络设备10A跟踪的网络接口中的一个网络接口。
如果网络设备10A在数据存储库14中存储被分配给由网络设备10A跟踪的网络接口的全局网络地址的指示,则重复地址恢复应用12可以通过确定由未经请求的相邻方通告消息20A指示的全局网络地址是否与由网络设备10存储在数据存储库14中的、被分配给网络接口8B的全局网络地址相匹配,来确定未经请求的相邻方通告消息20A是否与由网络设备10A跟踪的网络接口8B相关联。
响应于确定未经请求的相邻方通告消息20A与由网络设备10A跟踪的网络接口(例如,网络接口8B)相关联,重复地址恢复应用12可以确定未经请求的相邻方通告消息20A是否指示新的链路本地地址被分配给网络接口8B。重复地址恢复应用12可以将未经请求的相邻方通告消息20A中指示的MAC地址与被存储在数据存储库14中的、被分配给网络接口8B的MAC地址进行比较。如果未经请求的相邻方通告消息20A中指示的MAC地址不同于被存储在数据存储库14中的、被分配给网络接口8B的链路本地地址,则重复地址恢复应用12可以确定网络接口8B被分配给新的链路本地地址。
响应于确定网络接口8B被分配给新的链路本地地址,重复地址恢复应用12可以重新确定针对网络接口8A生成的临时链路本地地址是否与网络段4中被分配给网络接口8B-8Q的多个链路本地地址中的任何一个重复。例如,网络设备10A可以向网络段4中的其他网络设备10B-10N重新发送包括临时链路本地地址的指示的相邻方请求消息16A。响应于没有从其他网络设备10B-10N中的任一网络设备接收到响应于相邻方请求消息16A的相邻方通告消息,重复地址恢复应用12可以确定针对网络接口8A生成的临时链路本地地址不与被分配给网络段4中的网络接口8B-8Q的多个链路本地地址中的任何一个链路本地地址重复。
响应于确定临时链路本地地址不与被分配给网络段4中的网络接口8B-8Q的多个链路本地地址中的任何一个链路本地地址重复,网络设备10A可以将临时链路本地地址分配给网络接口8B,使得临时链路本地地址是被分配给网络接口8B的链路本地地址。以这种方式,网络设备10A可以执行从生成重复链路本地地址自动恢复。
还可以执行本文所公开的技术来确定被分配给网络接口的临时全局网络地址是否与已被分配给网络接口的全局网络地址重复。如图1B所示,网络设备10A可以自动配置其网络接口8A,包括确定针对网络接口8A的临时网络地址。确定针对网络接口8A的临时网络地址可以包括确定针对网络接口8A的全局网络地址,以唯一地标识网络内的网络接口8A。网络设备10A可以以任何合适的方式来确定全局网络地址。
由于全局网络地址唯一地标识包括网络段4的网络中的特定网络接口,因此网络中的网络接口8中的每一个必须与唯一的全局网络地址相关联,该唯一的全局网络地址不同于与网络接口8中的其他网络接口相关联的其他全局网络地址中的任一全局网络地址,以避免网络流量被发送到不正确的目的地。因此,网络设备10A可以确定针对网络接口8A的临时全局网络地址,并且重复地址恢复应用12可以在网络设备10A上执行,以在网络设备10A将临时全局网络地址分配给网络接口8A之前,确定临时全局网络地址是否与和连接到网络段4的另一网络接口8(即,网络接口8B-8Q中的一个网络接口)相关联的其他全局网络地址中的任一全局网络地址相同。
响应于针对网络接口8A生成临时全局网络地址,重复地址恢复应用12可以确定临时全局网络地址是否与被分配给连接到网络段4的多个其他网络接口(即,网络接口8B-8Q中的一个网络接口)的多个全局网络地址中的任何一个全局网络地址重复。例如,重复地址恢复应用12可以执行重复地址检测。作为执行重复地址检测的一部分,重复地址恢复应用12可以向连接到网络段4的网络设备10B-10N中的每一个发送相邻方请求消息16B,相邻方请求消息16B包括由网络设备10A生成的临时全局网络地址的指示。在图1B的示例中,相邻方请求消息16B包括针对网络接口8A生成的临时全局网络地址“2002:8192:5666:9915”的指示。
网络设备10B-10N中的每一个可以接收相邻方请求消息16B,并且可以将由相邻方请求消息16B指示的临时全局网络地址与被分配给网络设备10B-10N中的相应网络接口8B-8Q的全局网络地址进行比较。如果来自网络设备10B-10N的网络设备确定所指示的临时全局网络地址与已被分配给网络设备中的网络接口的全局网络地址相同,则网络设备可以响应于相邻方请求消息,向发送相邻方请求消息的网络设备发送相邻方通告消息,以指示全局网络地址已被分配给网络段4中的另一网络接口。
在图1的示例中,网络设备10A针对网络接口8A生成的临时全局网络地址可以与已被分配给网络设备10B的网络接口8B的全局网络地址相同。因此,响应于接收到来自网络设备10A的相邻方请求消息16B,网络设备10B可以向网络设备10A发送相邻方通告消息18B,以指示由网络设备10A生成的临时全局网络地址与被分配给网络设备10A的网络接口8B的全局网络地址重复。
相邻方通告消息可以包括标识已被分配给网络段4中的、与网络设备10A生成的临时全局网络地址相同的全局网络地址的网络接口(例如,网络接口8B)的信息。例如,相邻方通告消息可以包括与网络接口8B相关联的链路本地地址的指示、与网络接口8B相关联的全局网络地址的指示、与网络接口8B相关联的MAC地址等。在图1B的示例中,相邻方通告消息18B可以包括被分配给网络接口8B的MAC地址“3c:61:04:b6:ca:95”的指示、被分配给网络接口8B的全局网络地址“2002:8192:5666:9915”的指示、以及被分配给网络接口8B的链路本地地址“fe80:3e61:04ff:feb6:ca95”的指示。
因为网络设备10B响应于接收到来自网络设备10A的相邻方请求消息16B而发送相邻方通告消息18B,所以由网络设备10B发送的相邻方通告消息18B是经请求的相邻方通告消息。这与可以由网络设备10中的一个网络设备发送的、未响应于接收到相邻方请求消息的未经请求的相邻方通告消息不同。
重复地址恢复应用12可以至少部分地基于其是否从其他网络设备10B-10N中的一个接收到响应于网络设备10A发送的相邻方请求消息的经请求的相邻方通告,确定网络设备10A针对网络接口8A生成的临时全局网络地址是否与被分配给连接到网络段4的其他网络接口(即,网络接口8B-8Q)的多个全局网络地址中的任何一个全局网络地址重复。如果网络设备10A没有从其他网络设备10B-10N中的一个接收到响应于网络设备10A发送的相邻方请求消息的经请求的相邻方通告,则重复地址恢复应用12可以确定临时全局网络地址不与被分配给连接到网络段4的其他网络接口8B-8Q的全局网络地址中的任何一个全局网络地址重复。另一方面,如果网络设备10A从网络设备10B-10N中的一个接收到响应于网络设备10A发送的相邻方请求消息的经请求的相邻方通告消息,则重复地址恢复应用12可以确定临时全局网络地址与已被分配给连接到网络段4的其他网络接口8B-8Q中的一个网络接口的全局网络地址重复。
在图1B的示例中,网络设备10A可以接收网络设备10B响应于接收到来自网络设备10A的相邻方请求消息16B而发送的相邻方通告消息18B。响应于接收到来自网络设备10B的相邻方通告消息18B,重复地址恢复应用12可以确定由网络设备10A生成的临时全局网络地址与已被分配给网络接口8B的全局网络地址重复。因此,网络设备10A不能将临时全局网络地址分配给网络接口8A。
根据本公开的各方面,重复地址恢复应用12可以响应于确定由网络设备10A针对网络接口8A生成的临时全局网络地址与被分配给网络段4中的另一网络接口的全局网络地址重复,根据该确定执行自动恢复,以将网络接口8A与有效全局网络地址相关联,该有效全局网络地址不与被分配给网络段4中的网络接口8B-8Q的任何其他全局网络地址重复。重复地址恢复应用12可以执行这样的自动恢复,以等待被分配给网络段4中的其他网络接口8B-8Q的全局网络地址改变,而无需在网络设备10A处、例如由网络设备10A的管理员进行任何手动干预。通过执行自动恢复,重复地址恢复应用12可以能够通过将网络接口8A与有效全局网络地址相关联来解决临时全局网络地址与被分配给网络设备8B的链路本地地址重复的情形,该有效全局网络地址不与网络段4中的其他网络接口8B-8Q相关联的任何其他全局网络地址重复。
重复地址恢复应用12可以根据重复地址确定来执行自动恢复,该重复地址确定至少部分地基于跟踪当前与网络设备10A针对网络接口8A生成的临时全局网络地址相同的全局网络地址相关联的网络接口。因为网络设备10A接收的经请求的相邻方通告消息指示网络接口8B是当前与由网络设备10A针对网络接口8A生成的临时全局网络地址相同的全局网络地址相关联的网络接口,所以重复地址恢复应用12可以跟踪网络接口8B来确定网络接口8B何时被分配给新的全局网络地址。
因为被分配给网络接口8B的新的全局网络地址将不同于先前被分配给网络接口8B的全局网络地址,所以当新的链路本地地址被分配给网络接口8B时,临时全局网络地址将不再与被分配给网络接口8B的全局网络地址重复。因此,当网络接口8B被分配给新的全局网络地址时,网络设备10A可以能够将临时全局网络地址分配给网络接口8A。
重复地址恢复应用12可以至少部分地基于网络设备10B发送的相邻方通告消息中包括的信息来跟踪网络接口8B,以确定网络接口8B是否已被分配给新的全局网络地址。特别地,网络设备10A可以在数据存储库14中存储网络接口8B的指示,使得当网络设备10A接收到指示新的全局网络地址已被分配给来自网络接口8B-8Q的网络接口的消息时,重复地址恢复应用12可以使用网络接口8B的指示来确定消息是否指示新的全局网络地址已被分配给网络接口8B。
被存储在网络设备10A的数据存储库14中的网络接口8B的指示可以包括由网络设备10B发送的相邻方通告消息中包括的信息,该信息唯一地标识网络8B并且即使在网络接口8B将其自身与新的全局网络地址相关联时也不会改变。如上所述,网络设备10B发送的相邻方通告消息可以包括与网络接口8B相关联的链路本地地址的指示、与网络接口8B相关联的全局网络地址的指示、与网络接口8B相关联的MAC地址等。
因为当网络接口8B与新的全局网络地址相关联时,与网络接口8B相关联的全局网络地址将改变,所以网络设备10A不能仅通过存储被分配给网络接口8B的全局网络地址的指示来跟踪网络接口8B。替代地,网络设备10A可以存储被分配给网络接口8B的MAC地址的指示,因为当新的全局网络地址被分配给网络接口8B时,被分配给网络接口8B的MAC地址可能不一定改变。
重复地址恢复应用12可以通过在数据存储库14中存储与网络接口8B相关联的MAC地址的指示来跟踪网络接口8B。在数据存储库14中存储网络接口的指示可以包括存储网络接口的指示和网络接口的当前全局网络地址之间的关联。以这种方式,重复地址恢复应用12可以将被分配给被跟踪的网络接口的新的全局网络地址与被存储在数据存储库14中的被跟踪的网络接口的全局网络地址进行比较,以确定新的全局网络地址是否与被跟踪的网络接口的全局网络地址不同。在数据存储库14存储被分配给被跟踪的网络接口的MAC地址的指示的示例中,数据存储库14可以存储被分配给被跟踪的网络接口的MAC地址与被跟踪的网络接口的全局网络地址之间的关联。在数据存储库14存储被分配给被跟踪的网络接口的全局网络地址的指示的示例中,数据存储库14可以存储被分配给被跟踪的网络接口的MAC地址与被跟踪的网络接口的全局网络地址之间的关联。
当被分配给网络接口的全局网络地址已改变时,例如当新的全局网络地址被分配给网络接口时,包括网络接口的网络设备可以向网络段内的网络设备发送未经请求的相邻方通告消息,以指示新的全局网络地址被分配给网络接口。如上所述,未经请求的相邻方通告消息不是响应于相邻方请求消息而发送的相邻方通告消息。
类似于经请求的相邻方通告消息,未经请求的相邻方通告消息可以包括已改变其相关联的全局网络地址的网络接口的指示。例如,当网络设备10B向网络接口8B分配新的全局网络地址时,网络设备10B可以将未经请求的相邻方通告消息20B发送给连接到网络段4的网络设备10A和10C-10N,未经请求的相邻方通告消息20B包括与网络接口8B相关联的新的全局网络地址的指示、与网络接口8B相关联的MAC地址等。
在图1B的示例中,未经请求的相邻方通告消息20B可以包括被分配给网络接口8B的MAC地址“3c:61:04:b6:ca:95”的指示,以及被分配给网络接口8B的新的全局网络地址“2002:8192:5666:9756”的指示。虽然被分配给网络接口8B的MAC地址保持与之前相同,但是被分配给网络接口8B的新的全局网络地址不同于先前被分配给网络接口8B的全局网络地址“2002:8192:5666:9915”。
当网络设备10A接收未经请求的相邻方通告消息20B时,重复地址恢复应用12可以基于被存储在数据存储库14中的网络接口的指示来确定未经请求的相邻方通告消息20B是否与由网络设备10A跟踪的网络接口(例如,网络接口8B)相关联。如果是,则重复地址恢复应用12可以确定未经请求的相邻方通告消息20B是否指示新的全局网络地址被分配给由网络设备10A跟踪的网络接口中的一个网络接口。
重复地址恢复应用12可以通过确定由未经请求的相邻方通告消息20B指示的MAC地址是否与被存储在数据存储库14中的、被分配给网络接口8B的MAC地址相匹配,来确定未经请求的相邻方通告消息20B是否与例如由网络设备10A跟踪的网络接口8B相关联。响应于确定未经请求的相邻方通告消息20B与由网络设备10A跟踪的网络接口(例如,网络接口8B)相关联,重复地址恢复应用12可以确定未经请求的相邻方通告消息20B是否指示新的全局网络地址被分配给网络接口8B。重复地址恢复应用12可以将未经请求的相邻方通告消息20B中指示的全局网络地址与被存储在数据存储库14中的、被分配给网络接口8B的全局网络地址进行比较。如果未经请求的相邻方通告消息20B中指示的全局网络地址不同于被存储在数据存储库14中的、被分配给网络接口8B的全局网络地址,则重复地址恢复应用12可以确定网络接口8B被分配给新的全局网络地址。
响应于确定网络接口8B被分配给新的全局网络地址,重复地址恢复应用12可以重新确定针对网络接口8A生成的临时全局网络地址是否与被分配给网络段4中的网络接口8B-8Q的多个全局网络地址中的任何一个全局网络地址重复。例如,网络设备10A可以向网络段4中的其他网络设备10B-10N重新发送包括临时全局网络地址的指示的相邻方请求消息16B。响应于没有从其他网络设备10B-10N中的任何网络设备接收到响应于相邻方请求消息16B的相邻方通告消息,重复地址恢复应用12可以确定针对网络接口8A生成的临时全局网络地址不与被分配给网络段4中的网络接口8B-8Q的多个全局网络地址中的任何一个全局网络地址重复。
响应于确定临时全局网络地址不与被分配给网络段4中的网络接口8B-8Q的多个全局网络地址中的任何一个全局网络地址重复,网络设备10A可以将临时全局网络地址分配给网络接口8B,使得临时全局网络地址是被分配给网络接口8B的全局网络地址。以这种方式,网络设备10A可以执行从生成重复全局网络地址自动恢复。
图2是图示根据本文所描述的技术的示例网络设备的框图,该示例网络设备被配置为解决由网络设备确定的临时网络地址与网络段中的另一网络地址重复时的情况。如图2所示,网络设备10A可以包括路由器(诸如提供方边缘或客户边缘路由器、核路由器)或其他类型的网络设备(诸如交换机)。网络设备10A可以包括为设备提供控制平面功能性的控制单元32。网络设备10A还可以包括多个转发单元30A-30N(“转发单元30”)和交换结构26,其一起提供用于处理网络流量的数据平面。
转发单元30经由接口卡22A-22N(“IFC 22”)的接口接收并发送数据分组,每个接口卡与转发单元30中的相应的一个转发单元相关联。IFC 22可以是图1中所示的网络接口8的示例,使得IFC 22中的一个或多个可以包括图1中所示的网络接口8A。转发单元30及其相关联的IFC 22中的每一个可以表示可插入网络设备10的机箱(未示出)内的单独线卡。在整个本公开中,可以将IFC 22称为一个或多个网络接口。示例线卡包括柔性可编程集成电路(PIC)集中器(FPC)、密集端口集中器(DPC)和模块化端口集中器(MPC)。IFC 22中的每一个可以包括用于层2(L2)技术的各种组合的接口,包括以太网、千兆以太网(GigE)和同步光学网络(SONET)接口,该接口提供用于传输网络分组的L2接口。在各个方面,转发单元30中的每一个可以包括更多或更少的IFC。交换结构26提供转发单元30之间的高速互连,以用于将传入数据分组转发到转发单元30的出口转发单元,以通过包括网络设备10A的网络(诸如图1中所示的网络段4)输出。
控制单元32通过内部通信链路34连接到转发单元30中的每一个。内部通信链路34可以包括例如100Mbps以太网连接。控制单元32通过经由内部通信链路34发送指令和其他配置数据,将转发单元30配置为限定被应用于由转发单元30接收的分组的控制处理操作。
控制单元32执行多个应用。应用中的每一个可以表示由控制单元操作系统管理的单独过程。由控制单元32执行的应用中的一个或多个可以运行网络管理软件、执行路由协议以与对等路由设备进行通信、维护并更新一个或多个路由表、以及创建安装到转发单元30的一个或多个转发表等功能。
控制单元可以包括重复地址恢复应用12、地址生成应用36和数据存储库14。控制单元32可以执行地址生成应用36,以生成针对网络设备10A的网络接口(诸如图1A和图1B中所示的网络接口8A)的临时链路本地地址。控制单元32可以执行重复地址恢复应用12,以执行图1A和图1B中所描述的技术,从而确定临时链路本地地址是否与被分配给连接到网络段(例如,网络段4)的多个其他网络接口的多个链路本地地址中的任何一个链路本地地址重复,并解决其中恢复应用12确定临时链路本地地址与被分配给连接到网络段的另一网络接口的另一链路本地地址重复的情况。
重复地址恢复应用12可以发送指示由地址生成应用36生成的临时链路本地地址的相邻方请求消息16A。重复地址恢复应用12可以从另一网络设备(例如,网络设备10B)接收相邻方通告消息18A,相邻方通告消息18A指示连接到网络段4的另一网络接口(例如,网络接口8B)已被分配给与临时链路本地地址相同的链路本地地址。响应于接收到相邻方通告消息18A,重复地址恢复应用12可以在数据存储库14中存储网络接口8B的指示。例如,重复地址恢复应用12可以在数据存储库14中存储网络接口8B的全局网络地址与网络接口8B的链路本地地址的关联。
随后,重复地址恢复应用12可以从相邻的网络接口接收未经请求的相邻方通告消息20A,相邻的网络接口是连接到与网络设备10A相同的网络段4的其他网络接口8B-8N中的一个网络接口。重复地址恢复应用12可以使用被存储在数据存储库14中的网络接口8B的指示来确定未经请求的相邻方通告消息是否从网络接口8B被发送,并且如果是,则确定未经请求的相邻方通告消息20A是否指示新的链路本地地址被分配给网络接口8B。
响应于确定新的链路本地地址被分配给网络接口8B,重复地址恢复应用12可以确定由地址生成应用12生成的临时链路本地地址不再与当前被分配给网络接口8B的链路本地地址重复,并且重复地址恢复应用12可以重新确定临时链路本地地址是否与被分配给连接到网络段4的网络设备的任何其他网络接口的链路本地地址中的任何一个链路本地地址重复。
类似地,重复地址恢复应用12可以发送指示由地址生成应用36生成的临时全局网络地址的相邻方请求消息16B。重复地址恢复应用12可以从另一网络设备(例如,网络设备10B)接收相邻方通告消息18B,相邻方通告消息18B指示连接到网络段4的另一网络接口(例如,网络接口8B)已被分配给与临时全局网络地址相同的全局网络地址。响应于接收到相邻方通告消息18B,重复地址恢复应用12可以在数据存储库14中存储网络接口8B的指示。例如,重复地址恢复应用12可以在数据存储库14中存储网络接口8B的MAC地址与网络接口8B的全局网络地址的关联。
随后,重复地址恢复应用12可以从相邻的网络接口接收未经请求的相邻方通告消息20B,相邻的网络接口是连接到与网络设备10A相同的网络段4的其他网络接口8B-8N中的一个网络接口。重复地址恢复应用12可以使用被存储在数据存储库14中的网络接口8B指示来确定未经请求的相邻方通告消息是否从网络接口8B被发送,并且如果是,则确定未经请求的相邻方通告消息是否指示新的全局网络地址被分配给网络接口8B。
响应于确定新的全局网络地址被分配给网络接口8B,重复地址恢复应用12可以确定由地址生成应用12生成的临时全局网络地址不再与当前被分配给网络接口8B的链路本地地址重复,并且重复地址恢复应用12可以重新确定临时全局网络地址是否与被分配给连接到网络段4的网络设备的任何其他网络接口的链路本地地址中的任何链路本地地址重复。
在一些示例中,应用12和36可以是守护进程,守护进程可以表示由网络设备10A的制造方开发和部署的用户级别进程。在这些示例中,应用12和36对于网络设备10A是“原生的”,因为应用12和36的开发由制造方小心地管理以有助于网络设备10A的安全、稳健和可预测的操作,这样的操作至少部分地根据操作方(例如,服务提供方、企业或网络设备10A制造方的其他客户)指定的配置来限定。
控制单元32可以包括一个或多个处理器(图2中未示出),一个或多个处理器执行软件指令,诸如用于限定软件或计算机程序的那些软件指令,软件指令被存储到计算机可读存储介质(再次地,图2中未示出),计算机可读存储介质诸如包括存储设备(例如,磁盘驱动器或光盘驱动器)的非瞬态计算机可读介质和/或诸如随机存取存储器(RAM)的存储器(包括诸如DDR2 SDRAM的各种形式的动态RAM(DRAM)或静态RAM(SRAM))、闪存、可用于以指令或数据结构的形式承载或存储所需程序代码和程序数据并且可以由处理器访问的另一形式的固定或可移除存储介质、或存储指令以使一个或多个处理器执行本文所述的技术的任何其他类型的易失性或非易失性存储器。备选地或附加地,控制单元32可以包括用于执行本文所描述的技术的专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)或专用硬件的前述示例中的一个或多个的任何组合。
转发单元30中的每个转发单元包括至少一个分组处理器24,至少一个分组处理器24在分组遍历网络设备10的内部架构时,通过在相应的内部分组转发路径上对每个分组执行一系列操作来处理分组。转发单元40A的分组处理器24A例如包括一个或多个可配置硬件芯片(例如,芯片集),一个或多个可配置硬件芯片在由控制单元32上执行的应用配置时,限定将由转发单元30接收的分组执行的操作。在一些示例中,每个芯片集可以表示“分组转发引擎”(PFE)。每个芯片集可以包括不同的芯片,其各自具有专用功能,例如,排队、缓冲、接口和查找/分组处理。芯片中的每一个可以表示基于专用集成电路(ASIC)的硬件逻辑、基于现场可编程门阵列(FPGA)的硬件逻辑或其他可编程硬件逻辑。单个转发单元30可以包括一个或多个分组处理器24。
在一些示例中,转发单元30而不是控制单元32可以包括重复地址恢复应用12、地址生成应用36和数据存储库14。转发单元30可以执行重复地址恢复应用12和地址生成应用36以执行整个本公开所描述的技术。
例如,可以通过对应的入口接口、入口转发单元30、出口转发单元30、出口接口或分组在出口之前所指向的网络设备10A的其他组件(例如,一个或多个服务卡)中的任何一个,对每个分组执行操作。分组处理器24处理分组,以标识分组属性并执行绑定到属性的动作。分组处理器24中的每一个包括转发路径元件,转发路径元件在被执行时,使分组处理器检查每个分组的内容(或诸如传入接口的另一分组属性),并且基于此做出转发决策、应用过滤器和/或执行例如记帐、管理、流量分析和负载平衡。分组处理的结果确定分组由转发单元30的分组处理器24从其在IFC 22中的一个上的输入接口到其在IFC 22中的一个上的输出接口(至少在一些情况下)被转发或以其他方式被处理的方式。
图3A和图3B图示了根据本公开中描述的技术的用于跟踪网络接口的示例数据结构。图3A和图3B所示的示例数据结构可以被存储在图1A、图1B和图2中所图示的数据存储库14中。图3A和图3B中所示的示例数据结构可以被实现为任何合适的数据结构,诸如数据库记录、数组、链表、哈希表、数据文件、电子表格等。
如图3A所示,网络设备10A可以使用数据结构40A来跟踪具有经分配的全局网络地址的网络接口(例如,网络接口8B),经分配的全局网络地址与网络设备10A针对网络接口8A生成的临时全局网络地址相同。数据结构40A可以包括MAC地址数据字段44A和全局网络地址数据字段46A。MAC地址数据字段44A可以存储被分配给由网络设备10A跟踪的网络接口的MAC地址的指示,并且全局网络地址数据字段46A可以存储被分配给由网络设备10A跟踪的网络接口的全局网络地址的指示。例如,MAC地址数据字段44A可以存储被分配给由网络设备10A跟踪的网络接口8B的MAC地址的指示,并且全局网络地址数据字段46A可以存储被分配给由网络设备10A跟踪的网络接口8B的全局网络地址的指示。以这种方式,数据结构40A表示被分配给网络接口8B的MAC地址与被分配给网络接口8B的全局网络地址的关联,并且网络设备10A将被分配给网络接口8B的MAC地址与被分配给网络接口8B的全局网络地址的关联存储在数据存储库14中,作为数据结构40A。
如图3B所示,网络设备10A可以使用数据结构40B来跟踪具有经分配的链路本地地址的网络接口(例如,网络接口8B),经分配的链路本地地址与网络设备10A针对网络接口8A生成的临时链路本地地址相同。在被分配给网络段4中的网络接口8的链路本地地址是从被分配给网络接口8的MAC地址生成的情况下,诸如当链路本地地址是EUI-64格式时,网络设备10A可以使用数据结构40B。
数据结构40B可以包括全局网络地址数据字段44B、链路本地地址数据字段46B和MAC地址数据字段48。全局网络地址数据字段44B可以存储被分配给由网络设备10A跟踪的网络接口的全局网络地址的指示,并且链路本地地址数据字段46B可以存储被分配给由网络设备10A跟踪的网络接口的链路本地地址的指示。MAC地址数据字段48可以存储被分配给由网络设备10A跟踪的网络接口的MAC地址的指示。例如,全局网络地址数据字段44B可以存储被分配给由网络设备10A跟踪的网络接口8B的全局网络地址的指示,链路本地地址数据字段46B可以存储被分配给由网络设备10A跟踪的网络接口8B的链路本地地址的指示,以及MAC地址数据字段48可以存储被分配给由网络设备10A跟踪的网络接口8B的MAC地址的指示。以这种方式,数据结构40B表示被分配给网络接口8B的全局网络地址、被分配给网络接口8B的链路本地地址和被分配给网络接口8B的MAC地址的关联,并且网络设备10A将被分配给网络接口8B的全局网络地址、被分配给网络接口8B的链路本地地址以及被分配给网络接口8B的MAC地址的关联存储在数据存储库14中,作为数据结构40B。
图4A和图4B是图示根据本公开中描述的技术的用于执行从生成重复全局网络地址自动恢复的示例过程的流程图。图4A和图4B相对于图1A的网络系统2以及图1A、图1B和图2的网络设备10A和10B进行图示。在图4A和图4B中被图示为由网络设备10A执行的技术可以由例如在网络设备10A处执行的重复地址恢复应用12来执行。如图4A所示,网络设备10A可以生成针对网络接口8A的临时链路本地地址(52),并且可以通过向网络段4中的其他网络设备10B-10N发送相邻方请求消息,诸如图1A中所示的相邻方请求消息16A,来执行重复地址检测(DAD),该相邻方请求消息包括所生成的临时链路本地地址的指示(54)。
网络设备10B可以接收相邻方请求消息(56),并且可以响应于接收到相邻方请求消息16A且进一步响应于确定相邻方请求消息16A中指示的临时链路本地地址与被分配给网络接口8B的链路本地地址重复,向网络设备10A发送相邻方通告消息,诸如相邻方通告消息18A,以指示相邻方请求消息16A中指示的临时链路本地地址与被分配给网络接口8B的链路本地地址重复(58)。
网络设备10A可以从网络设备10B接收相邻方通告消息18A(60),并且作为响应,可以确定针对网络接口8A生成的临时链路本地地址与被分配给网络接口8B的链路本地地址重复(62)。确定针对网络接口8A生成的临时链路本地地址与被分配给网络接口8B的链路本地地址重复可以包括确定网络接口8A的MAC地址也与网络接口8B的MAC地址重复。响应于确定针对网络接口8A生成的临时链路本地地址与被分配给网络接口8B的链路本地地址重复,网络设备10A可以跟踪网络接口8B(64)。网络设备10A可以通过例如在图3B所示的数据结构40B中存储被分配给网络接口8B的链路本地地址与被分配给网络接口8B的全局网络地址的关联来跟踪网络接口8B。
在发送相邻方通告消息18A之后,网络设备10B可以在稍后的时间点向网络接口8B分配新的MAC地址,该相邻方通告消息18A指示相邻方请求消息中指示的链路本地地址与关联于网络接口8B的链路本地地址重复(66)。因为网络设备10B基于被分配给网络接口8B的MAC地址来确定被分配给网络接口8B的链路本地地址,所以向网络接口8B分配新的MAC地址包括向网络接口8B分配新的链路本地地址。响应于新的链路本地地址被分配给网络接口8B,网络设备10B可以向网络段4中的其他网络设备发送未经请求的相邻方通告消息,诸如未经请求的相邻方通告消息20A(68)。未经请求的相邻方通告消息可以包括被分配给网络接口8B的全局网络地址的指示和被分配给网络接口8B的MAC地址的指示。
网络设备10A可以从网络设备10B接收未经请求的相邻方通告消息20A(70),并且可以基于未经请求的相邻方通告消息20来确定新的链路本地地址是否被分配给由网络设备10A跟踪的网络接口8B(72)。确定新的链路本地地址是否被分配给由网络设备10A跟踪的网络接口8B包括确定未经请求的相邻方通告消息20A是否属于网络设备10A正在跟踪的网络接口(例如,网络接口8B),并且如果是,则确定未经请求的相邻方通告消息20A是否指示新的链路本地地址被分配给由网络设备10跟踪的网络接口8B。
网络设备10A可以基于被存储在未经请求的相邻方通告消息20A中的信息来确定未经请求的相邻方通告消息20A是否属于网络设备10A正在跟踪的网络接口(例如,网络接口8B)。例如,网络设备10A可以确定由未经请求的相邻方通告消息20A指示的全局网络地址是否与被存储在网络设备10A中的、被分配给网络接口8B的全局网络地址相匹配。如果由未经请求的相邻方通告消息20A指示的全局网络地址与被存储在网络设备10A中的、被分配给网络接口8B的全局网络地址相匹配,则确定未经请求的相邻方通告消息20A属于由网络设备10A跟踪的网络接口8B。
响应于确定消息属于由网络设备10A跟踪的网络接口8B,网络设备10A可以确定消息是否指示新的链路本地地址已被分配给网络接口8B。网络设备可以将未经请求的相邻方通告消息20A中指示的MAC地址与被存储在网络设备10A中的、被分配给网络接口8B的MAC地址进行比较。如果在未经请求的相邻方通告消息20B中指示的MAC地址与被存储在网络设备10A中的、与网络接口8B的全局网络地址相关联的MAC地址之间不存在匹配,则网络设备10A可以确定其先前针对网络接口8A生成的临时链路本地地址不再与网络接口8B的链路本地地址重复。
响应于确定网络设备10A先前针对网络接口8A生成的链路本地地址不再与网络接口8B的新的链路本地地址重复,网络设备10A可以通过向网络段4中的其他网络设备10B-10N发送包括临时链路本地地址的指示的另一相邻方请求消息,诸如相邻方请求消息16A,针对先前生成的链路本地地址重新执行重复地址检测(74)。如果网络设备10B-10N均未响应于相邻方请求消息16A而发送相邻方通告消息来指示相邻方请求消息16A中指示的临时链路本地地址与当前被分配给网络接口8B-8Q中的一个网络接口的链路本地地址重复,则网络设备10A可以没有接收到响应于相邻方请求消息16A的相邻方通告消息。
响应于网络设备10A未接收到响应于相邻方请求消息16A的相邻方通告消息,网络设备10A可以确定针对网络接口8A生成的临时链路本地地址不与关联于网络段4中的任何其他网络接口的多个链路本地地址中的任何一个链路本地地址重复,并且可以将临时链路本地地址分配为针对网络接口8A的链路本地地址(76)。
如图4B所示,网络设备10A可以生成针对网络接口8A的临时全局网络地址(82),并且可以通过向网络段4中的其他网络设备10B-10N发送相邻方请求消息,诸如图1B中所示的相邻方请求消息16B,来执行重复地址检测,该相邻方请求消息包括所生成的临时全局网络地址的指示(84)。
网络设备10B可以接收相邻方请求消息(86),并且可以响应于接收到相邻方请求消息16B且进一步响应于确定相邻方请求消息16B中指示的临时全局网络地址与被分配给网络接口8B的全局网络地址重复,向网络设备10A发送相邻方通告消息,诸如相邻方通告消息18B,以指示相邻方请求消息16B中指示的临时全局网络地址与被分配给网络接口8B的全局网络地址重复(88)。
网络设备10A可以从网络设备10B接收相邻方通告消息18B(90),并且作为响应,可以确定针对网络接口8A生成的临时全局网络地址与被分配给网络接口8B的全局网络地址重复(92)。响应于确定针对网络接口8A生成的临时全局网络地址与被分配网络接口8B的全局网络地址重复,网络设备10A可以跟踪网络接口8B(94)。网络设备10A可以通过在诸如图3A所示的数据结构40A中存储被分配给网络接口8B的全局网络地址与被分配给网络接口8B的MAC地址的关联来跟踪网络接口8B。
在发送相邻方通告消息18B之后,网络设备10B可以在稍后的时间点将新的全局网络地址分配给网络接口8B,该相邻方通告消息18B指示相邻方请求消息中指示的全局网络地址与关联于网络接口8B的全局网络地址重复(96)。响应于新的全局网络地址被分配给网络接口8B,网络设备10B可以向网络段4中的其他网络设备发送未经请求的相邻方通告消息,诸如未经请求的相邻方通告消息20B(98)。
网络设备10A可以从网络设备10B接收未经请求的相邻方通告消息20B(100),并且可以基于未经请求的相邻方通告消息20B来确定新的全局网络地址是否被分配给由网络设备10A跟踪的网络接口8B(102)。确定新的全局网络地址是否被分配给由网络设备10A跟踪的网络接口8B包括确定未经请求的相邻方通告消息20B是否属于网络设备10A正在跟踪的网络接口(例如,网络接口8B),并且如果是,则确定未经请求的相邻方通告消息20B是否指示新的全局网络地址被分配给由网络设备10A跟踪的网络接口8B。
网络设备10A可以基于被存储在未经请求的相邻方通告消息20B中的信息来确定未经请求的相邻方通告消息20B是否属于网络设备10A正在跟踪的网络接口(例如,网络接口8B)。例如,网络设备10A可以确定由未经请求的相邻方通告消息20B指示的MAC地址是否与被存储在网络设备10A中的、被分配给网络接口8B的MAC地址相匹配,并且如果存在匹配,则确定未经请求的相邻方通告消息20B是否属于由网络设备10A正在跟踪的网络接口8B。
响应于确定消息属于由网络设备10A正在跟踪的网络接口8B,网络设备10A可以确定消息是否指示新的全局网络地址已被分配给网络接口8B。网络设备可以将如未经请求的相邻方通告消息20B中所指示的、被分配给网络接口8B的全局网络地址与被存储在网络设备10A中的、与网络接口8B的MAC地址相关联的全局网络地址进行比较。如果在未经请求的相邻方通告消息20B中指示的全局网络地址与被存储在网络设备10A中的、与网络接口8B的MAC地址相关联的全局网络地址之间不存在匹配,则网络设备10A可以确定其先前针对网络接口8A生成的临时全局网络地址不再与网络接口8B的全局网络地址重复。
响应于确定网络设备10A先前已针对网络接口8A生成的全局网络地址不再与网络接口8B的新的全局网络地址重复,网络设备10A可以通过向网络段4中的其他网络设备10B-10N发送另一相邻方请求消息,诸如相邻方请求消息16B,来针对先前生成的全局网络地址重新执行重复地址检测,该另一相邻方请求消息包括临时全局网络地址的指示(104)。如果网络设备10B-10N均未响应于相邻方请求消息16B而发送相邻方通告消息来指示相邻方请求消息16B中指示的临时链路本地地址与当前被分配给网络接口8B-8Q中的一个网络接口的全局网络地址重复,则网络设备10A可以没有接收到响应于相邻方请求消息16B的相邻方通告消息。
响应于网络设备10A未接收到响应于相邻方请求消息16B的相邻方通告消息,网络设备10A可以确定针对网络接口8A生成的临时全局网络地址不与关联于网络段4中的任何其他网络接口的多个全局网络地址中的任何一个全局网络地址重复,并且可以将临时全局网络地址分配为针对网络接口8A的链路本地地址(106)。
图5是图示根据本公开中所描述的技术、用于执行从生成重复链路本地地址自动恢复的示例过程的流程图。相对于图1A和图1B的网络系统2以及图1A和图1B的网络设备10A和10B来图示图5。在图5中被图示为由网络设备10A执行的技术可以由例如在网络设备10A处执行的重复地址恢复应用12来执行。如图5所示,网络段4中的网络设备10A可以确定临时网络地址,该临时网络地址针对与网络设备10A相关联的第一网络接口8A(202)。网络设备10A可以确定临时网络地址是否与多个网络地址中的任何一个网络地址重复,该多个网络地址被分配给与网络段4中的多个其他网络设备10B-10N相关联的多个其他网络接口8B-8Q(204)。网络设备10A可以响应于确定临时网络地址与被分配给多个其他网络接口8B-8Q中的第二网络接口8B的网络地址重复,在诸如数据存储库14中存储第二网络接口8B的指示(206)。网络设备10A可以响应于接收到新的网络地址被分配给第二网络接口8B的指示,重新确定临时网络地址是否与被分配给与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q的多个网络地址中的任何一个网络地址重复(208)。网络设备10A可以响应于确定临时网络地址不与被分配给与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q的多个网络地址中的任何一个网络地址重复,将临时网络地址分配给第一网络接口8A(210)。
在一些示例中,针对第一网络接口8A的临时网络地址包括针对第一网络接口8A的临时全局网络地址,被分配给多个其他网络接口8B-8Q的多个网络地址包括被分配给多个其他网络接口8B-8Q的多个全局网络地址,被分配给第二网络接口8B的网络地址包括被分配给第二网络接口8B的全局网络地址,并且新的网络地址包括新的全局网络地址。在一些示例中,存储第二网络接口8B的指示包括存储被分配给第二网络接口8B的介质访问控制(MAC)地址的指示。
在一些示例中,网络设备10A可以从与多个其他网络设备10B-10N相关联的多个其他网络接口8A-8Q中的一个其他网络接口接收未经请求的相邻方通告消息20B,其中未经请求的相邻方通告消息20B包括MAC地址的指示。网络设备10A可以响应于接收到未经请求的相邻方通告消息20B,确定被分配给第二网络接口8B的MAC地址是否与由未经请求的相邻方通告消息20B指示的MAC地址相同。网络设备10A可以响应于确定被分配给第二网络接口8B的MAC地址与由未经请求的相邻方通告消息20B指示的MAC地址相同,确定未经请求的相邻方通告消息20B指示新的全局网络地址被分配给第二网络接口8B。
在一些示例中,针对第一网络接口8A的临时网络地址包括针对第一网络接口8A的临时链路本地地址,被分配给多个其他网络接口8B-8Q的多个网络地址包括被分配给多个其他网络接口8B-8Q的多个链路本地地址,被分配给第二网络接口8B的网络地址包括被分配给第二网络接口8B的链路本地地址,并且新的网络地址包括新的链路本地地址。在一些示例中,被分配给第二网络接口8B的链路本地地址至少部分地基于被分配给第二网络接口8B的MAC地址而被确定,例如当链路本地地址是64位扩展唯一标识符(EUI-64)格式时,并且其中存储第二网络接口8B的指示包括存储被分配给第二网络接口8B的全局网络地址的指示以及被分配给第二网络接口的MAC地址的指示。
在一些示例中,网络设备10A可以接收未经请求的相邻方通告消息20A,未经请求的相邻方通告消息20A包括全局网络地址的指示和MAC地址的指示。网络设备10A可以响应于接收到未经请求的相邻方通告消息20A,确定被分配给第二网络接口8B的全局网络地址是否与未经请求的相邻方通告消息20A中指示的全局网络地址相同,以及被分配给第二网络接口8B的MAC地址是否与未经请求的相邻方通告消息20A中指示的MAC地址相同。响应于确定被分配给第二网络接口8B的全局网络地址与未经请求的相邻方通告消息20A中指示的全局网络地址相同,并且未经请求的相邻方通告消息20A中指示的MAC地址与被分配给第二网络接口的MAC地址不同,网络设备10A可以确定未经请求的相邻方通告消息20A指示新的全局网络地址被分配给第二网络接口8B。
在一些示例中,确定临时网络地址是否与被分配给与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q的多个网络地址中的任何一个网络地址重复还可以包括:由网络设备10A向与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q发送包括临时网络地址的指示的相邻方请求消息16A或16B,以及响应于从第二网络接口8B接收到响应于相邻方请求消息16A或16B的相邻方通告消息18A或18B,由网络设备10A确定临时网络地址与被分配给网络段4中的第二网络接口8B的网络地址重复。
在一些示例中,重新确定临时网络地址是否与被分配给与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q的多个网络地址中的任何一个网络地址重复还可以包括:网络设备10A向与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q发送包括临时网络地址的指示的相邻方请求消息16A或16B,以及响应于未接收到响应于相邻方请求消息16A或16B的相邻方通告消息,由网络设备10A确定临时网络地址不与被分配给与网络段4中的多个其他网络设备10A-10N相关联的多个其他网络接口8B-8Q的多个网络地址中的任何一个网络地址重复。
在一个或多个示例中,所描述的功能可以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码被存储于计算机可读介质上或经由计算机可读介质传输,且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质或者通信介质,计算机可读存储介质对应于诸如数据存储介质的有形介质,通信介质包括有助于例如根据通信协议将计算机程序从一个地方传送到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非瞬态的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以取回用于实现本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪存或可用于以指令或数据结构的形式存储所需程序代码并且可由计算机访问的任何其他介质。而且,任何连接都适当地被称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如,红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如,红外线、无线电和微波)都包含在介质的定义中。计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是涉及非瞬态有形存储介质。本文使用的磁盘和光盘包括光盘(CD)、激光光盘、光学磁盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光光学地再现数据。上述的组合也应被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路系统。因此,本文使用的术语“处理器”可以是指前述结构中的任何一个结构或适合于实现本文所描述的技术的任何其他结构。附加地,在一些方面,本文描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入组合的编解码器中。而且,技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在各种装置或设备中实现,包括无线手持机、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。而是,如上所述,各种单元可以被组合在编解码器硬件单元中或由互操作硬件单元的集合结合合适的软件和/或固件来提供,互操作硬件单元包括如上所述的实现一个或多个处理器的处理电路系统。
已描述了技术的各种实施例。这些和其他实施例在以下权利要求的范围内。

Claims (20)

1.一种方法,包括:
由网络段中的网络设备确定临时网络地址,所述临时网络地址针对与所述网络设备相关联的第一网络接口;
由所述网络设备确定所述临时网络地址是否与多个网络地址中的任何一个网络地址重复,所述多个网络地址被分配给与所述网络段中的多个其他网络设备相关联的多个其他网络接口;
响应于确定所述临时网络地址与被分配给所述多个其他网络接口中的第二网络接口的网络地址重复,由所述网络设备存储所述第二网络接口的指示;
响应于接收到新的网络地址被分配给所述第二网络接口的指示,由所述网络设备重新确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复;以及
响应于确定所述临时网络地址不与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复,由所述网络设备将所述临时网络地址分配给所述第一网络接口。
2.根据权利要求1所述的方法,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时全局网络地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个全局网络地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的全局网络地址;
所述新的网络地址包括新的全局网络地址;并且
存储所述第二网络接口的所述指示包括存储被分配给所述第二网络接口的介质访问控制(MAC)地址的指示。
3.根据权利要求2所述的方法,还包括:
由所述网络设备从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,由所述网络设备确定被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述MAC地址与所述未经请求的相邻方通告消息中指示的所述MAC地址相同,由所述网络设备确定所述未经请求的相邻方通告消息指示所述新的全局网络地址被分配给所述第二网络接口。
4.根据权利要求1所述的方法,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时链路本地地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个链路本地地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的链路本地地址;
所述新的网络地址包括新的链路本地地址;并且
被分配给所述第二网络接口的所述链路本地地址至少部分地基于被分配给所述第二网络接口的MAC地址而被确定,并且其中存储所述其他网络接口的所述指示包括存储被分配给所述第二网络接口的所述全局网络地址的指示以及被分配给所述第二网络接口的所述MAC地址的指示。
5.根据权利要求4所述的方法,还包括:
由所述网络设备从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括全局网络地址的指示和MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,由所述网络设备确定被分配给所述第二网络接口的所述全局网络地址是否与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,以及被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述全局网络地址与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,并且所述未经请求的相邻方通告消息中指示的所述MAC地址与被分配给所述第二网络接口的所述MAC地址不同,由所述网络设备确定所述未经请求的相邻方通告消息指示所述新的链路本地地址被分配给所述第二网络接口。
6.根据权利要求1至5中任一项所述的方法,其中确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复包括:
由所述网络设备向与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口发送相邻方请求消息,所述相邻方请求消息包括所述临时网络地址的指示;以及
响应于从所述第二网络接口接收到响应于所述相邻方请求消息的相邻方通告消息,由所述网络设备确定所述临时网络与被分配给所述网络段中的所述第二网络接口的所述网络地址重复。
7.根据权利要求1至5中任一项所述的方法,其中重新确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复包括:
由所述网络设备向与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口发送相邻方请求消息,所述相邻方请求消息包括所述临时网络地址的指示;以及
响应于未接收到响应于所述相邻方请求消息的相邻方通告消息,由所述网络设备确定所述临时网络地址不与被分配给与所述网络段中的所述多个其他网络设备相关联的所述其他网络接口的所述多个网络地址中的任何一个网络地址重复。
8.一种网络设备,包括:
可连接到网络段的第一网络接口;
存储器;以及
处理电路系统,所述处理电路系统可操作地耦合到所述存储器和所述网络接口,所述处理电路系统被配置为:
确定所述网络段中的临时网络地址,所述临时网络地址针对所述网络设备的所述第一网络接口;
确定所述临时网络地址是否与多个网络地址中的任何一个网络地址重复,所述多个网络地址被分配给与所述网络段中的多个其他网络设备相关联的多个其他网络接口;
响应于确定所述临时网络地址与被分配给所述多个其他网络接口中的第二网络接口的网络地址重复,将所述第二网络接口的指示存储在所述存储器中;
响应于接收到新的网络地址被分配给所述第二网络接口的指示,重新确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复;以及
响应于确定所述临时网络地址不与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复,将所述临时网络地址分配给所述第一网络接口。
9.根据权利要求8所述的网络设备,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时全局网络地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个全局网络地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的全局网络地址;
所述新的网络地址包括新的全局网络地址;并且
所述处理电路系统还被配置为:将被分配给所述第二网络接口的介质访问控制(MAC)地址的指示存储在所述存储器中。
10.根据权利要求9所述的网络设备,其中所述处理电路系统还被配置为:
从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,确定被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述MAC地址与所述未经请求的相邻方通告消息中指示的所述MAC地址相同,确定所述未经请求的相邻方通告消息指示所述新的全局网络地址被分配给所述第二个网络接口。
11.根据权利要求8所述的网络设备,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时链路本地地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个链路本地地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的链路本地地址;
所述新的网络地址包括新的链路本地地址;并且
被分配给所述第二网络接口的所述链路本地地址至少部分地基于被分配给所述第二网络接口的MAC地址而被确定,并且其中所述处理电路系统还被配置为:将被分配给所述第二网络接口的所述全局网络地址的指示和被分配给所述第二网络接口的所述MAC地址的指示存储在所述存储器中。
12.根据权利要求11所述的网络设备,其中所述处理电路系统还被配置为:
从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括全局网络地址的指示和MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,确定被分配给所述第二网络接口的所述全局网络地址是否与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,以及被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述全局网络地址与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,并且所述未经请求的相邻方通告消息中指示的所述MAC地址与被分配给所述第二网络接口的所述MAC地址不同,确定所述未经请求的相邻方通告消息指示所述新的链路本地地址被分配给所述第二网络接口。
13.根据权利要求8至12中任一项所述的网络设备,其中被配置为确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复的所述处理电路系统还被配置为:
向与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口发送相邻方请求消息,所述相邻方请求消息包括所述临时网络地址的指示和MAC地址的指示;以及
响应于从所述第二网络接口接收到响应于所述相邻方请求消息的相邻方通告消息,确定所述临时网络与被分配给所述网络段中的所述第二网络接口的所述网络地址重复。
14.根据权利要求8至12中任一项所述的网络设备,其中被配置为重新确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复的所述处理电路系统还被配置为:
向与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口发送相邻方请求消息,所述相邻方请求消息包括所述临时网络地址的指示;以及
响应于未接收到响应于所述相邻方请求消息的相邻方通告消息,确定所述临时网络地址不与被分配给与所述网络段中的所述多个其他网络设备相关联的所述其他网络接口的所述多个网络地址中的任何一个网络地址重复。
15.一种网络设备的存储指令的非瞬态计算机可读存储介质,所述指令在由所述网络设备的处理电路系统执行时,使所述网络设备的所述处理电路系统:
确定网络段中的临时网络地址,所述临时网络地址针对与所述网络设备相关联的第一网络接口;
确定所述临时网络地址是否与多个网络地址中的任何一个网络地址重复,所述多个网络地址被分配给与所述网络段中的多个其他网络设备相关联的多个其他网络接口;
响应于确定所述临时网络地址与被分配给所述多个其他网络接口中的第二网络接口的网络地址重复,存储所述第二网络接口的指示;
响应于接收到新的网络地址被分配给所述第二网络接口的指示,重新确定所述临时网络地址是否与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复;以及
响应于确定所述临时网络地址不与被分配给与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复,将所述临时网络地址分配给所述第一网络接口。
16.根据权利要求15所述的非瞬态计算机可读存储介质,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时全局网络地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个全局网络地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的全局网络地址;
所述新的网络地址包括新的全局网络地址;并且
所述指令在由所述网络设备的所述处理电路系统执行时,还使所述网络设备的所述处理电路系统存储被分配给所述第二网络接口的介质访问控制(MAC)地址的指示。
17.根据权利要求16所述的非瞬态计算机可读存储介质,其中所述指令在由所述网络设备的所述处理电路系统执行时,还使所述网络设备的所述处理电路系统:
从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,确定被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述MAC地址与所述未经请求的相邻方通告消息中指示的所述MAC地址相同,确定所述未经请求的相邻方通告消息指示所述新的全局网络地址被分配给所述第二个网络接口。
18.根据权利要求15所述的非瞬态计算机可读存储介质,其中:
针对所述第一网络接口的所述临时网络地址包括针对所述第一网络接口的临时链路本地地址;
被分配给所述多个其他网络接口的所述多个网络地址包括被分配给所述多个其他网络接口的多个链路本地地址;
被分配给所述第二网络接口的所述网络地址包括被分配给所述第二网络接口的链路本地地址;
所述新的网络地址包括新的链路本地地址;并且
被分配给所述第二网络接口的所述链路本地地址至少部分地基于被分配给所述第二网络接口的MAC地址而被确定,并且其中所述指令在由所述网络设备的所述处理电路系统执行时,还使所述网络设备的所述处理电路系统存储被分配给所述第二网络接口的所述全局网络地址的指示以及被分配给所述第二网络接口的所述MAC地址的指示。
19.根据权利要求18所述的非瞬态计算机可读存储介质,其中所述指令在由所述网络设备的所述处理电路系统执行时,还使所述网络设备的所述处理电路系统:
从与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口中的一个其他网络接口接收未经请求的相邻方通告消息,其中所述未经请求的相邻方通告消息包括全局网络地址的指示和MAC地址的指示;
响应于接收到所述未经请求的相邻方通告消息,确定被分配给所述第二网络接口的所述全局网络地址是否与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,以及被分配给所述第二网络接口的所述MAC地址是否与所述未经请求的相邻方通告消息中指示的所述MAC地址相同;以及
响应于确定被分配给所述第二网络接口的所述全局网络地址与所述未经请求的相邻方通告消息中指示的所述全局网络地址相同,并且所述未经请求的相邻方通告消息中指示的所述MAC地址与被分配给所述第二网络接口的所述MAC地址不同,确定所述未经请求的相邻方通告消息指示所述新的链路本地地址被分配给所述第二网络接口。
20.根据权利要求15至20中任一项所述的非瞬态计算机可读存储介质,其中在由所述网络设备的所述处理电路系统执行时使所述处理电路系统确定所述临时网络地址是否与被分配给所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口的所述多个网络地址中的任何一个网络地址重复的所述指令还使所述网络设备的所述处理电路系统:
向与所述网络段中的所述多个其他网络设备相关联的所述多个其他网络接口发送相邻方请求消息,所述相邻方请求消息包括所述临时网络地址的指示;以及
响应于从所述第二网络接口接收到响应于所述相邻方请求消息的相邻方通告消息,确定所述临时网络地址与被分配给所述网络段中的所述第二网络接口的所述网络地址重复。
CN201910885997.6A 2018-09-21 2019-09-19 从重复网络地址自动恢复的方法、网络设备及其存储介质 Active CN110944068B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/138,767 US11516179B2 (en) 2018-09-21 2018-09-21 Automatic recovery from duplicate network addresses
US16/138,767 2018-09-21

Publications (2)

Publication Number Publication Date
CN110944068A true CN110944068A (zh) 2020-03-31
CN110944068B CN110944068B (zh) 2022-06-10

Family

ID=67137588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910885997.6A Active CN110944068B (zh) 2018-09-21 2019-09-19 从重复网络地址自动恢复的方法、网络设备及其存储介质

Country Status (3)

Country Link
US (1) US11516179B2 (zh)
EP (1) EP3627801B1 (zh)
CN (1) CN110944068B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10992637B2 (en) 2018-07-31 2021-04-27 Juniper Networks, Inc. Detecting hardware address conflicts in computer networks
US11165744B2 (en) * 2018-12-27 2021-11-02 Juniper Networks, Inc. Faster duplicate address detection for ranges of link local addresses
US10931628B2 (en) 2018-12-27 2021-02-23 Juniper Networks, Inc. Duplicate address detection for global IP address or range of link local IP addresses
US10965637B1 (en) 2019-04-03 2021-03-30 Juniper Networks, Inc. Duplicate address detection for ranges of global IP addresses
US20210377296A1 (en) * 2020-05-29 2021-12-02 Avaya Management L.P. Method and system for discovering, reporting, and preventing duplicate address detection attacks
CN114285765A (zh) * 2020-09-18 2022-04-05 中兴通讯股份有限公司 链路故障检测方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761263A (zh) * 2004-10-14 2006-04-19 国际商业机器公司 避免网络地址冲突的系统和方法
JP2006253811A (ja) * 2005-03-08 2006-09-21 Ricoh Co Ltd 電子機器、ipアドレス決定方法、ipアドレス決定プログラム、ipアドレス決定プログラムを記録した記録媒体
CN102067570A (zh) * 2008-06-24 2011-05-18 高通股份有限公司 用于确保移动子网环境中IPv6的唯一性的方法和装置
CN107241455A (zh) * 2016-03-29 2017-10-10 瞻博网络公司 执行用于集成的路由和桥接设备的重复地址检测

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030026230A1 (en) * 2001-08-02 2003-02-06 Juan-Antonio Ibanez Proxy duplicate address detection for dynamic address allocation
GB2398704B (en) * 2003-02-21 2005-07-06 Toshiba Res Europ Ltd Address autoconfiguration in ad hoc networks
US8065515B2 (en) * 2007-04-23 2011-11-22 Cisco Technology, Inc. Autoconfigured prefix delegation based on distributed hash
US20100322420A1 (en) * 2009-06-18 2010-12-23 Arris Group, Inc. Duplicate Address Detection Proxy in Edge Devices
DE112012006382B4 (de) * 2012-05-17 2022-01-27 Mitsubishi Electric Corporation Kommunikationsvorrichtung und Kommunikationssystem
US9596210B2 (en) * 2014-04-08 2017-03-14 Arris Enterprises, Inc. Subscriber-aware duplicate address detection proxy in edge devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761263A (zh) * 2004-10-14 2006-04-19 国际商业机器公司 避免网络地址冲突的系统和方法
JP2006253811A (ja) * 2005-03-08 2006-09-21 Ricoh Co Ltd 電子機器、ipアドレス決定方法、ipアドレス決定プログラム、ipアドレス決定プログラムを記録した記録媒体
CN102067570A (zh) * 2008-06-24 2011-05-18 高通股份有限公司 用于确保移动子网环境中IPv6的唯一性的方法和装置
CN107241455A (zh) * 2016-03-29 2017-10-10 瞻博网络公司 执行用于集成的路由和桥接设备的重复地址检测

Also Published As

Publication number Publication date
US11516179B2 (en) 2022-11-29
EP3627801A1 (en) 2020-03-25
CN110944068B (zh) 2022-06-10
EP3627801B1 (en) 2022-04-13
US20200099654A1 (en) 2020-03-26

Similar Documents

Publication Publication Date Title
CN110944068B (zh) 从重复网络地址自动恢复的方法、网络设备及其存储介质
US20230029079A1 (en) Intelligent service layer for separating application from physical networks and extending service layer intelligence over ip across the internet, cloud, and edge networks
US11223494B2 (en) Service insertion for multicast traffic at boundary
US11070447B2 (en) System and method for implementing and managing virtual networks
US9621431B1 (en) Classification techniques to identify network entity types and determine network topologies
CA2968964C (en) Source ip address transparency systems and methods
EP2369782B1 (en) Multicasting within a distributed control plane of a switch
WO2012127886A1 (ja) ネットワークシステム、及びポリシー経路設定方法
EP3751805B1 (en) Method and device for processing multicast data packet
US9450914B2 (en) Distributed proxy addressing operations
US20120069842A1 (en) Multicasting within a distributed control plane of a switch
EP2731313A1 (en) Distributed cluster processing system and message processing method thereof
US10652145B2 (en) Managing data frames in switched networks
US11736393B2 (en) Leveraging multicast listener discovery for discovering hosts
US11924166B2 (en) Resource-path-based, dynamic group membership support for membership groups
EP3224998B1 (en) Method, device, carrier and computer progam for managing data frames in switched networks
CN111953620A (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
GR01 Patent grant
GR01 Patent grant