MPLS VPN隧道负载分担
隧道的定义及隧道策略
隧道提供了将一种协议的报文封装在另一种协议报文中,使报文能够在异种网络中传输,而异种报文传输的通道称为隧道。隧道是构建VPN不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个VPN节点。
当前,MPLS VPN支持使用如下几种隧道类型:
- LSP(Label Switched Path):指LDP LSP、BGP LSP或者静态LSP。
- CR-LSP(Constraint-based Routed Label Switched Path):指RSVP-TE CR-LSP,或者静态CR-LSP。与LSP相比,CR-LSP满足一定的约束条件,例如满足指定的带宽或路径。
GRE(Generic Routing Encapsulation):使用GRE协议封装原始数据报文,基于公共IP网络实现数据的透明传输。
通常,MPLS VPN使用LSP或CR-LSP作为公网隧道。但如果骨干网核心路由器(P路由器)只提供纯IP功能,不具备MPLS功能;而网络边缘的PE路由器具备MPLS功能,这样,就不能使用LSP或CR-LSP作为公网隧道。此时,可以使用GRE替代LSP作为MPLS VPN隧道。
至于VPN到底使用哪种隧道,则是通过隧道策略进行控制。缺省情况下,VPN选择LSP类型隧道进行数据转发,如果需要改变承载VPN业务的隧道类型或者配置VPN业务的隧道负载分担时,需要对VPN应用隧道策略,通过在隧道策略中通过tunnel select-seq命令指定对隧道的优选顺序和负载分担的条数。
隧道负载分担的选择规则
例如隧道策略下配置了如下命令后,
tunnel select-seq cr-lsp lsp load-balance-number 2
- 如果当前有2条或以上可用的CR-LSP时,则随机选取其中的2条。
- 如果当前可用的CR-LSP少于2条,则不足的隧道从LSP类型隧道中选取。
- 之前选满了2条隧道,其中有一条是CR-LSP,另一条是LSP。现在又新增一条CR-LSP,或者原来Down状态的CR-LSP变成Up状态,则重新选择该CR-LSP,不再使用LSP。
- 如果之前参与负载分担的隧道数目小于配置的负载分担条数,现在又新增了状态为Up的CR-LSP或LSP,则新增的这条隧道也参与负载分担。
- 如果之前参与负载分担的隧道的其中某条或某些隧道变为Down,则触发隧道策略重新选择,不足的隧道从LSP类型隧道中选取。
- 实际应用的隧道负载分担数目取决于符合要求的隧道数。例如,状态为Up的CR-LSP和LSP只有两条,则只在这两条隧道上进行负载分担。其他类型的隧道即使是Up状态也不会被选中。
LSP类型隧道的优选顺序
当指定VPN隧道策略只能使用LSP类型隧道时,有三种LSP类型的隧道可以作为候选隧道:LDP LSP、BGP LSP和静态LSP。这三种LSP类型隧道的优先级顺序为LDP LSP > BGP LSP > 静态LSP。
CR-LSP类型隧道的优选顺序
当指定VPN隧道策略只能使用CR-LSP类型隧道时,有两种CR-LSP类型的隧道可以作为候选隧道:RSVP-TE CR-LSP和静态CR-LSP,这两种CR-LSP的优先级顺序为RSVP-TE CR-LSP > 静态CR-LSP。
隧道负载分担与路由负载分担的区别
隧道负载分担不同于路由负载分担:
参与负载分担的路由必须是等价的;隧道负载分担无此要求。
如图8-18,假设图中的每个链路的路由开销相等。如果从PE1到PE2有2条路由参与负载分担,则这2条路由的开销要求相等,而参与负载分担的两条隧道的路由开销则可以不相等。
参与负载分担的路由必须是不同路径;参与路由负载分担的隧道可能经过同一路径。
如图8-19,如果从PE1到PE2有2条路由参与负载分担,则这2条路由必然经过不同路径;而如果是隧道负载分担,可以在PE1上创建两条隧道,且这两条隧道可以指定相同路径。
参与负载分担的路由必须是相同类型的;参与隧道负载分担的隧道可能是不同类型的。
例如,参与负载分担的2条路由,不能一条是静态路由,一条是OSPF路由;而参与负载分担的两条隧道中,可以一条是CR-LSP,另一条是LSP。