CN103795623A - 一种在虚拟设备间实现流量互通的方法和装置 - Google Patents
一种在虚拟设备间实现流量互通的方法和装置 Download PDFInfo
- Publication number
- CN103795623A CN103795623A CN201210419267.5A CN201210419267A CN103795623A CN 103795623 A CN103795623 A CN 103795623A CN 201210419267 A CN201210419267 A CN 201210419267A CN 103795623 A CN103795623 A CN 103795623A
- Authority
- CN
- China
- Prior art keywords
- address
- port
- virtual port
- message
- virtual
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在虚拟设备间实现流量互通的方法和设备,技术方案为:为每个VD设置用于与其它VD互联的虚拟端口并将该虚拟端口配置成三层接口,利用该三层接口进行路由学习和虚拟端口的端口信息通告;当任一VD接收到需发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该其它VD的虚拟端口的IP地址和MAC地址,进而根据其它各VD通告的虚拟端口的端口信息确定该其它VD的虚拟端口的端口号,从而将报文发送到该虚拟端口,使得该其它VD可以转发报文至目的用户设备。本发明能够降低用户的组网成本。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种在虚拟设备间实现流量互通的方法和装置。
背景技术
参见图1,图1是现有技术分布式交换路由系统的逻辑框图,包括四个转发芯片:PP1、PP2、PP3、PP4,以及一个交换网,每个都有一个对应的交换网端口fp和多个下属的用户端口up,其中,PP1、PP2、PP3、PP4对应的交换网端口分别为fp1、fp2、fp3、fp4,每个转发芯片上均有4个用户端口,用up1、up2、up3、up4表示。
在现有技术中,转发芯片负责报文的转发处理,根据转发流程分析出报文的目的转发芯片和目的端口,以及在报文到达目的芯片后负责把报文送到目的用户端口,而交换网是负责转发芯片间的逻辑连接,即根据转发芯片发送过来的报文中携带的目的转发芯片号转发报文至目的转发芯片。以图1为例,若有单播报文从PP1下的用户端口up1上来,需要转发到PP3下的用户端口up1,那PP1把报文发送到交换网时会携带目的芯片号PP3,在交换网上,和PP3连接的交换网端口是fp3,交换网就会把报文发送到fp3,那么该单播报文就不会有被发送到PP2或PP4。
在分布式交换路由系统中,可以采用网络设备虚拟化。网络设备虚拟化可以把一台大的物理设备虚拟成多台小设备,也即虚拟设备(Virtual Device,VD)。各VD对于用户来说就像一台独立的小设备,有自己独立运行的路由进程、二三层协议、转发表项、接口、可以添加自己的用户、可以独自重启并读取自己的配置文件。各VD间的资源可以通过命令来进行分配管理,互不影响。即使VD占用的资源超过分配的资源限制时,也不能抢占其他的VD资源。
当在分布式交换路由系统中采用网络设备虚拟化后,各VD之间的流量互相隔离,各用户端口对其他VD是不可见的。因此,在需要实现VD间流量的互通时,现有技术通常通过光纤或网线等外部连线把VD连接起来。这样的实现技术,给用户使用带来不便,而且还增加了用户组网成本。
发明内容
有鉴于此,本发明的目的在于提供一种在虚拟设备间实现流量互通的方法,该方法能够降低用户的组网成本。
为了达到上述目的,本发明提供了一种在虚拟设备间实现流量互通的方法,应用于分布式交换路由系统,所述分布式交换路由系统包括多个转发芯片和一个交换网,所述分布式交换路由系统以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系,该方法包括:
为当前VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为当前VD对其它VD的三层接口,发布当前VD的路由信息并学习其它各VD发布的路由信息;并向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息;其中,所述端口信息包括虚拟端口的MAC地址和虚拟端口的端口号;
当前VD接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口;
当前VD在自身的虚拟端口接收到其它VD发来的报文时,在当前VD内将该报文转发至报文的目的用户设备。
本申请还提供了一种VD,应用于分布式交换路由系统,所述分布式交换路由系统包括多个转发芯片和一个交换网,所述分布式交换路由系统以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系,该VD包括:配置单元、路由学习单元、端口通告单元、转发单元;
所述配置单元,用于为本VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为本VD对其它VD的三层接口;
所述路由学习单元,用于在配置单元将本VD的虚拟端口配置为对其它VD的三层接口之后,发布本VD的路由信息并学习其它各VD发布的路由信息;
所述端口通告单元,用于在配置单元将本VD的虚拟端口配置为对其它VD的三层接口之后,向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息;其中,所述端口信息包括虚拟端口的MAC地址和虚拟端口的端口号;
所述转发单元,用于接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口;用于在本VD的虚拟端口接收到其它VD发来的报文,在本VD内将该报文转发至报文的目的用户设备。。
由上面的技术方案可知,本发明中,通过为分布式交换路由系统中的每个VD设置用于与其它各VD互联的虚拟端口并配置成三层接口,然后执行行路由信息的发布和接收、虚拟端口的端口信息的通告和接收;当某个VD接收到需发往其它VD下属的用户设备的报文时,通过查找路由表、ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,进而根据其它各VD通告的虚拟端口的端口信息确定相应的端口号,将报文发送到该端口号所代表的虚拟端口,使得报文的目的用户设备所属VD可以在自身的虚拟端口接收报文并在本VD内转发出去,从而不需要在VD之间增加光纤或网线等外部连线就可以实现VD间的流量互通,因此可以降低用户的组网成本。
附图说明
图1是现有技术分布式交换路由系统的逻辑框图;
图2是本发明实施例在虚拟设备间实现流量互通的方法流程图;
图3是本发明实施例报文在VD间的转发路径示意图。
图4是本发明实施例提供的VD的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本发明中,为了在分布式交换路由系统中的各虚拟设备之间实现流量互通,在分布式交换路由系统中以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系。
参见图2,图2是本发明实施例在虚拟设备间实现流量互通的方法流程图,主要包括以下步骤:
步骤201、为当前VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为当前VD对其它VD的三层接口,发布当前VD的路由信息并学习其它各VD发布的路由信息;并向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息。
为了实现VD间的流量互通,需要为每个VD设置用于与其它VD互联的虚拟端口,并将该虚拟端口设置为该VD对其它VD的三层接口,对于分布式交换路由系统中的任意两个VD来说,当其中一个VD需要发送报文到另一个VD时,需要先将报文发往另一个VD的虚拟端口,而另一个VD则在自身的虚拟端口接收该报文。
本实施例中,为各VD设置的虚拟端口是环回端口,用以使VD在虚拟端口接收到报文后,可以将报文环回回来并重新在该VD内处理和转发该报文。在实际应用中,分布式交换路由系统中的各转发芯片一般都内置有环回端口,可以直接为VD配置一个用作虚拟端口的环回端口,也可以利用VD中的转发芯片的环回端口进行虚拟端口设置,为此,为当前VD设置用于与其它VD互联的虚拟端口至少有以下三种可行方法:
第一种、无论当前VD的各转发芯片中是否内置有环回端口,均为当前VD重新配置一个环回端口,将重新配置的环回端口作为当前VD的虚拟端口。配置环回端口的方法为现有技术。
第二种、当前VD的部分或全部转发芯片内置有环回端口,只选择其中一个转发芯片的环回端口作为当前VD的虚拟端口;
第三种、当前VD的部分或全部转发芯片内置有环回端口,将内置有环回端口的所有转发芯片的环回端口配置成聚合端口,将该聚合端口作为当前VD的虚拟端口。
在为各VD设置虚拟端口之后,还需要将该VD的虚拟端口配置成对其它VD的三层接口,从而可以利用该三层接口进行路由信息发布和接收。另外,现有技术中,由于各VD之间实现了流量隔离,各VD的虚拟端口对其它VD来说是不可见的,为了实现流量互通,需要将各VD将自身的虚拟端口的端口信息通告给其它VD,以使该VD的虚拟端口能够为其它VD所见,其中,虚拟端口的端口信息包括虚拟端口的MAC地址和虚拟端口的端口号。路由信息发布以及虚拟端口的端口信息的通告的实现方法将在后续进行详细说明。
将当前VD的虚拟端口配置为对其它VD的三层接口可以采用两种方法,一种是将当前VD的虚拟端口配置成路由器端口,具体方法是为当前VD的虚拟端口分配IP地址;另一种是将当前VD的虚拟端口配置成交换机端口,具体方法是将当前VD的虚拟端口加入到当前VD对应的预设VLAN中,并为当前VD的虚拟端口分配基于该预设VLAN的IP地址。
在将当前VD的虚拟端口配置为对其它VD的三层接口之后,还需要为当前VD的虚拟端口配置MAC地址,以通过MAC地址来区分需发往不同VD的报文。
步骤202、当前VD接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口。
本发明中,将各VD下属的用户端口连接(包括直接相连和间接相连)的用户设备称为该VD下属的用户设备,该VD下属的用户设备归属于该VD。
由于在步骤201中,当前VD已经执行了接收其它各VD发布的路由信息的操作,因此已经学习到其它各VD的路由信息并相应生成了路由表,因此在接收到需要发往其它VD下属的用户设备的报文时,可以通过查找路由表确定报文的下一跳IP地址,通过ARP学习确定该下一跳IP地址对应的MAC地址,其中,ARP学习的具体方法为:先查找ARP表确定是否存在该下一跳IP地址对应的ARP表项,如果存在,则确定该下一跳IP地址对应的MAC地址为查找到的ARP表项中的MAC地址,否则,向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文,如果接收到任一VD返回的ARP响应报文,则确定ARP响应报文中的源MAC地址为该下一跳IP地址对应的MAC地址,并建立该下一跳IP地址对应的ARP表项。这里,报文的下一跳地址也即是报文的目的用户设备所属的VD的虚拟端口的IP地址,报文的下一跳IP地址对应的MAC地址也即是报文的目的用户设备所属的VD的虚拟端口的MAC地址。
由于在步骤201中,当前VD已经执行了接收其它各VD发布的路由信息的操作,本步骤中,当前VD确定了报文的下一跳IP地址和该下一跳IP地址对应的MAC地址后,可以根据该下一跳IP地址对应的MAC地址以及接收到的其它各VD的虚拟端口的端口信息确定报文的目的用户设备所属的VD的虚拟端口的端口号,从而,可以根据该下一跳IP地址、该下一跳IP地址对应的MAC地址,该MAC地址对应的端口号,将报文发送到报文的目的用户设备所属的VD的虚拟端口,具体地,可以将该下一跳IP地址对应的MAC地址封装为报文的目的MAC地址,然后发送到该目的MAC地址对应的端口号所代表的虚拟端口。
步骤203、当前VD在自身的虚拟端口接收到其它VD发来的报文时,在当前VD内将该报文转发至报文的目的用户设备。
当前VD在自身的虚拟端口接收到其它VD发来的报文,其目的用户设备是当前VD下属的用户设备,而且由于当前VD的虚拟端口是环回端口,可以将报文重新环回回来,因此,可以在报文环回回来之后重新对报文进行处理,将报文通过报文的目的用户设备对应的当前VD的用户端口转发,并最终到达报文的目的用户设备。
需要说明的是,图2所示本发明实施例中,步骤202和步骤203没有逻辑关系,不分先后顺序。
在现有实现中,分布式交换路由系统中各VD之间实现了流量隔离,各VD之间并不能进行信息交互。然而,由于分布式交换路由系统中的所有VD共用同一CPU,本发明中,可以利用所有VD共用的CPU实现上述路由信息发布、虚拟端口的端口信息通告以及ARP请求报文及ARP响应报文的发送。为了便于叙述,下面将分布式交换路由系统中所有VD共用的CPU称为共享CPU。
因此,对于路由信息发布,发布当前VD的路由信息的方法具体可以为:当前VD利用与其它所有VD共用的CPU生成携带当前VD的路由信息的路由协议报文,以使其它各VD利用所述CPU获取该路由协议报文并学习该路由协议报文中携带的路由信息;其中,所述路由协议报文的源IP地址、源MAC地址分别为当前VD的虚拟端口的IP地址、MAC地址。这里,需要说明的是,在当前VD的虚拟端口被配置成交换机端口的情况下,发送的路由协议报文中可以携带当前VD对应的预设VLAN标签,也可以不携带当前VLAN对应的预设VLAN标签,由具体的交换机端口配置确定,当需要携带VLAN标签时,分布式交换路由系统中的各VD对应的预设VLAN相同,当不需要携带VLAN标签时,分布式交换路由系统中的各VD对应的预设VLAN可以相同,也可以不相同。
对于虚拟端口的端口信息通告,当前VD可以预先定义一种信息通告报文,通过该信息通告报文进行虚拟端口的端口信息通告。向其它各VD通告该虚拟端口的端口信息的方法具体为:将当前VD的虚拟端口信息设置为全局变量,或者,利用与其它所有VD共用的CPU生成携带当前VD的虚拟端口信息的信息通告报文,以使其它各VD利用所述CPU获取该信息通告报文并保存信息通告报文中携带的虚拟端口信息。实际上,虚拟端口通告也可以采用其它方法,例如将各VD的虚拟端口信息设置为全局变量,或者预先存储所有VD的虚拟端口信息到某一存储位置,各VD可以去该位置读取所有VD的虚拟端口信息。
图2所示本发明实施例中,ARP学习也需要利用分布式交换路由系统中所有VD共用的CPU实现。其中,对于ARP请求报文,当前VD其它各VD发送ARP请求报文的方法为:共享CPU作为当前VD的CPU生成ARP请求报文,以使共享CPU作为其它任一VD的CPU可以获取该ARP请求报文并在该ARP请求报文中携带的目的IP地址是该其它VD的虚拟端口的IP地址时,生成源IP地址和源MAC地址分别为该其它VD的虚拟端口的IP地址和MAC地址的ARP响应报文。
当前VD也会接收到其它VD发送的ARP请求报文,当接收到其它VD发送的ARP请求报文时,如果ARP请求报文中的目的IP地址为当前VD的虚拟端口的IP地址,则会生成源IP地址和源MAC地址分别为当前VD的虚拟端口的IP地址和MAC地址的ARP响应报文,这样,共享CPU作为生成该ARP请求报文的VD可以获取当前VD生成的ARP响应报文,从而可以确定该ARP请求报文中的目的IP地址是当前VD的虚拟端口的IP地址,进而确定该ARP请求报文中的目的IP地址对应MAC地址是当前VD的虚拟端口的MAC地址。
下面以图1为例,对图2和图3所示本发明实施例进行举例说明。
假设PP1、PP3加入到VD1,PP2加入到VD2,PP4加入到VD3,其中,PP1下属的用户端口up1连接有服务器1(IP地址为192.168.1.2/24),PP2下属的用户端口up4连接有服务器2(IP地址为192.168.2.2/24);VD1的环回端口为PP1-up4(IP地址:172.16.0.1/24,MAC地址:0000-0000-0000-0001),VD2的环回端口为PP2-up1(IP地址:172.16.0.2/24,MAC地址:0000-0000-0000-0002),VD3的环回端口为PP4-up1(IP地址:172.16.0.3/24,MAC地址:0000-0000-0000-0003)。
现假设服务器1需要发送报文到服务器2,则报文的转发流程如下:
1、VD1在PP1-up1端口收到来自服务器1(服务器1是VD1下属的用户设备)的报文,报文的目的IP地址为192.168.2.2/24;
2、VD1查找经路由学习得到的路由表,确定报文的下一跳IP地址为172.16.0.2/24;
3、VD1查找172.16.0.2/24对应的ARP表项,如果没有查找到,则向VD2和VD3发送目的IP地址是172.16.0.2/24的ARP请求报文,VD2接收到该ARP请求后返回源IP地址为172.16.0.2/24,源MAC地址为0000-0000-0000-0002的ARP响应报文;
4、VD1接收到VD2返回的ARP响应报文后,将接收到的来自服务器1的报文的目的MAC地址修改为0000-0000-0000-0002,源MAC地址修改为自身的环回端口的MAC地址,在确定172.16.0.2/24对应的MAC地址为0000-0000-0000-0002后,可以确定目的端口PP2-up1,转发芯片PP1可以直接将报文发送到PP2-up1;
5、由于PP2-up1是环回端口,因此报文到达PP2-up1后会重新返回PP2,之后,VD2查找经路由学习得到的路由表确定需要将报文发送到PP2-up4。
至此,完成了报文跨VD的路由转发,报文在VD间的转发路径如图3所示。
以上对本发明实施例在虚拟设备间实现流量互通的方法进行了说明,本发明还提供了一种在虚拟设备间实现流量互通的设备,下面结合图4进行说明。
图4是本发明实施例提供的VD的结构示意图,该VD应用于分布式交换路由系统,所述分布式交换路由系统包括多个转发芯片和一个交换网,所述分布式交换路由系统以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系,该VD包括:配置单元401、路由学习单元402、端口通告单元403、转发单元404;其中,
配置单元401,用于为本VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为本VD对其它VD的三层接口;
路由学习单元402,用于在配置单元401将本VD的虚拟端口配置为对其它VD的三层接口之后,发布本VD的路由信息并学习其它各VD发布的路由信息;
端口通告单元403,用于在配置单元401将本VD的虚拟端口配置为对其它VD的三层接口之后,向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息;其中,所述端口信息包括虚拟端口的MAC地址和虚拟端口的端口号;
转发单元404,用于接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口;用于在本VD的虚拟端口接收到其它VD发来的报文,在本VD内将该报文转发至报文的目的用户设备。
上述VD中,所述虚拟端口为环回端口;
所述配置单元401在为本VD设置用于与其它VD互联的虚拟端口时,用于:为本VD设置一个环回端口并将该环回端口作为本VD的虚拟端口;或者,如果本VD的部分或全部转发芯片内置有环回端口,则选择其中一个转发芯片的环回端口作为本VD的虚拟端口;或者,如果本VD的部分或全部转发芯片内置有环回端口,则将各转发芯片的环回端口配置成聚合端口,将该聚合端口作为本VD的虚拟端口。
上述VD中,所述配置单元401在将该虚拟端口配置为本VD对其它VD的三层接口时,用于:将该虚拟端口配置成路由器端口,包括:为该虚拟端口分配IP地址;或者,将该虚拟端口配置成交换机端口,包括:将该虚拟端口加入到本VD对应的预设VLAN,并为该虚拟端口分配基于该预设VLAN的IP地址;
所述配置单元401在将该虚拟端口配置为本VD对其它VD的三层接口后,进一步用于:为该虚拟端口配置MAC地址;
所述路由学习单元402,在发布本VD的路由信息时,用于:利用本VD与其它所有VD共用的CPU生成携带本VD的路由信息的路由协议报文,以使其它各VD利用所述CPU获取该路由协议报文并学习该路由协议报文中携带的路由信息;其中,所述路由协议报文的源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址、MAC地址;
所述端口通告单元403在向其它各VD通告该虚拟端口的端口信息时,用于:将本VD的虚拟端口信息设置为全局变量,或者,利用本VD与其它所有VD共用的CPU生成携带本VD的虚拟端口信息的信息通告报文,以使其它各VD利用所述CPU获取该信息通告报文并保存信息通告报文中携带的虚拟端口信息。
上述VD中,所述转发单元404在通过查找路由表以及ARP学习确定报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址时,用于:查找路由表确定报文的下一跳IP地址,查找该下一跳IP地址对应的ARP表项,如果查找到,则确定该下一跳IP地址对应的MAC地址为查找到的ARP表项中的MAC地址,否则,向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文,如果接收到任一VD返回的ARP响应报文,则确定ARP响应报文中的源MAC地址为该下一跳IP地址对应的MAC地址,并建立该下一跳IP地址对应的ARP表项;将报文的下一跳IP地址和该下一跳IP地址对应的MAC地址确定为报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址。
所述转发单元404,进一步用于:接收其它VD发送的ARP请求报文,如果ARP请求报文中的目的IP地址为本VD的虚拟端口的IP地址,则返回源IP地址和源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文。
上述VD中,所述转发单元404在向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文时,用于:利用本VD与其它所有VD共用的CPU生成目的IP地址为该下一跳IP地址的ARP请求报文,以使其它各VD利用所述CPU获取该ARP请求报文并在该ARP请求报文的目的IP地址是该其它VD的虚拟端口的IP地址时生成源IP地址和源MAC地址分别为该其它VD的虚拟端口的IP地址和MAC地址的ARP响应报文;
所述转发单元404接收到目的IP地址为本VD的虚拟端口的IP地址的ARP请求报文后,返回源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文时,用于:利用本VD与其它所有VD共用的CPU生成源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文,以使发送该ARP请求报文的VD利用所述CPU获取该ARP响应报文并确定该ARP请求报文的目的IP地址对应的MAC地址是该ARP响应报文中的源MAC地址。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种在虚拟设备VD间实现流量互通的方法,应用于分布式交换路由系统,所述分布式交换路由系统包括多个转发芯片和一个交换网,所述分布式交换路由系统以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系,其特征在于,该方法包括:
为当前VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为当前VD对其它VD的三层接口,发布当前VD的路由信息并学习其它各VD发布的路由信息;并向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息;其中,所述端口信息包括虚拟端口的MAC地址和虚拟端口的端口号;
当前VD接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口;
当前VD在自身的虚拟端口接收到其它VD发来的报文时,在当前VD内将该报文转发至报文的目的用户设备。
2.根据权利要求1所述的在VD间实现流量互通的方法,其特征在于,
所述虚拟端口为环回端口;
所述为当前VD设置用于与其它VD互联的虚拟端口的方法为:为当前VD设置一个环回端口并将该环回端口作为当前VD的虚拟端口;或者,如果当前VD的部分或全部转发芯片内置有环回端口,则选择其中一个转发芯片的环回端口作为当前VD的虚拟端口;或者,如果当前VD的部分或全部转发芯片内置有环回端口,则将各转发芯片的环回端口配置成聚合端口,将该聚合端口作为当前VD的虚拟端口。
3.根据权利要求2所述的在VD间实现流量互通的方法,其特征在于,
所述将该虚拟端口配置为当前VD对其它VD的三层接口的方法为:
将该虚拟端口配置成路由器端口,包括:为该虚拟端口分配IP地址;
或者,将该虚拟端口配置成交换机端口,包括:将该虚拟端口加入到当前VD对应的预设VLAN,并为该虚拟端口分配基于该预设VLAN的IP地址;
所述将该虚拟端口配置为当前VD对其它VD的三层接口后,进一步包括:为该虚拟端口配置MAC地址;
所述发布当前VD的路由信息的方法为:当前VD利用与其它所有VD共用的CPU生成携带当前VD的路由信息的路由协议报文,以使其它各VD利用所述CPU获取该路由协议报文并学习该路由协议报文中携带的路由信息;其中,所述路由协议报文的源IP地址、源MAC地址分别为当前VD的虚拟端口的IP地址、MAC地址;
所述向其它各VD通告该虚拟端口的端口信息的方法为:将当前VD的虚拟端口信息设置为全局变量,或者,利用与其它所有VD共用的CPU生成携带当前VD的虚拟端口信息的信息通告报文,以使其它各VD利用所述CPU获取该信息通告报文并保存信息通告报文中携带的虚拟端口信息。
4.根据权利要求3所述的在VD间实现流量互通的方法,其特征在于,
通过查找路由表以及ARP学习确定报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址的方法为:查找路由表确定报文的下一跳IP地址,查找该下一跳IP地址对应的ARP表项,如果查找到,则确定该下一跳IP地址对应的MAC地址为查找到的ARP表项中的MAC地址,否则,向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文,如果接收到任一VD返回的ARP响应报文,则确定ARP响应报文中的源MAC地址为该下一跳IP地址对应的MAC地址,并建立该下一跳IP地址对应的ARP表项;将报文的下一跳IP地址和该下一跳IP地址对应的MAC地址确定为报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址。
该方法进一步包括:当前VD接收到其它VD发送的ARP请求报文时,如果ARP请求报文中的目的IP地址为当前VD的虚拟端口的IP地址,则返回源IP地址和源MAC地址分别为当前VD的虚拟端口的IP地址和MAC地址的ARP响应报文。
5.根据权利要求4所述的在VD间实现流量互通的方法,其特征在于,
所述向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文的方法为:当前VD利用与其它所有VD共用的CPU生成目的IP地址为该下一跳IP地址的ARP请求报文,以使其它各VD利用所述CPU获取该ARP请求报文并在该ARP请求报文的目的IP地址是该其它VD的虚拟端口的IP地址时生成源IP地址和源MAC地址分别为该其它VD的虚拟端口的IP地址和MAC地址的ARP响应报文;
当前VD接收到目的IP地址为当前VD的虚拟端口的IP地址的ARP请求报文后,返回源IP地址、源MAC地址分别为当前VD的虚拟端口的IP地址和MAC地址的ARP响应报文的方法为:当前VD利用与其它所有VD共用的CPU生成源IP地址、源MAC地址分别为当前VD的虚拟端口的IP地址和MAC地址的ARP响应报文,以使发送该ARP请求报文的VD利用所述CPU获取该ARP响应报文并确定该ARP请求报文的目的IP地址对应的MAC地址是该ARP响应报文中的源MAC地址。
6.一种虚拟设备VD,应用于分布式交换路由系统,所述分布式交换路由系统包括多个转发芯片和一个交换网,所述分布式交换路由系统以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系,其特征在于,该VD包括:配置单元、路由学习单元、端口通告单元、转发单元;
所述配置单元,用于为本VD设置用于与其它VD互联的虚拟端口,将该虚拟端口配置为本VD对其它VD的三层接口;
所述路由学习单元,用于在配置单元将本VD的虚拟端口配置为对其它VD的三层接口之后,发布本VD的路由信息并学习其它各VD发布的路由信息;
所述端口通告单元,用于在配置单元将本VD的虚拟端口配置为对其它VD的三层接口之后,向其它各VD通告该虚拟端口的端口信息和接收其它各VD通告的虚拟端口的端口信息;其中,所述端口信息包括虚拟端口的MAC地址和虚拟端口的端口号;
所述转发单元,用于接收需要发往其它VD下属的用户设备的报文时,通过查找路由表以及ARP学习确定该用户设备所属VD的虚拟端口的IP地址和MAC地址,并根据接收到其它各VD通告的虚拟端口的端口信息确定该用户设备所属VD的虚拟端口的端口号,根据IP地址、MAC地址和端口号,将该报文发往该用户设备所属VD的虚拟端口;用于在本VD的虚拟端口接收到其它VD发来的报文,在本VD内将该报文转发至报文的目的用户设备。
7.根据权利要求6所述的VD,其特征在于,
所述虚拟端口为环回端口;
所述配置单元在为本VD设置用于与其它VD互联的虚拟端口时,用于:为本VD设置一个环回端口并将该环回端口作为本VD的虚拟端口;或者,如果本VD的部分或全部转发芯片内置有环回端口,则选择其中一个转发芯片的环回端口作为本VD的虚拟端口;或者,如果本VD的部分或全部转发芯片内置有环回端口,则将各转发芯片的环回端口配置成聚合端口,将该聚合端口作为本VD的虚拟端口。
8.根据权利要求7所述的VD,其特征在于,
所述配置单元在将该虚拟端口配置为本VD对其它VD的三层接口时,用于:
将该虚拟端口配置成路由器端口,包括:为该虚拟端口分配IP地址;
或者,将该虚拟端口配置成交换机端口,包括:将该虚拟端口加入到本VD对应的预设VLAN,并为该虚拟端口分配基于该预设VLAN的IP地址;
所述配置单元在将该虚拟端口配置为本VD对其它VD的三层接口后,进一步用于:为该虚拟端口配置MAC地址;
所述路由学习单元,在发布本VD的路由信息时,用于:利用本VD与其它所有VD共用的CPU生成携带本VD的路由信息的路由协议报文,以使其它各VD利用所述CPU获取该路由协议报文并学习该路由协议报文中携带的路由信息;其中,所述路由协议报文的源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址、MAC地址;
所述端口通告单元在向其它各VD通告该虚拟端口的端口信息时,用于:将本VD的虚拟端口信息设置为全局变量,或者,利用本VD与其它所有VD共用的CPU生成携带本VD的虚拟端口信息的信息通告报文,以使其它各VD利用所述CPU获取该信息通告报文并保存信息通告报文中携带的虚拟端口信息。
9.根据权利要求8所述的VD,其特征在于,
所述转发单元在通过查找路由表以及ARP学习确定报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址时,用于:查找路由表确定报文的下一跳IP地址,查找该下一跳IP地址对应的ARP表项,如果查找到,则确定该下一跳IP地址对应的MAC地址为查找到的ARP表项中的MAC地址,否则,向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文,如果接收到任一VD返回的ARP响应报文,则确定ARP响应报文中的源MAC地址为该下一跳IP地址对应的MAC地址,并建立该下一跳IP地址对应的ARP表项;将报文的下一跳IP地址和该下一跳IP地址对应的MAC地址确定为报文的目的用户设备所属VD的虚拟端口的IP地址和MAC地址。
所述转发单元,进一步用于:接收其它VD发送的ARP请求报文,如果ARP请求报文中的目的IP地址为本VD的虚拟端口的IP地址,则返回源IP地址和源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文。
10.根据权利要求9所述的VD,其特征在于,
所述转发单元在向其它各VD发送目的IP地址为该下一跳IP地址的ARP请求报文时,用于:利用本VD与其它所有VD共用的CPU生成目的IP地址为该下一跳IP地址的ARP请求报文,以使其它各VD利用所述CPU获取该ARP请求报文并在该ARP请求报文的目的IP地址是该其它VD的虚拟端口的IP地址时生成源IP地址和源MAC地址分别为该其它VD的虚拟端口的IP地址和MAC地址的ARP响应报文;所述转发单元接收到目的IP地址为本VD的虚拟端口的IP地址的ARP请求报文后,返回源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文时,用于:利用本VD与其它所有VD共用的CPU生成源IP地址、源MAC地址分别为本VD的虚拟端口的IP地址和MAC地址的ARP响应报文,以使发送该ARP请求报文的VD利用所述CPU获取该ARP响应报文并确定该ARP请求报文的目的IP地址对应的MAC地址是该ARP响应报文中的源MAC地址。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210419267.5A CN103795623B (zh) | 2012-10-26 | 2012-10-26 | 一种在虚拟设备间实现流量互通的方法和装置 |
PCT/CN2013/084874 WO2014063567A1 (en) | 2012-10-26 | 2013-10-09 | Traffic interconnection between virtual devices |
US14/405,378 US9973422B2 (en) | 2012-10-26 | 2013-10-09 | Traffic interconnection between virtual devices |
EP13848210.4A EP2912812B1 (en) | 2012-10-26 | 2013-10-09 | Traffic interconnection between virtual devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210419267.5A CN103795623B (zh) | 2012-10-26 | 2012-10-26 | 一种在虚拟设备间实现流量互通的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795623A true CN103795623A (zh) | 2014-05-14 |
CN103795623B CN103795623B (zh) | 2017-03-15 |
Family
ID=50543991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210419267.5A Active CN103795623B (zh) | 2012-10-26 | 2012-10-26 | 一种在虚拟设备间实现流量互通的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9973422B2 (zh) |
EP (1) | EP2912812B1 (zh) |
CN (1) | CN103795623B (zh) |
WO (1) | WO2014063567A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869058A (zh) * | 2015-06-04 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种数据报文转发方法和装置 |
CN106453156A (zh) * | 2016-10-31 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种虚拟设备间的通信方法及装置 |
CN108989213A (zh) * | 2017-05-31 | 2018-12-11 | 瞻博网络公司 | 使用虚拟节点之间的所选择的结构路径传输lsp设置 |
CN111490891A (zh) * | 2019-01-28 | 2020-08-04 | 华为技术有限公司 | 一种确定接口配置的方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9910686B2 (en) * | 2013-10-13 | 2018-03-06 | Nicira, Inc. | Bridging between network segments with a logical router |
US9893988B2 (en) | 2014-03-27 | 2018-02-13 | Nicira, Inc. | Address resolution using multiple designated instances of a logical router |
US10511458B2 (en) | 2014-09-30 | 2019-12-17 | Nicira, Inc. | Virtual distributed bridging |
US10250443B2 (en) | 2014-09-30 | 2019-04-02 | Nicira, Inc. | Using physical location to modify behavior of a distributed virtual network element |
CN104283983B (zh) * | 2014-10-27 | 2018-01-09 | 新华三技术有限公司 | 一种软件定义网络中虚拟机ip地址分配方法及装置 |
US10361952B2 (en) | 2015-06-30 | 2019-07-23 | Nicira, Inc. | Intermediate logical interfaces in a virtual distributed router environment |
US10110465B2 (en) * | 2016-07-27 | 2018-10-23 | Cisco Technology, Inc. | Distributed HSRP gateway in VxLAN flood and learn environment with faster convergence |
US10659352B2 (en) | 2017-05-31 | 2020-05-19 | Juniper Networks, Inc. | Signaling private context forwarding tables for a private forwarding layer |
US10382333B2 (en) | 2017-05-31 | 2019-08-13 | Juniper Networks, Inc. | Fabric path context-based forwarding for virtual nodes |
US10432523B2 (en) | 2017-05-31 | 2019-10-01 | Juniper Networks, Inc. | Routing protocol signaling of multiple next hops and their relationship |
US10389635B2 (en) | 2017-05-31 | 2019-08-20 | Juniper Networks, Inc. | Advertising selected fabric paths for service routes in virtual nodes |
CN108259299B (zh) * | 2017-06-23 | 2020-04-03 | 新华三技术有限公司 | 一种转发表项生成方法、装置及机器可读存储介质 |
US10511459B2 (en) | 2017-11-14 | 2019-12-17 | Nicira, Inc. | Selection of managed forwarding element for bridge spanning multiple datacenters |
CN108696460B (zh) * | 2018-05-29 | 2020-10-27 | 新华三技术有限公司 | 一种报文转发方法及装置 |
US10812370B2 (en) * | 2018-08-03 | 2020-10-20 | Arista Networks, Inc. | Unified control plane over MPLS and internet interfaces through BGP |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090154461A1 (en) * | 2007-12-14 | 2009-06-18 | Makoto Kitani | Network Switching System |
CN102143068A (zh) * | 2011-03-01 | 2011-08-03 | 华为技术有限公司 | 一种mac地址学习的方法,装置和系统 |
CN102469021A (zh) * | 2010-11-18 | 2012-05-23 | 杭州华三通信技术有限公司 | 一种智能弹性框架系统中转发业务流量的方法和成员设备 |
CN102752219A (zh) * | 2012-07-18 | 2012-10-24 | 杭州华三通信技术有限公司 | 用于实现vd互连的方法和交换设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0898434B1 (en) * | 1997-08-20 | 2004-05-26 | NEC USA, Inc. | ATM switching architecture for a wireless telecommunications network |
US7797460B2 (en) * | 2005-03-17 | 2010-09-14 | Microsoft Corporation | Enhanced network system through the combination of network objects |
CN101341658B (zh) | 2005-12-19 | 2013-03-27 | 索尼公司 | 具有约束d=1,r=2的、具有奇偶互补字分配的码的编码器和编码方法 |
US7925802B2 (en) | 2007-06-21 | 2011-04-12 | Seamicro Corp. | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
US8862706B2 (en) * | 2007-12-14 | 2014-10-14 | Nant Holdings Ip, Llc | Hybrid transport—application network fabric apparatus |
WO2011140028A1 (en) * | 2010-05-03 | 2011-11-10 | Brocade Communications Systems, Inc. | Virtual cluster switching |
CN102971992B (zh) | 2010-06-29 | 2016-03-09 | 华为技术有限公司 | 虚拟专用局域网设备、网络组件和数据帧转发方法 |
US8842670B2 (en) * | 2010-12-21 | 2014-09-23 | Cisco Technology, Inc. | Scaling number of virtual links in a fiber channel forwarder device |
US9036636B1 (en) * | 2012-02-06 | 2015-05-19 | Big Switch Networks, Inc. | System and methods for managing network packet broadcasting |
-
2012
- 2012-10-26 CN CN201210419267.5A patent/CN103795623B/zh active Active
-
2013
- 2013-10-09 US US14/405,378 patent/US9973422B2/en active Active
- 2013-10-09 EP EP13848210.4A patent/EP2912812B1/en active Active
- 2013-10-09 WO PCT/CN2013/084874 patent/WO2014063567A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090154461A1 (en) * | 2007-12-14 | 2009-06-18 | Makoto Kitani | Network Switching System |
CN102469021A (zh) * | 2010-11-18 | 2012-05-23 | 杭州华三通信技术有限公司 | 一种智能弹性框架系统中转发业务流量的方法和成员设备 |
CN102143068A (zh) * | 2011-03-01 | 2011-08-03 | 华为技术有限公司 | 一种mac地址学习的方法,装置和系统 |
CN102752219A (zh) * | 2012-07-18 | 2012-10-24 | 杭州华三通信技术有限公司 | 用于实现vd互连的方法和交换设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869058A (zh) * | 2015-06-04 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种数据报文转发方法和装置 |
CN106453156A (zh) * | 2016-10-31 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种虚拟设备间的通信方法及装置 |
CN106453156B (zh) * | 2016-10-31 | 2019-09-06 | 新华三技术有限公司 | 一种虚拟设备间的通信方法及装置 |
CN108989213A (zh) * | 2017-05-31 | 2018-12-11 | 瞻博网络公司 | 使用虚拟节点之间的所选择的结构路径传输lsp设置 |
CN111490891A (zh) * | 2019-01-28 | 2020-08-04 | 华为技术有限公司 | 一种确定接口配置的方法及装置 |
CN111490891B (zh) * | 2019-01-28 | 2021-09-07 | 华为技术有限公司 | 一种确定接口配置的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103795623B (zh) | 2017-03-15 |
EP2912812A1 (en) | 2015-09-02 |
EP2912812B1 (en) | 2018-03-28 |
WO2014063567A1 (en) | 2014-05-01 |
EP2912812A4 (en) | 2016-06-22 |
US20150334011A1 (en) | 2015-11-19 |
US9973422B2 (en) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103795623A (zh) | 一种在虚拟设备间实现流量互通的方法和装置 | |
US11563602B2 (en) | Method and apparatus for providing a point-to-point connection over a network | |
CN102986172B (zh) | 虚拟集群交换 | |
CN103814554A (zh) | 一种虚拟可扩展局域网的通信方法、装置和系统 | |
CN102549983A (zh) | 分布式数据中心接入交换机 | |
CN104170331A (zh) | 用于vxlan的l3网关 | |
CN104937885A (zh) | 用于结构交换机的全局vlan | |
CN104272684A (zh) | Fabric交换机中的动态服务插入 | |
CN104303467A (zh) | 集成的异构的软件定义的网络 | |
CN104780088A (zh) | 一种业务报文的传输方法和设备 | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
CN110324159B (zh) | 链路配置方法、控制器和存储介质 | |
CN106357542B (zh) | 提供组播业务的方法和软件定义网络控制器 | |
CN104798350A (zh) | 跨多个架构交换机的虚拟链路聚合 | |
CN103124240A (zh) | 网关配置方法、网关设备及网络系统 | |
CN106878480A (zh) | 一种dhcp服务进程共享方法及装置 | |
CN105577540A (zh) | 一种业务链路的建立方法、装置及系统 | |
CN107005479B (zh) | 软件定义网络sdn中数据转发的方法、设备和系统 | |
US9628439B2 (en) | Systems and methods for managing network address information | |
CN104769896A (zh) | 用于虚拟机架系统中的直通模式的系统和方法 | |
CN106027396B (zh) | 一种路由控制方法、装置和系统 | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
WO2016177180A1 (zh) | 一种OpenFlow交换机能力上报的方法及装置 | |
CN102415061B (zh) | 分组洪水控制 | |
US9838218B2 (en) | Method for providing overlay network interworking with underlay network and system performing same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |