CN104283782B - 多协议标签交换网络中确定报文转发路径的方法和装置 - Google Patents
多协议标签交换网络中确定报文转发路径的方法和装置 Download PDFInfo
- Publication number
- CN104283782B CN104283782B CN201410541398.XA CN201410541398A CN104283782B CN 104283782 B CN104283782 B CN 104283782B CN 201410541398 A CN201410541398 A CN 201410541398A CN 104283782 B CN104283782 B CN 104283782B
- Authority
- CN
- China
- Prior art keywords
- path
- key
- 0xff
- equal value
- forwarding
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施方式提出多协议标签交换(MPLS)网络中确定报文转发路径的方法和装置。该方法应用于提供商边缘设备(PE),包括:针对虚拟专用网络(VPN)的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表;接收该VPN中的用户边缘设备(CE)发送的报文,从所述报文中提取前缀,检索所述转发表以确定对应于所提取的前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
Description
技术领域
本发明实施方式属于网络通信技术领域,特别是多协议标签交换(MultiprotocolLabel Switching,MPLS)网络中确定报文转发路径的方法和装置。
背景技术
MPLS是目前广泛应用的一种骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简洁性。在MPLS网络中,设备根据短而定长的标签转发报文,省去了查找IP路由表的繁琐过程,为数据在骨干网络中的传送提供了一种高速高效的方式,同时MPLS支持多层标签和面向连接的特点,使能其在虚拟专用网络(Virtual Private Network,VPN)、服务质量(Quality of Service,QoS)等方面得到广泛的应用,并且因为其良好的的扩展性,使得在统一的MPLS/IP基础网络架构中上为客户提供各类服务成为可能,从而使得MPLS日益成为大规模网络应用的基础。
MPLS三层虚拟专用网络(L3VPN)和虚拟专用局域网服务(Virtual Private LANService,VPLS)是MPLS网络中典型的应用,由于组网方式灵活,能够实现通过服务提供商的骨干网连接属于同一个VPN、位于不同地理位置的用户站点,并且可扩展性好,并能够方便地支持MPLS QoS和MPLS流量工程(TE),因此得到了广泛应用。
在现有技术中,只能在转发芯片支持等价负载分担的设备上实现VPN内等价负载分担功能。如果设备的转发芯片不支持等价负载分担功能或转发芯片的等价资源不足,就不能实现VPN内的等价负载分担的功能,从而在有等价组网中不能充分利用等价转发路径的带宽(即各条等价转发路径带宽的总和),这就显著浪费了带宽资源。
发明内容
本发明实施方式提出一种MPLS网络中确定报文转发路径的方法和装置,从而充分利用组网中的链路带宽。
本发明实施方式的技术方案如下:
本发明实施方式的一方面,提供了一种MPLS网络中确定报文转发路径的方法,所述方法应用于提供商边缘设备(PE),该方法包括:
针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表;
接收该VPN中的用户边缘设备(CE)发送的报文,从所述报文中提取前缀,检索所述转发表以确定对应于所述前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
优选地,所述转发表中的等价转发路径均衡分担负载。
优选地,所述针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径包括:
将每条前缀作为Key,分别计算哈希运算结果HashKey,其中
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
优选地,所述转发表中的等价转发路径非均衡分担负载。
优选地,所述针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径包括:
将每条前缀作为键(Key),分别计算哈希运算结果(HashKey),其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;所述m为各条等价转发路径的负载分担比例之和;所述Table为映射函数,其中该映射函数的输入为HashKey%m,该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
优选地,所述VPN为三层L3VPN,所述从报文中提取前缀包括:从报文中提取目的IP地址。
优选地,所述VPN为虚拟专用局域网服务VPLS网络,所述从报文中提取前缀包括:从报文中提取目的媒体访问控制MAC地址。
本发明实施方式的另一方面,提供了一种MPLS网络中确定报文转发路径的装置,所述装置应用于PE,该装置包括:
转发表建立模块,用于针对虚拟专用网络VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表;
报文转发模块,用于接收该VPN中的用户边缘设备CE发送的报文,从所述报文中提取前缀,检索所述转发表以确定对应于所述前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
优选地,所述转发表中的等价转发路径均衡分担负载。
优选地,转发表建立模块,用于将每条前缀作为键(Key),分别计算哈希运算结果(HashKey),其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
优选地,所述转发表中的等价转发路径非均衡分担负载。
优选地,转发表建立模块,用于将每条前缀作为Key,分别计算哈希运算结果HashKey,其中
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;所述m为各条等价转发路径的负载分担比例之和;所述Table为映射函数,其中该映射函数的输入为HashKey%m;该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
由此可见,应用本发明实施方式之后,通过对转发表项的前缀进行哈希运算,可以根据哈希结果值选择不同的等价转发路径,实现了VPN内均衡负载分担和非均衡负载分担的功能,从而充分利用了组网中的链路带宽,并节约了系统资源。
附图说明
图1为MPLS VPN组网的示范性结构图;
图2为根据本发明一实施方式的MPLS网络中确定报文转发路径的方法流程图;
图3为根据本发明一实施方式的MPLS网络中确定报文转发路径的装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
在基于MPLS的VPN(称为MPLS VPN)中,通过标签交换路径(Label Swiching Path,LSP)将私有网络的不同分支联结起来,形成一个统一的网络。
MPLS VPN组网通常包括如下实体:
(1)、用户边缘设备(Customer Edge,CE),既可以是路由器,也可以是交换机或主机。
(2)、服务提供商边缘设备(Provider Edge,PE),是服务商提供的边缘路由器,位于骨干网络。
(3)、服务提供商设备(Provider,P),是服务提供商网络中的骨干路由器。P设备不与CE直接相连,而且只具备基本MPLS转发能力。可以将其配置为M-BGP的路由反射器,不维护VPN信息。
图1为MPLS VPN组网的示范性结构图。
如图1所示,该组网包括PE1、PE2设备和P设备。在PE1和PE2上均配置有VPN A,用户边缘设备(CE)1和CE2分别通过VPN A连接到PE1和PE2。从CE1发送到CE2的报文需要经过VPNA进行转发,从CE1到CE2的等价转发路径集包括等价转发路径一(PE1-P-PE2)和等价转发路径二(PE1-PE2)
在现有技术中,如果PE1的报文转发芯片不支持等价负载分担功能,即使从CE1到CE2的等价转发路径实际上有多条,PE设备也只会从中选择固定的一条作为报文的等价转发路径,而不能基于报文的内容选择不同的等价转发路径。比如,对于从CE1发送来的报文,PE1基于预定规则从等价转发路径一或者等价转发路径二中选择出一条固定的等价转发路径,并通过该固定的等价转发路径将报文转发到PE2。如果从CE1发送来的报文流量较大(比如超过等价转发路径一和等价转发路径二中的带宽较大者),该选中的固定等价转发路径的带宽不够,从而导致报文拥塞和掉包。
在本发明中,可以充分利用多条等价转发路径的带宽,根据报文本身的负载不同选择相应的等价转发路径进行转发,从而充分利用组网的链路带宽,节约系统资源,并且避免报文拥塞和掉包。
图2为根据本发明一实施方式的MPLS网络中确定报文等价转发路径的方法流程图。该方法应用于PE。
如图2所示,该方法包括:
步骤201:针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表。
在这里,PE学习VPN的转发表项,转发表项包括前缀以及等价转发路径集,其中等价转发路径集中包括有多条等价转发路径。当VPN为VPLS网络时,转发表项中的前缀为目的MAC(DMAC)地址;当VPN为三层L3VPN时,转发表项中的前缀具体为目的IP(DIP)地址。
PE学习VPN的转发表项以及转发表项的具体内容属于本领域现有技术,对此不再赘述。
而且,PE针对转发表项中的每条前缀执行哈希运算,并基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表。
比如:当VPN为VPLS网络时,PE针对转发表项中的每条DMAC地址执行哈希运算,基于哈希运算结果确定与该DMAC地址相对应的等价转发路径,并建立包含DMAC地址与相对应的等价转发路径的转发表。
再比如,当VPN为三层L3VPN时,PE针对转发表项中的每条DIP地址执行哈希运算,基于哈希运算结果确定与该DIP地址相对应的等价转发路径,并建立包含DIP地址与相对应的等价转发路径的转发表。
在一个实施方式中:转发表中的各条等价转发路径均衡分担负载。也就是说,转发表中每条等价转发路径所负责分担的负载都是相同的。
可以基于各种哈希算法实现等价转发路径均衡分担负载。比如,可以将转发表中的每条前缀作为键(Key),分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号(Index),其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
以上给出了等价转发路径均衡分担负载的具体实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明的保护范围。实际上,基于具体组网和流量模型的不同,上述等价转发路径均衡分担算法可以予以相应调整,而这种调整都应该涵盖在本发明的保护范围之内。
在一个实施方式中,转发表中的等价转发路径非均衡分担负载。也就是说,转发表中各条等价转发路径所负责分担的负载不一定是相同的。
可以基于各种哈希算法实现等价转发路径非均衡分担负载。比如,可以将转发表中的每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号(Index),其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;m为各条等价转发路径的负载分担比例之和;Table为映射函数,其中该映射函数的输入为HashKey%m,该映射函数的输出结果呈现比例符合各条等价转发路径的负载分担比例。
以上给出了等价转发路径非均衡分担负载的具体实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明的保护范围。实际上,基于具体组网和流量模型的不同,上述等价转发路径非均衡分担算法可以予以相应调整,而这种调整都应该涵盖在本发明的保护范围之内。
步骤202:接收该VPN中的CE发送的报文,从报文中提取前缀,检索转发表以确定对应于前缀的等价转发路径,并通过所确定的等价转发路径转发报文。
在这里,当VPN为三层L3VPN时,PE从报文中提取的前缀为DIP地址。而且,PE检索转发表以确定对应于该DIP地址的等价转发路径,并通过所确定的等价转发路径转发报文。
当VPN为VPLS网络时,PE从报文中提取的前缀为DMAC地址。而且,PE检索转发表以确定对应于该DMAC地址的等价转发路径,并通过所确定的等价转发路径转发报文。
下面基于图1所示MPLS VPN组网,对本发明进行更详细的示范性说明。
在图1所示组网中:在PE1和PE2上均配置有VPN A,CE1和CE2分别通过VPN A连接到PE1和PE2。从CE1发送到CE2的报文需要经过VPNA进行转发,而且从CE1发送到CE2的等价转发路径包括路径一(PE1-P-PE2)和等价转发路径二(PE1-PE2)。
下面以PE1的处理过程为例进行说明。
首先,PE1学习VPN A的转发表项,转发表项包括前缀以及由等价转发路径一和等价转发路径二组成的等价转发路径集。
当VPN A为VPLS网络时,PE1学习到的转发表项中的前缀为DMAC地址。PE1针对转发表项中的每条DMAC地址执行哈希运算,并基于哈希运算结果确定与该DMAC地址相对应的等价转发路径,并建立包含DMAC地址与相对应的等价转发路径的转发表。该转发表的键(Key)即为DMAC地址,与Key相对应的结果(RESULT)即为对应于DMAC地址的等价转发路径。然后,PE1将转发表下发到自身的硬件转发层。
当VPN A为三层L3VPN时,转发表项中的前缀具体为DIP地址。PE1学习到的转发表项中的前缀为DIP地址。PE1针对转发表项中的每条DIP地址执行哈希运算,并基于哈希运算结果确定与该DIP地址相对应的等价转发路径,并建立包含DIP地址与相对应的等价转发路径的转发表。该转发表的键(Key)即为DIP地址,与Key相对应的结果(RESULT)即为对应于DIP地址的等价转发路径。然后,PE1将转发表下发到自身的硬件转发层。
在一个实施方式中:转发表中的各条等价转发路径均衡分担负载。举例:均衡分担负载的哈希算法示范性如下:
将转发表项中的每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);
Index=HashKey%n;
Index表示选择等价路径中的等价转发路径的编号(从0开始),n表示等价转发路径的总条数,Key为转发表项中的前缀。当在PE1上配置有多个VPN时,可以在转发表中进一步增加VPN ID。
下面以Key为DIP地址为例,详细描述等价转发路径均衡分担负载的哈希运算过程。
假定转发路由表中的前缀为194.0.0.0/24,而且该VPN ID为A;则Key为:194.0.0.0/24。
194.0.0.0/24>>40&0XFF的结果为0;194.0.0.0/24>>32&0XFF的结果为0;194.0.0.0/24>>24&0XFF的结果为194;194.0.0.0/24>>16&0XFF的结果为0;194.0.0.0/24>>8&0XFF的结果为0;194.0.0.0/24>>0XFF的结果为0,则:
194.0.0.0/24>>40&0XFF+194.0.0.0/24>>32&0XFF+194.0.0.0/24>>24&0XFF+194.0.0.0/24>>16&0XFF+194.0.0.0/24>>8&0XFF+194.0.0.0/24>>0XFF=0+0+194+0+0+0=194,即HashKey=194。
而且,Index=HashKey%n=194%2=0,因此与前缀194.0.0.0/24相对应的等价转发路径为:等价转发路径一。
因此,当DIP为194.0.0.0/24的报文通过VPN A转发时,PE1通过查询硬件转发层中的转发表,选择等价转发路径一进行转发。
再比如,假定转发路由表中的前缀为195.0.0.0/24,而且该VPN ID为A;则Key为:195.0.0.0/24。
195.0.0.0/24>>40&0XFF的结果为0;195.0.0.0/24>>32&0XFF的结果为0;195.0.0.0/24>>24&0XFF的结果为195;195.0.0.0/24>>16&0XFF的结果为0;195.0.0.0/24>>8&0XFF的结果为0;195.0.0.0/24>>0XFF的结果为0,则:
195.0.0.0/24>>40&0XFF+195.0.0.0/24>>32&0XFF+195.0.0.0/24>>24&0XFF+195.0.0.0/24>>16&0XFF+195.0.0.0/24>>8&0XFF+195.0.0.0/24>>0XFF=0+0+195+0+0+0=195,即HashKey=195。
Index=HashKey%n=195%2=1,因此与前缀195.0.0.0/24相对应的等价转发路径为:等价转发路径二。因此,当DIP为195.0.0.0/24的报文通过VPN A转发时,PE1通过查询硬件转发层中的转发表,选择等价转发路径一进行转发。
类似地,当Key为:196.0.0.0/24时,相对应的等价转发路径为:等价转发路径一;当Key为:197.0.0.0/24时,相对应的等价转发路径为:等价转发路径二,等等。
表1为等价转发路径均衡分担负载时的转发表的实例。
VPN ID+key | Result |
VPN ID+194.0.0.0/24 | 等价转发路径一 |
VPN ID+195.0.0.0/24 | 等价转发路径二 |
VPN ID+196.0.0.0/24 | 等价转发路径一 |
VPN ID+197.0.0.0/24 | 等价转发路径二 |
表1
以上以Key为DIP地址为例,详细描述了等价转发路径均衡分担负载的哈希运算过程。本领域技术人员可以意识到,该哈希运算过程同样适用于Key为DMAC地址的情形。
在一个实施方式中,转发表中的等价转发路径非均衡分担负载。也就是说,转发表中各条等价转发路径所负责分担的负载不一定是相同的。
例如:等价转发路径非均衡分担负载的哈希算法示范性如下:
将转发表项中的每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;所述m为各条等价转发路径的负载分担比例之和;所述Table为映射函数,其中该映射函数的输入为HashKey%m,该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
比如,如果需要实现从VPN A进行转发报文时,从等价转发路径一和等价转发路径二进行转发的报文流量大小为1:3,可以设置等价转发路径一和等价转发路径二的负载分担比例为1:3。那么,m=1+3=4,Table函数的输入输出表项如表二所示。可见,Table函数的输出结果包括1个“0”和3个“1”,其呈现比例符合各条等价转发路径的负载分担比例(即1:3)。
输入 | 输出 |
0 | 0 |
1 | 1 |
2 | 1 |
3 | 1 |
表2
下面以Key为DIP地址为例,详细描述等价转发路径非均衡分担负载的哈希运算过程。
假定转发路由表中的前缀为195.0.0.0/24,而且该VPN ID为A;则Key为:195.0.0.0/24。
195.0.0.0/24>>40&0XFF的结果为0;195.0.0.0/24>>32&0XFF的结果为0;195.0.0.0/24>>24&0XFF的结果为195;195.0.0.0/24>>16&0XFF的结果为0;195.0.0.0/24>>8&0XFF的结果为0;195.0.0.0/24>>0XFF的结果为0,则:
195.0.0.0/24>>40&0XFF+195.0.0.0/24>>32&0XFF+195.0.0.0/24>>24&0XFF+195.0.0.0/24>>16&0XFF+195.0.0.0/24>>8&0XFF+195.0.0.0/24>>0XFF=0+0+195+0+0+0=195,即HashKey=195。
HashKey%m=195%4=3;
Table(HashKey%m)=Table(3)=1,因此相对应的等价转发路径为:等价转发路径二。因此,当DIP为195.0.0.0/24的报文通过VPN A转发时,PE1选择等价转发路径二进行转发。
类似地,当转发路由表中的前缀为194.0.0.0/24时,选择等价转发路径二进行转发;当转发路由表中的前缀为196.0.0.0/24时,选择等价转发路径一进行转发;当转发路由表中的前缀为197.0.0.0/24时,选择等价转发路径二进行转发。
表3为等价转发路径非均衡分担负载时(具体比例为1:3)的转发表的实例。
VPNID+Key | Result |
VPNID+194.0.0.0/24 | 等价转发路径二 |
VPNID+195.0.0.0/24 | 等价转发路径二 |
VPNID+196.0.0.0/24 | 等价转发路径一 |
VPNID+197.0.0.0/24 | 等价转发路径二 |
表3
从以上分析和表三可以得到,如果VPNA内每种KEY的流量相对均等,就可以实现1/4的整体流量经由等价转发路径一进行转发,3/4的整体流量经由等价转发路径二进行转发,从而实现了VPNA内等价转发路径一和等价转发路径二的负载比例为1:3。
以上以Key为DIP地址为例,详细描述了等价转发路径非均衡分担负载的哈希运算过程。本领域技术人员可以意识到,该哈希运算过程同样适用于Key为DMAC地址的情形。
以上以PE1的处理过程为例进行说明,实际上,本发明也可以适用于其他的PE设备。
基于上述详细分析,本发明还提出了一种MPLS网络中确定报文等价转发路径的装置,所述装置应用于PE。
图3为根据本发明一实施方式的MPLS网络中确定报文转发路径的装置结构图。如图3所示,该装置包括:
转发表建立模块301,用于针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表;
报文转发模块302,用于接收该VPN中的CE发送的报文,从所述报文中提取前缀,检索所述转发表以确定对应于所提取的前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
在一个实施方式中,所述转发表中的等价转发路径均衡分担负载。
在一个实施方式中:
转发表建立模块301,用于将每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
在一个实施方式中,所述转发表中的等价转发路径非均衡分担负载。
在一个实施方式中:
转发表建立模块301,用于将每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;所述m为各条等价转发路径的负载分担比例之和;所述Table为映射函数,其中该映射函数的输入为HashKey%m;该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
由此可见,应用本发明实施方式之后,通过对转发表项的前缀进行哈希运算,可以根据哈希结果值选择不同的等价转发路径,实现了VPN内均衡负载分担和非均衡负载分担的功能,从而充分利用了组网中的链路带宽,节约了系统资源,尤其适用于转发芯片不支持等价负载分担功能以及转发芯片的等价资源不足的情形。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种多协议标签交换MPLS网络中确定报文转发路径的方法,所述方法应用于提供商边缘设备PE,其特征在于,该方法包括:
PE学习虚拟专用网络VPN的转发表项,并针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表,将转发表下发到自身的硬件转发层;
PE接收该VPN中的用户边缘设备CE发送的报文,从所述报文中提取前缀,检索硬件转发层中的所述转发表以确定对应于所提取的前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
2.根据权利要求1所述的方法,其特征在于,所述转发表中的等价转发路径均衡分担负载。
3.根据权利要求2所述的方法,其特征在于,所述针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径包括:
将所述转发表项中的每条前缀作为键Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
4.根据权利要求1所述的方法,其特征在于,所述转发表中的等价转发路径非均衡分担负载。
5.根据权利要求4所述的方法,其特征在于,
所述针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径包括:
将所述转发表项中的每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;m为各条等价转发路径的负载分担比例之和;Table为映射函数,其中该映射函数的输入为HashKey%m,该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述VPN为三层L3VPN,所述从报文中提取前缀包括:从报文中提取目的IP地址。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述VPN为虚拟专用局域网服务VPLS网络,所述从报文中提取前缀包括:从报文中提取目的媒体访问控制MAC地址。
8.一种多协议标签交换MPLS网络中确定报文转发路径的装置,所述装置应用于提供商边缘设备PE,其特征在于,该装置包括:
转发表建立模块,用于学习虚拟专用网络VPN的转发表项,并针对VPN的转发表项中的每条前缀执行哈希运算,基于哈希运算结果确定与该前缀相对应的等价转发路径,并建立包含前缀与相对应的等价转发路径的转发表,将转发表下发到自身的硬件转发层;
报文转发模块,用于接收该VPN中的用户边缘设备CE发送的报文,从所述报文中提取前缀,检索硬件转发层中的所述转发表以确定对应于所提取的前缀的等价转发路径,并通过所确定的等价转发路径转发所述报文。
9.根据权利要求8所述的装置,其特征在于,所述转发表中的等价转发路径均衡分担负载。
10.根据权利要求9所述的装置,其特征在于,
转发表建立模块,用于将每条前缀作为键Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=HashKey%n;n为等价转发路径总条数;%为取余运算符。
11.根据权利要求8所述的装置,其特征在于,所述转发表中的等价转发路径非均衡分担负载。
12.根据权利要求11所述的装置,其特征在于,
转发表建立模块,用于将每条前缀作为Key,分别计算哈希运算结果HashKey,其中:
HashKey=(Key>>40&0XFF)+(Key>>32&0XFF)+(Key>>24&0XFF)+(Key>>16&0XFF)+(Key>>8&0XFF)+(Key&0XFF);其中>>为右移符号;
针对每个HashKey,分别计算与该前缀相对应的等价转发路径的编号Index,其中:
Index=(Table(HashKey%m))%n;n为等价转发路径总条数;%为取余运算符;m为各条等价转发路径的负载分担比例之和;Table为映射函数,其中该映射函数的输入为HashKey%m;该映射函数的输出结果呈现比例符合所述各条等价转发路径的负载分担比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410541398.XA CN104283782B (zh) | 2014-10-14 | 2014-10-14 | 多协议标签交换网络中确定报文转发路径的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410541398.XA CN104283782B (zh) | 2014-10-14 | 2014-10-14 | 多协议标签交换网络中确定报文转发路径的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104283782A CN104283782A (zh) | 2015-01-14 |
CN104283782B true CN104283782B (zh) | 2018-11-09 |
Family
ID=52258280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410541398.XA Active CN104283782B (zh) | 2014-10-14 | 2014-10-14 | 多协议标签交换网络中确定报文转发路径的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104283782B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234269B (zh) * | 2016-12-15 | 2021-09-21 | 新华三技术有限公司 | 组播报文转发方法和装置 |
CN107888521B (zh) * | 2017-10-20 | 2021-01-01 | 深圳市楠菲微电子有限公司 | 多协议共享表项资源池的方法和装置 |
CN108322378B (zh) * | 2018-01-29 | 2021-06-29 | 新华三技术有限公司 | 组播报文转发方法和装置 |
CN110636003A (zh) * | 2018-06-21 | 2019-12-31 | 中国电信股份有限公司 | 报文转发方法、装置、系统和计算机可读存储介质 |
CN111131053B (zh) * | 2018-10-30 | 2021-09-14 | 中国电信股份有限公司 | 路径选择方法和装置及路由器 |
CN113225258B (zh) * | 2020-02-06 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种报文转发方法、装置、网络设备及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494611A (zh) * | 2009-02-20 | 2009-07-29 | 华为技术有限公司 | 一种负载分担调整方法和装置 |
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN102724131A (zh) * | 2012-06-29 | 2012-10-10 | 杭州华三通信技术有限公司 | 一种ip报文等价路由均衡实现的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206706A1 (en) * | 2005-03-14 | 2006-09-14 | Bryan Dietz | Method and apparatus for dynamically distributing data flow in a communication network |
-
2014
- 2014-10-14 CN CN201410541398.XA patent/CN104283782B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494611A (zh) * | 2009-02-20 | 2009-07-29 | 华为技术有限公司 | 一种负载分担调整方法和装置 |
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN102724131A (zh) * | 2012-06-29 | 2012-10-10 | 杭州华三通信技术有限公司 | 一种ip报文等价路由均衡实现的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104283782A (zh) | 2015-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104283782B (zh) | 多协议标签交换网络中确定报文转发路径的方法和装置 | |
US9749214B2 (en) | Software defined networking (SDN) specific topology information discovery | |
CN104243270B (zh) | 一种建立隧道的方法和装置 | |
CN106664252B (zh) | 实现业务链接的方法、设备及系统 | |
CN107819663B (zh) | 一种实现虚拟网络功能服务链的方法和装置 | |
EP3130109B1 (en) | A method and system for network function placement | |
US8958423B2 (en) | Implementing a multicast virtual private network by using multicast resource reservation protocol-traffic engineering | |
EP3054634B1 (en) | Scheme for performing one-pass tunnel forwarding function on two-layer network structure | |
CN108702328A (zh) | 用于穿越分段路由和mpls网络的业务的灵活路径拼接和选择的is-is扩展 | |
CN104348717B (zh) | 报文转发方法和装置 | |
US8948180B2 (en) | Routing encapsulated data packets onto selected VLANs | |
CN104811326A (zh) | 一种管理业务链的方法、系统及装置 | |
CN102739501B (zh) | 二三层虚拟私有网络中的报文转发方法和系统 | |
CN104335537A (zh) | 用于层2多播多路径传送的系统和方法 | |
CN102150148A (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
CN110324159B (zh) | 链路配置方法、控制器和存储介质 | |
CN102075438A (zh) | 单播数据帧传输方法及装置 | |
CN105187311B (zh) | 一种报文转发方法及装置 | |
US20150341263A1 (en) | Associating internet protocol (ip) addresses with ethernet virtualisation interconnection (evi) links | |
CN100484080C (zh) | 一种虚拟私有网的路由引入方法、系统和运营商边缘设备 | |
WO2014139157A1 (zh) | 一种报文处理的方法、报文设备和系统 | |
CN102474451A (zh) | 连接内层和外层mpls标签 | |
US10205661B1 (en) | Control messages for scalable satellite device clustering control in a campus network | |
CN103428067A (zh) | 一种基于二层虚拟专用网络的报文转发方法和设备 | |
CN101827023A (zh) | 一种数据处理方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |