CN111835645B - 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 - Google Patents
用于跨网络内的多个接口代理子网内流量的方法、系统和装置 Download PDFInfo
- Publication number
- CN111835645B CN111835645B CN202010647768.3A CN202010647768A CN111835645B CN 111835645 B CN111835645 B CN 111835645B CN 202010647768 A CN202010647768 A CN 202010647768A CN 111835645 B CN111835645 B CN 111835645B
- Authority
- CN
- China
- Prior art keywords
- proxy
- network node
- node
- network
- neighbor
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/20—Arrangements for broadcast or distribution of identical information via plural systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请的各实施例涉及用于跨网络内的多个接口代理子网内流量的方法、系统和装置。所公开的计算机实现的方法可包括(1)在IP网络内的代理节点处创建代理组,该代理组包括IP网络的子网内的、由伪MAC地址表示的多个网络节点,(2)接收来自代理组中包括的网络节点的邻居请求,(3)在邻居请求内标识发送该邻居请求的网络节点的链路层地址,(4)通过用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求,以及随后(5)将修改后的邻居请求转发给代理组中包括的另一网络节点以促进NDP过程的完成,在NDP过程中该另一网络节点用由代理节点代理的邻居通告来响应修改后的邻居请求。各种其他方法、系统和装置也被公开。
Description
本申请是申请日为2016年09月12日、国家申请号为201610818132.4、发明名称为“用于跨网络内的多个接口代理子网内流量的方法、系统和装置”的发明专利申请的分案申请。
相关申请的交叉引用
本申请通过引用而包含以下文档,这些文档与信息公开声明一起被提交到美国专利商标局:
可在https://tools.ietf.org/html/rfc4389(在2016年4月21日访问)处获得的因特网工程任务组(IETF)文档“Neighbor Discovery Proxies(ND Proxy)”;
可在https://tools.ietf.org/html/rfc4861(在2016年4月21日访问)处获得的IETF文档“Neighbor Discovery for IP version 6(IPv6)”。
技术领域
本申请的各实施例涉及用于跨网络内的多个接口代理子网内流量的方法、系统和装置。
背景技术
在因特网协议(IP)网络内,出于诸如减少网络拥塞、提高安全性和/或使不同类型的网络拓扑相互连接之类的各种原因而使用子网划分。子网可包括通过路由器而相互连接的多个网络节点。在一些情况下,子网内的每个网络节点可经由单个接口链接到路由器。在其他情况下,子网内的网络节点可经由多个接口链接到路由器。在子网内的网络节点经由多个接口链接到路由器的情况下,路由器可能需要跨这些接口代理子网内流量。
遗憾的是,对于这样的代理的传统方式可能具有某些缺点和/或缺陷。例如,子网可包括经由多个接口连接到路由器的多个网络节点。在传统方式中,即使源节点和目的地节点属于同一子网,路由器也可能无法将连接到一个接口的网络节点的链路本地地址与连接到另一接口的另一网络节点交换。作为结果,路由器可能最后丢弃源自该网络节点并且旨在用于另一网络节点的任何分组,从而潜在地导致连通性问题和/或低效的资源消耗。
另外,链路本地地址可能仅在子网和/或网段内是唯一的。因此,不同子网中和/或不同网段上的网络节点可能共享相同的链路本地地址。作为结果,即使忽略任何非转发规则,路由器也可能无法标识用于分组的正确目的地,因为目的地节点的链路本地地址跨所有子网和/或网段不一定是唯一的。换言之,路由器可能由于混淆和/或模糊性而不确定将链路本地分组转发到哪里并且因而丢弃链路本地分组。
本公开内容因而确定并解决了对用于跨网络内的多个接口代理子网内流量的方法、系统和装置的需要。
发明内容
如在下面更详细地描述的,本公开内容总体上涉及用于跨网络内的多个接口代理子网内流量的方法、系统和装置。在一个示例中,一种用于完成这样的任务的方法可包括(1)在IP网络内的代理节点处创建代理组,该代理组包括IP网络的子网内的、由伪媒体访问控制(MAC)地址表示的多个网络节点,(2)在代理节点处接收来自代理组中包括的网络节点的邻居请求,(3)在邻居请求内标识发送在代理节点处接收到的邻居请求的网络节点的链路层地址,(4)通过在邻居请求内用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求,以及随后(5)将修改后的邻居请求转发给代理组中包括的至少一个其他网络节点以促进邻居发现协议(NDP)过程的完成,在NDP过程中该其他网络节点用由代理节点代理的邻居通告来响应修改后的邻居请求。
类似地,一种用于实现上述方法的系统可包括:(1)存储在存储器中的创建模块,该创建模块在IP网络内的代理节点处创建代理组,该代理组包括IP网络的子网内的、由伪MAC地址表示的多个网络节点,(2)存储在存储器中的接收模块,该接收模块在代理节点处接收来自代理组中包括的网络节点的邻居请求,(3)存储在存储器中的标识模块,该标识模块在邻居请求内标识发送在代理节点处接收到的邻居请求的网络节点的链路层地址,(4)存储在存储器中的修改模块,该修改模块通过在邻居请求内用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求,(5)存储在存储器中的转发模块,该转发模块将修改后的邻居请求转发给代理组中包括的至少一个其他网络节点以促进NDP过程的完成,在NDP过程中该其他网络节点用由代理节点代理的邻居通告来响应修改后的邻居请求,以及(6)至少一个物理处理器,该物理处理器执行创建模块、接收模块、标识模块、修改模块和转发模块。
一种用于实现上述方法的装置可包括:(1)存储设备,该存储设备存储路由表,该路由表包括标识通向IP网络的子网内的多个网络节点的路由的条目,(2)IP网络内的代理节点处的通信地耦合到存储设备的至少一个物理处理器,其中该物理处理器:(A)在代理节点处创建代理组,该代理组包括多个网络节点并且由伪媒体访问控制(MAC)地址表示,(B)在代理节点处接收来自代理组中包括的网络节点的邻居请求,(C)在邻居请求内标识发送在代理节点处接收到的邻居请求的网络节点的链路层地址,(D)通过在邻居请求内用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求,以及随后(E)将修改后的邻居请求转发给代理组中包括的至少一个其他网络节点以促进NDP过程的完成,在NDP过程中该其他网络节点用由代理节点代理的邻居通告来响应修改后的邻居请求。
来自任意上面提到的实施例的特征根据本文所描述的一般原则可以相互结合被使用。这些以及其他的实施例、特征和优点在结合附图和权利要求阅读以下具体实施方式之后将被更充分地理解。
附图说明
附图图示了若干示例性实施例并且是说明书的一部分。与以下描述一起,这些附图展示并说明了本公开内容的各种原理。
图1是用于跨网络内的多个接口代理子网内流量的示例性系统的框图。
图2是用于跨网络内的多个接口代理子网内流量的附加示例性系统的框图。
图3是用于跨网络内的多个接口代理子网内流量的示例性方法的流程图。
图4是包括跨网络内的多个接口代理子网内流量的网络内的多个网络节点的代理组的示例性表示的图示。
图5是示例性邻居请求的图示。
图6是示例性邻居通告的图示。
图7是能够实施本文所描述和/或图示的实施例中的一个或多个和/或能够结合本文所描述和/或图示的实施例中的一个或多个而被使用的示例性计算系统的框图。
贯穿附图中,相同的标号和描述指示类似但是不一定相同的要素。尽管本文所描述的示例性实施例易受各种修改和备选形式影响,但是已经在附图中通过示例方式示出并且将在本文详细描述特定实施例。然而,本文所描述的示例性实施例并非旨在限制于所公开的具体形式。相反,本公开内容涵盖落入所附权利要求的范围内的所有修改、等价物和备选。
具体实施方式
本公开内容描述了用于跨网络内的多个接口代理子网内流量的各种方法、系统和装置。本文所使用的术语“子网内流量”一般指的是通过代理节点从子网内的一个网络节点传递和/或桥接到子网内的另一网络节点的任何类型或形式的通信、流量和/或数据传送。如将在下面更详细说明的,本文所描述的各种实施例可创建包括和/或表示IP网络的单个子网内的多个网络节点的代理组。这些网络节点可经由多个接口而被连接到代理节点(诸如路由器),并且这一代理组可由伪MAC地址标识、由伪MAC地址表示和/或与伪MAC地址相关联。因此,伪MAC地址可标识和/或表示跨越代理节点上的多个接口的连接。
在一个示例中,本文所描述的各种实施例可执行NDP过程以在子网内的多个网络节点之间建立代理通信信道。例如,代理节点可接收标识源节点的链路层地址和/或链路本地地址的邻居请求。在这一示例中,代理节点可在它的邻居高速缓存中为对应于源节点的接口处的源节点创建邻居条目。这一邻居条目可将源节点的当前状态标识为“可到达(REACHABLE)”和/或包括源节点的链路层和/或链路本地地址。
继续这一示例,代理节点可查找源节点的链路层和/或链路本地地址和/或至少部分地基于这些地址之一来确定源节点被包括在代理组中。代理节点然后可至少部分地基于伪MAC地址来查找代理组中包括的所有其他网络节点的链路层和/或链路本地地址。附加地或者备选地,在源节点知道它的代理组的伪MAC地址的情况下,源节点可将该伪MAC地址包括在邻居请求中。在这种情况下,源节点可至少部分地基于在邻居请求中标识的伪MAC地址来查找代理组中包括的所有其他网络节点的链路层和/或链路本地地址。
无论哪种方式,代理节点都可在它的邻居高速缓存中为所有目的地节点的对应接口处的所有目的地节点创建邻居条目。这些邻居条目可将目的地节点的当前状态标识为“不完整(INCOMPLETE)”。代理节点然后可利用代理组的伪MAC地址来替换邻居请求中包括的源链路层地址。在以这种方式替换源链路层地址之后,代理节点可经由链接到代理组中包括的所有其他网络节点的接口将邻居请求转发至那些网络节点。
在接收到邻居请求之后,目的地节点可通过在目的地节点的相应的邻居高速缓存中创建用于源节点的邻居条目来各自处理邻居请求。这些邻居条目可各自将源节点的当前状态标识为“可到达”和/或包括代理组的伪MAC地址和/或源节点的链路本地地址。这些节点然后可各自响应于邻居请求来将邻居通告发送回代理节点。这些邻居通告可包括将它们发送给代理节点的节点的链路层和/或链路本地地址。
在接收到这些邻居通告之一之后,代理节点可通过将代理节点的邻居高速缓存内的用于发送该邻居通告的节点的邻居条目修改为将该节点的当前状态指示为“可到达”来处理邻居通告。代理节点可利用代理组的伪MAC地址来替换邻居通告中包括的目的地链路层地址。代理节点然后可经由链接到发起邻居请求的网络节点的接口而将邻居通告转发给该节点。
在接收到这些邻居通告之一之后,发起邻居请求的网络节点可通过修改它的邻居高速缓存中的用于发送该邻居通告的节点的现有邻居条目来处理邻居通告。之一邻居条目可将发送了邻居通告的节点的当前状态标识为“可到达”和/或包括代理组的伪MAC地址和/或该节点的链路本地地址。发起了邻居请求的节点然后可经由代理节点与子网内的其他节点通信,即使在这样的节点经由不同接口而被连接到代理节点的情况下。
以下将参照图1和图2来提供对用于跨网络内的多个接口代理子网内流量的示例性系统的详细描述。将联系图3来提供对对应的计算机实现的方法的详细描述。将分别联系图4、图5和图6来提供对代理组、示例性邻居请求、示例性邻居通告的示例性表示的详细描述。此外,将联系图7来提供对能够实施本文所描述的实施例中的一个或多个实施例的示例性计算系统的详细描述。
图1是用于跨网络内的多个接口代理子网内流量的示例性系统100的框图。如在这一图中图示的,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下面更详细说明的,示例性系统100可包括创建模块104,其在IP网络内的代理节点处创建代理组,该代理组包括子网内的、由伪MAC地址表示的多个网络节点。示例性系统100还可包括接收模块106,其在代理节点处接收来自代理组中包括的网络节点的邻居请求。
此外,示例性系统100可包括标识模块108,其在邻居请求内标识发送了在代理节点处接收到的邻居请求的网络节点的链路层地址。示例性系统100还可包括修改模块110,其通过在邻居请求内用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求。最后,示例性系统100可包括转发模块112,其将修改后的邻居请求转发给代理组中包括的至少一个其他网络节点以促进NDP过程的完成。尽管被图示为分离的元件,但是图1中的模块102中的一个或多个可表示单个模块(诸如目的地MAC访问控制过滤器)或单个应用(诸如网络操作系统)的多个部分。
在某些实施例中,图1中的模块102中的一个或多个可表示当被计算设备执行时使得该计算设备执行一个或多个任务的一个或多个软件应用或程序。例如,并且如将在下面更详细描述的,模块102中的一个或多个可表示被存储并被配置为在一个或多个计算设备(诸如图2中图示的任何设备(例如,网络节点204和206和/或代理节点208)和/或图7中的计算系统700)上运行的软件模块。图1中的模块102中的一个或多个还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或者部分。
如在图1中图示的,系统100还可包括一个或多个邻居请求,诸如邻居请求120。本文所使用的术语“邻居请求”一般指的是发起用于发现网络节点的邻居和/或经由代理节点建立与网络节点的邻居的代理通信信道的NDP过程的任何类型或形式的通信、ping和/或分组。在一个示例中,网络节点可创建邻居请求120和/或将其发送给能够跨多个接口代理子网内流量的代理节点。这一代理节点然后可将邻居请求120转发给与创建了邻居请求120的网络节点邻近的一个或多个其他网络节点。
在一些示例中,邻居请求120可包括和/或标识始发(originating)网络节点的链路层地址和/或链路本地地址。附加地或者备选地,邻居请求120可包括和/或标识包括该网络节点的代理组的伪MAC地址。这一代理组还可包括与创建了邻居请求120的网络节点在同一子网内的所有其他网络节点。
在一些示例中,邻居请求120可包括和/或表示以该代理组中包括的所有其他网络节点为目的地的多播分组。在这样的示例中,邻居请求120可经由代理节点从始发网络节点遍历至该代理组中包括的所有其他网络节点。邻居请求120可触发和/或提示那些其他网络节点中的每个网络节点创建邻居通告(诸如邻居通告122)。
如在图1中图示的,系统100还可包括一个或多个邻居通告,诸如邻居通告122。本文所使用的术语“邻居通告”一般指的是完成用于发现网络节点的邻居和/或经由代理节点建立与网络节点的邻居的代理通信信道的NDP过程的任何类型或形式的通信、ping和/或分组。在一个示例中,网络节点可经由代理节点接收来自始发网络节点的邻居请求120。响应于接收到邻居请求120,这一网络节点可创建邻居通告122和/或将其发送给代理节点。在这一示例中,代理节点然后可将邻居通告122转发给创建了邻居请求120的网络节点。
在这一示例中,邻居通告122可包括和/或标识接收了邻居请求120的网络节点的链路层地址和/或链路本地地址。附加地或者备选地,邻居通告122可包括和/或标识包括如下代理组的伪MAC地址,该代理组包括创建了邻居请求120的网络节点和创建了邻居通告122的网络节点两者。
在一些示例中,邻居通告122可包括和/或表示以通过邻居请求120方式发起了NDP过程的网络节点为目的地的单播分组。在这样的示例中,邻居通告122可从接收了邻居请求120的网络节点遍历至创建了邻居请求120的网络节点。邻居通告122可有效地完成NDP过程,从而由此使得这些网络节点能够通过代理节点方式相互通信。
图1中的示例性系统100可以按照各种方式被实施。例如,示例性系统100的全部或者一部分可表示图2中的示例性系统200的部分。如在图2中示出的,系统200可包括和/或表示促进到(不一定在图2中图示的)一个或多个计算设备的通信的网络202。在这一示例中,网络202可包括和/或表示被连接到代理节点208的网络节点204和206。
在一个示例中,网络节点204和206可被包括在网络202的同一子网的部分中和/或表示网络202的同一子网的部分。在这一示例中,网络节点204可经由一个接口而被连接到代理节点208,并且网络节点206可经由另一接口而被连接到代理节点208。因此,网络节点204和206可通过不同链路和/或段的方式与代理节点208对接。作为结果,尽管它们被包括在同一子网中,但网络节点204和206在它们的流量并未跨不同接口而被代理的情况下可能无法经由代理节点208相互通信。
本文所使用的术语“接口”一般指的是具有促进网络内的通信和/或跨多个网络的通信的一个或多个端口的任何类型或形式的电路板。这样的接口的示例包括但不限于物理接口卡(PIC)、柔性PIC集中器(FPC)、FRU、交换接口板(SIB)、线路卡、控制板、路由引擎、转发引擎、这些中的一个或多个的组合和/或变体和/或任何其他合适的接口。
尽管图2仅将网络节点204和206图示为连接到代理节点208,但各种其他网络节点(未在图2中图示)也可被连接到代理节点208。另外,这些其他网络节点可被包括在与网络节点204和206相同的子网的部分中和/或表示与网络节点204和206相同的子网的部分。
在一个示例中,代理节点208可被编程有模块102中的一个或多个。在这一示例中,代理节点208可接收来自网络节点204的邻居请求120和/或将其转发给网络节点206。附加地或者备选地,代理节点208可接收来自网络节点206的邻居通告122和/或将其转发给网络节点204。
尽管未在图2中以该方式被图示,网络节点204也可被编程有模块102中的一个或多个。在这一示例中,网络节点204可创建邻居请求120和/或将其经由代理节点208转发给网络节点206。附加地或者备选地,网络节点204可经由代理节点208接收来自网络节点206的邻居通告122。
尽管未在图2中以该方式被图示,网络节点206也可被编程有模块102中的一个或多个。在这一示例中,网络节点206可经由代理节点208接收来自网络节点204的邻居请求120。附加地或者备选地,网络节点206可创建邻居通告122和/或将其经由代理节点208转发给网络节点204。
在一个示例中,来自图1的模块102中的一个或多个当被代理节点208的至少一个处理器执行时可使得代理节点208能够跨网络内的多个接口代理子网内流量。例如,并且如将在下面更详细描述地,模块102中的一个或多个可使得代理节点208:(1)创建包括网络节点204和206并且由伪MAC地址表示的代理组,(2)接收来自代理组中包括的网络节点204的邻居请求120,(3)在邻居请求内标识网络节点204的链路层地址,(4)通过用代理组的伪MAC地址替换网络节点204的链路层地址来修改邻居请求,以及随后(5)将修改后的邻居请求122转发给网络节点206以促进NDP过程的完成,在NDP过程中网络节点206用由代理节点208代理的邻居通告122来响应修改后的邻居请求120。
网络节点204和206各自一般表示促进网络内和/或跨网络的通信和/或网络流量的流动的任何类型或形式的计算系统、设备和/或机构。网络节点202(1)-(N)的示例包括但不限于路由器、交换机、集线器、调制解调器、网桥、中继器、网关、复用器、网络适配器、网络机架、机箱、服务器、计算设备、客户端设备、这些中的一个或多个的部分、这些中的一个或多个的组合或变体和/或任何其他合适的网络节点。
代理节点208一般表示能够跨多个接口代理流量和/或执行第2层转发和/或第3层路由的任何类型或形式的计算系统、设备和/或机构。在一个示例中,代理节点208可包括和/或表示路由器。代理节点208的示例包括但不限于路由器、交换机、集线器、调制解调器、网桥、中继器、网关、复用器、网络适配器、网络机架、机箱、服务器、计算设备、客户端设备、这些中的一个或多个的部分、这些中的一个或多个的组合或变体和/或任何其他合适的代理节点。
网络202一般表示促进通信或数据传送的任何类型或形式的介质和/或架构。在一个示例中,网络202可表示第6版本IP(IPv6)网络。网络202的示例包括但不限于IPv6网络、第4版本IP(IPv4)网络、内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、因特网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、这些中的一个或多个的部分、这些中的一个或多个的组合或变体和/或任何其他合适的网络。网络202可促进使用无线和/或有线连接的通信或数据传送。
图3是用于跨网络内的多个接口代理子网内流量的示例性计算机实现的方法300的流程图。图3中示出的步骤可由任何合适的计算机可执行代码和/或计算系统执行。在一些实施例中,图3中示出的步骤可由图1中的系统100的组件中的一个或多个、图2中的系统200和/或图7中的计算系统700执行。
如在图3中图示的,在步骤310处,本文所描述的系统中的一个或多个可创建代理组,该代理组包括IP网络的子网内的、由伪MAC地址表示的多个网络节点。例如,创建模块104可作为代理节点208的一部分来创建包括网络节点204和206的代理组。在这一示例中,代理组可包括网络202的某一子网内的全部网络节点。这一代理组可由伪MAC地址表示和/或标识。
本文所使用的术语“代理组”一般指的是网络内的多个网络节点的任何类型或形式的虚拟和/或逻辑的分组和/或表示。在一个示例中,代理组可包括网络节点204和206以及(不一定在图2中图示的)一个或多个其他网络节点。附加地或者备选地,创建模块104可创建包括(不一定在图2中图示的)一个或多个其他网络节点的一个或多个其他代理组。在这一示例中,其他代理组可包括网络202的其他子网内的全部网络节点。
本文所使用的术语“伪MAC地址”一般指的是被指派给代理组的任何类型或形式的地址和/或标识符。在一个示例中,创建模块104可随机地和/或任意地生成和/或选择伪MAC地址。在这一示例中,伪MAC地址可具有与MAC地址相同的格式和/或配置。
本文所描述的系统可以按照各种方式和/或情境来执行步骤310。在一些示例中,创建模块104可至少部分地基于包括网络节点204和206的子网来创建代理组。例如,标识模块108可标识包括网络节点204和206的子网。在这一示例中,标识模块108还可标识该子网内的全部网络节点。创建模块104还可通过将那些网络节点的逻辑分组和/或表示指明为代理组来创建代理组。
在一个示例中,网络节点204可经由一个PIC或FPC而被连接到代理节点208。在这一示例中,网络节点206可经由不同的PIC或FPC而被连接到代理节点208。因此,网络节点204和206可通过不同链路和段的方式与代理节点208对接。换言之,网络节点204和206可相对于彼此是“链路外(off-link)”的。作为结果,因为它们相对于彼此是“链路外”的,因此网络节点204和206在它们的流量未被跨不同的PIC或FPC的代理节点208代理的情况下可能无法相互通信。
在一些示例中,创建模块104可构造用于代理组的路由表。例如,创建模块104可实例化专用于代理组的路由表并且随后用标识通向路由组中包括的网络节点的网络路由(诸如IPv6路由)的条目来填充这一路由表。这些路由可至少部分地基于它们的链路本地地址来促进将流量转发给代理组中包括的网络节点。附加地或者备选地,这些路由可标识代理节点208上的链接到代理组中包括的网络节点之一的每个接口的链路层地址。
继续这一示例,条目可标识和/或包括代理组内的网络节点的链路本地地址。这些链路本地地址可以各自对于子网和/或用于代理组的路由表是唯一的。然而,这些链路本地地址跨代理节点208处的全部子网和/或网段可能不一定是唯一的。
回到图3,在步骤320处,本文所描述的系统中的一个或多个可接收来自代理组中包括的网络节点的邻居请求。例如,接收模块106可作为代理节点208的一部分而接收来自网络节点204的邻居请求120。在这一示例中,邻居请求120可指向与网络节点204相同的代理组中包括的所有其他网络节点。邻居请求120可有效地发起用于发现网络节点204的子网内邻居的NDP过程。在这一NDP过程完成之后,网络节点204可能能够将由代理节点208代理的网络流量发送给同一子网内的其他网络节点,即使在这些其他节点为“链路外”的情况下。
在一个示例中,邻居请求120可标识和/或包括网络节点204的链路本地地址。在这一示例中,链路本地地址可表示和/或对应于网络节点204的IP地址。附加地或者备选地,邻居请求120可标识和/或包括网络节点204的链路层地址。在这一示例中,链路层地址可表示和/或对应于网络节点204上的连接到代理节点208的接口的MAC地址。
本文所描述的系统可以按照各种方式和/或情境来执行步骤320。在一些示例中,接收模块106可经由促进网络节点204与代理节点208之间的通信的接口来接收邻居请求120。例如,接收模块106可监视促进网络节点204与代理节点208之间的通信的接口处的所有通信。在监视这一接口的同时,接收模块106可检测和/或接收邻居请求120。
回到图3,在步骤330处,本文所描述的系统中的一个或多个可标识发送了在代理节点处接收到的邻居请求的网络节点的链路层地址。例如,标识模块108可作为代理节点208的一部分来标识邻居请求120内的网络节点204的链路层地址。如在上面指示的,这一链路层地址可表示和/或对应于网络节点204上的连接到代理节点208的接口的MAC地址。
本文所描述的系统可以按照各种方式和/或情境来执行步骤330。在一些示例中,标识模块108可通过搜索邻居请求120来标识链路层地址。例如,标识模块108可搜索邻居请求120以寻找源链路层地址(SLLA)选项。在这一示例中,SLLA选项可标识和/或包括网络节点204的链路层地址。这一链路层地址可指示和/或暗示网络节点204创建了和/或发送了邻居请求120。因此,标识模块108可至少部分地基于这一链路层地址来确定网络节点204创建了和/或发送了邻居请求120。
在标识出邻居请求120内的网络节点204的链路层地址之后,创建模块104可在代理节点208的邻居高速缓存内创建用于网络节点204的条目。在这一示例中,用于网络节点204的条目可标识网络节点204的链路层地址和/或链路本地地址。附加地或者备选地,用于网络节点204的条目可标识通向网络节点204的链路本地地址路由和/或代理节点208上的链接到网络节点204的接口的链路层地址。这一条目还可指示用于网络节点204的“可到达”状态。
类似地,创建模块104可在代理节点208的邻居高速缓存内创建用于网络节点206的条目。在这一示例中,用于网络节点206的条目可标识网络节点206的链路层地址和/或链路本地地址。附加地或者备选地,用于网络节点206的条目可标识通向网络节点206的链路本地地址路由和/或代理节点208上的链接到网络节点206的接口的链路层地址。这一条目还可指示用于网络节点206的“不完整”状态。
回到图3,在步骤340处,本文所描述的系统中的一个或多个可通过在邻居请求内用代理组的伪MAC地址替换网络节点的链路层地址来修改邻居请求。例如,修改模块110可作为代理节点208的一部分而通过用代理组的伪MAC地址替换网络节点204的链路层地址来修改邻居请求120。在这一示例中,伪MAC地址可替换邻居请求120的SLLA选项内的网络节点204的链路层地址。
本文所描述的系统可以按照各种方式和/或情境来执行步骤340。在一些示例中,修改模块110可通过替换邻居请求120的SLLA选项内的网络节点204的链路层地址来修改邻居请求120。例如,修改模块110可从邻居请求120的SLLA选项移除和/或删除网络节点204的链路层地址。在这一示例中,修改模块110可在邻居请求120的SLLA选项内添加和/或插入代理组的伪MAC地址。
回到图3,在步骤350处,本文所描述的系统中的一个或多个可将修改后的邻居请求转发给代理组中包括的至少一个其他网络节点以促进NDP过程的完成。例如,转发模块112可作为代理节点208的一部分而将修改后的邻居请求120转发给至少网络节点206。通过以这种方式将修改后的邻居请求120转发给网络节点206,转发模块112可触发和/或提示网络节点206用由代理节点208代理的邻居通告122来响应邻居请求120,从而促进NDP过程的完成。
本文所描述的系统可以按照各种方式和/或情境来执行步骤350。在一些示例中,转发模块112可至少部分地由于网络节点206被包括在与网络节点204相同的子网内而将邻居请求120转发给网络节点206。例如,标识模块108可确定邻居请求120是多播分组。作为结果,转发模块112可将邻居请求120转发给与网络节点204相同的子网内包括的所有其他网络节点。因为网络节点206被包括在与网络节点204相同的子网内,所以转发模块112可将邻居请求120转发给网络节点206。转发模块112还可将邻居请求120转发给与网络节点204相同的子网中包括的(不一定在图2中图示的)任何其他网络节点。
作为具体示例,接收模块106可接收图5中的邻居请求120。如在图5中图示的,邻居请求120可标识和/或包括某些因特网控制消息协议(ICMP)字段,诸如分组类型字段(在这一示例中为指示邻居请求的“135”)、代码字段(在这一示例中为“0”)、校验和字段(在这一示例中为“0x16FA”)、保留字段和/或目标地址字段(在这一示例中为“291A:04C2:0F07:12A0:0:0:0:1”,其表示网络节点206的链路本地IP地址)。此外,邻居请求120可标识和/或包括SLLA选项字段(在这一示例中为“2E-01-30-AB-72-14”,其表示网络节点204的链路层MAC地址)。尽管未在图5中图示,邻居请求120也可在源地址IP字段中标识和/或包括网络节点204的链路本地地址和/或链路层地址。
在邻居请求120已经到达代理节点208之后,标识模块108可标识SLLA选项字段中的“2E-01-30-AB-72-14”链路层地址。标识模块108然后可搜索包括发送了邻居请求120的网络节点的代理组。例如,标识模块108可搜索代理节点208上的数据库以寻找包括其链路层地址为“2E-01-30-AB-72-14”的网络节点的代理组。在这一搜索期间,标识模块108可将图4中的代理组400标识为包括其链路层地址为“2E-01-30-AB-72-14”的网络节点204。
如在图4中图示的,代理组400可包括网络节点204和206等。在这一示例中,代理组400可被指派有伪MAC地址“A1-05-4E-39-F2-97”和/或与伪MAC地址“A1-05-4E-39-F2-97”相关联。修改模块110可通过用SLLA选项字段中的“A1-05-4E-39-F2-97”伪MAC地址替换“2E-01-30-AB-72-14”链路层地址来在代理节点208处修改邻居请求120。在完成这一修改之后,转发模块112可将修改后的邻居请求120转发给网络节点206和/或与网络节点204相同的子网中包括的(不一定在图2中图示的)任何其他网络节点。
在一些示例中,网络节点206可接收来自代理节点208的邻居请求120。响应于接收到邻居请求120,网络节点206可通过在它的邻居高速缓存中为网络节点204创建邻居条目来处理邻居请求120。这一邻居条目可将网络节点204的当前状态标识为“可到达”和/或将网络节点204映射到网络节点204的伪MAC地址“A1-05-4E-39-F2-97”和链路本地地址。
当在它的邻居高速缓存中创建该邻居条目之后,网络节点206可响应于邻居请求120来将邻居通告122发送回代理节点208以促进NDP过程的完成。如在图6中图示的,邻居通告122可标识和/或包括某些ICMP字段,诸如分组类型字段(在这一示例中为指示邻居请求的“136”)、代码字段(在这一示例中为“0”)、校验和字段(在这一示例中为“0xA214”)、保留字段和/或目标地址字段(在这一示例中为“291A:04C2:0F07:12A0:0:0:0:1”,其表示网络节点206的链路本地IP地址)。此外,邻居通告122可标识和/或包括目标链路层地址(TLLA)选项字段(在该示例中为“14-A6-01-7B-29-45”,其表示网络节点206的链路层MAC地址)。尽管未在图6中图示,邻居通告122也可在源地址IP字段中标识和/或包括网络节点206的链路本地地址和/或链路层地址。
在接收到来自网络节点206的邻居通告122之后,代理节点208可通过在它的邻居高速缓存中将用于网络节点206的现有邻居条目修改为指示网络节点206的当前状态是“可到达”来处理邻居通告122。标识模块108然后可通过(1)至少部分地基于“A1-05-4E-39-F2-97”伪MAC地址来定位用于代理组400的路由表并且随后(2)至少部分地基于网络节点204的链路本地地址在用于代理组400的路由表中查找代理节点208上的链接到网络节点204的接口的链路层地址来标识该接口。
在一个示例中,修改模块110可通过用“A1-05-4E-39-F2-97”伪MAC地址替换TLLA选项内的网络节点206的链路层地址来修改邻居通告122。转发模块112然后可经由将代理节点208链接到网络节点204的接口来将邻居通告122转发给网络节点204。
在接收到邻居通告122之后,网络节点204可通过在它的邻居高速缓存中修改用于网络节点204的现有邻居条目来处理邻居通告122。这一修改后的邻居条目现在可将网络节点206的当前状态标识为“可到达”和/或包括代理组400的伪MAC地址和/或网络节点206的链路本地地址。在完成这一NDP过程之后,网络节点204和206可经由代理节点相互通信,尽管它们的子网延伸跨越多个接口。
在一些示例中,代理节点208可接收源自网络节点204的分组。例如,网络节点204可将以网络节点206为目的地的分组发送给代理节点208。在一个示例中,这一分组可包括和/或表示仅以网络节点206为目的地的单播分组。附加地或者备选地,这一分组可包括和/或表示以网络节点206以及同一子网内的一个或多个附加网络节点为目的地的多播分组。
在代理节点208接收到该分组时,目的地MAC访问控制过滤器(未在图2中明确图示)可检测该分组和/或标识该分组内的分组的目的地的链路本地地址。这一目的地MAC访问控制过滤器可包括和/或表示模块102中的一个或多个。在这一示例中,目的地MAC访问控制过滤器可搜索用于代理组400的路由表以寻找与分组的目的地的链路本地地址对应的条目。在这一搜索期间,目的地MAC访问控制过滤器可标识这样的条目和/或代理节点208上的链接到分组的目的地的接口的链路层地址。
在这一接口的链路层地址已被标识出之后,转发模块112可经由这一接口将分组转发给网络节点206。在这一示例中,网络节点206可接收这一分组。响应于这一分组,网络节点206可将以网络节点204为目的地的另一分组发送回代理节点208。
在代理节点208接收到另一分组时,目的地MAC访问控制过滤器可检测该分组和/或标识另一分组内的另一分组的目的地的链路本地地址。在这一示例中,目的地MAC访问控制过滤器可搜索用于代理组400的路由表以寻找与另一分组的目的地的链路本地地址对应的条目。在这一搜索期间,目的地MAC访问控制过滤器可标识这样的条目和/或代理节点208上的链接到另一分组的目的地的接口的链路层地址。
在这一接口的链路层地址已被标识出之后,转发模块112可经由这一接口将另一分组转发给网络节点204。在这一示例中,网络节点204可接收这一分组。以这种方式,网络节点204和206可经由代理节点相互通信,尽管它们的子网延伸跨越多个接口。
在一些示例中,目的地MAC访问控制过滤器可从网络节点204接收以网络节点206为目的地的分组。在一个示例中,目的地MAC访问控制过滤器可确定代理节点208的转发引擎当前不支持在转发和/或数据平面中将分组转发给网络节点206。例如,目的地MAC访问控制过滤器可确定转发引擎不支持MAC访问控制列表(有时也被称作第2层访问控制列表)。附加地或者备选地,目的地MAC访问控制过滤器可确定代理节点208的链接到网络节点206的接口不支持促进在转发平面中将分组转发给网络节点206的某一寻址方案。
响应于这些确定之一,目的地MAC访问控制过滤器可将分组传到代理节点208的路由引擎以使得路由引擎能够在控制平面中将该分组转发给网络节点206。在一个示例中,目的地MAC访问控制过滤器可如代理节点208的路由引擎中的第3层访问控制列表所指示的将分组传到用于代理组400的路由表。本文所使用的短语“传(punt)”一般指的是其中将分组从转发和/或数据平面传送到控制平面(或者反过来)的任何过程和/或转变。
图7是示例性计算系统700的框图,计算系统700能够实施本文所描述和/或图示的实施例中的一个或多个实施例,和/或结合本文所描述和/或图示的实施例中的一个或多个实施例而被使用。在一些实施例中,计算系统700的全部或者一部分可以单独地或者结合其他元件地执行联系图3描述的步骤中的一个或多个步骤。计算系统700的全部或者部分也可以执行本文所描述和/或图示的任何其他步骤、方法或过程,和/或可以是用于执行和/或实施本文所描述和/或所图示的任何其他步骤、方法或过程的装置。在一个示例中,计算系统700可以包括和/或表示执行和/或构成用于执行和/或实施本文所描述和/或所图示的任何其他步骤、方法或过程的装置的设备。
计算系统700宽泛地表示任何类型或形式的电负载,包括能够执行计算机可读指令的单个或多个处理器计算设备或系统。计算系统700的示例包括但不限于工作站、膝上型计算机、客户侧终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如,主干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络电器(例如,网络安全电器、网络控制电器、网络定时电器、SSL VPN(安全套接字层虚拟专用网)电器等)、网络控制器、网关(例如,服务网关、移动分组网关、多接入网关、安全网关等)和/或任何其他类型或形式的计算系统或设备。
计算系统700可以被编程、被配置和/或以其他方式被设计以遵从一个或多个网络协议。根据某些实施例,计算系统700可以被设计为与开放系统互连(OSI)参考模型的一个或多个层的协议(诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议、和/或应用层协议)一起工作。例如,计算系统700可以包括根据通用串行总线(USB)协议、电气和电子工程师协会(IEEE)1394协议、以太网协议、Tl协议、同步光纤网络(SONET)协议、同步数字阶层(SDH)协议、综合业务数字网(ISDN)协议、异步传输模式(ATM)协议、点对点协议(PPP)、通过以太网的点对点协议(PPPoE)、通过ATM的点对点协议(PPPoA)、蓝牙协议、IEEE 802.XX协议、帧中继协议、令牌环协议、生成树协议、和/或任何其他合适的协议而配置的网络设备。
计算系统700可包括各种网络和/或计算组件。例如,计算系统700可包括至少一个硬件处理器714和系统存储器716。处理器714一般性地表示能够处理数据或者解译和执行指令的任何类型或形式的处理单元。例如,处理器714可以表示ASIC、片上系统(例如,网络处理器)、硬件加速器、通用处理器、和/或任何其他适当的处理元件。
处理器714可以根据上面所讨论的联网协议中的一个或多个联网协议来处理数据。例如,处理器714可以执行或实施协议栈的一部分、可以处理分组、可以执行存储器操作(例如,将分组排序以供稍后处理)、可以执行终端用户应用和/或可以执行任何其他处理任务。
系统存储器716一般性地表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器716的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存或任何其他合适的存储器设备。虽然未被要求,但是在某些实施例中,计算系统700可包括易失性存储单元(诸如,例如,系统存储器716)和非易失性存储设备(诸如,例如,如在下面详细描述的主存储设备732)。系统存储器716可以被实施为网络设备中的共享式存储器和/或分布式存储器。另外,系统存储器716可以存储分组和/或在联网操作中使用的其他信息。在一个示例中,系统存储器616可包括和/或存储来自图1的模块102中的一个或多个。
在某些实施例中,示例性计算系统700还可包括除了处理器714和系统存储器716之外的一个或多个组件或元件。例如,如图7中所图示的,计算系统700可包括存储器控制器718、输入/输出(I/O)控制器720以及通信接口722,它们中的每个都可以经由通信基础设施712而被互连。通信基础设施712一般性地表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施712的示例包括但不限于通信总线(诸如串行ATA(SATA)、工业标准结构(ISA)、外围组件互连(PCI)、PCI高速(PCIe)和/或任何其他适当总线),以及网络。
存储器控制器718一般性地表示能够处置存储器或数据或者控制计算系统700的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器718可以经由通信基础设施712来控制处理器714、系统存储器716、以及I/O控制器720之间的通信。在一些实施例中,存储器控制器718可以包括直接存储器访问(DMA)单元,该直接存储器访问单元可以向链路适配器或者从链路适配器传送数据(例如,分组)。
I/O控制器720一般性地表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的设备或模块。例如,在某些实施例中,I/O控制器720可以控制或促进计算系统700的一个或多个元件(诸如处理器714、系统存储器716、通信接口722、以及存储接口730)之间的数据传送。
通信接口722宽泛地表示能够促进示例性计算系统700与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口722可以促进计算系统700与包括附加计算系统的私有或公有网络之间的通信。通信接口722的示例包括但不限于链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、以及任何其他适当的接口。在至少一个实施例中,通信接口722可以经由通向网络(诸如因特网)的直接链路而提供通向远程服务器的直接连接。通信接口722也可以通过例如局域网(诸如以太网)、个域网、广域网、私有网络(例如,虚拟专用网络)、电话或电缆网络、蜂窝电话连接、卫星数据连接或者任何其他适当的连接,来间接地提供这样的连接。
在某些实施例中,通信接口722也可以表示被配置为经由外部总线或通信信道来促进计算系统700与一个或多个附加的网络或存储设备之间的通信的主机适配器。主机适配器的示例包括但不限于小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、IEEE 1394主机适配器、先进技术附件(ATA)主机适配器、并行ATA(PATA)主机适配器、串行ATA(SATA)主机适配器、以及外部SATA(eSATA)主机适配器、光纤信道接口适配器、以太网适配器等。通信接口722也可以使得计算系统700能够参与分布式计算或远程计算。例如,通信接口722可以从远程设备接收指令或者向远程设备发送指令以用于执行。
如图7中所图示的,示例性计算系统700也可以包括经由存储接口730而耦合到通信基础设施712的主存储设备732和/或备份存储设备734。存储设备732和734一般性地表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备732和734可以表示磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口730一般性地表示用于在存储设备732和734与计算系统700的其他组件之间传送数据的任何类型或形式的接口或设备。
在某些实施例中,存储设备732和734可以被配置为从可移除存储单元读取和/或向可移除存储单元写入,该可移除存储单元被配置为存储计算机软件、数据或其他计算机可读信息。适当的可移除存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备732和734也可以包括用于允许计算机软件、数据或其他计算机可读指令被加载到计算系统700中的其他类似的结构或设备。例如,存储设备732和734可以被配置为读取和写入软件、数据或其他计算机可读信息。存储设备732和734可以是计算系统700的一部分或者可以是通过其他接口系统访问的分开的设备。
许多其他的设备或子系统可以被连接到计算系统700。相反地,为了实践本文所描述和/或图示的各实施例,不必出现图7中所图示的所有组件和设备。上面所提及的设备和子系统也可以按照与图7中所示出的那些方式不同的方式被互连。计算系统700也可以采用任何数目的软件、固件和/或硬件配置。例如,本文所公开的示例性实施例中的一个或多个可以被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用、计算机可读指令、或者计算机控制逻辑)。术语“计算机可读介质”一般指代能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于:传输型介质,诸如载波;以及非瞬态型介质,诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,压缩盘(CD)和数字视频盘(DVD))、电子存储介质(例如,固态驱动器和闪存介质);以及其他分布系统。
虽然前述公开内容使用具体框图、流程图以及示例阐述了各种实施例,但是使用宽范围的硬件、软件、或者固件(或其任何组合)配置,可以个别地和/或共同地实施本文所描述和/或图示的每个框图组件、流程图步骤、操作和/或组件。此外,包含在其他组件内的组件的任何公开内容应当被看作在本质上是示例性的,因为能够实施许多其他架构来实现相同的功能。
在一些示例中,图1中的系统100的全部或者一部分可以表示云计算或基于网络的环境的部分。云计算或基于网络的环境可以经由因特网来提供各种服务和应用。这些云计算和基于网络的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过web浏览器或其他远程接口而是可访问的。本文所描述的各种功能也可以提供网络交换能力、网关接入能力、网络安全功能、用于网络的内容缓存和交付服务、网络控制服务和/或其他联网功能。
此外,本文所描述的模块中的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式变换为另一种形式。附加地或者备选地,本文所记载的模块中的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,而将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式变换为另一种形式。
本文所描述和/或图示的步骤的过程参数和次序仅通过示例的方式给出,并且能够根据需要而变化。例如,虽然本文所图示和/或描述的步骤可以以特定的顺序被示出或讨论,但是这些步骤不一定需要按照所图示或讨论的顺序被执行。本文所描述和/或图示的各种示例性方法也可以省略本文所描述或图示的步骤中的一个或多个步骤,或者包括除了所公开的那些步骤之外的附加步骤。
已经提供了前面的描述,从而使得本领域的技术人员能够最好地利用本文所公开的示例性实施例的各个方面。该示例性描述并非旨在是详尽的或者被限制为所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变型是可能的。本文所公开的实施例应当在各方面被看作是说明性而非限制性的。在确定本公开的范围时,应当对所附权利要求以及它们的等价物做出参考。
除非另有指明,说明书和权利要求中所使用的术语“连接到”和“耦合到”(以及它们的派生词),将被解释为准许直接和间接(即,经由其他元件或组件)连接两者。此外,说明书和权利要求中所使用的术语“一”或“一种”将被解释为意指“至少一个”。最后,为使用的简单性,说明书和权利要求中所使用的术语“包括”和“具有”(以及它们的派生词)与词语“包含”是可互换的并且与词语“包含”具有相同含义。
Claims (12)
1.一种通信方法,包括:
在因特网协议IP网络内的代理节点处创建代理组,所述代理组包括所述IP网络的子网内的、由伪媒体访问控制MAC地址表示的多个网络节点,其中第一网络节点经由第一接口被连接到所述代理节点,第二网络节点经由第二接口被连接到所述代理节点,所述第二接口不同于所述第一接口,其中创建所述代理组包括在所述代理节点处通过用标识通向所述子网内的所述多个网络节点的路由的条目来填充用于所述代理组的路由表来构建所述路由表;
在所述代理节点处接收来自所述代理组中包括的所述第一网络节点的邻居请求;
在所述邻居请求内标识发送在所述代理节点处接收到的所述邻居请求的所述第一网络节点的链路层地址;
通过在所述邻居请求内用所述代理组的所述伪MAC地址替换所述第一网络节点的所述链路层地址来修改所述邻居请求;
将修改后的所述邻居请求转发给所述代理组中包括的所述第二网络节点以促进邻居发现协议NDP过程的完成,在所述NDP过程中所述第二网络节点用由所述代理节点代理的邻居通告来响应修改后的所述邻居请求,以在所述代理组中包括的所述第一网络节点与所述第二网络节点之间建立代理通信信道;
在所述代理节点处接收源自所述第一网络节点并且以所述第二网络节点为目的地的分组;
确定所述代理节点的转发引擎当前不支持在转发平面中将所述分组转发给所述第二网络节点;以及
响应于确定所述转发引擎当前不支持在所述转发平面中转发所述分组,将所述分组传到所述代理节点的路由引擎以在控制平面中将所述分组转发给其他节点。
2.根据权利要求1所述的方法,其中:
接收来自所述代理组中包括的所述第一网络节点的所述邻居请求包括:
接收所述邻居请求;以及
至少部分地基于所述链路层地址来确定发送所述邻居请求的所述第一网络节点被包括在所述代理组中;并且
修改所述邻居请求包括响应于确定发送所述邻居请求的所述第一网络节点被包括在所述代理组中来在所述邻居请求内用所述代理组的所述伪MAC地址替换所述第一网络节点的所述链路层地址。
3.根据权利要求1所述的方法,还包括:
在所述代理节点处接收来自所述代理组中包括的所述第二网络节点的邻居通告;
在所述邻居通告内标识发送在所述代理节点处接收到的所述邻居通告的所述第二网络节点的链路层地址;
通过在所述邻居通告内用所述代理组的所述伪MAC地址替换所述第二网络节点的所述链路层地址来修改所述邻居通告;以及
将修改后的所述邻居通告转发给发送所述邻居请求的所述第一网络节点以促进所述NDP过程的完成,从而使得所述第一网络节点能够将由所述代理节点代理的网络流量发送给所述第二网络节点。
4.根据权利要求1所述的方法,其中标识通向所述多个网络节点的所述路由的条目各自包括:
所述代理节点的链接到所述子网内的特定网络节点的接口的链路层地址;以及
所述特定网络节点的对于用于所述代理组的所述路由表唯一的链路本地地址。
5.根据权利要求1所述的方法,还包括:
在所述代理节点处接收源自所述第一网络节点并且以所述第二网络节点为目的地的分组;
在所述分组内标识发送在所述代理节点处接收到的所述分组的所述第一网络节点的链路层地址;
至少部分地基于所述链路层地址和用于所述代理组的所述路由表来确定发送所述分组的所述第一网络节点被包括在所述代理组中;以及
响应于确定发送所述分组的所述第一网络节点被包括在所述代理组中,将所述分组转发给所述代理组中包括的所述第二网络节点。
6.根据权利要求5所述的方法,其中所述分组包括以下各项中的至少一项:
以所述第二网络节点为目的地的单播分组;以及
以所述第二网络节点和至少一个附加网络节点为目的地的多播分组。
7.根据权利要求1所述的方法,其中确定所述代理节点的所述转发引擎当前不支持在所述转发平面中转发所述分组包括以下各项中的至少一项:
确定所述转发引擎不支持MAC访问控制列表;以及
确定所述代理节点的连接到所述第二网络节点的接口不支持促进在所述转发平面中将所述分组转发给所述第二网络节点的特定寻址方案。
8.根据权利要求1所述的方法,其中将所述分组传到所述代理节点的所述路由引擎包括如所述代理节点的所述路由引擎中的第3层访问控制列表所指示的将所述分组传到所述路由表。
9.一种通信系统,包括:
存储在存储器中的创建模块,所述创建模块在因特网协议IP网络内的代理节点处创建代理组,所述代理组包括所述IP网络的子网内的、由伪媒体访问控制MAC地址表示的多个网络节点,其中第一网络节点经由第一接口被连接到所述代理节点,第二网络节点经由第二接口被连接到所述代理节点,所述第二接口不同于所述第一接口,其中创建所述代理组包括在所述代理节点处通过用标识通向所述子网内的所述多个网络节点的路由的条目来填充用于所述代理组的路由表来构建所述路由表;
存储在存储器中的接收模块,所述接收模块在所述代理节点处接收来自所述代理组中包括的所述第一网络节点的邻居请求;
存储在存储器中的标识模块,所述标识模块在所述邻居请求内标识发送在所述代理节点处接收到的所述邻居请求的所述第一网络节点的链路层地址;
存储在存储器中的修改模块,所述修改模块通过在所述邻居请求内用所述代理组的所述伪MAC地址替换所述第一网络节点的所述链路层地址来修改所述邻居请求;
存储在存储器中的转发模块,所述转发模块将修改后的所述邻居请求转发给所述代理组中包括的所述第二网络节点以促进邻居发现协议NDP过程的完成,在所述NDP过程中所述第二网络节点用由所述代理节点代理的邻居通告来响应修改后的所述邻居请求,以在所述代理组中包括的所述第一网络节点与所述第二网络节点之间建立代理通信信道;
存储在存储器中的第二接收模块,所述第二接收模块在所述代理节点处接收源自所述第一网络节点并且以所述第二网络节点为目的地的分组;
存储在存储器中的确定模块,所述确定模块确定所述代理节点的转发引擎当前不支持在转发平面中将所述分组转发给所述第二网络节点;
存储在存储器中的传到模块,所述传到模块响应于确定所述转发引擎当前不支持在所述转发平面中转发所述分组,将所述分组传到所述代理节点的路由引擎以在控制平面中将所述分组转发给其他节点;以及
至少一个物理处理器,所述物理处理器执行所述创建模块、所述接收模块、所述标识模块、所述修改模块、所述转发模块、所述第二接收模块、所述确定模块和所述传到模块。
10.根据权利要求9所述的系统,其中:
所述标识模块至少部分地基于所述链路层地址来确定发送所述邻居请求的所述第一网络节点被包括在所述代理组中;并且
所述修改模块响应于确定发送所述邻居请求的所述第一网络节点被包括在所述代理组中来在所述邻居请求内用所述代理组的所述伪MAC地址替换所述第一网络节点的所述链路层地址。
11.根据权利要求9所述的系统,还包括:
所述接收模块在所述代理节点处接收来自所述代理组中包括的所述第二网络节点的邻居通告;
所述标识模块在所述邻居通告内标识发送在所述代理节点处接收到的所述邻居通告的所述第二网络节点的链路层地址;
所述修改模块通过在所述邻居通告内用所述代理组的所述伪MAC地址替换所述第二网络节点的所述链路层地址来修改所述邻居通告;以及
所述转发模块将修改后的所述邻居通告转发给发送所述邻居请求的所述第一网络节点以促进所述NDP过程的完成,从而使得所述第一网络节点能够将由所述代理节点代理的网络流量发送给所述第二网络节点。
12.一种电子装置,包括:
存储设备,所述存储设备存储路由表,所述路由表包括标识通向因特网协议IP网络的子网内的多个网络节点的路由的条目;
所述IP网络内的代理节点处的通信地耦合到所述存储设备的至少一个物理处理器,其中所述物理处理器:
在所述代理节点处创建代理组,所述代理组包括所述多个网络节点并且由伪媒体访问控制MAC地址表示,其中第一网络节点经由第一接口被连接到所述代理节点,第二网络节点经由第二接口被连接到所述代理节点,所述第二接口不同于所述第一接口,其中创建所述代理组包括在所述代理节点处通过用标识通向所述子网内的所述多个网络节点的路由的条目来填充用于所述代理组的路由表来构建所述路由表;
在所述代理节点处接收来自所述代理组中包括的所述第一网络节点的邻居请求;
在所述邻居请求内标识发送在所述代理节点处接收到的所述邻居请求的所述第一网络节点的链路层地址;
通过在所述邻居请求内用所述代理组的所述伪MAC地址替换所述第一网络节点的所述链路层地址来修改所述邻居请求;
将修改后的所述邻居请求转发给所述代理组中包括的所述第二网络节点以促进邻居发现协议NDP过程的完成,在所述NDP过程中所述第二网络节点用由所述代理节点代理的邻居通告来响应修改后的所述邻居请求,以在所述代理组中包括的所述第一网络节点与所述第二网络节点之间建立代理通信信道;
在所述代理节点处接收源自所述第一网络节点并且以所述第二网络节点为目的地的分组;
确定所述代理节点的转发引擎当前不支持在转发平面中将所述分组转发给所述第二网络节点;以及
响应于确定所述转发引擎当前不支持在所述转发平面中转发所述分组,将所述分组传到所述代理节点的路由引擎以在控制平面中将所述分组转发给其他节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010647768.3A CN111835645B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/162,157 US10027576B2 (en) | 2016-05-23 | 2016-05-23 | Method, system, and apparatus for proxying intra-subnet traffic across multiple interfaces within networks |
US15/162,157 | 2016-05-23 | ||
CN201610818132.4A CN107426343B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
CN202010647768.3A CN111835645B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610818132.4A Division CN107426343B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111835645A CN111835645A (zh) | 2020-10-27 |
CN111835645B true CN111835645B (zh) | 2023-05-02 |
Family
ID=57083073
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610818132.4A Active CN107426343B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
CN202010647768.3A Active CN111835645B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610818132.4A Active CN107426343B (zh) | 2016-05-23 | 2016-09-12 | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10027576B2 (zh) |
EP (2) | EP3641277A1 (zh) |
CN (2) | CN107426343B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347376B (zh) * | 2017-01-24 | 2020-01-31 | 华为技术有限公司 | 一种调整转发路径的方法、装置及系统 |
US10530873B1 (en) * | 2017-04-28 | 2020-01-07 | Cisco Technology, Inc. | Techniques for optimizing EVPN-IRB for IPv6-enabled data centers with top-of-rack deployments |
US10848416B2 (en) | 2017-10-17 | 2020-11-24 | Juniper Networks, Inc. | Reduced configuration for multi-stage network fabrics |
US10924375B2 (en) * | 2019-01-28 | 2021-02-16 | Juniper Networks, Inc | Apparatus, system, and method for probing the status of unreachable virtual interfaces partitioned on remote physical interfaces |
CN112383594B (zh) * | 2020-10-30 | 2022-04-22 | 新华三技术有限公司 | 基于超级账本Fabric网络的跨主机通信方法及装置 |
TWI763360B (zh) * | 2021-03-10 | 2022-05-01 | 瑞昱半導體股份有限公司 | 在網路交換器中進行封包過濾的方法以及相關過濾器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268668A (zh) * | 2005-09-19 | 2008-09-17 | 松下电器产业株式会社 | 具有同时本地和外部网络连接的多接口移动节点 |
CN101568915A (zh) * | 2006-12-26 | 2009-10-28 | 摩托罗拉公司 | 用于促进网络移动性的方法和装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0978977A1 (en) * | 1998-08-07 | 2000-02-09 | International Business Machines Corporation | A method and system for improving high speed internetwork data transfers |
US7505432B2 (en) * | 2003-04-28 | 2009-03-17 | Cisco Technology, Inc. | Methods and apparatus for securing proxy Mobile IP |
US7609687B2 (en) * | 2003-12-15 | 2009-10-27 | Panasonic Corporation | Home agent apparatus, mobile router communication system, and communication method |
EP1733528A1 (en) * | 2004-04-05 | 2006-12-20 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Method, communication device and system for address resolution mapping in a wireless multihop ad hoc network. |
US8102854B2 (en) * | 2004-05-25 | 2012-01-24 | Cisco Technology, Inc. | Neighbor discovery proxy with distributed packet inspection scheme |
JP2006217077A (ja) * | 2005-02-01 | 2006-08-17 | Ntt Docomo Inc | 通信システム、移動端末、中継装置及び転送経路学習方法 |
KR100734884B1 (ko) * | 2006-07-11 | 2007-07-03 | 한국전자통신연구원 | Ieee 802.16/와이브로 망상의 네이버 탐색프로토콜 메시지 전송 방법 |
US7779136B2 (en) * | 2007-11-01 | 2010-08-17 | Telefonaktiebolaget L M Ericsson (Publ) | Secure neighbor discovery between hosts connected through a proxy |
CN101741824A (zh) * | 2008-11-14 | 2010-06-16 | 华为技术有限公司 | IPv6地址的解析方法、装置及邻居发现报文处理方法 |
CN101764734B (zh) * | 2008-12-25 | 2012-12-19 | 中兴通讯股份有限公司 | IPv6环境下提高邻居发现安全性的方法及宽带接入设备 |
US8706908B2 (en) * | 2009-02-20 | 2014-04-22 | Centurylink Intellectual Property Llc | System, method and apparatus for media access control (MAC) address proxying |
CN101572712B (zh) * | 2009-06-09 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种防止伪造报文攻击的方法和中继设备 |
US8886833B1 (en) * | 2009-06-24 | 2014-11-11 | Marvell International Ltd. | Method and apparatus for peer-to-peer networking |
WO2011060571A1 (zh) * | 2009-11-17 | 2011-05-26 | 华为技术有限公司 | 一种地址重复检测代理方法、装置及系统 |
US9019894B2 (en) * | 2010-04-14 | 2015-04-28 | Sharp Kabushiki Kaisha | Position managing apparatus, packet gateway apparatus, mobile communication system, mobile station apparatus and mobile communication method |
WO2012006190A1 (en) * | 2010-06-29 | 2012-01-12 | Huawei Technologies Co., Ltd. | Delegate gateways and proxy for target hosts in large layer 2 and address resolution with duplicated internet protocol addresses |
CN102946351B (zh) * | 2012-10-23 | 2016-06-08 | 杭州华三通信技术有限公司 | 一种数据传输方法和系统 |
US9100285B1 (en) * | 2012-12-18 | 2015-08-04 | Juniper Networks, Inc. | Dynamic control channel establishment for software-defined networks having centralized control |
US9088608B2 (en) * | 2013-03-12 | 2015-07-21 | Cisco Technology, Inc. | Throttling and limiting the scope of neighbor solicitation (NS) traffic |
CN103179228B (zh) * | 2013-04-02 | 2015-08-19 | 杭州华三通信技术有限公司 | 因特网协议地址解析方法及边缘节点 |
US9985882B2 (en) * | 2014-10-29 | 2018-05-29 | Metaswitch Networks Ltd | Packet data routing |
CN104618525B (zh) * | 2015-03-05 | 2017-11-28 | 江苏中科羿链通信技术有限公司 | 基于分层路由跨异构网络的无缝连接的方法 |
US20160352842A1 (en) * | 2015-05-27 | 2016-12-01 | Qualcomm Incorporated | Proxy advertisements in a neighbor aware network |
-
2016
- 2016-05-23 US US15/162,157 patent/US10027576B2/en active Active
- 2016-09-12 CN CN201610818132.4A patent/CN107426343B/zh active Active
- 2016-09-12 CN CN202010647768.3A patent/CN111835645B/zh active Active
- 2016-09-15 EP EP19195700.0A patent/EP3641277A1/en not_active Withdrawn
- 2016-09-15 EP EP16188942.3A patent/EP3249895A1/en not_active Withdrawn
-
2018
- 2018-06-07 US US16/003,071 patent/US10567274B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268668A (zh) * | 2005-09-19 | 2008-09-17 | 松下电器产业株式会社 | 具有同时本地和外部网络连接的多接口移动节点 |
CN101568915A (zh) * | 2006-12-26 | 2009-10-28 | 摩托罗拉公司 | 用于促进网络移动性的方法和装置 |
Non-Patent Citations (1)
Title |
---|
陆刚 ; 毛妙 ; 张卫 ; .6LoWPAN邻居发现协议的研究.计算机应用与软件.2008,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
US20170339048A1 (en) | 2017-11-23 |
US10027576B2 (en) | 2018-07-17 |
US10567274B1 (en) | 2020-02-18 |
EP3249895A1 (en) | 2017-11-29 |
CN111835645A (zh) | 2020-10-27 |
EP3641277A1 (en) | 2020-04-22 |
CN107426343B (zh) | 2020-08-14 |
CN107426343A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111835645B (zh) | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 | |
US11329909B2 (en) | Apparatus, system, and method for discovering network paths | |
EP3340549B1 (en) | System and method for distributing routing-protocol information in clos fabrics | |
CN107231307B (zh) | 用于防止数据中心架构内子网间流量转接的方法、系统和装置 | |
CN107231304B (zh) | 用于使用最小转发信息库来转发网络流量方法、系统和装置 | |
US8165138B2 (en) | Converged infiniband over ethernet network | |
CN113347097B (zh) | 用于跨标签交换路径提供节点保护的装置、系统和方法 | |
WO2015061706A1 (en) | Location-based network routing | |
EP3226492B1 (en) | Method, system, and apparatus for improving forwarding capabilities during route convergence | |
CN113489646B (zh) | 基于vxlan的分段路由传输方法、服务器、源节点及存储介质 | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
US10999151B2 (en) | Apparatus, system, and method for topology discovery across geographically redundant gateway devices | |
EP3687115B1 (en) | Apparatus, system, and method for probing the status of unreachable virtual interfaces partitioned on remote physical interfaces | |
CN108574633B (zh) | 用于跨网络内的标签交换路径来共享标签的装置、系统和方法 | |
EP3382956B1 (en) | Apparatus, system, and method for facilitating controller-based multicast signaling | |
EP3373532B1 (en) | Apparatus, system, and method for providing node protection across label-switched paths that share labels |
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 |