一种在虚拟设备之间实现流量间隔的方法和系统转让专利

申请号 : CN201010138490.3

文献号 : CN102215152B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 管树发

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明提供了一种在虚拟设备之间实现流量隔离的方法和系统,该方法应用于分布式交换路由系统,包括:将转发芯片设置为加入和退出虚拟设备(VD)的最小单元,并建立转发芯片和VD之间的对应关系;在所述交换网中为VD建立单独的逻辑通道;转发芯片通过逻辑通道转发流量。应用本发明方案,转发芯片本身不再为VD建立逻辑通道,不必具备虚拟化功能,降低了转发芯片的成本,也降低了整个系统的成本。另外,交换网可以为各个建立逻辑通道,所有转发芯片通过交换网建立的逻辑通道进行流量转发,同样实现VD间流量的隔离。

权利要求 :

1.一种在虚拟设备之间实现流量间隔的方法,该方法应用于分布式交换路由系统,所述分布式交换路由系统包括两个以上转发芯片和一个交换网,其特征在于,该方法包括:将每一个转发芯片设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片;

将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择所对应VD进行多播转发的多播ID,并建立各VD和各用作多播转发的多播ID的对应关系;根据转发芯片和VD之间的对应关系、已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以完成逻辑通道的建立;或者,根据单播转发矩阵建立逻辑通道;

每一个转发芯片通过交换网中所对应VD的逻辑通道转发流量,以实现各个VD之间的流量隔离。

2.根据权利要求1所述的方法,其特征在于,所述流量为多播流量时,所述每一个转发芯片通过交换网为该转发芯片所对应VD建立的逻辑通道转发流量的方法包括:转发芯片接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网,并在转发报文时携带上自身所对应VD进行多播转发的多播ID;交换网查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。

3.根据权利要求2所述的方法,其特征在于,所述多播为组播或广播。

4.根据权利要求1所述的方法,其特征在于,所述流量为单播流量,所述每一个转发芯片通过交换网中所对应VD的逻辑通道转发流量的方法包括:转发芯片接收到来自源用户的报文时,利用单播转发流程分析出报文的目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网,所述源转发芯片和目的转发芯片同属一个VD;交换网根据所述目的转发芯片信息,并利用事先建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。

5.一种在虚拟设备之间实现流量间隔的系统,该系统包括两个以上转发芯片和一个交换网,其特征在于,

所述转发芯片设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片;所述转发芯片通过交换网中所对应VD的逻辑通道转发流量;

所述交换网用于,利用逻辑通道建立模块将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择一个多播ID作为该分段所对应VD进行多播转发的多播ID,并建立各VD和各用作多播转发的多播ID的对应关系;根据转发芯片和VD之间的对应关系,从已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以完成逻辑通道的建立;或者,根据单播转发矩阵建立逻辑通道;还用于利用所述逻辑通道转发流量。

6.根据权利要求5所述的系统,其特征在于,所述流量为多播流量时,所述转发芯片还用于:接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网的转发模块,并在转发报文时携带上自身所对应VD进行多播转发的多播ID;

所述交换网还包括转发模块,用于:从逻辑通道建立模块中查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。

7.根据权利要求6所述的系统,其特征在于,所述多播为组播或广播。

8.根据权利要求5所述的系统,其特征在于,所述流量为单播流量,所述转发芯片还用于:接收到来自源用户的报文时,利用单播转发流程从报文中分析出目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网的转发模块;

所述交换网包括逻辑通道建立模块,用于根据单播转发矩阵建立逻辑通道;

所述交换网包括转发模块,用于根据所述目的转发芯片信息,并利用事先建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。

说明书 :

一种在虚拟设备之间实现流量间隔的方法和系统

技术领域

[0001] 本发明涉及交换路由技术,特别是涉及一种在虚拟设备之间实现流量隔离的方法和系统。

背景技术

[0002] 在分布式交换路由系统中,可以将一台大的物理设备虚拟成多台小设备,即虚拟设备(VD,Virtual Device)。各个VD对于用户来说就像一台独立的小设备,可以独立运行路由进程、二层协议、三层协议,可以有独立的转发表项、接口,还可以添加自身的用户、独立启动并读取自身的配置文件等等。各个VD间的资源可以通过命令来进行分配管理,相互之间不受影响,即使某个VD占用的资源超过分配的资源限制,也不能抢占其他的VD资源。
[0003] 将一台大的物理设备虚拟成多台小设备也称为设备虚拟化,具体包括CPU和内存的虚拟化,以及网络设备转发表项的虚拟化。其中,网络设备转发表项的虚拟化主要指为每个VD都配备独立的与转发相关的一系列表项,每个VD按照表项进行传输。从逻辑上看,这些表项就像在VD内部建立的逻辑通道,一个VD中的流量直接在逻辑通道中传输,不会影响或泄露到其他VD中,从而实现VD间的流量隔离。
[0004] 图1是现有的分布式交换路由系统的逻辑框图。如图1所示,假设分布式交换路由系统包括两个以上转发芯片和一个交换网,一个转发芯片有一个对应的交换网端口fp,并有多个下属的用户端口(UP)。在现有技术中,转发芯片还必须具备虚拟化功能,为VD建立不同的逻辑通道。这样,转发芯片通过交换网进行流量传输时,就可以利用不同的逻辑通道转发流程,从而实现流量隔离。
[0005] 现有技术的转发芯片是根据VD的数量建立不同的逻辑通道,这对转发芯片提出了较高的要求,要求转发芯片必须具备虚拟化功能。建立逻辑通道实际上就是建立各种表项,那么,如果转发芯片为每一个VD要建立独立的表项,就需要对转发芯片的内部表项资源进行扩充。
[0006] 图2是现有技术中转发芯片实现虚拟化功能时建立逻辑通道的示意图。如图2所示,假设转发芯片下属的4个用户端口UP1~UP4分别加入了4个VD,比如:UP1加入了VD1,UP2加入了VD2,UP3加入了VD3,UP4加入了VD4。由于转发芯片下属的各个用户端口加入了不同的VD,转发芯片就需要转发不同VD的流程,在进行虚拟化时,就要为4个VD建立不同的逻辑通道。假设每个逻辑通道占4K资源,4个VD就需要占用转发芯片共16K资源,相当于转发芯片需要将资源扩充4倍。本领域技术人员知道,具备虚拟化功能的转发芯片成本比较高,扩充大量资源会使转发芯片的成本进一步提高,这显然不利于设备虚拟化技术的进一步推广和应用。

发明内容

[0007] 本发明提供了一种在虚拟设备之间实现流量隔离的方法和系统,可以不要求转发芯片具备虚拟化功能,由交换网建立各VD的逻辑通道,可以降低转发芯片以及系统的成本,并同时实现VD间流量的转发。
[0008] 为了实现上述第一个发明目的,本发明提出的技术方案为:
[0009] 一种在虚拟设备之间实现流量间隔的方法,该方法应用于分布式交换路由系统,所述分布式交换路由系统包括两个以上转发芯片和一个交换网,该方法包括:
[0010] 将每一个转发芯片设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片;
[0011] 在所述交换网中为每一个VD建立单独的逻辑通道;
[0012] 每一个转发芯片通过交换网中所对应VD的逻辑通道转发流量,以实现各个VD之间的流量隔离。
[0013] 上述方案中,所述流量为多播流量,所述在交换网中为每一个VD建立单独的逻辑通道的方法包括:
[0014] 将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择所对应VD进行多播转发的多播ID,并建立各VD和各用作多播转发的多播ID的对应关系;
[0015] 根据转发芯片和VD之间的对应关系、已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以完成逻辑通道的建立。
[0016] 上述方案中,所述每一个转发芯片通过交换网为该转发芯片所对应VD建立的逻辑通道转发流量的方法包括:
[0017] 转发芯片接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网,并在转发报文时携带上自身所对应VD进行多播转发的多播ID;交换网查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0018] 上述方案中,所述多播为组播或广播。
[0019] 上述方案中,所述流量为单播流量,所述每一个转发芯片通过交换网中所对应VD的逻辑通道转发流量的方法包括:
[0020] 转发芯片接收到来自源用户的报文时,利用单播转发流程分析出报文的目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网,所述源转发芯片和目的转发芯片同属一个VD;交换网根据所述目的转发芯片信息,并利用事先建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。
[0021] 针对上述第二个发明目的,本发明提出的技术方案为:
[0022] 一种在虚拟设备之间实现流量间隔的系统,该系统包括两个以上转发芯片和一个交换网,
[0023] 所述转发芯片设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片;所述转发芯片通过交换网中所对应VD的逻辑通道转发流量;
[0024] 所述交换网用于为每一个VD建立单独的逻辑通道,并利用所述逻辑通道转发流量。
[0025] 上述方案中,所述交换网包括逻辑通道建立模块,用于:
[0026] 将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择一个多播ID作为该分段所对应VD进行多播转发的多播ID,并建立各VD和各用作多播转发的多播ID的对应关系;
[0027] 根据转发芯片和VD之间的对应关系,从已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以完成逻辑通道的建立。
[0028] 上述方案中,
[0029] 所述转发芯片还用于:接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网的转发模块,并在转发报文时携带上自身所对应VD进行多播转发的多播ID;
[0030] 所述交换网还包括转发模块,用于:从逻辑通道建立模块中查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0031] 上述方案中,所述多播为组播或广播。
[0032] 上述方案中,所述流量为单播流量,所述转发芯片还用于:接收到来自源用户的报文时,利用单播转发流程从报文中分析出目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网的转发模块;
[0033] 所述交换网包括逻辑通道建立模块,用于根据单播转发矩阵建立逻辑通道;
[0034] 所述交换网包括转发模块,用于根据所述目的转发芯片信息,并利用事先建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。
[0035] 本发明提出一种在虚拟设备之间实现流量间隔的方法和系统,转发芯片本身不再为VD建立逻辑通道,不必具备虚拟化功能,仅仅是普通的转发芯片即可,或者虽然具备但未实施其虚拟化功能,不必扩充转发芯片内部的表项资源,降低了转发芯片的成本,也降低了整个系统的成本。另一方面,交换网可以为各个VD建立逻辑通道,所有转发芯片通过自身所属VD对应的逻辑通道进行流量转发,在降低转发芯片成本的基础并不影响VD间流量的隔离。

附图说明

[0036] 图1是现有的分布式交换路由系统的逻辑框图。
[0037] 图2是现有技术中转发芯片实现虚拟化功能时建立逻辑通道的示意图。
[0038] 图3是本发明实现虚拟设备之间实现流量隔离的方法流程图。
[0039] 图4是方法实施例一中的方法流程图。
[0040] 图5是方法实施例一中的系统架构示意图。
[0041] 图6是方法实施例二中的方法流程图。
[0042] 图7是方法实施例三中的方法流程图。
[0043] 图8是本发明系统实施例一的逻辑结构示意图。
[0044] 图9是本发明系统实施例二的逻辑结构示意图。

具体实施方式

[0045] 为了降低分布式交换路由系统的成本,在不影响虚拟设备(VD)之间流量隔离的情况下,本发明提出了一种新的解决方案:本发明的分布式交换路由系统的逻辑结构与图1相同,包括两个以上转发芯片和一个交换网,其区别在于,其一、本发明的转发芯片是加入和退出VD的最小单元,一个转发芯片仅对应一个VD。这样,一个转发芯片只需要转发一个VD中的流量,无需建立多个逻辑通道,也就不必要求转发芯片具备虚拟化功能,仅仅是普通的转发芯片即可,从而降低成本。其二、本发明为每个VD建立逻辑通道的功能由交换网负责实施,每个VD仍然可以在自身对应的逻辑通道中转发流量,从而保证VD之间流量的间隔。
[0046] 如图3所示,本发明实现虚拟设备之间实现流量隔离的方法可以包括:
[0047] 步骤301:将每一个转发芯片设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片。
[0048] 本发明中是将转发芯片作为加入和退出VD的最小单元。也就是说,即使一个转发芯片有多个用户端口,也不像现有技术一样将一个用户端口作为加入和退出VD的最小单元,而是将转发芯片的所有用户端口作为一个端口组一并加入或退出某个VD。假设转发芯片PP1有4个用户端口UP1~UP4,那么,要使PP1加入VD1,可以采用将UP1~UP4一并加入VD1的方式实现;相应地,要使PP1退出VD1,则可以采用将UP1~UP4一并退出VD1的方式实现。当然,UP1~UP4如何加入或退出VD1则可以采用现有技术来实现,此处不再赘述。总之,正是由于本发明的转发芯片是加入和退出VD的最小单元,一个转发芯片只能对应一个VD,因此,转发芯片内部就不必为不同的VD建立逻辑通道来进行流量隔离。在这种情况下,本发明的转发芯片可以是未实施虚拟化功能的转发芯片,比如普通的转发芯片,或者是虽具备但未开启其虚拟化功能的芯片,转发芯片也不必扩充内部表项资源,从而大大降低转发芯片以及整个系统的成本。
[0049] 步骤302:在交换网中为每一个VD建立单独的逻辑通道。
[0050] 步骤303:每一个转发芯片通过交换网中所对应VD的逻辑通道转发流量,以实现各个VD之间的流量隔离。
[0051] 本发明中,由于转发芯片没有为不同的VD建立逻辑通道来隔离流量,而是由交换网中为不同的VD建立逻辑通道。根据所转发流量类型的不同,可以将逻辑通道的建立方法分为两种:
[0052] 一、如果是多播流量(包括组播流量或广播流量),由于无法从要转发的报文中直接分析出目的转发芯片,则需要在交换网建立VD、用作多播转发的多播ID、交换网端口之间的对应关系。这样,交换网只能接收到某个报文时可以确定该报文属于哪个VD,多播ID是多少,就可以查询上述的对应关系,确定对应的交换网端口,并从作为目的端口的交换网端口中转发出去。
[0053] 具体地,步骤302中交换网为每一个VD建立单独的逻辑通道的方法可以为:将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择所对应VD进行多播转发的多播ID,并建立VD和用作多播转发的多播ID的对应关系。之后,根据转发芯片和VD之间的对应关系、已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以实现逻辑通道的建立。
[0054] 相应地,步骤303中转发芯片通过交换网转发流量的方法包括:转发芯片接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网,并在转发报文时携带上自身所对应VD进行多播转发的多播ID。交换网查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0055] 二、如果是单播流量,转发芯片可以利用现有的单播转发流程直接从报文中分析出目的转发芯片,那么,在步骤302中交换网也可以直接利用现有的单播转发方法建立逻辑通道,而后在步骤303中转发芯片利用该逻辑通道进行转发。具体地,步骤303中转发芯片通过交换网中转发流量的方法包括:转发芯片接收到来自源用户的报文时,利用单播转发流程从报文中分析出目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片,将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网,所述源转发芯片和目的转发芯片同属一个VD;交换网根据所述目的转发芯片信息,并利用事先建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。这里所述的单播转发矩阵就是交换网在步骤302中利用现有技术建立的逻辑通道,具体如何建立这里不再详细。
[0056] 为了更好地描述本发明方案,下面用几个较佳实施例进行详细描述。
[0057] 方法实施例一
[0058] 本实施例中,假设分布式交换路由系统的架构仍然如图1所示,其中,转发芯片是普通的转发芯片,不具备虚拟化功能,并且由交换网为VD建立逻辑通道。本实施例还假设转发芯片包括PP1~PP4,每一个转发芯片下属有4个用户端口UP1~UP4;PP1对应的交换网端口为fp1,PP2对应的交换网端口为fp2,PP3对应的交换网端口为fp3,PP4对应的交换网端口为fp4。
[0059] 本实施例还假设转发的流量为单播流量,实现流量隔离的方法如图4所示,包括:
[0060] 步骤401:将每一个转发芯片设置为加入和退出VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系。
[0061] 本步骤中,假设转发芯片PP1和PP3要加入VD1,PP2和PP4要加入VD2,那么,就可以将PP1下属的4个用户端口UP1~UP4加入VD1,将PP3下属的4个用户端口UP1~UP4也加入VD1,将PP2下属的4个用户端口UP1~UP4加入VD2,将PP4下属的4个用户端口UP1~UP4也加入VD2。此后,各个转发芯片与VD之间的对应关系如表一所示:
[0062]转发芯片(PP) 虚拟设备(VD)
PP1 VD1
PP2 VD2
PP3 VD1
PP4 VD2
[0063] 表一
[0064] 步骤402:在交换网中为每一个VD建立单独的逻辑通道。
[0065] 本步骤可以采用交换网现有的单播转发技术,比如建立单播转发矩阵实现,具体方式此处不再赘述。
[0066] 步骤403:转发芯片PP1接收到来自源用户的报文时,利用单播转发流程从报文中分析出目的转发芯片PP3,并将自身所对应的交换网端口fp1作为源端口,PP1自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口fp1转发给交换网。
[0067] 实际应用中,源用户可以为转发芯片PP1下属用户端口所连接的用户,比如:可以为与PP1下属UP1端口连接的用户A(图中未示出)。用户A通过转发芯片PP1的用户端口UP1将报文发送给转发芯片PP1,并要求将报文转发给转发芯片PP3下用户端口UP3连接的用户B(图中未示出),这里的用户B可以称为目的用户。转发芯片PP1接收到该报文时,可以根据单播转发流程分析出该报文的目的转发芯片PP3,于是将fp1作为源端口,PP1自身作为源转发芯片将该报文和目的转发芯片为PP3这一信息转发给交换网。
[0068] 步骤404:交换网根据目的转发芯片为PP3这一信息,利用事先建立的单播转发矩阵从交换网端口中确定目的端口fp3,将所述报文通过目的端口fp3转发给目的转发芯片PP3。
[0069] 实际应用中,步骤403中转发芯片PP1还可以分析出目的用户端口,假设分析出目的用户端口为PP3下属的UP3端口,于是将这一信息连同报文一并通过交换网发送给转发芯片PP3。当转发芯片PP3从端口fp3接收到该报文时和目的用户端口为UP3的信息时,就可以将该报文从用户端口UP3发送给目的用户B,实现单播转发的目的。
[0070] 本实施例是以一个VD中进行单播转发为例进行说明的,从上述实现过程可以看出,本实施例中单播转发均是在VD1中进行的,其流量不会泄露到其他VD中,因此,在降低转发芯片成本的情况仍然可以实现VD间流量的隔离。
[0071] 方法实施例二
[0072] 本实施例中,假设分布式交换路由系统的架构如图5所示,其中,转发芯片是普通的转发芯片,不具备虚拟化功能,并且由交换网为VD建立逻辑通道。本实施例中,转发芯片包括PP1~PP5,每一个转发芯片下属有4个用户端口UP1~UP4。其中,PP1对应的交换网端口为fp1,PP2对应的交换网端口为fp2,PP3对应的交换网端口为fp3,PP4对应的交换网端口为fp4,PP5对应的交换网端口为fp5。
[0073] 本实施例还假设转发的流量为组播流量,其实现流量隔离的方法如图6所示,包括:
[0074] 步骤601:将每一个转发芯片设置为加入和退出VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系。
[0075] 本步骤中,假设转发芯片PP1、PP2和PP5加入VD1,PP3和PP4加入VD2,那么,可以将PP1下属的用户端口UP1~UP4加入VD1,将PP2下属的用户端口UP1~UP4加入VD1,将PP5下属的用户端口UP1~UP4也加入VD1,同时,将PP3下属的用户端口UP1~UP4加入VD2,将PP4下属的用户端口UP1~UP4也加入VD2。此后,各个转发芯片与VD之间的对应关系如表二所示:
[0076]转发芯片(PP) 虚拟设备(VD)
PP1 VD1
PP2 VD1
PP3 VD2
PP4 VD2
PP5 VD1
[0077] 表二
[0078] 步骤602:将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择所对应VD进行组播转发的多播ID,并建立VD和用作组播转发的多播ID的对应关系。
[0079] 这里,假设交换网的多播ID资源为2K(即0~2047),可以为每个VD分配1K的资源。由于本实施例是进行组播流量的转发,一个VD中可以有一个或一个以上的组播组,那么,如果一个VD中有一个组播组,则可以从该VD对应的多播ID分段中选择一个多播ID作为组播转发的多播ID;如果一个VD中有多个组播组,则可以从该VD对应的多播ID分段中选择多个多播ID分别作为组播转发的多播ID。
[0080] 在本实施例中,假设有2个VD,其中,VD1中有两个组播组,VD2中有一个组播组,分配多播ID之后,各个VD、多播ID分段以及用作组播的多播ID之间的对应关系如表三所示:
[0081]虚拟设备(VD) 多播ID分段 用作组播的多播ID
VD1 1024~2047 1024、1537
VD2 0~1023 0
[0082] 表三
[0083] 也就是说,2K的多播ID按照VD的个数分为2段,VD1对应1024~2047,这一分段的多播ID由VD1使用,其中用作组播转发的多播ID有两个,即1024和1537,1024可以由组播组1用来进行组播转发,1537可以由组播组2用来进行组播转发。另外,VD2对应0~1023,这一分段的多播ID由VD2使用,其中0用作组播转发的多播ID。
[0084] 步骤603:根据转发芯片和VD之间的对应关系、已有的转发芯片和交换网端口之间的对应关系、以及VD和用作组播转发的多播ID的对应关系,来建立VD、用作组播转发的多播ID、交换网端口之间的对应关系。
[0085] 本实施例中,转发芯片和VD之间的对应关系可以如表二所示;转发芯片和交换网端口之间的对应关系是系统在组网时就可以确定的,即:PP1对应的交换网端口为fp1,PP2对应的交换网端口为fp2,PP3对应的交换网端口为fp3,PP4对应的交换网端口为fp4,PP5对应的交换网端口为fp5;VD和用作组播转发的多播ID的对应关系可以如表三所示。本实施例还假设转发芯片PP1、PP2下的某些用户加入VD1中的组播组1,转发芯片PP2和PP5下的某些用户加入VD1中的组播组2,转发芯片PP3和PP4下的某些用户加入VD2中的组播组。那么,从上述几个对应关系可以获得VD、用作组播转发的多播ID、交换网端口之间的对应关系,具体情况如表四所示:
[0086]
[0087] 表四
[0088] 本实施例中,上述的步骤602~步骤603实现了在交换网中为每个VD建立单独的逻辑通道,即建立了表项用于流量转发。实际应用中,还可以根据转发芯片加入或退出某个VD的情况对表项进行动态维护。比如:可以对PP1~PP5这5个转发芯片轮流处理,假设当前处理PP1,那么,根据表二可知PP1对应fp1,再根据表三可知VD1对应1024、1537这两个多播ID,如果PP1要加入VD1,则可以在表四中相应地增加fp1这一端口,如果PP1要退出VD1,则可以在表四中相应地删除fp1这一端口。
[0089] 步骤604:转发芯片接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片,将接收到的报文通过源端口转发给交换网,并在转发报文时携带上自身所对应VD进行组播转发的多播ID。
[0090] 本实施例中,假设转发芯片PP1下的用户A、PP2下的用户B加入了VD1下的组播组1,那么,转发芯片PP1接收到用户A的报文时,就将fp1作为源端口,自身作为源转发芯片将接收到的报文通过fp1端口发送给交换网,并在转发报文时携带上1024这一多播ID,表示其属于组播转发流量。
[0091] 步骤605:交换网查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0092] 本实施例中,交换网可以直接查询表四,根据报文携带的多播ID,从表四中可以明确VD1中1024这一多播ID所对应的交换网端口包括fp1、fp2,其中,fp1是源端口,从而可以过滤掉fp1而确定fp2为目的端口。因此,交换网将该报文从fp2这个端口发送给PP2,再由PP2将报文发送给用户B,达到组播转发的目的。
[0093] 在本实施例这个组播转发的过程中,组播流量始终在VD1中转发。当然,本实施例中的VD2也可以利用对应的用作组播转发的多播ID进行组播转发,其组播流量应该始终在VD2中转发。这样,VD1中的组播流量不会泄露到VD2中,VD2中的组播流量也不会泄露到VD1中,从而实现VD间组播流量的间隔。
[0094] 方法实施例三
[0095] 本实施例中,假设分布式交换路由系统的架构仍然如图5所示,其中,转发芯片是普通的转发芯片,不具备虚拟化功能,并且由交换网为VD建立逻辑通道。本实施例中,每一个转发芯片下属有4个用户端口UP1~UP4;PP1对应的交换网端口为fp1,PP2对应的交换网端口为fp2,PP3对应的交换网端口为fp3,PP4对应的交换网端口为fp4,PP5对应的交换网端口为fp5。
[0096] 本实施例还假设转发的流量为广播流量,其实现流量隔离的方法如图7所示,包括:
[0097] 步骤701:将每一个转发芯片设置为加入和退出VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系。
[0098] 本步骤与实施例二的步骤601相同,并假设转发芯片PP1、PP2和PP5加入VD1,PP3和PP4加入VD2,转发芯片与VD之间的对应关系仍然如表二所示,此处不再赘述。
[0099] 步骤702:将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择一个多播ID,作为所对应VD进行广播转发的多播ID,并建立VD和用作广播转发的多播ID的对应关系。
[0100] 这里,仍然假设交换网的多播ID资源为2K(即0~2047),各个VD、多播ID分段以及用作广播的多播ID之间的对应关系如表五所示:
[0101]虚拟设备(VD) 多播ID分段 用作广播的多播ID
VD1 1024~2047 2047
VD2 0~1023 1023
[0102] 表五
[0103] 也就是说,2K的多播ID按照VD的个数分为2段,VD1对应1024~2047,这一分段的多播ID由VD1使用,其中,2047用作广播转发的多播ID;VD2对应0~1023,这一分段的多播ID由VD2使用,其中1023用作广播转发的多播ID。
[0104] 步骤703:根据转发芯片和VD之间的对应关系、已有的转发芯片和交换网端口之间的对应关系、以及VD和用作广播转发的多播ID的对应关系,来建立VD、用作广播转发的多播ID、交换网端口之间的对应关系。
[0105] 本实施例中,转发芯片和VD之间的对应关系可以如表二所示;转发芯片和交换网端口之间的对应关系是系统在组网时就可以确定的,即:PP1对应的交换网端口为fp1,PP2对应的交换网端口为fp2,PP3对应的交换网端口为fp3,PP4对应的交换网端口为fp4,PP5对应的交换网端口为fp5;VD和用作广播转发的多播ID的对应关系可以如表五所示。从上述几个对应关系可以获得VD、用作广播转发的多播ID、交换网端口之间的对应关系,具体情况如表六所示:
[0106]虚拟设备(VD) 用作广播转发的多播ID 交换网端口
VD1 2047 fp1、fp2、fp5
VD2 1023 fp3、fp4
[0107] 表六
[0108] 本实施例中,上述步骤702~步骤703实现了在交换网中为每个VD建立单独的逻辑通道。实际应用中,还可以根据转发芯片加入或退出某个VD的情况对表项进行动态维护。比如:可以对PP1~PP5这5个转发芯片轮流处理,假设当前处理PP1,那么,根据表二可知PP1对应fp1,再根据表五可知VD1对应2047这个多播ID,如果PP1要加入VD1,则可以在表六中相应地增加fp1这一端口,如果PP1要退出VD1,则可以在表六中相应地删除fp1这一端口。
[0109] 步骤704:转发芯片接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片,将接收到的报文通过源端口转发给交换网,并在转发报文时携带上自身所对应VD进行广播转发的多播ID。
[0110] 本实施例中,假设转发芯片PP1下有用户A,转发芯片PP1接收到用户A的报文时,就将fp1作为源端口,自身作为源转发芯片将接收到的报文通过fp1端口发送给交换网,并在转发报文时携带上2047这一多播ID。
[0111] 步骤705:交换网查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0112] 本实施例中,交换网可以直接查询表六,根据报文携带的多播ID从表六中可以明确VD1中2047这一多播ID所对应的交换网端口包括fp1、fp2、fp5,其中,fp1是源端口,所以可以将fp1过滤掉而明确fp2和fp5应该为目的端口,即,交换网将该报文从fp2和fp5这两个端口发送给PP2和PP5,再由PP2和PP5将报文发送给下属的所有用户,达到广播转发的目的。
[0113] 在本实施例这个广播转发的过程中,广播流量始终在VD1中转发。实际应用中,VD2中也可以利用同样的方法进行另一广播转发,其流量将始终在VD2中转发。因此,VD1和VD2各自转发的流量不会相互泄露,从而实现VD间广播流量的间隔。
[0114] 当然,实际应用中还可以利用上述三个实施例的方法在其他VD中进行单播、组播、广播流量的转发,并且在转发过程中保证VD间的流量隔离。
[0115] 上述三个实施例主要描述了转发芯片如何作为加入和退出VD的最小单元,交换网如何建立VD的逻辑通道,至于报文格式、转发芯片如何具体处理或分析报文等都可以利用现有技术,本领域技术人员比较容易实施,此处不再详细描述。
[0116] 应用本发明方法,由于分布式交换路由系统中的转发芯片可以是普通的,不具备虚拟化功能的芯片,因而可以大大降低系统的成本。同时,由于VD的逻辑通道由交换网建立,在不使用虚拟化功能转发芯片的情况下,仍然可以实现VD间的流量隔离。
[0117] 本发明还提出一种在虚拟设备之间实现流量间隔的系统,该系统逻辑架构包括两个以上转发芯片和一个交换网。其中,
[0118] 所述转发芯片,设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片,并通过交换网中所对应VD的逻辑通道转发流量。
[0119] 所述交换网,用于为每一个VD建立单独的逻辑通道,利用所述逻辑通道转发流量。
[0120] 本发明中,由于交换网可以建立逻辑通道并转发流量,因此在实际应用中可以在交换网中设置一个逻辑通道建立模块和转发模块。如果转发的是多播流量,分布式交换路由系统可以如图8所示的方式实施。其中,
[0121] 交换网包括逻辑通道建立模块801,用于将交换网中的所有多播ID按照VD的个数分段,每一个多播ID分段对应一个VD,再从每一个多播ID分段中选择一个多播ID作为该分段所对应VD进行多播转发的多播ID,并建立各VD和各用作多播转发的多播ID的对应关系;根据转发芯片和VD之间的对应关系,从已有的转发芯片和交换网端口之间的对应关系、以及VD和用作多播转发的多播ID的对应关系,来建立VD、用作多播转发的多播ID、交换网端口之间的对应关系,以完成逻辑通道的建立。
[0122] 交换网还包括转发模块802,用于从逻辑通道建立模块801中查询已建立的VD、用作多播转发的多播ID、交换网端口之间的对应关系以确定所有的作为目的端口的交换网端口,所述确定的目的端口不包括作为源端口的交换网端口,然后将所述报文从确定的目的端口中转发出去。
[0123] 相应地,转发芯片803设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片803为未实施虚拟化功能的转发芯片。转发芯片803接收到来自源用户的报文时,将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文通过源端口转发给交换网的转发模块802,并在转发报文时携带上自身所对应VD进行多播转发的多播ID。
[0124] 上述是进行多播转发时的实施方式,所述多播转发可以是组播转发,也可以是广播转发。如果是组播转发,其流程可以参见上述方法实施例二以及图6;如果是广播转发,其流程可以参见上述方法实施例三以及图7,此处都不再赘述。
[0125] 如果是单播转发,其实施方式可以如图9所示,其中:
[0126] 交换网中的逻辑通道建立模块901,用于根据现有的单播转发矩阵建立逻辑通道。
[0127] 交换网中的转发模块902,用于根据目的转发芯片信息,并利用逻辑通道建立模块901建立的单播转发矩阵从交换网端口中确定目的端口,将所述报文从确定的目的端口转发给目的转发芯片。
[0128] 转发芯片903,设置为加入和退出虚拟设备VD的最小单元,并按照一个转发芯片仅对应一个VD的方式来建立转发芯片和VD之间的对应关系,所述转发芯片为未实施虚拟化功能的转发芯片;接收到来自源用户的报文时,利用单播转发流程从报文中分析出目的转发芯片,并将自身所对应的交换网端口作为源端口,自身作为源转发芯片将接收到的报文和分析出的目的转发芯片信息从源端口转发给交换网的转发模块902。
[0129] 本实施例在VD中进行单播转发的具体流程可以参见上述方法实施例一以及图4,此处也不再赘述。
[0130] 本发明中,一方面,不管是单播、组播还是广播转发,转发芯片本身都不再为VD建立逻辑通道,不必具备虚拟化功能,仅仅是普通的转发芯片即可,或者虽然具备但未实施其虚拟化功能,不必扩充转发芯片内部的表项资源,降低了转发芯片的成本,也降低了整个系统的成本。另一方面,交换网可以在某个普通的网络设备中为各个VD建立逻辑通道,所有转发芯片通过自身所属VD对应的逻辑通道进行流量转发,实现VD间流量的隔离。
[0131] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。