CN103858390A - 用于大型数据中心交换系统的分布式IPv6邻居发现 - Google Patents
用于大型数据中心交换系统的分布式IPv6邻居发现 Download PDFInfo
- Publication number
- CN103858390A CN103858390A CN201280049912.7A CN201280049912A CN103858390A CN 103858390 A CN103858390 A CN 103858390A CN 201280049912 A CN201280049912 A CN 201280049912A CN 103858390 A CN103858390 A CN 103858390A
- Authority
- CN
- China
- Prior art keywords
- grouping
- neighbor
- switching equipment
- neighbours
- router
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/026—Details of "hello" or keep-alive messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了分布式邻居发现模块,其中所有的邻居发现操作和功能可被分布到交换设备处理器。交换设备上的每一个邻居发现过程可作为单独的邻居发现路由器节点来运行。在不同的交换设备上发生的邻居发现过程之间可能没有协同。所有其他流量,包括去往路由器的数据流量和IPv6控制流量的两者,可由中央控制器处理器处理。
Description
本申请将作为PCT国际专利申请于2012年10月3日递交,并要求2011年10月11日递交的美国发明专利申请No.13/270,904的优先权,该申请的主题通过引用方式全文结合于此。
背景技术
邻居发现协议被IPv6协议应用于路由器发现、地址解析、重复地址检测、不可达检测以及其他特征。在能够支持大量虚拟机和/或主机的交换模块中,随着主机/虚拟机数量的增加,多个主机和中央控制器处理器之间交换的邻居发现消息的数量可能是压倒性的。这很有可能使中央控制器处理器超载并且增加故障的可能性。
因此,存在对能够将邻居发现流量分布至各种交换设备的IPv6邻居发现分布模块的需要。这能够允许对于能够支持大量虚拟机和/或主机的交换模块在可扩展性和稳定性上的提高。
附图说明
附图包含在本发明中并构成本发明的一部分,示出了各种实施例。在附图中:
图1示出了本发明的实施例的示例网络环境;
图2示出了IPv6地址格式;
图3示出了根据本发明的实施例的IPv6地址格式;
图4示出了本发明的示例实施例;
图5示出了根据本发明的实施例的IPv6地址格式;
图6是示出本发明的实施例的流程图;
图7是示出本发明的实施例的流程图;
图8是示出本发明的实施例的流程图;
图9是示出本发明的实施例的流程图;
图10是示出本发明的实施例的流程图;
图11是示出本发明的实施例的流程图;
图12是示出本发明的实施例的流程图;
图13是示出本发明的实施例的流程图;以及
图14是计算网络设备的框图。
具体实施方式
概述
根据本发明的实施例,公开的系统和方法用于解决具有跨多个设备的虚拟局域网(VLAN)的多个交换设备系统的关键的可扩展性问题。
但应理解的是,上述概括说明和下文的具体实施方式二者均只是示例和说明性的,不应理解为对本申请所记载和要求保护的范围造成限制。此外,除了此处所述之外,本申请还公开了多种特征和/或变体。例如,本发明的实施例可针对具体实施方式中所述的各种特征的组合和子组合。
详细描述
下文的详细描述参照了附图。只要可能,附图和下文描述中使用相同的标号指代相同或相似的部分。尽管本发明的实施例可被描述,修改、改编以及其他的实现方式也是可能的。例如,可对附图中所示的部分进行替换、添加或修改,并且可通过对所公开的方法进行替换、重新排序或添加阶段来对此处所述方法进行修改。因此,下文的详细描述并不限制本发明。相反,本发明的合适范围由所附权利要求的范围来限定。
由于虚拟机(“vM”)的概念被引入校园和数据中心网络,在数据中心通过交换系统连接的主机的数量急剧增长,甚至达到百万的数量级。随着虚拟机数量的增加,越来越多的交换机和路由器须被添加,传统的三层网络架构已经不能满足此类网络的要求。延迟、复杂度和成本可能也会增加。
图1示出了本发明的实施例的示例网络环境。示例网络可被设计为展平的架构,该架构由多设备交换系统110组成。多设备交换系统110可以包括多个L2/L3交换设备120a-c。每一个交换设备120a-c可以被连接到若干个服务器130a-f。
在一些实施例中,交换设备120a-c可以被直接连接在一起,或(全互联的或级联结构)或通过交换结构设备(中枢轮辐架构)以构成虚拟交换机。所有这些交换设备可以由中央控制器来控制。路由协议可在作为单一路由实体的中央控制器上运行。所有流量可以像通过单一的交换设备切换一样通过系统转换。在此类交换系统中,跨交换设备120a-c转发的分组可经过两个阶段的硬件查找和转发,一次在入口交换设备上,一次在出口交换设备上。
IPv6协议被设计为支持更多数量的可寻址节点和更强的具有更大的地址大小(128bits)的寻址分层结构的能力。更大的IPv6地址空间使得对于网络前缀和地址的分配具有更大的灵活性。这为聚集(aggregation)创造了可能性。
图2示出了IPv6地址格式。较高的N位可被用来存储子网前缀210。子网前缀210可以是分配到L3接口的子网前缀。余下的128-N位可被用于存储接口ID220。接口ID220可被用于标识连接到L3接口的主机。
图3示出了根据本发明的实施例的IPv6地址格式。最高N位可被用于存储子网前缀310。接下来的M位可被分配给端口ID320。端口ID320可唯一地标识与网络上的交换设备相关联的特定端口。余下的128-N-M位可被用来存储主机ID330。端口前缀可由子网前缀和端口ID组合而构成。
本文描述的实施例可基于由多个L2交换机端口组成的L3虚拟接口的配置。此外,多个L2交换机端口中的每一个端口可以共享相同的VLANID。与交换设备相关联的L2交换机端口可被连接到多个主机或虚拟机。端口前缀可被配置在交换设备的端口上。取决于连接到端口的主机数,不同的端口上的端口前缀长度(N+M)可以是相同或不同的。
与VLAN接口相关联的所有端口前缀应通过在VLAN接口上的子网前缀被汇总(summarize)。与端口相关联的所有分配的主机地址应通过配置在交换设备上的端口前缀被汇总。在一些实施例中,子网前缀、端口前缀和主机地址可以通过DHCP服务器和其他网络管理工具被分配。
在根据本文描述的实施例的操作环境中,与交换设备相关联的多个L2端口可以驻留在相同的VLAN中。L3虚拟接口可如上文所述来配置。L2端口可以散布在多个交换设备中。在该设定下,由于多个目的地交换设备可以与相同的子网前缀相关联,现有的系统无法使子网前缀聚合。
此处所描述的实施例可在除本地交换设备以外的所有交换设备上在FIB CAM表中安装端口前缀。目的地端口索引可被安装作为端口前缀的目的地索引。这些端口前缀FIB表项可被用于入口查询。在出口交换设备上,只有本地邻居表项可被安装在本地交换设备上的FIB CAM表中。邻居FIB表项可被用于出口查找。如果源和目的地二者均在相同的交换设备上,邻居FIB表项可被用于FIB查找,因为只有一个FIB查找是必需的。子网前缀可被安装在本地交换设备上,其中本地交换设备被配置为把表项邻居发现分组踢到中央控制器CPU进行处理。
图4示出了本发明的示例实施例。端口前缀PPl可被配置到与连接虚拟机430和虚拟机470的交换设备450相关联的端口上。端口前缀PPl可被安装在交换设备410和交换设备440上的FIB CAM中。如果IPv6分组来自VM420,目的地为VM430,它可到达交换设备410。L3入口查找可能会命中(hit)目的地索引指向交换设备450的端口前缀PPl。
未经L2重写,该帧被转发到交换设备450的出口处。在该阶段,目的地MAC已被系统发现。然后,L3出口查找可能会命中虚拟机VM430的目的地CAM表项。该分组随后将被转发到VM430。反向流量可被以同样的方式转发,即端口前缀被配置在交换设备410上,并且安装在交换设备450上的FIB CAM中。
在无VLAN关联的纯L3接口中,配置在具有目的地端口索引的接口上的子网前缀可被安装在所有其他相关联的交换设备上。到达入口交换设备的分组可能会命中子网前缀。其后,分组可被转发到出口交换设备并到达其最终目的地。
在以太网信道(LAG)接口上,配置在具有以太网信道目的地索引的接口上的子网前缀可被安装在所有其他相关联的交换设备上。到达入口交换设备的分组可能会命中子网前缀。其后,根据以太网信道的负载均衡算法,分组可被转发到交换设备。随后,分组可以基于出口查找通过出口交换设备被转发。
本发明的实施例所支持的主机的最大数量可通过公式[1]来计算
[1]H=(F-P x V×S)x S
H表示所支持的主机的最大数量。F表示FIB的大小。v表示每个端口的VLAN的数量。P表示每个交换设备的端口数量。S表示所使用的交换设备的数量。例如,对于FIB CAM的大小为16000IPv6表项,交换设备数量为100,每个交换设备具有48个端口,每个端口具有1个VLAN的情况,可支持110万台主机。
在一些实施例中,为增强可扩展性,端口前缀可被安装在基于活动业务流的入口交换设备。例如,端口前缀将只被安装在具有活动业务流的交换设备上。业务流可以被监测,并且如果业务流在预定时间周期停止,端口前缀应从入口交换设备处移除。使用这种方法,如果连接到端口设备的主机不与连接到其他交换设备上的所有其他端口的主机进行通信,FIBCAM的大小可能会更小。
前一段的实施例可能支持的主机的最大数量可以通过公式[2]来计算
[2]H=(F-P x V x S x C%)x S
C%表示与活动交换设备相关联的端口之间的活动业务流的百分比。例如,对于FIB CAM的大小为16000IPv6表项,交换设备数量为100,每个交换设备具有48个端口,每个端口具有2个VLAN,活动流为50%的情况,可支持110万台主机。
本公开的实施例考虑端口级别聚集可能不能满足可配置许多VLAN的校园或数据中心环境的要求的情景。由于端口前缀应在每个端口/每个VLAN的基础上被配置,端口前缀的数量可随着VLAN每个端口的数量增长而增长。在该环境中,如图5所示,实施例可为设备ID从接口ID的空间分配M位设备。
图5示出了根据本发明的实施例的IPv6地址格式。最高N位可被用于存储子网前缀510。接下来的M位可以分配给设备ID520。设备ID520可识别系统上的单独设备。余下的128-N-M位可被用来存储主机ID530。设备前缀可通过组合子网前缀和设别设备ID来构成。
设备前缀可被配置到交换机设备上,交换机设备上的每个VLAN配置一个前缀。设备前缀用于汇总在同一VLAN连接到交换机设备的所有主机。设备前缀可被安装在与其他交换机设备相关联的FIB CAM中来进行入口查找。
使用端口前缀的方法可与设备前缀一起使用。然而,入口查找是基于设备前缀而不是端口前缀。使用设备前缀还允许配置有许多VLAN的系统具有更高程度的可扩展性。
本发明的实施例采用设备前缀可支持的主机的最大数量可通过公式[3]来计算
[3]H=(F-V x S)x S
H表示所支持的主机的最大数量。F表示FIB表的大小。v表示每个设备的VLAN数量。S代表所使用的交换机设备的数量。例如,对于FIBCAM的大小为16000IPv6表项,交换机设备数量为100,每个设备具有1个VLAN的情况,可支持160万台主机。同样地,对于FIB CAM的大小为16000IPv6表项,交换机设备数量为100,每个设备具有50个VLAN,可支持110万台主机。
图6是示出了本发明的实施例的流程图。方法600可从步骤610开始,在步骤610中,IPv6地址中的第一数量个比特可被分配用于存储子网前缀。其后,方法600可进行至步骤620,在步骤620在,IPv6地址中的第二数量个比特可被分配用于存储端口标识符。
其后,方法600可进行到步骤630。在步骤630中,IPv6地址中余下的比特可被分配用于存储主机标识符。在一些实施例中,IPv6地址被附加在分组中,该分组跨由多个第2层交换机端口组成的第3层虚拟接口而被发送。随后方法600可进行到步骤640,在步骤640中,端口前缀可通过子网前缀和接口标识符的组合来计算。
在一些实施例中,2个或多个交换设备可共享相同的VLAN识别。此外,交换设备中的至少一个可被连接到一个或多个虚拟机。其后方法600可进行到步骤650,其中端口前缀可被安装于在多个交换设备上的FIBCAM表中。在一些实施例中,与端口相关联的所有分配的主机地址可由端口前缀被汇总。
图7是示出了本发明的实施例的流程图。方法700可从步骤710开始,其中,端口前缀和/或设备前缀中的一个被配置。基于如上述图3和图5中所述的IPv6地址信息来确定前缀。在一些实施例中,可在交换设备上进行配置。交换设备可驻留在第一虚拟机和第二虚拟机之间的路径上。
方法700继而可进行到步骤720。在步骤720中,前缀可被安装在入口开关设备处的FIB CAM中。在一些实施例中,前缀可包括指向出口交换机设备的目的地索引。方法700随后可进行到步骤730,其中可从第一虚拟机接收地址去往第二虚拟机的IPv6分组。
继接收到IPv6分组之后,方法700可进行到步骤740。在步骤740中,入口查找可被执行。入口查找可定位指定的前缀。在一些实施例中,方法700可进行到步骤750,其中出口查找可被执行用于分组遍历至其目的地。出口查找可定位在FIB CAM对应于所述第二虚拟机的FIB CAM目的地表项。在一些实施例中,可以将该分组转发到基于负载平衡算法结果的出口交换设备。在一些实施例中,方法700可在不与VLAN相关联的L3接口进行。
按照本发明的实施例可包括用于在多个设备上缩放(scale)IPv6的装置。该系统可包括耦合到存储器的处理器,其中该处理器可被操作用于确定基于IPv6地址信息的端口前缀值。处理器还可被配置用于将端口前缀值安装在与多个相连接的交换设备相关联的FIB CAM表中。
处理器还可被配置为使用端口前缀值来进行入口查找。在一些实施例中,该装置可以是交换设备。交换设备可驻留在与多个相连接的交换设备相同的VLAN中。该处理器还可被配置为将入口数据分组踢到中央控制器进行处理。
本文所描述的实施例公开了分布式邻居发现模块,其中所有邻居发现操作和功能可以被分配给一个交换机设备处理器。交换设备上的每一个邻居发现过程可作为单独的邻居发现路由器节点来运行。在不同的交换机设备上发生的邻居发现过程之间可能没有协同。所有其他流量,包括发送到路由器的数据流量和IPv6控制流量可通过中央控制器处理器进行处理。
IPv6邻居发现消息可以被归类为具有五种保留ICMP消息类型的IPv6ICMP消息。这五种保留ICMP消息类型包括路由器请求(solicitation)、路由器通告(advertisement)、邻居请求、邻居通告和重定向消息。在本发明的实施例中,仅IPv6邻居发现分组应被踢到交换机设备处理器。发往路由器的其他IPv6ICMP分组应被踢给中央控制器处理器。
为区分来自于其他ICMP消息的这些消息,在硬件中可以采用第3层访问列表。该访问列表包含允许保留的ICMP消息类型的列表。在一些实施例中,访问列表包括以下可被标识为“路由器-请求”、“路由器-通告”、“nd-ns”(邻居请求)、“nd-na”(邻居通告)和“重定向”的消息类型。
访问列表应被编写在以本地CPU作为其目的地的硬件上,以使与访问列表相匹配的分组会被踢到该本地CPU处。所有其他控制流量和数据流量应随着硬件中的常规FIB表项被踢到中央控制处理器。
如果VLAN在交换设备本地,则在交换设备上的执行邻居发现的实施例可相对简单。当该VLAN被配置为跨越多个交换设备则可能会出现问题,因为可能会有多个邻居发现路由器实例接触到单一VLAN。
然而,在全球性的VLAN范围内,连接到不同的交换设备的主机必须能够进行通信,好像它们是在同一网络段中一样。主机可以共享相同的网络前缀,并且使用邻居发现协议用于路由器和邻居发现。邻居发现过程可在作为邻居发现路由器节点运行的多个交换设备上运行。
图8是本发明的实施例的流程图,方法800可从步骤810开始,在步骤810中,可以通过网络设备接收IPv6流量。IPv6流量可包含各种类型的数据和消息,这些消息包括ICMP消息在内。
其后,方法800可进行到步骤820。在步骤820中,如果IPv6流量包括访问列表中识别的一个或多个邻居发现消息,则IPv6流量可被定向到正在运行邻居发现过程的交换机设备处。
在一些实施例中,邻居发现消息可通过将与IPv6流量的分组相关联的消息类型值和访问列表相比较来识别。消息类型值包括多种类型:路由器请求、路由器通告、邻居请求、邻居通告和重定向消息。访问列表可被编写在具有本地CPU的硬件中,其中本地CPU与交换设备相关联,并且该本地CPU作为识别消息的目的地。
其后,在步骤830中,其它IPv6流量可以被发送到中央处理器进行处理。
本发明的实施例想到了分布式模型通过单一地址模型来实现分布式邻居发现。一些实施例具有在交换设备上运行的若干邻居发现过程。每个邻居发现过程可以使用相同的路由器IP地址和相同的路由器MAC地址。路由器MAC地址可被安装在MAC表中。路由器IP地址可被安装在FIBCAM中。
组播邻居发现分组可从若干主机被发送。对于发往所有节点(或所有路由器)的邻居发现分组,分组应被接受,并且由在本地交换设备处理器上的本地邻居发现过程处理。该分组也可通过交换设备洪泛(flood)到其他主机,这些交换设备具有属于同一VLAN的端口。分组不应通过在其他交换设备上的通过邻居发现过程被处理。
对于发往请求节点地址的邻居发现分组,如果目的地与本地请求节点地址相匹配,则分组应被接受,并通过在本地交换设备处理器上的本地邻居发现过程被处理。否则,分组应被洪泛到其他交换设备上的同一VLAN中的其他主机。这些分组不应该通过与其它交换设备相关联的处理器来处理。
类似地,组播邻居发现分组可从路由器发送。在一些实施例中,这类分组应当只被发送到与本地交换设备相连的在同一VLAN中的主机上。
在一些实施例中,单播邻居发现分组可从主机目标发送到路由器。可以假定路由器MAC地址先前已被主机解析。在交换设备接收单播邻居发现分组之后,L2查找可在交换设备上执行,该交换设备应当命中路由器MAC地址。命中路由器MAC地址可触发L3查找。L3查找可命中ACL,以使分组被踢到交换设备的CPU。从路由器发送到多个主机的单播分组以典型的方式被处理。
在一些实施例中,单播邻居发现分组可从主机目标发送到在同一VLAN中与另一个交换设备相连接的主机。而后,此类单播邻居发现分组被交换设备接收。其后,交换设备可以通过硬件执行L2查找,该L2查找产生丢失(miss)。其后,分组被复制并且被洪泛到在同一VLAN中的其他主机,该VLAN使用其他交换设备。
图9是本发明的实施例的流程图。方法900可从步骤910开始,在步骤910中,使用相同的路由器IP地址和相同的路由器MAC地址的若干邻居发现过程可被实现在多个交换设备上。
接下来,在步骤920中,组播邻居发现分组可从主机被接收。其后,在步骤930中,可确定组播邻居发现分组是否被发往多个节点。如果是,方法900进行到步骤940,在步骤940中,组播邻居发现分组可被本地邻居发现过程处理。
如果否,方法900可进行到步骤950,在步骤950中,可确定组播邻居发现分组是否发往请求节点地址,以及组播发现分组目的地是否与本地请求节点地址相匹配。如果是,方法900可进行到步骤960。在步骤960中,组播邻居发现分组可被本地邻居发现处理。
在一些实施例中,方法900可进行到步骤970。在步骤970中,组播邻居发现分组可被洪泛到与其他交换设备相关联的同一VLAN中的其他主机。
图10是示出了本发明的实施例的流程图。方法1000可开始于步骤1010,此时单播邻居发现分组可被接收。其后,方法1000可进行到步骤1020。在步骤1020中,L2查找可被执行于路由器MAC地址中。
如果路由MAC地址被命中,方法1000可进行到1030并对邻居发现访问列表执行L3查找。在访问列表发生命中时,方法1000可进行到步骤1040,并将单播邻居发现分组踢到本地CPU
在一些实施例中,步骤1010可能包含接收从主机目标到在同一VLAN中连接到第二交换设备的主机的单播邻居发现分组。在这种情况下,步骤1020的L2查找可能会产生丢失。在这种丢失的情况下,单播邻居发现分组可被复制和洪泛到同一VIAN的其他主机。
本发明公开的实施例想到了分布式模型通过多地址模型实现分布式邻居发现。在多地址模型中,在交换设备上运行的每一个邻居发现过程可具有唯一路由器IP地址和唯一路由器MAC地址。
典型地,多于一个邻居发现过程能够向同一VLAN通告路由器地址,就像在该VLAN中存在多个路由器一样。连接到VLAN的主机和虚拟机可以从它的路由列表选择路由器。本发明的实施例建议从交换设备的邻居发现路由器抑制路由通告消息。默认路由器可由管理工具(例如DHCP)配置在多个主机(或虚拟机)上。这可以保证主机(或虚拟机)总是与相同的交换设备进行通信。此交换设备通常作为主机(或虚拟机)直接相连的交换设备。此类解决方案对现有系统进行配置所需的努力是最低限度的。
当组播邻居发现分组从主机被发送,从主机发送的路由器通告分组将被丢弃。如果目的地地址与本地请求节点组播地址相匹配,则从主机发送的邻居请求分组应被踢到交换设备的CPU。可能存在一些实施例,其中分组可能不来自直接连接的主机。这种情况可能存在于例如VMotion或系统的错误配置的例子中。因此,交换设备应允许来自于未直接连接的主机的邻居请求分组。
在一些实施例中,组播邻居发现分组可以从路由器发送。此外,路由器通告消息应被抑制。邻居请求消息可照常被洪泛到VLAN。如果VLAN跨越多个交换设备,邻居请求消息应被洪泛到包含该VLAN的成员的所有交换设备。
在一些实施例中,单播邻居发现分组可从主机目标发送到路由器。这些分组可将路由器MAC作为目的地MAC。这些单播邻居发现分组应照常被踢给运行在本地交换设备上的邻居发现过程。与上述类似,交换设备应允许邻居请求分组来自于未直接相连的若干主机。从路由器发送到若干主机的单播分组以典型的方式被处理。
在一些实施例中,单播邻居发现分组可以被从主机目标发送到在同一VLAN上连接到另一交换设备的主机。然后,此类单播邻居发现分组被交换设备接收。其后,交换设备可在硬件中执行L2查找,该L2查找产生丢失。继而,分组被复制并且洪泛到同一VLAN中的其他主机,该VLAN使用其他交换设备。
图11是示出了本发明实施例的流程图。方法1100可从步骤1110开始,在步骤1110中,组播邻居发现分组可被接收。接收该分组后,方法1100可进行到步骤1120。在步骤1120中,组播邻居发现分组的消息类型可参考访问列表被确定。
确定消息类型后,方法1100可进行到步骤1130,在步骤1130中,被识别为路由器通告分组的组播邻居发现分组可被丢弃。其后,方法1100可进行到步骤1140,在步骤1140中,如果目的地地址与本地请求节点组播地址相匹配,则被识别为邻居请求分组的组播邻居发现分组被踢到本地CPU。
图12是示出了本发明的实施例的流程图。方法1200可从步骤1210开始,在步骤1210中,以路由器MAC作为目的地MAC的单播邻居发现分组可被接收。在接收到单播邻居发现分组时,方法1200可进行到步骤1220,其中单播邻居发现分组可以被踢到正在运行邻居发现过程的本地CPU。
其后,方法1200可进行到步骤1230。在步骤1230中,单播邻居发现分组可从主机目标被接收,其中主机目标被定向到与在同一VLAN中的交换设备相关联的第二主机。继而,方法1200将进行到步骤1240,其中可执行查找,该查找产生丢失。
当查找产生丢失时,方法1200可进行到步骤1250。在步骤1250,单播邻居发现分组可被复制和洪泛到在同一VLAN上的其他主机。
在本文描述的实施例中,交换设备处理器不应该处理邻居发现分组以外的任何分组。所有其他的分组应该由图13所述的中央控制处理器处理。图13示出了根据本文所述的实施例的其他分组的处理。方法1300可从步骤1310开始,其中发往路由器的所有传入单播和组播分组被踢到中央控制器处理器。
方法1300可进行到步骤1320。在步骤1320中,所有传出组播分组可被洪泛到VLAN广播域。其后,方法1300可进行到步骤1330。在步骤1330中,来自中央控制器处理器的传出单播分组需要解析目的地MAC地址。通过在设备/端口前缀表中搜索,可发现通过哪个交换设备处理器可以达到目的地。
该方法可进行到步骤1340,其中通过内部IPC信道,向交换设备处理器发送MAC地址请求。一旦从回复消息了解到MAC地址,该MAC地址可被存储在中央控制器处理器的邻居缓存中。MAC地址可用于发送当前和未来的单播分组到目的地。
图14示出了网络设备,诸如计算设备1400。计算设备1400可包括处理单元1425和存储器1455。存储器1455可包括被配置用于执行应用模块的软件,例如操作系统1410。计算设备1400可以执行例如包括在上文所述方法中的一个或多个阶段。此另,包括在上文所述方法中的任何一个或多个阶段可被执行在图14中所示的任何元件上。
计算设备1400可使用个人计算机、网络计算机、大型计算机、计算装置或其他类似的微机工作站来实现。处理器可包括任何计算机操作环境,诸如手持式设备、多处理器系统、基于微处理器的或可编程的发送器电子设备、小型计算机、大型计算机,诸如此类等等。该处理器还可以被实施于由远程处理设备执行任务的分布式计算环境中。此外,该处理器可包括移动终端,比如智能电话、蜂窝电话、使用无线应用协议(WAP)的蜂窝电话、个人数字助理(PDA)、智能寻呼机、便携式计算机、手持计算机、传统电话、无线保真(Wi-Fi)接入点或传真机。前述系统和设备仅作为示例,处理器可以包括其他系统或设备。
本发明的实施例参考了例如框图和/或方法、系统和根据本发明的实施例的计算机程序产品的操作图示而被描述。在方框中提到的功能/动作可能以如任何流程图所示之外的顺序发生。例如,依次显示的两个方框实际上可以基本同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
尽管本发明对某些实施例进行了说明,但可以有其它实施例。此外,尽管本发明的实施例已被描述为与存储在存储器和其他存储介质中的数据相关联,数据也能够被其它类型的计算机可读介质存储或读取,例如辅助存储设备,如硬盘、软磁盘或CD-ROM、来自互联网的载波或其他形式的RAM或ROM。此外,所公开的方法的阶段可以以任何方式进行修改,包括通过重新排序阶段和/或插入或删除阶段,而不脱离本发明的范围。
本文包括代码著作权在内的所有权利归属和作为申请人的财产。申请人持有并保留本文包括代码在内的所有权利,并且只有在与授权专利的再现有关而无其他目的时才授予再现该材料的许可。
尽管本说明书包括示例,本发明的范围由以下的权利要求进行限制。此外,尽管本说明书已经以特定的语言对结构特征和/或方法行为进行了描述,权利要求并不限于以上所述的特征或行为。相反,上述具体特征和行为作为本发明的实施例的示例而被公开。
Claims (20)
1.一种方法,包括:
接收IPv6流量;
如果所述IPv6流量包括在访问列表中被标识的一个或多个邻居发现消息,则将所述IPv6流量分布到正在运行邻居发现过程的交换设备处理器;以及
将其余IPv6流量发送到中央处理器进行处理。
2.根据权利要求1所述的方法,其中邻居发现消息可通过将与在所述IPv6流量中的所述分组相关联的消息类型值与所述访问列表相比较来识别。
3.根据权利要求2所述的方法,其中所述消息类型值包括多个:路由器请求、路由器通告、邻居请求、邻居通告和重定向消息。
4.根据权利要求3所述的方法,其中所述访问列表被编写在具有本地CPU的硬件中,该本地CPU与交换设备相关联,其中该本地CPU作为被识别消息的目的地。
5.根据权利要求4所述的方法,其中所述交换设备是被分配至同一VLAN中的多个交换设备之一。
6.一种装置,包括:
存储器;和
被耦合到所述存储器的处理器,其中所述处理器可被操作用于:
使用相同的路由器IP地址和相同的路由器MAC地址执行多个邻居发现过程;
从主机接收组播邻居发现分组;
如果所述组播邻居发现分组被指定到多个节点,则以本地邻居发现过程处理所述组播邻居发现分组;并且
如果所述组播邻居发现分组被指定到请求节点地址,并且所述组播发现分组的目的地和所述本地请求节点地址相匹配,则以本地邻居发现过程处理所述组播邻居发现分组。
7.根据权利要求6所述的装置,其中所述存储器还包括:
用于存储所述路由器MAC地址的MAC表;以及
用于存储所述路由器IP地址的FIB CAM。
8.根据权利要求7所述的装置,还包括在所述邻居发现过程之后将所述组播邻居发现分组洪泛到在同一VLAN上与所述装置相连的其他主机。
9.根据权利要求6所述的装置,其中所述处理器还被配置为:
接收单播邻居发现分组;
对所述路由器MAC地址执行L2查找;
如果所述路由器MAC地址被命中,对邻居发现访问列表执行L3查找;并且
将所述单播邻居发现分组踢至本地CPU。
10.根据权利要求9所述的装置,其中所述装置是具有多个端口的交换设备。
11.根据权利要求6所述的装置,其中所述处理器还被配置为:
从定向到第二交换设备的主机目标接收单播邻居发现分组,该主机目标与所述设备在同一VLAN上;
执行L2查找,该L2查找引起丢失;
复制所述单播邻居发现分组;并且
将所述复制的分组洪泛到在同一VLAN上的其他主机。
12.根据权利要求10所述的装置,其中所述邻居发现访问列表包括可接受的邻居发现消息类型的列表。
13.一种方法,包括:
接收组播邻居发现分组;
参照访问列表来确定所述组播邻居发现分组的消息类型;
丢弃被识别为路由器通告分组的组播邻居发现分组;并且
如果所述目的地地址与所述本地请求节点组播地址相匹配,则将被识别为邻居请求分组的组播邻居发现分组踢到本地CPU,其中所述本地CPU执行多个使用唯一路由器IP地址和唯一路由器MAC地址的邻居发现过程。
14.根据权利要求13所述的方法,其中所述组播邻居发现分组来自主机,该主机不直接与包含所述本地CPU的交换设备相连接。
15.根据权利要求13所述的方法,还包括将所述邻居请求分组洪泛到包含VLAN的成员的所有交换设备。
16.根据权利要求13所述的方法,还包括:
接收将路由器MAC作为目的地MAC的单播邻居发现分组;以及
将所述单播邻居发现分组踢到正在运行一个或多个邻居发现过程的所述本地CPU。
17.根据权利要求13所述的方法,还包括:
从主机目标接收单播邻居发现分组,该主机目标定向到在同一VLAN中的与交换设备相关联的第二主机;
执行查找,该查找引起丢失;
复制所述单播邻居发现分组;并且
将所复制的分组洪泛到在同一VLAN上的其他主机。
18.根据权利要求15所述的方法,其中不属于邻居发现分组的所有分组由中央处理器处理。
19.根据权利要求18所述的方法,还包括:
将指定到路由器的所有传入单播和组播分组踢至所述中央处理器;
将所有传出组播分组洪泛到所述VLAN广播域;
对所有传出单播分组解析目的地MAC地址;并且
引用设备/端口前缀表来定位交换设备处理器。
20.根据权利要求19所述的方法,还包括:
在中央处理器的邻居缓存中存储目的地MAC地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/270,904 | 2011-10-11 | ||
US13/270,904 US8713169B2 (en) | 2011-10-11 | 2011-10-11 | Distributed IPv6 neighbor discovery for large datacenter switching systems |
PCT/US2012/059293 WO2013055653A1 (en) | 2011-10-11 | 2012-10-09 | Distributed ipv6 neighbor discovery for large datacenter switching systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103858390A true CN103858390A (zh) | 2014-06-11 |
CN103858390B CN103858390B (zh) | 2017-09-22 |
Family
ID=47080840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280049912.7A Expired - Fee Related CN103858390B (zh) | 2011-10-11 | 2012-10-09 | 用于大型数据中心交换系统的分布式IPv6邻居发现方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8713169B2 (zh) |
EP (1) | EP2767047B1 (zh) |
CN (1) | CN103858390B (zh) |
WO (1) | WO2013055653A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547382A (zh) * | 2017-05-23 | 2018-01-05 | 紫光华山信息技术有限公司 | 一种邻居关系发现方法和装置 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713169B2 (en) | 2011-10-11 | 2014-04-29 | Cisco Technology, Inc. | Distributed IPv6 neighbor discovery for large datacenter switching systems |
US9025604B2 (en) * | 2012-01-10 | 2015-05-05 | Cisco Technology, Inc. | Scaling IPV4 at large datacenters with device level aggregation |
US9537750B2 (en) * | 2012-04-26 | 2017-01-03 | Hewlett Packard Enterprise Development Lp | Multicast router topology discovery |
US20150256450A1 (en) * | 2012-09-28 | 2015-09-10 | Siyu Yang | Generating a Shape Graph for a Routing Table |
US9577914B2 (en) | 2012-10-16 | 2017-02-21 | Cisco Technology, Inc. | Eliminating IPV6 neighbor solicitations in constrained computer networks |
EP2741462A1 (en) * | 2012-12-06 | 2014-06-11 | ST-Ericsson SA | Methods for opportunistic sensing |
US9088608B2 (en) | 2013-03-12 | 2015-07-21 | Cisco Technology, Inc. | Throttling and limiting the scope of neighbor solicitation (NS) traffic |
US9148845B2 (en) | 2013-09-23 | 2015-09-29 | Mitsubishi Electric Research Laboratories, Inc. | Method for discovering neighboring nodes in wireless networks |
US9591510B2 (en) * | 2014-09-22 | 2017-03-07 | Raytheon Company | Systems and methods to create message traffic |
US9497200B2 (en) | 2015-02-16 | 2016-11-15 | International Business Machines Corporation | Managing limited network access configuration |
US10374926B2 (en) | 2016-01-28 | 2019-08-06 | Oracle International Corporation | System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment |
US10536334B2 (en) | 2016-01-28 | 2020-01-14 | Oracle International Corporation | System and method for supporting subnet number aliasing in a high performance computing environment |
JP6929863B2 (ja) | 2016-08-23 | 2021-09-01 | オラクル・インターナショナル・コーポレイション | 高性能コンピューティング環境における高速ハイブリッド再構成をサポートするためのシステムおよび方法 |
CN107547407B (zh) * | 2017-09-15 | 2021-03-09 | 新华三技术有限公司 | 报文传输方法、装置和实现装置 |
US10873500B2 (en) | 2018-03-06 | 2020-12-22 | Kaloom Inc. | Computing device and method for generating a link IPV6 address |
US10673695B2 (en) * | 2018-03-06 | 2020-06-02 | Kaloom Inc. | Computing device and method for performing a fabric deployment in a data center |
US11005667B2 (en) | 2018-03-19 | 2021-05-11 | Kaloom Inc. | Computing device and method for performing a secure neighbor discovery |
US10924454B2 (en) * | 2018-03-06 | 2021-02-16 | Kaloom Inc. | Computing device and method for generating a fabric-wide IPV6 address |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050237946A1 (en) * | 2004-04-23 | 2005-10-27 | Olaf Borowski | Suppression of router advertisement |
US20080298277A1 (en) * | 2004-05-25 | 2008-12-04 | Cisco Technology, Inc. | Neighbor discovery proxy with distributed packet inspection scheme |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103035B1 (en) | 2000-01-14 | 2006-09-05 | Advanced Micro Devices, Inc. | Arrangement for searching network addresses in a network switch using multiple tables based on subnet identifier |
US6977930B1 (en) | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
WO2002019624A2 (en) | 2000-08-31 | 2002-03-07 | The Regents Of The University Of California | Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks |
US20020035639A1 (en) | 2000-09-08 | 2002-03-21 | Wei Xu | Systems and methods for a packet director |
US20030046330A1 (en) | 2001-09-04 | 2003-03-06 | Hayes John W. | Selective offloading of protocol processing |
US7095738B1 (en) | 2002-05-07 | 2006-08-22 | Cisco Technology, Inc. | System and method for deriving IPv6 scope identifiers and for mapping the identifiers into IPv6 addresses |
US7367052B1 (en) * | 2002-12-04 | 2008-04-29 | Cisco Technology, Inc. | Access list key compression |
US7487255B2 (en) | 2003-08-14 | 2009-02-03 | Hewlett-Packard Development Company, L.P. | Routing cache management with route fragmentation |
US7680943B2 (en) | 2003-10-20 | 2010-03-16 | Transwitch Corporation | Methods and apparatus for implementing multiple types of network tunneling in a uniform manner |
US7480255B2 (en) | 2004-05-27 | 2009-01-20 | Cisco Technology, Inc. | Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use |
KR100656378B1 (ko) * | 2005-10-15 | 2006-12-11 | 한국전자통신연구원 | 단대단(Point-to-Point)성격의 광대역무선 접속망에서의 lPv6 이웃 탐색 지원 방법 및시스템 |
JP4786371B2 (ja) * | 2006-02-27 | 2011-10-05 | アラクサラネットワークス株式会社 | ネットワーク中継装置 |
US8040850B2 (en) * | 2006-08-21 | 2011-10-18 | Qualcomm Incorporated | Advanced internet protocol with flash-OFDM methods and systems |
WO2008063110A1 (en) * | 2006-11-23 | 2008-05-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements for lan emulation in mobile networks |
US8112803B1 (en) | 2006-12-22 | 2012-02-07 | Symantec Corporation | IPv6 malicious code blocking system and method |
EP2393856B1 (en) | 2009-02-05 | 2016-04-06 | Arkema Inc. | Fibers sized with polyetherketoneketones |
US8565247B2 (en) | 2009-08-19 | 2013-10-22 | Brocade Communications Systems, Inc. | Techniques for efficiently updating routing information upon shortest path tree computation |
US8824472B2 (en) | 2010-09-16 | 2014-09-02 | Verizon Patent And Licensing Inc. | Sanitizing packet headers |
US8438390B2 (en) * | 2010-12-22 | 2013-05-07 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for using neighbor discovery unspecified solicitation to obtain link local address |
US8588224B2 (en) | 2011-05-14 | 2013-11-19 | International Business Machines Corporation | Priority based flow control in a distributed fabric protocol (DFP) switching network architecture |
US8503464B2 (en) | 2011-05-20 | 2013-08-06 | Brocade Communications Systems, Inc. | Techniques for efficiently updating routing information |
US8576841B2 (en) | 2011-06-30 | 2013-11-05 | Juniper Networks, Inc. | Hybrid port range encoding |
US8832238B2 (en) | 2011-09-12 | 2014-09-09 | Microsoft Corporation | Recording stateless IP addresses |
US20130077530A1 (en) | 2011-09-28 | 2013-03-28 | Cisco Technology, Inc. | Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation |
US8713169B2 (en) | 2011-10-11 | 2014-04-29 | Cisco Technology, Inc. | Distributed IPv6 neighbor discovery for large datacenter switching systems |
-
2011
- 2011-10-11 US US13/270,904 patent/US8713169B2/en active Active
-
2012
- 2012-10-09 WO PCT/US2012/059293 patent/WO2013055653A1/en active Application Filing
- 2012-10-09 EP EP12778890.9A patent/EP2767047B1/en not_active Not-in-force
- 2012-10-09 CN CN201280049912.7A patent/CN103858390B/zh not_active Expired - Fee Related
-
2014
- 2014-04-29 US US14/264,101 patent/US10171547B2/en active Active
-
2018
- 2018-12-13 US US16/218,858 patent/US20190116220A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050237946A1 (en) * | 2004-04-23 | 2005-10-27 | Olaf Borowski | Suppression of router advertisement |
US20080298277A1 (en) * | 2004-05-25 | 2008-12-04 | Cisco Technology, Inc. | Neighbor discovery proxy with distributed packet inspection scheme |
Non-Patent Citations (1)
Title |
---|
W. KUMARI GOOGLE等: "Operational Neighbor Discovery Problems", 《DRAFT-GASHINSKY-V6ND-PROBLEM-00.TXT,IETF》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547382A (zh) * | 2017-05-23 | 2018-01-05 | 紫光华山信息技术有限公司 | 一种邻居关系发现方法和装置 |
CN107547382B (zh) * | 2017-05-23 | 2020-06-09 | 新华三信息技术有限公司 | 一种邻居关系发现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013055653A1 (en) | 2013-04-18 |
US20140229573A1 (en) | 2014-08-14 |
US20190116220A1 (en) | 2019-04-18 |
CN103858390B (zh) | 2017-09-22 |
EP2767047A1 (en) | 2014-08-20 |
EP2767047B1 (en) | 2018-03-14 |
US10171547B2 (en) | 2019-01-01 |
US20130091269A1 (en) | 2013-04-11 |
US8713169B2 (en) | 2014-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103858390A (zh) | 用于大型数据中心交换系统的分布式IPv6邻居发现 | |
US9081603B2 (en) | Packet forwarding optimization with virtual machine mobility by comparing device identifiers to determine VM movement | |
Jain et al. | Viro: A scalable, robust and namespace independent virtual id routing for future networks | |
US20160087887A1 (en) | Routing fabric | |
CN105453523A (zh) | 大型数据中心中对虚拟机移动性的处理 | |
CN100411390C (zh) | 一种邻居发现的实现方法 | |
CN103227843A (zh) | 一种物理链路地址管理方法及装置 | |
GB2513188A (en) | Identification of the paths taken through a network of interconnected devices | |
US20170048154A1 (en) | Redirection ip packet through switch fabric | |
CN103581022B (zh) | Mac地址的查找转发方法和装置 | |
CN102739526B (zh) | 一种高效分布式路由表的实现方法 | |
CN101114971A (zh) | 基于IPv6地址结构实现虚拟专用网的方法 | |
US8989189B2 (en) | Scaling IPv4 in data center networks employing ECMP to reach hosts in a directly connected subnet | |
EP3005631A1 (en) | Packet forwarding | |
CN103036794A (zh) | 一种报文的学习方法、装置和系统 | |
GB2519824A (en) | Identifying an egress port of a device | |
CN106803809B (zh) | 一种报文转发的方法和装置 | |
CN108199947B (zh) | 指定转发者df选举方法及装置 | |
CN100428681C (zh) | 在ip网络中采用单播地址来标识多播组的方法 | |
US7653044B1 (en) | Address scope checking for internet protocol version 6 | |
US20130077530A1 (en) | Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation | |
CN109768909B (zh) | 报文转发方法和装置 | |
CN114244763B (zh) | 基于规则引擎的动态网络拓扑管理方法及其系统 | |
US9025604B2 (en) | Scaling IPV4 at large datacenters with device level aggregation | |
US9025606B2 (en) | Method and network node for use in link level communication in a data communications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170922 Termination date: 20201009 |