CN110754069B - 用于执行安全邻居发现的计算设备和方法 - Google Patents

用于执行安全邻居发现的计算设备和方法 Download PDF

Info

Publication number
CN110754069B
CN110754069B CN201980002874.1A CN201980002874A CN110754069B CN 110754069 B CN110754069 B CN 110754069B CN 201980002874 A CN201980002874 A CN 201980002874A CN 110754069 B CN110754069 B CN 110754069B
Authority
CN
China
Prior art keywords
local
remote
computing device
challenge
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980002874.1A
Other languages
English (en)
Other versions
CN110754069A (zh
Inventor
P·安德森
B·特朗布莱
S·克里希南
L·马钱德
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CN110754069A publication Critical patent/CN110754069A/zh
Application granted granted Critical
Publication of CN110754069B publication Critical patent/CN110754069B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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/5069Address allocation for group communication, multicast communication or broadcast communication
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • 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/604Address structures or formats
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

用于执行安全邻居发现的计算设备和方法。本地计算设备向远程计算设备传输经加密的本地节点标识符和经加密的本地质询。远程计算设备基于本地质询生成本地质询响应;并将经加密的远程节点标识符和经加密的本地质询响应传输到本地计算设备。本地计算设备确定接收到的本地质询响应与基于本地质询生成的预期本地质询响应相对应。远程计算设备还传输经加密的远程质询。本地计算设备基于远程质询生成远程质询响应;并将经加密的远程质询响应传输到远程计算设备。远程计算设备确定接收到的远程质询响应与基于远程质询生成的预期远程质询响应相对应。

Description

用于执行安全邻居发现的计算设备和方法
技术领域
本公开涉及数据中心领域。更具体而言,本公开涉及一种计算设备和方法,用于执行(位于数据中心的架构中的)计算设备的网络配置,包括执行安全邻居发现。
背景技术
近年来,已经见证了诸如软件即服务(SaaS)、云计算等技术的快速发展。这种发展得益于客户对基于此类技术的产品和服务的需求不断增长。底层技术的不断进步也为这种发展提供了动力,诸如微处理器的处理能力增加、存储设备的存储容量增加以及网络装备的传输容量提高。此外,这些底层技术的平均成本正在下降。但是,底层技术的平均成本的下降被增长的客户需求平衡,这需要不断更新和升级用于提供SaaS或云计算的基础设施。
用于提供SaaS或云计算的基础设施是数据中心,其组合了大量的计算服务器。每个服务器具有多个多核处理器,并且计算服务器的组合提供了由数据中心的客户使用的非常高的处理能力。这些服务器中的一些或全部可能还具有重要的存储容量,因此服务器的组合还向数据中心的客户提供了非常高的存储容量。数据中心还依赖于联网基础设施,用于将服务器互连并向数据中心的客户提供对其计算和/或存储容量的访问。为了提供可靠的服务,对数据中心的计算和联网基础设施提出了非常高的可伸缩性、可管理性、容错性等方面的要求。
关于数据中心的联网基础设施,公知的是向大量主机提供高效且可靠的联网服务是一项复杂的任务。已经在其它环境中开发了解决方案和技术,诸如用于向大量移动设备提供移动数据服务的联网技术。这些技术中的一些已经在专用情况(诸如互联网工程任务组(
Figure BDA0002309932040000021
)或第三代合作伙伴计划(3GPPTM))中被标准化。但是,在数据中心中部署高效且可靠的联网基础设施的至少一些技术挑战是特定于数据中心环境的;并且需要用原始的解决方案和技术来解决。
对于涉及大量(例如,成千上万)设备的联网基础设施的一个重大挑战是联网基础设施的配置。具体地,配置需要是灵活的(以便于更改初始配置)、有弹性的(以避免本地化配置错误影响整个数据中心的操作)和安全的(以阻止对联网基础设施的攻击)。确保网络配置灵活且可靠的一种方式是尽可能多地限制配置过程中的人为干预。确保网络配置安全的一种方式是在网络配置中包括安全质询(challenge)。
因此,需要一种用于通过位于数据中心的架构中的计算设备执行安全邻居发现的计算设备和方法。还需要一种执行计算设备的网络配置,包括生成架构范围的IPv6地址、执行安全邻居发现,以及生成一个或多个链路IPv6地址的方法。
发明内容
根据第一方面,本公开涉及第一计算设备。该计算设备包括通信接口和处理单元。处理单元确定用于通信接口的本地节点标识符,并生成本地质询。处理单元将本地节点标识符加密为经加密的本地节点标识符,并将本地质询加密为经加密的本地质询。处理单元经由通信接口传输发现请求消息,该发现请求消息包括经加密的本地节点标识符和经加密的本地质询。处理单元经由通信接口从远程计算设备接收发现响应消息,该发现响应消息包括经加密的远程节点标识符和经加密的本地质询响应。处理单元将经加密的本地质询响应解密为本地质询响应。处理单元至少基于本地质询生成预期本地质询响应。处理单元确定本地质询响应与预期本地质询响应相对应。处理单元将经加密的远程节点标识符解密为远程节点标识符。
根据第二方面,本公开涉及第二计算设备。该计算设备包括通信接口和处理单元。处理单元经由通信接口从远程计算设备接收发现请求消息,该发现请求消息包括经加密的远程节点标识符和经加密的远程质询。处理单元将经加密的远程节点标识符解密为远程节点标识符,并且将经加密的远程质询解密为远程质询。处理单元至少基于远程质询来生成远程质询响应。处理单元确定用于通信接口的本地节点标识符,并将本地节点标识符加密为经加密的本地节点标识符。处理单元将远程质询响应加密为经加密的远程质询响应。处理单元经由通信接口将包括经加密的本地节点标识符和经加密的远程质询响应的发现响应消息传输到远程计算设备。
根据第三方面,本公开涉及一种用于在数据中心的架构中执行安全邻居发现的方法。该方法包括由本地计算设备的本地处理单元确定用于本地计算设备的通信接口的本地节点标识符。该方法包括由本地处理单元生成本地质询。该方法包括由本地处理单元将本地节点标识符加密为经加密的本地节点标识符,并且将本地质询加密为经加密的本地质询。该方法包括经由本地计算设备的通信接口传输发现请求消息,该发现请求消息包括经加密的本地节点标识符和经加密的本地质询。该方法包括经由远程计算设备的通信接口接收发现请求消息。该方法包括由远程计算设备的远程处理单元将经加密的本地节点标识符解密为本地节点标识符,并且将经加密的本地质询解密为本地质询。该方法包括由远程处理单元至少基于本地质询生成本地质询响应。该方法包括由远程处理单元确定用于远程计算设备的通信接口的远程节点标识符。该方法包括由远程处理单元将远程节点标识符加密为经加密的远程节点标识符,并且将本地质询响应加密为经加密的本地质询响应。该方法包括经由远程计算设备的通信接口向本地计算设备传输发现响应消息,该发现响应消息包括经加密的远程节点标识符和经加密的本地质询响应。该方法包括经由本地计算设备的通信接口接收发现响应消息。该方法包括由本地处理单元将经加密的本地质询响应解密为本地质询响应。该方法包括由本地处理单元至少基于本地质询生成预期本地质询响应。该方法包括由本地处理单元确定本地质询响应与预期本地质询响应相对应。该方法包括由本地处理单元将经加密的远程节点标识符解密为远程节点标识符。
在一个特定方面,该方法还包括由远程处理单元生成远程质询并将该远程质询加密为经加密的远程质询。该方法还包括将经加密的远程质询传输到发现响应消息中。该方法还包括由本地处理单元将经加密的远程质询解密为远程质询。该方法还包括由本地处理单元至少基于远程质询来生成远程质询响应;以及将远程质询响应加密为经加密的远程质询响应。该方法还包括经由本地计算设备的通信接口向远程计算设备传输包括经加密的远程质询响应的发现确认消息。该方法还包括经由远程计算设备的通信接口接收发现确认消息。该方法还包括由远程处理单元将经加密的远程质询响应解密为远程质询响应。该方法还包括由远程处理单元至少基于远程质询来生成预期远程质询响应。该方法还包括由远程处理单元确定远程质询响应与预期远程质询响应相对应。
根据第四方面,本公开涉及一种计算设备。该计算设备包括通信接口和处理单元。处理单元确定用于通信接口的本地节点标识符。处理单元生成本地质询。处理单元将本地节点标识符和本地质询的组合加密为本地节点标识符和本地质询的经加密的组合。处理单元经由通信接口传输发现请求消息,该发现请求消息包括本地节点标识符和本地质询的经加密的组合。处理单元经由通信接口从远程计算设备接收发现响应消息,该发现响应消息包括远程节点标识符和本地质询响应的经加密的组合。处理单元将远程节点标识符和本地质询响应的经加密的组合解密为远程节点标识符和本地质询响应。处理单元至少基于本地质询生成预期本地质询响应。处理单元确定本地质询响应与预期本地质询响应相对应。
根据第五方面,本公开涉及一种计算设备。该计算设备包括通信接口和处理单元。处理单元经由通信接口从远程计算设备接收发现请求消息,该发现请求消息包括远程节点标识符和远程质询的经加密的组合。处理单元将远程节点标识符和远程质询的经加密的组合解密为远程节点标识符和远程质询。处理单元至少基于远程质询来生成远程质询响应。处理单元确定用于通信接口的本地节点标识符。处理单元将本地节点标识符和远程质询响应的组合加密为本地节点标识符和远程质询响应的经加密的组合。处理单元经由通信接口向远程计算设备传输发现响应消息,该发现响应消息包括本地节点标识符和远程质询响应的经加密的组合。
附图说明
将通过参考附图仅以示例的方式来描述本公开的实施例,其中:
图1表示包括多个部署点(pod)和架构的数据中心的网络体系架构;
图2表示图1中所示的架构的更详细的视图;
图3表示部署在图1-2的部署点和架构中的装备的通信端口;
图4A和图4B表示用于将图1-3中所示的架构的装备互连的IPv6网络;
图5图示了与部署在图1-3中所示的架构中的装备对应的计算设备的示意图;
图6表示用于生成架构范围的IPv6地址的方法;
图7A和图7B表示用于生成链路IPv6地址的方法;
图8A和图8B图示了将图7A和图7B的方法应用于图3的架构的装备;
图9A、图9B、图9C和图9D表示用于通过组合图6和图7A-7B的方法来执行网络配置的方法;
图10图示了应用于图3的架构的装备的图9A-9D的方法;以及
图11A、图11B和11C表示用于通过组合图6、图9A-9D和图7A-7B的方法的各方面中的一些方面来执行网络配置的方法。
具体实施方式
在阅读以下说明性实施例的非限制性描述之后,前述和其它特征将变得更加清楚,所述说明性实施例通过参考附图仅以示例的方式给出。
本公开的各个方面总体解决了与由位于数据中心的架构中的计算设备执行安全邻居发现相关的一个或多个问题;其中安全邻居发现基于安全质询。本公开还解决了计算设备的网络配置,包括架构范围的IPv6地址的生成、安全邻居发现的执行,以及一个或多个链路IPv6地址的生成。
具体实施方式
在阅读以下说明性实施例的非限制性描述之后,前述和其它特征将变得更加清楚,所述说明性实施例通过参考附图仅以示例的方式给出。
本公开的各个方面总体解决了与数据中心中的架构部署的执行相关的一个或多个问题,其中架构部署包括各种网络配置。
本公开将首先单独描述架构部署的各个方面,然后描述包括所有单独描述的方面的集成架构部署处理。单独描述的方面包括生成架构范围的IPv6地址、生成一个或多个链路IPv6地址,以及执行安全邻居发现。
数据中心的网络体系架构
现在同时参考图1-4,图示了数据中心的网络体系架构。图中表示的网络体系架构是出于说明目的,并且设计数据中心体系架构领域的技术人员将容易理解,可以做出其它设计选择。本公开的教导不限于图中表示的网络体系架构的拓扑;而是也可以应用于在拓扑方面具有不同设计选择的网络体系架构。
现在更具体地参考图1。数据中心被组织为多个部署点。每个部署点由计算、存储、联网和电源的原子单元组成。每个部署点都作为单元被设计、作为单元被部署、作为单元被自动化、作为单元被退役。可以使用若干种类型的部署点,它们的设计不同。数据中心中部署每种部署点的零个、一个或多个实例。为了说明的目的,在图1中表示了三个部署点(A、B和C)。但是,数据中心中的部署点的数量从一到数十到甚至数百个部署点不等。通过添加(或移除)部署点,可以伸缩数据中心在计算、存储、联网和电源方面的容量。
部署点A包括提供处理和存储能力的多个服务器300。取决于服务器300的数量和每个机架的容量,服务器300被物理地组织在一个或多个机架中。部署点A还包括被称为架构A的两层联网能力。架构A包括由叶子联网装备200组成的较低层,以及由主干联网装备100组成的较高层。架构A的联网装备(例如主干100和叶子200)物理地集成到包括服务器300的一个或多个机架上,或者替代地被物理地组织在一个或多个独立的机架中。
叶子联网装备200和主干联网装备100通常由具有高密度通信端口的交换机组成。因此,在本说明书的其余部分中,叶子联网装备200和主干联网装备100将分别被称为叶子交换机200和主干交换机100。但是,可以使用其它类型的联网装备。例如,在替代实施方式中,主干联网装备100中的至少一些由路由器组成。
每个叶子交换机200连接到至少一个主干交换机100和多个服务器300。连接到给定叶子交换机200的服务器300的数量取决于叶子交换机200的通信端口的数量。
在图1所示的实施方式中,每个服务器300冗余地连接到两个不同的叶子交换机200。给定部署点(例如,部署点A)的服务器300仅连接到属于给定部署点(例如,部署点A)的架构(例如,架构A)的叶子交换机200。给定部署点(例如,部署点A)的服务器300未连接到属于另一个部署点(例如,部署点B)的架构(例如,架构B)的叶子交换机200。给定架构(例如,架构A)的每个叶子交换机200连接到给定架构(例如,架构A)的所有主干交换机100。给定架构(例如,架构A)的叶子交换机200未连接到另一个架构(例如,架构B)的主干交换机100。在各图中未示出的替代实施方式中,服务器300中的至少一些连接到单个叶子交换机200。
每个主干交换机100连接到至少一个核心联网装备10,以及多个叶子交换机200。连接到给定主干交换机100的叶子交换机200的数量取决于设计选择和主干交换机100的通信端口的数量。核心联网装备10提供部署在数据中心中的架构之间的互通、与数据中心的管理功能的连接、与外部网络(诸如互联网)的连接等。此外,虽然为了简化目的未在图中表示,但是核心联网装备10中的至少一些可以连接到一对叶子交换机200。
核心联网装备10通常由路由器组成。因此,在本说明书的其余部分中,核心联网装备10将被称为核心路由器10。但是,可以使用其它类型的联网装备。例如,在替代实施方式中,核心联网装备10中的至少一些由交换机组成。
在图1所示的实施方式中,给定架构(例如,架构A)的每个主干交换机100连接到所有核心路由器10,并且连接到给定架构(例如,架构A)的所有叶子交换机200。
为了简化目的,图1中表示的架构A仅包括两个主干交换机100和四个叶子交换机200,而部署点A仅包括两组三个服务器300,其分别连接到架构A的叶子交换机200。架构的主干交换机100和叶子交换机200的数量可以基于主干和叶子交换机的设计选择和联网能力(例如,通信端口密度)而变化。类似地,基于设计选择、基于对应架构的叶子交换机200的数量,以及基于叶子交换机的联网能力(例如,通信端口密度),部署点的服务器300的总数可以变化。
为了简化目的,部署点B及其对应的架构B以及部署点C及其对应的架构C的细节未在图1中表示。但是,部署点B/架构B和部署点C/架构C包括主干交换机100、叶子交换机200和服务器300的层次结构,类似于为部署点A/架构A所示的层次结构。
现在更具体地参考图1和图2,其中图2表示图1的数据中心的实施方式,其中每个架构还包括一个或多个控制器400。仅为了简化目的,未在图2中表示服务器300。
架构的控制器400负责控制架构中包括的至少一些节点(例如,叶子交换机200和/或主干交换机100)的操作。每个控制器400连接到至少一个叶子交换机200。在给定架构中部署的控制器400的数量取决于设计选择、架构中部署的控制器400所需的累积处理能力、架构中部署的叶子交换机和主干交换机的总数,等等。
在图2表示的实施方式中,每个控制器400冗余地连接到两个不同的叶子交换机200。例如,每个控制器400具有到第一叶子交换机200的第一操作连接和到第二叶子交换机200的第二备用连接。给定架构(例如,架构A)的控制器400仅连接到该架构(例如,架构A)的叶子交换机200。给定架构(例如,架构A)的控制器400未连接到另一个架构(例如,架构B或C)的叶子交换机200。一些叶子交换机200专用于连接到控制器400(如图2所示),而其它叶子交换机200专用于连接到服务器300(如图1所示)。在替代实施方式中,叶子交换机200同时连接到服务器300和控制器400。
在另一个实施方式中,控制器400不直接物理连接到叶子交换机200;而是经由诸如在控制器400和叶子交换机200之间的中间交换机(图2中未表示)之类的至少一个中间装备在功能上连接。
现在更具体地参考图1、图2和图3,其中图3表示部署在架构/部署点中的装备的通信端口。
主干交换机100具有专用于与核心路由器10的互连的专用数量的上行链路通信端口(例如,在图3中表示的4个)和专用于与叶子交换机200的互连的专用数量的下行链路通信端口(例如,在图3中表示的6个)。上行链路端口和下行链路端口具有相同或不同的联网容量。例如,所有端口都具有10千兆字节(Gbps)的容量。
叶子交换机200具有专用于与主干交换机100的互连的专用数量的上行链路通信端口(例如,在图3中表示的3个),以及专用于与服务器300或控制器400的互连的专用数量的下行链路通信端口(例如,在图3中表示的6个)。上行链路端口和下行链路端口具有相同或不同的联网容量。例如,所有上行链路端口都具有100Gbps的容量,并且所有下行链路端口都具有25Gbps的容量。将来,上行链路端口的容量将达到200或400Gbps,而下行链路端口的容量将达到50Gbps或100Gbps。
叶子交换机和主干交换机通常由具有高密度通信端口的装备组成,这些装备可以达到数十个端口。端口中的一些端口可以是电端口,而其它端口是光纤端口。如前所述,在支持的带宽方面,交换机的端口可以具有变化的联网容量。通常使用具有不同联网容量和功能的交换机来实现叶子交换机和主干交换机。这些端口不限于通信端口,而且还包括用于连接各种类型的可插拔介质的外壳。
作为对照,服务器300和控制器400是类似于传统计算机的具有有限数量的通信端口的计算设备。例如,每个服务器300和每个控制器400包括两个通信端口,分别连接到两个不同的叶子交换机200。这两个通信端口通常由以太网端口组成,容量为例如10Gbps。但是,服务器300和/或控制器400可以包括(一个或多个)附加端口。
所有上述通信端口都是双向的,从而允许传输和接收数据。
现在更具体地参考图4A和图4B,它们表示IPv6网络20在架构级别的部署。
架构的至少一些装备连接到IPv6网络20并经由该IPv6网络交换数据。在图4A和图4B所示的配置中,所有的主干交换机100、叶子交换机200和控制器400都连接到IPv6网络20。每个架构(例如,如图1所示的架构A、B和C)都具有其自己的IPv6网络,每个架构具有专用的IPv6前缀。给定架构的专用IPv6前缀的生成将在本说明书后面图示。
可选地,附加装备连接到IPv6网络20。例如,如图4A和图4B所示,核心路由器10中的一个或多个连接到IPv6网络20。配置和/或管理服务器(为简化起见,未在图4A和图4B中示出)通过核心路由器10而具有对IPv6网络20的访问。
可选地,专用的交换机和/或路由器(为简化起见,未在图4A和图4B中示出)被用于互连架构A的经由IPv6网络20交换数据的装备。前述可选配置和/或管理服务器通过专用交换机和/或路由器而具有对IPv6网络20的访问。
图4A表示第一说明性配置,其中架构A的每个装备(主干交换机100、叶子交换机200和控制器400)具有用于访问IPv6网络20的专用端口21。IPv6网络20是与由架构A实现的其它IP网络隔离的配置和/或管理网络。主干交换机100、叶子交换机200和控制器400的专用端口21仅用于通过IPv6网络20交换数据。因此,经由主干交换机100、叶子交换机200和控制器400的专用端口21交换的IPv6流量与经由主干交换机100、叶子交换机200和控制器400的其它端口交换的流量隔离(如图3所示)。
图4B表示第二说明性配置,其中架构A的每个装备(主干交换机100、叶子交换机200和控制器400)不使用专用端口来访问IPv6网络20。相反,已经用于交换其它数据流量的端口(如图3所示)也用于访问IPv6网络20。
这种配置的优点在于,不会在架构A的每个装备(主干交换机100、叶子交换机200和控制器400)处仅为了访问IPv6网络20而独占专用端口。
在图中未示出的替代配置中,架构A的一些装备正在使用专用端口来访问IPv6网络20;但是,架构A的其它装备通过也用于交换其它数据流量的端口来访问IPv6网络20。
此外,架构A的一些装备可以使用一个以上的端口来访问IPv6网络20。
现在同时参考图4A-B和图5,在图5中图示了计算设备500。计算设备500是图4A和图4B的架构中包括的设备的一般功能表示。因此,计算设备500表示主干交换机100、叶子交换机200或控制器400。
计算设备500包括处理单元510、存储器520和至少一个通信接口530。计算设备500可以包括附加部件(为了简化目的,未在图5中示出)。例如,在计算设备500表示控制器400的情况下,计算设备可以包括用户界面和/或显示器。
处理单元510包括能够执行计算机程序的指令的一个或多个处理器(图5中未示出)。每个处理器还可以包括一个或若干个核心。在计算设备500表示交换机100或200的情况下,处理单元510还包括一个或多个用于执行专门联网功能(例如,分组转发)的专用处理部件(例如,网络处理器、专用集成电路(ASIC)等)。
存储器520存储由处理单元510执行的(一个或多个)计算机程序的指令、由处理单元510执行(一个或多个)计算机程序所生成的数据、经由(一个或多个)通信接口530接收到的数据等。在图5中仅表示了单个存储器520,但是计算设备500可以包括若干种类型的存储器,包括易失性存储器(诸如随机存取存储器(RAM))和非易失性存储器(诸如硬盘驱动器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)。
每个通信接口530允许计算设备500与其它设备交换数据。通信接口530中的至少一些(为了简化目的,在图5中仅示出了两个)对应于图4A和图4B中表示的主干交换机100、叶子交换机200和控制器400的端口。通信接口530的示例包括标准(电)以太网端口、光纤端口、适于接收小形状因子可插拔(SFP)单元的端口等。通信接口530通常是有线类型;但也可以包括一些无线类型(例如,Wi-Fi接口)。通信接口530包括硬件和由硬件执行的软件的组合,用于实现通信接口530的通信功能。替代地,用于实现通信接口530的通信功能的硬件和软件的组合至少部分地被包括在处理单元510中。
架构范围的IPv6地址
现在同时参考图4A-B、图5和图6,在图6中图示了用于生成架构范围的IPv6地址的方法600。方法600的至少一些步骤由图5中表示的计算设备500执行。
专用计算机程序具有用于实现方法600的至少一些步骤的指令。该指令被包含在计算设备500的非暂态计算机程序产品(例如,存储器520)中。该指令在由计算设备500的处理单元510执行时,提供生成架构范围的IPv6地址。该指令可经由电子可读介质(诸如存储介质(例如,CD-ROM、USB钥匙等))或经由通信链路(例如,通过通信接口530之一经由通信网络)传递给计算设备500。
方法600包括由配置设备30将配置数据传输到计算设备500的步骤605。
方法600包括由计算设备500接收配置数据的步骤610。配置数据是经由计算设备500的通信接口530之一接收的。
方法600包括将配置数据存储在配置文件521中的步骤615。配置文件521存储在计算设备500的存储器520中。配置数据包括IPv6基本前缀和架构标识符,这将在方法600的以下步骤中进一步详细描述。
配置设备30生成和传输配置数据的细节不在本公开的范围之内。在数据中心级别使用单个配置设备30来将配置数据传输到每个架构中的计算设备500。替代地,为数据中心的每个架构使用专用配置设备30。设计数据中心体系架构的技术人员将容易地识别适当的联网协议和配置机制,以用于将配置数据从集中式配置设备30分发到架构的多个计算设备500。
步骤605和610是在配置设备30的发起下(配置数据的推送)或在计算设备500的发起下(配置数据的拉取)执行的。在拉取的情况下,为了简化目的,在图6中未表示包括从计算设备500到配置设备30的对配置数据的请求的附加步骤。
当计算设备500初始地部署在架构中时,可以发生步骤605和610。在这种情况下,计算设备500根本不连接(或仅部分连接)到数据中心的任何联网基础设施。因此,使用基本引导(basicbootstrap)协议将配置数据从配置设备30直接传输到计算设备500。例如,配置设备30的通信接口物理地(例如,经由以太网线缆)连接到计算设备500的通信接口,并且引导协议在该临时物理连接上操作以执行配置数据的传送。
方法600包括确定主机标识符和可选地将主机标识符存储在配置文件521中的步骤620。步骤620由计算设备500的处理单元510执行。
将主机标识符存储在配置文件521中是可选的。替代地,主机标识符仅在方法600的其它步骤处被使用,而不需要将主机标识符存储在配置文件中。但是,仅确定主机标识符一次(例如,如果确定意味着计算)并将其存储在配置文件521中可能是更高效的,使得每当需要时就可以使用该主机标识符而无需再次计算它。
因此,确定主机标识符包括以下之一:选择主机标识符、计算主机标识符和从配置文件521读取主机标识符。
在第一实施方式中,主机标识符是十六进制格式的所选择的48位整数。例如,主机标识符是媒体访问控制(MAC)地址。如果计算设备500的通信接口530中的至少一个具有媒体访问控制(MAC)地址,则处理单元510选择通信接口530之一的该MAC地址作为主机标识符。由于方法600生成的IPv6地址未与计算设备500的所有通信接口530当中的具体通信接口530相关联,因此可以选择分配给计算设备500的MAC地址当中的任何一个作为主机标识符。例如,所选择的MAC地址是在步骤610处用于接收配置数据的通信接口530的MAC地址。诸如交换机(主干100和/或叶子200)的装备通常具有专用管理接口,该专用管理接口用于执行步骤610。该管理接口的MAC地址被用于主机标识符。
在第二实施方式中,通过计算计算设备500的128位通用唯一标识符(UUID)的散列来确定主机标识符。例如,128位UUID的散列也是十六进制格式的48位整数。UUID在本领域中是公知的。基于各种方法(例如,随机地、使用MAC地址和时间戳的组合,等等)为给定计算设备计算UUID。给定计算设备的UUID与另一个设备的UUID相同的机会非常低。
执行步骤620的时序可以变化。例如,步骤620在步骤610之前或在步骤625之后执行。
主机标识符不一定基于MAC地址或UUID。替代地,它基于其它种子数据进行计算,只要它是唯一的(或至少具有非常高的唯一性概率)。
方法600包括通过将存储在配置文件521中的IPv6基本前缀和存储在配置文件521中的架构标识符组合来生成IPv6前缀的步骤625。如前所述,IPv6基本前缀和架构标识符被包含在步骤610处接收到的配置数据中。
IPv6地址由128位组成,其中前n位由子网前缀组成。在IPv6联网中,通常的做法是为子网前缀保留IPv6地址的前64位(/64前缀)。
在步骤625处生成的IPv6前缀具有N(通常为64)位的长度。存储在配置文件521中的IPv6基本前缀是长度为小于N的B位(例如48)的IPv6前缀。存储在配置文件521中的架构标识符的长度为I位。例如,架构标识符是16位整数。数据中心中的每个架构(例如,图1中的架构A、架构B和架构C)具有唯一的架构标识符,其不同于数据中心中其它架构的标识符。
以下关系适用:B+I<=N。
在示例性实施方式中,如下地生成IPv6前缀:将架构标识符直接附加到IPv6基本前缀。例如,IPv6基本前缀为FD10:0:0/48,架构标识符为16位整数<fabric_id>,并且生成的IPv6前缀为FD10:0:0:<fabric_id>::/64。
在另一个示例性实施方式中,如下地生成IPv6前缀。IPv6前缀以IPv6基本前缀开始,后面跟着零,并且以架构标识符结尾。例如,IPv6基本前缀为FD10::/16,架构标识符为16位整数<fabric_id>,并且生成的IPv6前缀为FD10:0:0:<fabric_id>::/64。在这种情况下,可选的零由IPv6前缀的第17至48位组成。
在还有的另一个示例性实施方式中,如下地生成IPv6前缀。IPv6前缀以IPv6基本前缀开始,后面跟着架构标识符,并且以零结尾。例如,IPv6基本前缀为FD10::/16,架构标识符为16位整数<fabric_id>,并且生成的IPv6前缀为FD10:<fabric_id>:0:0::/64。在这种情况下,可选的零由IPv6前缀的第33至64位组成。
设计数据中心体系架构的技术人员将容易理解,IPv6基本前缀和架构标识符的其它组合可以用于生成IPv6前缀。
在方法600的示例性实施方式中,生成的IPv6前缀是唯一本地地址(ULA)IPv6前缀或公共IPv6前缀。
方法600包括通过将IPv6前缀(在步骤625处生成)和主机标识符(在步骤620处确定)组合来生成IPv6地址的步骤630。该操作在IPv6联网领域是公知的。例如,如果IPv6前缀是传统的/64前缀,则用主机标识符生成IPv6地址的最后64位。如果主机标识符少于64位,则在主机标识符之前(或之后)附加零,以达到64位。
例如,IPv6基本前缀为48位前缀<base_prefix>(例如FD10:0:0/48),架构标识符为16位整数<fabric_id>,并且主机标识符为48位整数<host_id>。生成的IPv6地址为:<base_prefix>:<fabric_id>:0:<host_id>。
方法600包括通告在步骤630处生成的IPv6地址的步骤635。该操作在IPv6联网领域中也是公知的,并且依赖于各种层2和/或层3通信协议。在计算设备500的一个或多个通信接口530上进行通告。例如,在主干交换机100的情况下,IPv6地址在主干交换机100的所有通信端口上、仅在主干交换机100的专用管理端口上、仅在主干交换机100的连接到叶子交换机200的端口上等通告。类似地,在叶子交换机200的情况下,IPv6地址在叶子交换机200的所有通信端口上、仅在叶子交换机200的专用管理端口上、仅在叶子交换机200的连接到主干交换机100或控制器400的端口上等通告。
一旦步骤630完成,计算设备500就能够通过IPv6网络20向其它计算设备传输数据。在步骤630处生成的IPv6地址用作传输到其它计算设备的IPv6分组的源IPv6地址。例如,控制器400通过IPv6网络20将数据传输到叶子交换机200或主干交换机100。
一旦步骤635完成,计算设备500就能够通过IPv6网络20从已经接收到所通告的IPv6地址的其它计算设备接收数据。在步骤635处通告的IPv6地址用作从其它计算设备接收的IPv6分组的目的地IPv6地址。例如,控制器400通过IPv6网络20从叶子交换机200或主干交换机100接收数据。
基于存储在配置文件521中的信息,方法600的步骤625、630和635可以被重复若干次。作为对照,步骤605至620只需要被执行一次,以用于生成并存储由步骤625和630所需的数据。例如,步骤625、630和635在计算设备500的每次启动时被重复;并且步骤605至620仅在计算设备500的第一次启动时被执行(只要计算设备500保持位于同一架构中)。
此外,配置文件可以包括若干个IPv6基本前缀。重复方法600的步骤625、630和635,以分别基于若干个IPv6基本前缀当中的一个IPv6基本前缀来(在步骤630处)配置若干个IPv6地址。这使得计算设备500能够成为若干个IPv6网络的一部分。
链路IPv6地址
现在同时参考图3、图5、图7A和图7B,图7A和图7B中图示了用于为计算设备500的通信接口530之一生成链路IPv6地址的方法700。方法700的至少一些步骤由图5中表示的计算设备500执行。
专用计算机程序具有用于实现方法700的至少一些步骤的指令。该指令被包含在计算设备500的非暂态计算机程序产品(例如,存储器520)中。该指令在由计算设备500的处理单元510执行时,提供生成链路IPv6地址。该指令可经由电子可读介质(诸如存储介质(例如,CD-ROM、USB钥匙密钥等))或经由通信链路(例如,通过通信接口530之一经由通信网络)传递给计算设备500。
计算设备500的通过方法700配置有链路IPv6地址的通信接口530被连接到远程计算设备40的通信接口。该连接(例如,经由以太网线缆的物理连接)在计算设备500和远程计算设备40之间建立通信链路。
方法700基于节点标识符和链路标识符。与计算设备500的通信接口530相关联的节点标识符和链路标识符将被称为本地节点标识符和本地链路标识符。与远程计算设备40的通信接口相关联的节点标识符和链路标识符将被称为远程节点标识符和远程链路标识符。
方法700包括由配置设备30将配置数据传输到计算设备500的步骤705。
方法700包括由计算设备500接收配置数据的步骤710。配置数据是经由计算设备500的通信接口530之一来接收的。
方法700包括将配置数据存储在配置文件521中的步骤715。配置数据包括IPv6基本前缀,这将在方法700的以下步骤中进一步详细描述。例如,IPv6基本前缀是/16前缀。
步骤705、710和715类似于图6中表示的方法600的步骤605、610和615。如先前关于图6中表示的方法600所述,由配置设备30生成和传输配置数据的细节不在本公开的范围之内。
方法700包括确定用于计算设备500的通信接口530的本地节点标识符的步骤720。可选地,步骤720还包括将本地节点标识符存储在配置文件521中。步骤720由计算设备500的处理单元510执行。
将本地节点标识符存储在配置文件521中是可选的。替代地,本地节点标识符仅在方法700的其它步骤处被使用,而不需要将本地节点标识符存储在配置文件中。但是,仅确定本地节点标识符一次(例如,如果确定意味着计算)并将其存储在配置文件521中可能是更高效的,使得每当需要时就可以使用该本地节点标识符而无需再次计算它。
因此,确定本地节点标识符包括以下之一:选择本地节点标识符、计算本地节点标识符以及从配置文件521读取本地节点标识符。
当执行用于为计算设备500的任何通信接口530生成链路IPv6地址的方法700时,使用相同的本地节点标识符。替代地,在步骤720处确定不同的本地节点标识符,不同的本地节点标识符中的每一个与计算设备500的多个通信接口530中的一个或多个通信接口530相关联。
在第一实施方式中,本地节点标识符是十六进制格式的所选择的48位整数。例如,本地节点标识符是媒体访问控制(MAC)地址。如果当前用方法700配置的计算设备500的通信接口530具有MAC地址,则处理单元510选择该通信接口530的MAC地址作为本地节点标识符。如果当前用方法700配置的计算设备500的通信接口530不具有其自己的MAC地址,则选择另一个通信接口530的MAC地址用于本地节点标识符。例如,诸如交换机的装备(主干100和/或叶子200)通常具有带有MAC地址的专用管理接口,该MAC地址可以用于本地节点标识符。
在第二实施方式中,通过计算计算设备500的128位通用唯一标识符(UUID)的散列来确定本地节点标识符。例如,128位UUID的散列也是十六进制格式的48位整数。UUID在本领域中是公知的。基于各种方法(例如,随机地、使用MAC地址和时间戳的组合,等等)为给定计算设备计算UUID。给定计算设备的UUID与另一个设备的UUID相同的机会非常低。
执行步骤720的时序可以变化。仅需在步骤740之前执行步骤720。
本地节点标识符不一定基于MAC地址或UUID。替代地,它基于其它种子数据进行计算,只要它是唯一的(或至少具有非常高的唯一性概率)。
方法700包括确定用于计算设备500的通信接口530的本地链路标识符的步骤725。本地链路标识符与通过方法700为其生成链路IPv6地址的通信接口530相关联。可选地,步骤725还包括将本地链路标识符存储在配置文件521中。步骤725由计算设备500的处理单元510执行。
将本地链路标识符存储在配置文件521中是可选的。替代地,本地链路标识符仅在方法700的其它步骤处被使用,而不需要将本地链路标识符存储在配置文件中。但是,仅确定本地链路标识符一次(例如,如果确定意味着计算)并将其存储在配置文件521中可能是更高效的,使得每当需要时可以使用该本地链路标识而无需再次计算它。
因此,确定本地链路标识符包括以下之一:选择本地链路标识符、计算本地链路标识符以及从配置文件521读取本地链路标识符。
计算设备500的通信接口530中的每一个具有其自己的本地链路标识符,该本地链路标识符不同于其它通信接口530的本地链路标识符。
例如,本地链路标识符是十六进制格式的15位整数。在主干交换机100或叶子交换机200的情况下,交换机的每个端口被分配1到N范围内的唯一整数,其中N是交换机的端口的数量。分配给给定端口的唯一整数被用于本地链路标识符。
本地链路标识符的确定不限于在给定整数范围(例如1到N)中分配唯一的整数。其它技术或算法可以用于确定分别与计算设备500的通信接口530相关联的唯一本地链路标识符。
方法700包括由远程计算设备40将远程节点标识符和远程链路标识符传输到计算设备500的步骤730。
方法700包括由计算设备500接收远程节点标识符和远程链路标识符的步骤735。经由计算设备500的当前通过方法700配置有链路IPv6地址的通信接口530来接收远程节点标识符和远程链路标识符。
例如,远程节点标识符和远程链路标识符通过链路层发现协议(LLDP)从远程计算设备40被传输到计算设备500。但是,可以使用LLDP以外的其它协议用于此目的。
可选地,远程节点标识符和远程链路标识符也存储在配置文件521中。
远程节点标识符和本地节点标识符具有相同的位大小。例如,如果本地节点标识符是十六进制格式的48位整数,则远程节点标识符也是十六进制格式的48位整数。类似地,远程链路标识符和本地链路标识符具有相同的位大小。例如,如果本地链路标识符是十六进制格式的15位整数,则远程链路标识符也是十六进制格式的15位整数。
方法700包括比较本地节点标识符和远程节点标识符的步骤740。例如,本地节点标识符和远程节点标识符被解释为整数,它们被比较以确定这两个中的哪一个大于另一个。
如果本地节点标识符大于远程节点标识符,则方法700执行通过将存储在配置文件521中的IPv6基本前缀、本地节点标识符、远程节点标识符、本地链路标识符、和本地节点标识符大于远程节点标识符的指示符组合来生成链路IPv6地址的步骤745。
如果本地节点标识符小于远程节点标识符,则方法700执行通过将存储在配置文件521中的IPv6基本前缀、远程节点标识符、本地节点标识符、远程链路标识符、和本地节点标识符小于远程节点标识符的指示符组合来生成链路IPv6地址的步骤746。
例如,指示符是布尔值(Boolean),如果本地节点标识符大于远程节点标识符,则该布尔值取值为0,并且如果本地节点标识符小于远程节点标识符,则取值为1。替代地,如果本地节点标识符大于远程节点标识符,该布尔指示符可以取值为1,并且如果本地节点标识符小于远程节点标识符,可以取值为0。
方法700包括用在步骤745或746处生成的链路IPv6地址来配置通信接口530的步骤750。用IPv6地址配置通信接口在IPv6联网领域中是公知的。
一旦步骤750完成,计算设备500就能够在步骤750处通过配置有链路IPv6地址的通信接口与远程计算设备40交换数据。在步骤745或746处生成的链路IPv6地址被用作传输到远程计算设备40的IPv6分组的源IPv6地址。在步骤745或746处生成的链路IPv6地址被用作从远程计算设备40接收的IPv6分组的目的地IPv6地址。为了开始交换数据,远程计算设备40需要也执行了用于在远程计算设备40的对应通信接口上配置对应的链路IPv6地址的方法700。如稍后关于图8A和图8B将描述的,计算设备500能够基于其自己的链路IPv6地址来推断远程计算设备40的对应的链路IPv6地址。类似地,远程计算设备40能够基于其自己的链路IPv6地址来推断计算设备500的对应的链路IPv6地址。
计算设备500还可以经由在步骤750处配置的通信接口与其它计算设备(不同于计算设备40)交换数据。在步骤745或746处生成的链路IPv6地址被用作传出IPv6分组的源IPv6地址,以及用作传入IPv6分组的目的地IPv6地址。
在替代实施方式中,如果本地节点标识符小于远程节点标识符,则执行步骤745;并且如果本地节点标识符大于远程节点标识符,则执行步骤746。在各图中未表示这种替代实施方式。
IPv6地址由128位组成,其中前n位通常由子网前缀组成。在IPv6联网中,通常的做法是为子网前缀保留IPv6地址的前64位(/64前缀)。但是,方法700生成的链路IPv6地址不遵循这种通常的做法。
存储在配置文件521中的IPv6基本前缀是具有B位(例如16位)长度的IPv6前缀<base_prefix>。本地节点标识符和远程节点标识符(分别为<local_node_id>和<remote_node_id>)的长度为N位(例如48位)。本地链路标识符和远程链路标识符(分别为<local_link_id>和<remote_link_id>)的长度为L位(例如15位)。指示符的长度为I位(例如1位)。
以下关系适用:B+2*N+L+I=128。
由方法700生成的链路IPv6地址具有以下格式:
<base_prefix>:<local_node_id>:<remote_node_id>:<local_link_id>:<indicator>(步骤745)
或者
<base_prefix>:<remote_node_id>:<local_node_id>:<remote_link_id>:<indicator>(步骤746)。
例如,IPv6基本前缀是FD04::/16。本地节点标识符和远程节点标识符是48位MAC地址。本地远程链路标识符和远程链路标识符是由相应端口号组成的15位标识符。指示符是1位布尔值。由方法700生成的链路IPv6地址具有以下格式之一:
FD04:<local_MAC_address>:<remote_MAC_address>:<local_port_nb>:0(步骤745)
或者
FD04:<remote_MAC_address>:<local_MAC_address>:<remote_port_nb>:1(步骤746)。
在方法700的示例性实施方式中,所生成的链路IPv6地址是符合互联网工程任务组(IETF)的请求注解(RFC)4193的唯一本地地址(ULA)。
在步骤745和746处生成IPv6链路地址可以将附加的(一个或多个)项目组合到在步骤745和746处已经描述的那些项目,只要所生成的IPv6链路地址具有128位。例如,如果使用较短的本地节点标识符和远程节点标识符,则在步骤745处生成的IPv6链路地址可以包括远程链路标识符(例如,<base_prefix>:<local_node_id>:<remote_node_id>:<local_link_id>:<remote_link_id>:<indicator>),并且在步骤746处生成的IPv6链路地址可以包括本地链路标识符(例如,<base_prefix>:<remote_node_id>:<local_node_id>:<remote_link_id>:<local_link_id>:<indicator>)。
使用存储在配置文件521中的信息,方法700的步骤730、735、740、745或746和750可以被重复若干次。作为对照,为了生成由步骤730至750所需的数据(IPv6基本前缀、本地节点标识符和本地链路标识符)并将其存储在配置521中,步骤705至725只需被执行一次。例如,步骤730至750在计算设备500的每次启动时被重复;并且步骤705至735仅在计算设备500的第一次启动时被执行。
可以实现用于在任何时间触发计算设备500来执行步骤730至750的基于软件的机制。基于软件的机制可以经由计算设备500的用户界面、经由计算设备500接收到的控制消息等来实现。例如,如果先前已经用方法700配置的计算设备500的通信接口530物理上或功能上连接到远程计算设备40的新通信接口(或新远程计算设备40的通信接口),则应调用基于软件的机制来触发步骤730至750的执行。
现在同时参考图7B、图8A和图8B,其中图8A和图8B图示了由方法700的步骤745和746生成的示例性链路IPv6地址。
图8A和图8B的主干交换机100和叶子交换机200分别对应于图7A和图7B的计算设备500和远程计算设备40。主干交换机100包括端口102,该端口102(例如,经由以太网线缆)连接到叶子交换机200的端口201。本地节点标识符(local_node_id)和本地链路标识符(local_link_id)与端口102相关联。类似地,远程节点标识符(remote_node_id)和远程链路标识符(remote_link_id)与端口201相关联。
如图8A所示,如果本地节点标识符大于远程节点标识符,则在步骤745处为端口102生成的链路IPv6地址如下:
<base_prefix>:<local_node_id>:<remote_node_id>:<local_link_id>:<0>。
应用方法700来生成端口201的链路IPv6地址,在步骤746处为端口201生成的链路IPv6地址如下:
<base_prefix>:<local_node_id>:<remote_node_id>:<local_link_id>:<1>。
如图8B所示,如果本地节点标识符小于远程节点标识符,则在步骤746处为端口102生成的链路IPv6地址如下:
<base_prefix>:<remote_node_id>:<local_node_id>:<remote_link_id>:<1>。
应用方法700来生成端口201的链路IPv6地址,在步骤745处为端口201生成的链路IPv6地址如下:
<base_prefix>:<remote_node_id>:<local_node_id>:<remote_link_id>:<0>。
应当注意的是,在执行方法700之后,主干交换机100能够确定(当叶子交换机200执行方法700时)分配给叶子交换机200的端口201的对应链路IPv6地址。更具体而言,如果分配给端口102的链路IPv6地址是通过执行步骤745来生成的,则分配给端口201的对应链路IPv6地址是通过执行具有指示符的适配值(例如,指示符的值从0改变为1,或从1改变为0)的步骤745来确定的。类似地,如果分配给端口102的链路IPv6地址是通过执行步骤746来生成的,则分配给端口201的对应链路IPv6地址是通过执行具有指示符的适配值(例如,指示符的值从0改变为1,或从1改变为0)的步骤746来确定的。相同的属性适用于执行方法700并且能够确定分配给主干交换机100的端口102的对应链路IPv6地址的叶子交换机200。
现在同时参考图3、图7B、图8A和图8B。图8A和图8B仅用于说明目的;并且可以容易地适于图示在其它配置中由方法700的步骤745和746生成的示例性链路IPv6地址。其它配置包括主干交换机100的端口与控制器400的端口的连接、叶子交换机100的端口与控制器400的端口的连接、主干交换机100的端口与另一个主干交换机100的端口的连接、以及叶子交换机100的端口与另一个叶子交换机100的端口的连接。
如先前参考图3所述,端口102不一定物理地连接到端口201(例如,经由以太网线缆)。例如,使用未在图中表示的中间装备(例如,中间交换机)将端口102功能上连接到端口201。在这种配置中,端口102直接物理连接到中间(交换)装备的一个端口,并且端口201直接物理连接到中间(交换)装备的另一个端口。在这种情况下,可以通过方法700为交换机主干100的端口102生成并配置若干个链路IPv6地址。每个链路IPv6地址对应于到另一个装备的端口的功能链路(具有远程节点id和远程链路id)。端口102和中间装备之间的物理链路支持所有功能链路。
使用术语端口是因为架构的大多数装备具有端口形式的通信接口(例如,以太网电端口、光端口等)。但是,图8A和图8B可以被泛化为任何类型的通信接口,只要方法700的步骤745和746所应用到的通信接口已被分配本地节点标识符和本地链路标识符。
安全邻居发现
现在同时参考图3、图5、图9A、图9B、图9C和图9D,在图9A至图9D中图示了用于为计算设备500的通信接口530之一执行安全邻居发现的方法800。方法800的一些步骤由图5中表示的计算设备500执行。方法800的一些步骤由通过本方法800安全地发现的远程计算设备40执行。
专用计算机程序具有用于实现在计算设备500上执行的方法800的步骤的指令。该指令被包含在计算设备500的非暂态计算机程序产品(例如,存储器520)中。该指令在由计算设备500的处理单元510执行时,提供执行安全邻居发现。该指令可经由电子可读介质(诸如存储介质(例如,CD-ROM、USB钥匙等))或经由通信链路(例如,通过通信接口530之一经由通信网络)传递给计算设备500。
远程计算设备40类似于图5中表示的计算设备500。远程计算设备40包括处理单元、存储器和至少一个通信接口。
专用计算机程序具有用于实现在远程计算设备40上执行的方法800的步骤的指令。该指令被包含在远程计算设备40的非暂态计算机程序产品(例如,存储器)中。该指令在由远程计算设备40的处理单元执行时,提供执行安全邻居发现。该指令可经由电子可读介质(诸如存储介质(例如,CD-ROM、USB钥匙等))或经由通信链路(例如,通过远程计算设备40的通信接口之一经由通信网络)传递给远程计算设备40。
为其执行安全发现的计算设备500的通信接口530连接到远程计算设备40的通信接口。该连接(例如,经由以太网线缆的物理连接)在计算设备500和远程计算设备40之间建立通信链路。
方法800基于节点标识符和质询(challenge)。与计算设备500的通信接口530相关联的节点标识符和质询将被称为本地节点标识符和本地质询。与远程计算设备40的通信接口相关联的节点标识符和质询将被称为远程节点标识符和远程质询。
方法800包括确定用于计算设备500的通信接口530的本地节点标识符的步骤805。步骤805由计算设备500的处理单元510执行。
先前已经关于图7A中表示的方法700描述了本地节点标识符的确定。在示例性实施方式中,本地节点标识符是为其执行安全邻居发现的计算设备500的通信接口530的MAC地址。替代地,本地节点标识符是计算设备500的另一个通信接口530的MAC地址。在另一个示例性实施方式中,通过计算计算设备500的128位通用唯一标识符(UUID)的散列来确定本地节点标识符。
方法800包括生成本地质询的步骤810。步骤810由计算设备500的处理单元510执行。由方法800使用的质询的生成将在后面的描述中详细描述。
方法800包括将本地节点标识符加密为经加密的本地节点标识符的步骤815。步骤815由计算设备500的处理单元510执行。由方法800使用的加密/解密手段将在后面的描述中详细描述。
方法800包括将本地质询加密为经加密的本地质询的步骤820。步骤820由计算设备500的处理单元510执行。
方法800包括经由通信接口530传输发现请求消息的步骤825,该发现请求消息包括经加密的本地节点标识符和经加密的本地质询。步骤825由计算设备500的处理单元510执行。当执行方法800时在计算设备500和远程计算设备40之间交换的消息将在后面的描述中详细描述。
方法800包括经由远程计算设备40的通信接口接收发现请求消息的步骤830。步骤830由远程计算设备40的处理单元执行。
方法800包括将经加密的本地节点标识符解密为本地节点标识符的步骤835。步骤835由远程计算设备40的处理单元执行。
方法800包括将经加密的本地质询解密为本地质询的步骤840。步骤840由远程计算设备40的处理单元执行。
方法800包括至少基于在步骤830处以加密形式接收到的本地质询来生成本地质询响应的步骤845。步骤845由远程计算设备40的处理单元执行。由方法800使用的质询响应的生成将在后面的描述中详细描述。
方法800包括确定用于远程计算设备40的通信接口的远程节点标识符的步骤850。步骤850由远程计算设备40的处理单元执行。远程节点标识符的确定类似于步骤805处的本地节点标识符的确定。
方法800包括将远程节点标识符加密为经加密的远程节点标识符的步骤855。步骤885由远程计算设备40的处理单元执行。
方法800包括将本地质询响应加密为经加密的本地质询响应的步骤860。步骤860由远程计算设备40的处理单元执行。
方法800包括生成远程质询的步骤865。步骤865由远程计算设备40的处理单元执行。
方法800包括将远程质询加密为经加密的远程质询的步骤870。步骤870由远程计算设备40的处理单元执行。
方法800包括经由远程计算设备40的通信接口向计算设备500传输发现响应消息的步骤875。该发现响应消息包括经加密的远程节点标识符、经加密的本地质询响应和经加密的远程质询。步骤875由远程计算设备40的处理单元执行。
方法800包括经由计算设备500的通信接口530从远程计算设备40接收发现响应消息的步骤880。步骤880由计算设备500的处理单元510执行。
步骤865和870是可选的。因此,在第一实施方式中,发现响应消息包括经加密的远程节点标识符、经加密的本地质询响应和经加密的远程质询。在另一种实施方式中,发现响应消息仅包括经加密的远程节点标识符和经加密的本地质询响应。
方法800包括将经加密的本地质询响应解密为本地质询响应的步骤885。步骤885由计算设备500的处理单元510执行。
方法800包括至少基于本地质询生成预期本地质询响应的步骤890。步骤890由计算设备500的处理单元510执行。预期本地质询响应的生成应基于与步骤845处的本地质询响应的生成相同的机制。
方法800包括确定(在步骤880处以加密形式接收的)本地质询响应与(在步骤890处生成的)预期本地质询响应相对应的步骤895。步骤895由计算设备500的处理单元510执行。
如果(在步骤880处以加密形式接收的)本地质询响应与(在步骤890处生成的)预期本地质询响应匹配,则计算设备500对远程计算设备40的安全发现是成功的。远程计算设备40被计算设备500视为合法设备,具有用于成功通过安全发现过程的恰当凭证。
如果(在步骤880处以加密形式接收的)本地质询响应与(在步骤890处生成的)预期本地质询响应不匹配,则计算设备500对远程计算设备40的安全发现是失败的。远程计算设备40被计算设备500视为欺诈设备,因为它不具有用于成功通过安全发现过程的恰当凭证。
仅当远程计算设备40的安全发现是成功的时,才执行方法800的以下步骤。
方法800包括将经加密的远程节点标识符解密为远程节点标识符的步骤900。步骤900由计算设备500的处理单元510执行。
方法800的以下步骤是可选的。仅当在步骤880处接收到的发现响应消息包括经加密的远程质询时,才执行以下步骤。
方法800包括将经加密的远程质询解密为远程质询的步骤905。步骤905由计算设备500的处理单元510执行。
方法800包括至少基于在步骤880处以加密形式接收到的远程质询来生成远程质询响应的步骤910。步骤910由计算设备500的处理单元510执行。
方法800包括将远程质询响应加密为经加密的远程质询响应的步骤915。步骤915由计算设备500的处理单元510执行。
方法800包括经由通信接口530传输包括经加密的远程质询响应的发现确认消息的步骤920。步骤920由计算设备500的处理单元510执行。
方法800包括经由远程计算设备40的通信接口接收发现确认消息的步骤925。步骤925由远程计算设备40的处理单元执行。
方法800包括将经加密的远程质询响应解密为远程质询响应的步骤930。步骤925由远程计算设备40的处理单元执行。
方法800包括至少基于远程质询来生成预期远程质询响应的步骤935。步骤935由远程计算设备40的处理单元执行。预期远程质询响应的生成应基于与步骤910的远程质询响应的生成相同的机制。
方法800包括确定(在步骤925处以加密形式接收的)远程质询响应与(在步骤935处生成的)预期远程质询响应相对应的步骤940。步骤940由远程计算设备40的处理单元执行。
如果(在步骤925处以加密形式接收的)远程质询响应与(在步骤935处生成的)预期远程质询响应匹配,则远程计算设备40对计算设备500的安全发现是成功的。计算设备500被远程计算设备40视为合法设备,具有用于成功通过安全发现过程的恰当凭证。
如果(在步骤925处以加密形式接收的)远程质询响应与(在步骤935处生成的)预期远程质询响应不匹配,则远程计算设备40对计算设备500的安全发现是失败的。计算设备500被远程计算设备40视为欺诈设备,因为它不具有用于成功通过安全发现过程的恰当凭证。
本领域中公知的各种加密/解密方法可以用于加密/解密节点标识符和质询。例如,计算设备500和远程计算设备40使用共享密钥。如本领域中公知的,共享密钥既用于加密操作又用于解密操作。共享密钥被包含在存储在计算设备500的存储器520中的配置文件521中。远程计算设备50具有存储在其存储器中并包含共享密钥的类似配置文件。如图6中所示(方法600的步骤605),共享密钥从配置设备30传输到计算设备500(和远程计算设备40)以存储在配置文件521中。相同的共享密钥用于所有加密/解密操作。替代地,使用不同的共享密钥。例如,第一共享密钥用于加密/解密节点标识符,并且第二共享密钥用于加密/解密质询。可以使用成对的公钥/私钥代替共享密钥。但是,用于保护多个节点之间的交易的成对公钥/私钥的部署更加复杂。计算设备500需要存储其自己的私钥,用于对发送给远程计算设备40的数据(本地节点标识符、本地质询等)进行加密。计算设备500也需要存储远程计算设备40的公钥,以对从远程计算设备40接收的数据(远程节点标识符、本地质询响应等)进行解密。类似地,远程计算设备40需要存储其自己的私钥,以对发送给计算设备500的数据(远程节点标识符、本地质询响应等)进行加密。远程计算设备40也需要存储计算设备500的公钥,以对从计算设备500接收到的数据(本地节点标识符、本地质询等)进行解密。先前描述的加密/解密方法仅用于说明目的。可以使用其它方法。
可以使用各种方法来生成质询和对质询的响应。在第一示例性实施方式中,本地质询和远程质询是由随机数生成器生成的随机数。在第二示例性实施方式中,通过将一个或多个种子作为输入的数学函数来生成本地质询和远程质询。种子的示例包括当前时间、计算设备500(或远程计算设备40)的特性等。在第三示例性实施方式中,从配置文件521中存储的值的预定义列表中选择本地质询和远程质询。选择可以是随机的、顺序的,等等。
关于本地质询响应和预期本地质询响应,需要基于本地质询来生成它们以保护发现处理。更具体而言,这确保了远程计算设备40是合法的,因为它能够用恰当的加密材料对接收到的经加密的本地质询进行解密、能够在生成处理中使用本地质询来生成本地质询响应、并且能够用恰当的加密材料对本地质询响应进行加密。在第一示例性实施方式中,本地质询响应是通过将本地质询作为种子的数学函数生成的。除了本地质询之外,还可以使用(一个或多个)附加的种子(例如本地节点标识符和/或远程节点标识符)。在第二示例性实施方式中,从存储在配置文件521中的值的预定义列表中选择本地质询响应。这仅当本地质询也是从配置文件521中存储的值的预定义列表中选择的时才有效。本地质询的每个预定义值与本地质询响应的对应预定义值相关联。一旦接收到本地质询的预定义值之一,就为本地质询响应选择对应的预定义值。对远程质询响应和预期远程质询响应实现相同的机制。先前描述的用于生成质询和对质询的响应的方法仅用于说明目的。可以使用其它方法。
各种协议可以用于实现发现、发现响应和发现确认消息。例如,使用在电气和电子工程师协会(IEEE)802.1AB和IEEE 802.3-2012第6节第79条中指定的链路层发现协议(LLDP)。LLDP帧包括强制性的类型长度值(TLV)和零个或多个可选的TLV。通过方法800在计算设备500和计算设备40之间交换的数据(例如,经加密的节点标识符、经加密的质询等)在现有的可选TLV中传送(如果适用)。替代地,定义新的(一个或多个)专用可选TLV来实现方法800。由于LLDP中没有请求、响应和确认的概念,因此,发现、发现响应和发现确认消息中的每一个通过单向LLDP消息实现。
用于实现发现、发现响应和发现确认消息的先前描述的协议仅用于说明目的。可以使用其它标准化(或专有)协议。具体地,可以使用支持请求、响应和确认的概念的协议。
在开放系统互连(OSI)模型的层2(例如,基于以太网的数据链路层)或层3(例如,基于IP的网络层),发现请求消息以多播或广播模式传输。例如,如果使用LLDP,则目的地MAC地址是多播MAC地址。由于计算设备500不知道要被发现的(一个或多个)邻居((一个或多个)远程计算设备40),所以计算设备500不知道这些邻居的目的地MAC(或IP)地址。因此,多播或广播目的地地址被用于经由发现请求消息到达(一个或多个)邻居。发现响应和发现确认消息也以多播或广播模式传输。替代地,使用单播目的地地址:发现请求消息的源地址被用作发现响应消息的目的地地址,并且发现响应消息的源地址被用作发现确认消息的目的地地址。
方法800支持的安全发现过程可以以不同的方式实现。在第一实施方式中,通过执行方法800的所有步骤来执行计算设备500和远程计算设备40的相互安全发现。计算设备500将计算设备500的节点标识符(以及可选的链路标识符)安全地通告给远程计算设备40。作为回报,远程计算设备40将远程计算设备40的节点标识符(以及可选的链路标识符)安全地通告给计算设备500。
在第二实施方式中,不执行相互安全发现,而是执行两个独立的安全发现。计算设备500和远程计算设备40仅执行方法800的步骤810、820、825、830、840至861、875和880至901,以由计算设备500执行对远程计算设备40的安全发现。远程计算设备40使用相同的过程来发现计算设备500。
在安全发现过程期间,可以在计算设备500和远程计算设备40之间交换(以明文或加密形式)附加数据。例如,除了本地节点标识符之外,计算设备500还确定本地链路标识符。本地链路标识符经由发现请求消息(或替代地经由发现确认消息)以加密或明文形式传输到远程计算设备40。类似地,除了远程节点标识符之外,远程计算设备40还确定远程链路标识符。远程链路标识符经由发现响应消息以加密或明文形式传输到计算设备500。
图9A表示确定本地链路标识符的可选步骤806和加密本地链路标识符的步骤816。在这种情况下,虽然为了简化目的未在图9A中示出,但是步骤825和830的发现请求消息还包括经加密的本地链路标识符。
图9B表示解密本地链路标识符的可选步骤836、确定远程链路标识符的步骤851和加密远程本地链路标识符的步骤861。
图9C表示解密远程链路标识符的可选步骤901。虽然为了简化目的未在图9C中示出,但是步骤875和880的发现响应消息还包括经加密的远程链路标识符。
先前已经关于图7A中表示的方法700描述了本地链路标识符的确定。在示例性实施方式中,本地链路标识符是与为其执行安全邻居发现的计算设备500的通信接口530相关联的十六进制格式的15位整数。在主干交换机100或叶子交换机200的情况下,交换机的每个端口被分配1到N范围内的唯一整数,其中N是交换机的端口数量。分配给给定端口的唯一整数被用于本地链路标识符。远程链路标识符的确定类似于本地链路标识符的确定。
替代地,计算设备500和远程计算设备40不分别确定和传输(以加密形式)本地节点标识符和远程节点标识符。而是,在本地计算设备500和/或远程计算设备40处生成其它数据。该其它数据经由发现请求消息、发现响应消息或发现确认消息之一以明文或加密形式传输。
在替代实施方式(为了简化目的在图中未示出)中,步骤815、816和820中的至少一些被组合。例如,对本地节点标识符和本地质询的组合进行加密;或对本地节点标识符、本地链路标识符和本地质询的组合进行加密。
类似地,步骤835、836和840中的至少一些被组合。例如,将本地节点标识符和本地质询的经加密的组合解密为本地节点标识符和本地质询;或者将本地节点标识符、本地链路标识符和本地质询的经加密的组合解密为本地节点标识符、本地链路标识符和本地质询。
类似地,步骤855、860、861和870中的至少一些被组合。例如,对远程节点标识符、本地质询响应和远程质询的组合进行加密;或对远程节点标识符、远程链路标识符、本地质询响应和远程质询的组合进行加密。
现在同时参考图9A-9D和图10,其中图10图示了由方法800支持的邻居发现过程。
图10的主干交换机100和叶子交换机200分别对应于图9A-9D的计算设备500和远程计算设备40。主干交换机100包括端口102,该端口102(例如,经由以太网线缆)连接到叶子交换机200的端口201。本地节点标识符(local_node_id)和本地链路标识符(local_link_id)与端口102相关联。类似地,远程节点标识符(remote_node_id)和远程链路标识符(remote_link_id)与端口201相关联。此外,主干100生成本地质询、预期本地质询响应和远程质询响应;而叶子200生成本地质询响应、远程质询和预期远程质询响应。进一步表示了在主干100和叶子200之间交换的发现请求、发现响应和发现确认消息。
包括架构范围的IPV6地址的生成、安全邻居发现以及一个或多个链路IPv6地址的生成的网络配置
现在同时参考图3、图5、图6、图7A-7B、图9A-9D和图11A、图11B和图11C,在图11A、图11B和图11C中图示了用于执行计算设备500的网络配置的方法1000。方法1000的至少一些步骤由图5所示的计算设备500执行。
网络配置包括在图6所示的方法600中描述的架构范围的IPv6地址的生成。网络配置还包括在图9A、图9B、图9C和图9D所示的方法800中描述的安全邻居发现。网络配置还包括在图7A和图7B所示的方法700中描述的链路IPv6地址的生成。邻居发现过程允许安全地发现远程计算设备40的用于生成链路IPv6地址的远程节点标识符和远程链路标识符。邻居发现过程还允许将本地节点标识符和本地链路标识符安全地传输到远程计算设备40,该本地节点标识符和本地链路标识符用于在远程计算设备40处生成对应的链路IPv6地址。
可以通过对每个通信接口530重复方法800和700的步骤,通过安全邻居发现过程为计算设备500的若干个通信接口530配置链路IPv6地址。
专用计算机程序具有用于实现方法1000的至少一些步骤的指令。该指令被包含在计算设备500的非暂态计算机程序产品(例如,存储器520)中。该指令在由计算设备500的处理单元510执行时,提供执行计算设备500的网络配置。该指令可经由电子可读介质(诸如存储介质(例如,CD-ROM、USB钥匙等))或经由通信链路(例如,通过通信接口530之一经由通信网络)传递给计算设备500。
方法1000包括由配置设备30向计算设备500传输配置数据的步骤1005。步骤1005对应于方法600的步骤605和方法700的步骤705。
方法1000包括由计算设备500接收配置数据的步骤1010。经由计算设备500的通信接口530之一来接收配置数据。步骤1010对应于方法600的步骤610和方法700的步骤710。
方法1000包括将配置数据存储在配置文件521中的步骤1015。步骤1015对应于方法600的步骤615和方法700的步骤715。配置数据包括第一IPv6基本前缀、架构标识符和第二IPv6基本前缀。
方法1000包括确定主机标识符并且可选地将主机标识符存储在配置文件521中的步骤1020。步骤1020对应于方法600的步骤620。
方法1000包括通过组合存储在配置文件521中的第一IPv6基本前缀和存储在配置文件521中的架构标识符来生成架构范围的IPv6前缀的步骤1025。步骤1025对应于方法600的步骤625。
方法1000包括通过组合(在步骤1025处生成的)架构范围的IPv6前缀和(在步骤1020处确定的)主机标识符来生成架构范围的IPv6地址的步骤1030。步骤1030对应于方法600的步骤630。
方法1000包括通告在步骤1030处生成的架构范围的IPv6地址的步骤1035。步骤1035对应于方法600的步骤635。
方法1000包括确定计算设备500的本地节点标识符;并且可选地将本地节点标识符存储在配置文件521中的步骤1040。步骤1040对应于方法700的步骤720。
在方法1000的特定实施方式中,本地节点标识符由在步骤1020处确定的主机标识符组成。
方法1000包括确定计算设备500的(对应于本地节点标识符和本地链路标识符的)通信接口530的本地链路标识符;并且可选地将本地链路标识符存储在配置文件521中的步骤1045。步骤1045对应于方法700的步骤725。
方法1000包括执行安全邻居发现过程以发现远程计算设备40的远程节点标识符和远程链路标识符的步骤1050。步骤1050包括方法800中的允许计算设备500执行对远程计算设备40的远程节点标识符和远程链路标识符的安全发现的至少所有步骤。出于简化目的,在图11A-11C中没有详细描述这些步骤。
方法1000包括比较本地节点标识符和远程节点标识符的步骤1060。步骤1060对应于方法700的步骤740。
如果本地节点标识符大于远程节点标识符,则方法1000执行通过组合存储在配置文件521中的第二IPv6基本前缀、本地节点标识符、远程节点标识符、本地链路标识符、和本地节点标识符大于远程节点标识符的指示符来生成链路IPv6地址的步骤1065。步骤1065对应于方法700的步骤745。
如果本地节点标识符小于远程节点标识符,则方法1000执行通过组合存储在配置文件521中的第二IPv6基本前缀、远程节点标识符、本地节点标识符、远程链路标识符、和本地节点标识符小于远程节点标识符的指示符来生成链路IPv6地址的步骤1066。步骤1066对应于方法700的步骤746。
在替代实施方式中(已经在前面提到),如果本地节点标识符小于远程节点标识符,则执行步骤1065;并且如果本地节点标识符大于远程节点标识符,则执行步骤1066。在各图中未表示该替代实施方式。
方法1000包括用在步骤865或866处生成的链路IPv6地址配置(对应于本地节点标识符和本地链路标识符的)通信接口530的步骤1070。步骤1070对应于方法700的步骤750。
如果步骤1050还包括方法800的允许远程计算设备40安全地发现计算设备500的本地节点标识符和本地链路标识符的至少所有步骤,则可以生成用于远程计算设备40的对应通信接口的对应链路IPv6地址。远程计算设备40的对应链路IPv6地址的生成基于用于生成计算设备500的链路IPv6地址的相同算法。先前已经在图8A和图8B中描述并图示了对应链路IPv6地址的生成。
通过针对每个通信接口530重复方法1000的步骤1040至1070,可以用链路IPv6地址来配置计算设备500的若干个通信接口530。
方法600、700和800的各个步骤的所有细节和具体情况(其在描述方法600、700和800时已经在前面进行讨论)也适用于方法1000的对应步骤。当描述方法1000时,出于简化目的,没有重复这样的细节和具体情况。
虽然以上已经通过非限制性的说明性实施例描述了本公开,但是在不脱离本公开的精神和本质的情况下,可以在所附权利要求的范围内随意修改这些实施例。

Claims (22)

1.一种计算设备,包括:
通信接口;以及
处理单元,用于通过以下操作来执行安全发现:
确定用于所述通信接口的本地节点标识符;
生成本地质询;
将所述本地节点标识符加密为经加密的本地节点标识符;
将所述本地质询加密为经加密的本地质询;
经由所述通信接口传输包括所述经加密的本地节点标识符和所述经加密的本地质询的发现请求消息;
经由所述通信接口从远程计算设备接收发现响应消息,所述发现响应消息包括经加密的远程节点标识符和经加密的本地质询响应;
将所述经加密的本地质询响应解密为本地质询响应;
至少基于所述本地质询生成预期本地质询响应,其中所述预期本地质询响应的生成是由所述计算设备进行的,并且基于与所述远程计算设备用来生成所述本地质询响应的机制相同的机制;
确定所述本地质询响应是否与所述预期本地质询响应相对应;
响应于确定所述本地质询响应与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现是成功的,并且将所述经加密的远程节点标识符解密为远程节点标识符;以及
响应于确定所述本地质询响应不与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现失败。
2.如权利要求1所述的计算设备,其中所述发现响应消息还包括经加密的远程质询,并且所述处理单元还:
将所述经加密的远程质询解密为远程质询;
至少基于所述远程质询生成远程质询响应;
将所述远程质询响应加密为经加密的远程质询响应;
经由所述通信接口向所述远程计算设备传输包括所述经加密的远程质询响应的发现确认消息。
3.如权利要求1所述的计算设备,其中共享密钥被用于加密所述本地节点标识符和所述本地质询,并且用于解密所述经加密的本地质询响应和所述经加密的远程节点标识符。
4.如权利要求1所述的计算设备,其中所述发现请求消息是多播或广播的。
5.如权利要求1所述的计算设备,其中所述发现请求消息符合链路层发现协议(LLDP)。
6.如权利要求1所述的计算设备,其中所述处理单元还确定所述通信接口的本地链路标识符,所述发现请求消息包括所述本地链路标识符,并且所述发现响应消息包括远程链路标识符。
7.如权利要求1所述的计算设备,其中所述本地节点标识符是媒体访问控制(MAC)地址。
8.如权利要求1所述的计算设备,其中所述处理单元通过计算所述计算设备的128位通用唯一标识符(UUID)的散列来确定所述本地节点标识符。
9.一种计算设备,包括:
通信接口;以及
处理单元,用于通过以下操作来执行安全发现:
经由所述通信接口从远程计算设备接收发现请求消息,所述发现请求消息包括经加密的远程节点标识符和经加密的远程质询;
将所述经加密的远程节点标识符解密为远程节点标识符;
将所述经加密的远程质询解密为远程质询;
至少基于所述远程质询生成远程质询响应;
确定用于所述通信接口的本地节点标识符;
将所述本地节点标识符加密为经加密的本地节点标识符;
将所述远程质询响应加密为经加密的远程质询响应;以及
经由所述通信接口向所述远程计算设备传输发现响应消息,所述发现响应消息包括所述经加密的本地节点标识符和所述经加密的远程质询响应。
10.如权利要求9所述的计算设备,其中所述处理单元还生成本地质询,并将所述本地质询加密为经加密的本地质询;并且所述发现响应消息还包括所述经加密的本地质询。
11.如权利要求10所述的计算设备,其中所述处理单元还:
经由所述通信接口从所述远程计算设备接收包括经加密的本地质询响应的发现确认消息;
将所述经加密的本地质询响应解密为本地质询响应;
至少基于所述本地质询生成预期本地质询响应,其中所述预期本地质询响应的生成是由所述计算设备进行的,并且基于与所述远程计算设备用来生成所述本地质询响应的机制相同的机制;
确定所述本地质询响应是否与所述预期本地质询响应相对应;
响应于确定所述本地质询响应与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现是成功的;以及
响应于确定所述本地质询响应不与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现失败。
12.如权利要求9所述的计算设备,其中共享密钥被用于加密所述本地节点标识符和所述远程质询响应,以及用于解密所述经加密的远程质询和所述经加密的远程节点标识符。
13.如权利要求9所述的计算设备,其中所述发现请求消息是多播或广播的。
14.如权利要求9所述的计算设备,其中所述发现请求消息符合链路层发现协议(LLDP)。
15.如权利要求9所述的计算设备,其中所述处理单元还确定用于所述通信接口的本地链路标识符,所述发现响应消息包括所述本地链路标识符,并且所述发现请求消息包括远程链路标识符。
16.如权利要求9所述的计算设备,其中所述本地节点标识符是媒体访问控制(MAC)地址。
17.如权利要求9所述的计算设备,其中所述处理单元通过计算所述计算设备的128位通用唯一标识符(UUID)的散列来确定所述本地节点标识符。
18.一种用于执行安全邻居发现的方法,所述方法包括:
由本地计算设备的本地处理单元确定用于所述本地计算设备的通信接口的本地节点标识符;
由所述本地处理单元生成本地质询;
由所述本地处理单元将所述本地节点标识符加密为经加密的本地节点标识符;
由所述本地处理单元将所述本地质询加密为经加密的本地质询;
经由所述本地计算设备的通信接口传输发现请求消息,所述发现请求消息包括所述经加密的本地节点标识符和所述经加密的本地质询;
经由远程计算设备的通信接口接收所述发现请求消息;
由所述远程计算设备的远程处理单元将所述经加密的本地节点标识符解密为所述本地节点标识符;
由所述远程处理单元将所述经加密的本地质询解密为所述本地质询;
由所述远程处理单元至少基于所述本地质询生成本地质询响应;
由所述远程处理单元确定用于所述远程计算设备的通信接口的远程节点标识符;
由所述远程处理单元将所述远程节点标识符加密为经加密的远程节点标识符;
由所述远程处理单元将所述本地质询响应加密为经加密的本地质询响应;
经由所述远程计算设备的所述通信接口向所述本地计算设备传输发现响应消息,所述发现响应消息包括所述经加密的远程节点标识符和所述经加密的本地质询响应;
经由所述本地计算设备的所述通信接口接收所述发现响应消息;
由所述本地处理单元将所述经加密的本地质询响应解密为所述本地质询响应;
由所述本地处理单元至少基于所述本地质询生成预期本地质询响应,其中所述预期本地质询响应的生成是由所述计算设备进行的,并且基于与所述远程计算设备用来生成所述本地质询响应的机制相同的机制;
由所述本地处理单元确定所述本地质询响应是否与所述预期本地质询响应相对应;
响应于确定所述本地质询响应与所述预期本地质询响应相对应,由所述本地处理单元确定对所述远程计算设备的安全邻居发现是成功的,并且由所述本地处理单元将所述经加密的远程节点标识符解密为所述远程节点标识符;以及
响应于确定所述本地质询响应不与所述预期本地质询响应相对应,由所述本地处理单元确定对所述远程计算设备的安全邻居发现失败。
19.如权利要求18所述的方法,还包括:
由所述远程处理单元生成远程质询;
由所述远程处理单元将所述远程质询加密为经加密的远程质询;
将所述经加密的远程质询传输到所述发现响应消息中;
由所述本地处理单元将所述经加密的远程质询解密为所述远程质询;
由所述本地处理单元至少基于所述远程质询生成远程质询响应;
由所述本地处理单元将所述远程质询响应加密为经加密的远程质询响应;
经由所述本地计算设备的所述通信接口向所述远程计算设备传输包括所述经加密的远程质询响应的发现确认消息;
经由所述远程计算设备的所述通信接口接收所述发现确认消息;
由所述远程处理单元将所述经加密的远程质询响应解密为所述远程质询响应;
由所述远程处理单元至少基于所述远程质询生成预期远程质询响应;以及
由所述远程处理单元确定所述远程质询响应与所述预期远程质询响应相对应。
20.如权利要求18所述的方法,其中共享密钥被用于执行所有的加密和解密。
21.一种计算设备,包括:
通信接口;以及
处理单元,用于通过以下操作执行安全发现:
确定用于所述通信接口的本地节点标识符;
生成本地质询;
将所述本地节点标识符和所述本地质询的组合加密为所述本地节点标识符和所述本地质询的经加密的组合;
经由所述通信接口传输发现请求消息,所述发现请求消息包括所述本地节点标识符和所述本地质询的所述经加密的组合;
经由所述通信接口从远程计算设备接收发现响应消息,所述发现响应消息包括远程节点标识符和本地质询响应的经加密的组合;
将所述远程节点标识符和所述本地质询响应的所述经加密的组合解密为所述远程节点标识符和所述本地质询响应;
至少基于所述本地质询生成预期本地质询响应,其中所述预期本地质询响应的生成是由所述计算设备进行的,并且基于与所述远程计算设备用来生成所述本地质询响应的机制相同的机制;
确定所述本地质询响应是否与所述预期本地质询响应相对应;
响应于确定所述本地质询响应与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现是成功的;以及
响应于确定所述本地质询响应不与所述预期本地质询响应相对应,确定对所述远程计算设备的安全发现失败。
22.一种计算设备,包括:
通信接口;以及
处理单元,用于:
经由所述通信接口从远程计算设备接收发现请求消息,所述发现请求消息包括远程节点标识符和远程质询的经加密的组合;
将所述远程节点标识符和所述远程质询的所述经加密的组合解密为所述远程节点标识符和所述远程质询;
至少基于所述远程质询生成远程质询响应;
确定用于所述通信接口的本地节点标识符;
将所述本地节点标识符和所述远程质询响应的组合加密为所述本地节点标识符和所述远程质询响应的经加密的组合;以及
经由所述通信接口向所述远程计算设备传输发现响应消息,所述发现响应消息包括所述本地节点标识符和所述远程质询响应的所述经加密的组合。
CN201980002874.1A 2018-03-19 2019-03-04 用于执行安全邻居发现的计算设备和方法 Active CN110754069B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862644629P 2018-03-19 2018-03-19
US62/644,629 2018-03-19
US16/143,577 US11005667B2 (en) 2018-03-19 2018-09-27 Computing device and method for performing a secure neighbor discovery
US16/143,577 2018-09-27
PCT/CA2019/050256 WO2019178671A1 (en) 2018-03-19 2019-03-04 Computing device and method for performing a secure neighbor discovery

Publications (2)

Publication Number Publication Date
CN110754069A CN110754069A (zh) 2020-02-04
CN110754069B true CN110754069B (zh) 2022-07-05

Family

ID=67906284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980002874.1A Active CN110754069B (zh) 2018-03-19 2019-03-04 用于执行安全邻居发现的计算设备和方法

Country Status (4)

Country Link
US (3) US11005667B2 (zh)
EP (1) EP3769481B1 (zh)
CN (1) CN110754069B (zh)
WO (1) WO2019178671A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021163284A1 (en) * 2020-02-11 2021-08-19 Futurewei Technologies, Inc. Method for robust communication between nodes that are adjacent at layer 3
US20230246961A1 (en) * 2022-02-03 2023-08-03 Karunesh Rama KAIMAL Methods and systems for routing network traffic among organizations using a service-oriented protocol

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301640A (zh) * 2009-01-27 2011-12-28 索尼公司 多层级无线家庭网格网络的认证
CN105872063A (zh) * 2016-04-13 2016-08-17 北京思特奇信息技术股份有限公司 一种基于dcc协议的ipv6地址编码、解码方法及对应的系统
WO2017155703A1 (en) * 2016-03-08 2017-09-14 Qualcomm Incorporated System, apparatus and method for generating dynamic ipv6 addresses for secure authentication

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7900242B2 (en) 2001-07-12 2011-03-01 Nokia Corporation Modular authentication and authorization scheme for internet protocol
US7948916B2 (en) 2003-01-31 2011-05-24 Hewlett-Packard Development Company, L.P. Method and apparatus for discovering topology information in a network
US20060206616A1 (en) * 2005-03-14 2006-09-14 Gridiron Software, Inc. Decentralized secure network login
CN100539501C (zh) 2006-10-13 2009-09-09 清华大学 基于域名的统一身份标识和认证方法
US7961674B2 (en) * 2009-01-27 2011-06-14 Sony Corporation Multi-tier wireless home mesh network with a secure network discovery protocol
US9794731B2 (en) * 2010-12-31 2017-10-17 Google Technology Holdings LLC Method and apparatus for providing secure communication in a self-organizing network
US9788185B2 (en) 2011-06-09 2017-10-10 Lg Electronics Inc. Method and apparatus for finding a neighbor in a wireless communication system
US8713169B2 (en) 2011-10-11 2014-04-29 Cisco Technology, Inc. Distributed IPv6 neighbor discovery for large datacenter switching systems
US9338732B2 (en) 2011-10-28 2016-05-10 Qualcomm Incorporated Systems and methods for fast initial network link setup
CN102438050A (zh) 2011-12-12 2012-05-02 中国联合网络通信集团有限公司 IPv6地址配置方法及传感器节点
EP2826223B1 (en) * 2013-01-25 2019-11-20 Koninklijke KPN N.V. Proximity discovery, authentication and link establishment between communication mobile devices in 3gpp lte
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9294460B1 (en) * 2013-12-20 2016-03-22 Amazon Technologies, Inc. Service credential distribution
US9313030B2 (en) 2014-01-22 2016-04-12 Futurewei Technologies, Inc. Method and apparatus for secure ad hoc group device-to-device communication in information-centric network
US10382282B1 (en) * 2014-07-07 2019-08-13 Microstrategy Incorporated Discovery of users using wireless communications
WO2016116128A1 (en) 2015-01-19 2016-07-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for direct communication key establishment
US20160380776A1 (en) * 2015-06-29 2016-12-29 Cisco Technology, Inc. Secured neighbor discovery registration upon device movement
US9900206B2 (en) * 2015-07-20 2018-02-20 Schweitzer Engineering Laboratories, Inc. Communication device with persistent configuration and verification
EP3573313A1 (en) 2015-12-18 2019-11-27 Huawei Technologies Co., Ltd. Networking method for data center network and data center network
US10129731B2 (en) * 2016-06-21 2018-11-13 Amazon Technologies, Inc. Neighbor discovery and neighbor selection of mesh network devices in a mesh network
US10797959B2 (en) 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller
US11025419B2 (en) * 2017-11-15 2021-06-01 Alexander J. M. Van Der Velden System for digital identity authentication and methods of use

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301640A (zh) * 2009-01-27 2011-12-28 索尼公司 多层级无线家庭网格网络的认证
WO2017155703A1 (en) * 2016-03-08 2017-09-14 Qualcomm Incorporated System, apparatus and method for generating dynamic ipv6 addresses for secure authentication
CN105872063A (zh) * 2016-04-13 2016-08-17 北京思特奇信息技术股份有限公司 一种基于dcc协议的ipv6地址编码、解码方法及对应的系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Formal Analysis of Secure Neighbor Discovery in Wireless Networks";Marcin Poturalski,等;《IEEE Transactions on Dependable and Secure Computing 》;20130603;第355-367页 *
"基于移动IPv6的安全保障关键技术研究";康祥青;《中国优秀硕士学位论文全文数据库信息科技辑》;20110930;I139-129 *

Also Published As

Publication number Publication date
EP3769481A4 (en) 2021-04-21
US11695575B2 (en) 2023-07-04
EP3769481B1 (en) 2023-05-31
US20210218581A1 (en) 2021-07-15
CN110754069A (zh) 2020-02-04
EP3769481A1 (en) 2021-01-27
WO2019178671A1 (en) 2019-09-26
US20230283486A1 (en) 2023-09-07
US20190288861A1 (en) 2019-09-19
US11005667B2 (en) 2021-05-11

Similar Documents

Publication Publication Date Title
CN110720197B (zh) 用于在数据中心中执行架构部署的计算设备和方法
CN107995052B (zh) 用于针对有线和无线节点的公共控制协议的方法和设备
US20230283486A1 (en) Computing device and method for performing a secure neighbor discovery
EP3242437A1 (en) Light-weight key update mechanism with blacklisting based on secret sharing algorithm in wireless sensor networks
CN103580980A (zh) 虚拟网络自动发现和自动配置的方法及其装置
CN110191052B (zh) 一种跨协议网络传输方法及系统
CN110720195B (zh) 用于生成链路ipv6地址的计算设备和方法
EP3337121B1 (en) Networking bonding by a mobile communication device
EP1905218A1 (en) Link management system
CN110720196A (zh) 用于生成架构范围的ipv6地址的计算设备和方法
US10630479B2 (en) Network communication method having function of recovering terminal session
US8364949B1 (en) Authentication for TCP-based routing and management protocols
EP3827565B1 (en) Computing device and method for optimizing the tunneling of ip packets
WO2019165235A1 (en) Secure encrypted network tunnels using osi layer 2 protocol
US11671451B1 (en) Server/client resolution for link level security protocol
CN114073047A (zh) 用于与客户端设备同步联网信息的服务器和方法
CN114073048A (zh) 用于与拓扑服务器同步联网信息的计算设备和方法
Korhonen Future after openvpn and ipsec
US7466711B2 (en) Synchronous system and method for processing a packet
Mouri Iot protocols and security
Rahman et al. Securing IPv6 Neighbor Discovery using Pre-Shared Key

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40019913

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant