传统MPLS VPN和跨域MPLS VPN的区别
- 传统MPLS VPN
- 在一个AS内运行
- PE和PE之间建立一个AS号
- 在一个运营商网络运行
- 跨域MPLS VPN
- 在多个AS间运行
- 涉及到跨运营商
跨域MPLS VPN
为了支持不同AS之间的VPN路由信息交换,扩展现有的协议和修改MPLS VPN体系框架,提供新的互联模型——跨域(inter-as)的MPLS VPN,以便可以穿过AS间的链路来发布路由前缀和标签信息。
跨域MPLS VPN解决方案:RFC 4364
跨域VPN-OptionA方式:
- ASBR背靠背,彼此将对方当CE,创建VRF实例
- ASBR中间运行的是纯ip报文,不携带标签。因为互为CE剥离了标签转发
- 路由发布:
- 数据通过CE1发送到PE1,PE1打上RD、RT和外层标签转发到ASBR1,ASBR1和ASBR2将对方互为CE并且将接口划分到VRF,ASBR1将标签和RD、RT剥离发送纯IP报文给ASBR2,ASBR2打上RD、RT和外层标签再逐步转发到CE2。
- 数据转发:
- 优点:简单实用,因为ASBR之间不需要运行MPLS,所以不用扩展协议和做特殊的配置,属于天然支持
- 缺点:扩展性差,ASBR需要为每个VPN创建一个VPN实例,需要管理和维护所有VPN路由,如果VPN数量众多,将导致ASBR的VPNv4路由表空间过于庞大,资源开销大。如果跨多个域,配置的工作量很大,扩展性太差。
OptionA方式配置案例:(全局配置,不分配置顺序)
sysname r1
interface GigabitEthernet0/0/0
ip address 12.0.0.1 255.255.255.0
interface LoopBack2
ip address 172.16.2.1 255.255.255.255
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 12.0.0.0 0.0.0.255
network 172.16.2.1 0.0.0.0
sysname r8
interface GigabitEthernet0/0/0
ip address 78.0.0.8 255.255.255.0
interface LoopBack1
ip address 172.16.8.1 255.255.255.255
ospf 1 router-id 8.8.8.8
area 0.0.0.0
network 78.0.0.0 0.0.0.255
network 172.16.8.1 0.0.0.0
sysname r2
ip vpn-instance A
ipv4-family
route-distinguisher 234:1
vpn-target 234:1 export-extcommunity
vpn-target 234:1 import-extcommunity
mpls lsr-id 2.2.2.2
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip binding vpn-instance A
ip address 12.0.0.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 23.0.0.2 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/2
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
bgp 234
router-id 2.2.2.2
peer 4.4.4.4 as-number 234
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 4.4.4.4 enable
ipv4-family vpnv4
policy vpn-target
peer 4.4.4.4 enable
ipv4-family vpn-instance A
import-route ospf 1
ospf 1 router-id 2.2.2.2 vpn-instance A
import-route bgp
area 0.0.0.0
network 12.0.0.0 0.0.0.255
ospf 234 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.0.0.0 0.0.0.255
sysname r3
mpls lsr-id 3.3.3.3
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip address 23.0.0.3 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/1
ip address 34.0.0.3 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/2
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
ospf 234 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.0.0.0 0.0.0.255
network 34.0.0.0 0.0.0.255
sysname r4
vpn-instance A
ipv4-family
route-distinguisher 234:1
vpn-target 234:1 export-extcommunity
vpn-target 234:1 import-extcommunity
mpls lsr-id 4.4.4.4
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip address 34.0.0.4 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/1
ip binding vpn-instance A
ip address 45.0.0.4 255.255.255.0 # 配置用于optionA的接口IP,并将它绑定VRF
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
bgp 234
router-id 4.4.4.4
peer 2.2.2.2 as-number 234
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
ipv4-family vpnv4
policy vpn-target
peer 2.2.2.2 enable
ipv4-family vpn-instance A
peer 45.0.0.5 as-number 567 # 将对端邻居ip用于配置vpn实例邻居,完成optionA
ospf 234 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.0.0.0 0.0.0.255
sysname r5
ip vpn-instance B
ipv4-family
route-distinguisher 567:1
vpn-target 567:1 export-extcommunity
vpn-target 567:1 import-extcommunity
mpls lsr-id 5.5.5.5
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip address 56.0.0.5 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/1
ip binding vpn-instance B
ip address 45.0.0.5 255.255.255.0
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
bgp 567
router-id 5.5.5.5
peer 7.7.7.7 as-number 567
peer 7.7.7.7 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 7.7.7.7 enable
ipv4-family vpnv4
policy vpn-target
peer 7.7.7.7 enable
ipv4-family vpn-instance B
peer 45.0.0.4 as-number 234 # 参考R4做法
ospf 567 router-id 5.5.5.5
area 0.0.0.0
network 5.5.5.5 0.0.0.0
network 56.0.0.0 0.0.0.255
sysname r6
mpls lsr-id 6.6.6.6
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip address 67.0.0.6 255.255.255.0
mpls
mpls ldp
interface GigabitEthernet0/0/1
ip address 56.0.0.6 255.255.255.0
mpls
mpls ldp
interface LoopBack0
ip address 6.6.6.6 255.255.255.255
ospf 567 router-id 6.6.6.6
area 0.0.0.0
network 6.6.6.6 0.0.0.0
network 56.0.0.0 0.0.0.255
network 67.0.0.0 0.0.0.255
sysname r7
ip vpn-instance B
ipv4-family
route-distinguisher 567:1
vpn-target 567:1 export-extcommunity
vpn-target 567:1 import-extcommunity
mpls lsr-id 7.7.7.7
mpls
mpls ldp
interface GigabitEthernet0/0/0
ip binding vpn-instance B
ip address 78.0.0.7 255.255.255.0
interface GigabitEthernet0/0/1
ip address 67.0.0.7 255.255.255.0
mpls
mpls ldp
interface LoopBack0
ip address 7.7.7.7 255.255.255.255
bgp 567
router-id 7.7.7.7
peer 5.5.5.5 as-number 567
peer 5.5.5.5 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 5.5.5.5 enable
ipv4-family vpnv4
policy vpn-target
peer 5.5.5.5 enable
ipv4-family vpn-instance B
import-route ospf 1
ospf 1 router-id 7.7.7.7 vpn-instance B
import-route bgp
area 0.0.0.0
network 78.0.0.0 0.0.0.255
ospf 567 router-id 7.7.7.7
area 0.0.0.0
network 7.7.7.7 0.0.0.0
network 67.0.0.0 0.0.0.255
跨域VPN-OptionB方式:单跳MP-eBGP方案
- ASBR间通过MP-EBGP交换VPN-IPv4路由
- 路由发布:
- 数据转发:
- 优点:不需要在ASBR上为每个VPN创建VPN实例,不需要跨域扩展协议,容易管理和配置
- 缺点:VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多的时候,ASBR负担很重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。
- 配置命令:
- int g x/x/x
- mpls
- 接口启用mpls 但不启用ldp
- mpls
- bgp *
- peer * as-number *
- ipv4-family vpnv4
- peer * enable
- 和对端ASBR建立MP-EBGP关系
- undo policy vpn-target
- 关闭rt过滤检测
- peer * enable
- 其他配置命令和optionA没什么区别,有区别的就是optionA将两边ASBR当作CE,而optionB则是配置为bgp对等体,但不配置RT。
- 不再需要将ASBR之间配置VPN实例和接口绑定
- PS:方法需要两边AS环境配置的RT值一致,如果不一致,则需要在ASBR处通过路由策略修改扩展团体属性为本AS内PE所设置的RT值,否则路由无法引入。
- int g x/x/x
- 可选配置:由于undo policy vpn-target关闭了RT的过滤检测,ASBR会接收所有的VPNv4的路由信息,ASBR负担会很重,有两种可选的过滤方式可以减轻ASBR的负担
- 使用策略控制VPN路由收发:
- 配置命令过长 下面是华为官方文档的配置方法,在BGP vpnv4视图下对对端ASBR应用策略匹配,只接收哪些RD、RT
- ASBR按下一跳分标签:
- 和使用策略控制VPN路由收发一样,都是适用于optionB,该方法对相同下一跳的路由信息分配标签,节省ASBR资源
- bgp *
- ipv4-family vpnv4
- apply-label per-nexthop
- 进入bgp-vpnv4视图,开启按下一跳为vpnv4路由分标签
- 使用策略控制VPN路由收发:
跨域VPN-OptionC方式:多跳Multi-Hop EBGP方案
- ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由
- 配置方式麻烦 可看华为官方文档
- 路由发布:
- CE1将路由发布给PE1,PE1是和PE3直接通信的,不依靠ASBR,ASBR做转发
- PE1为这条路由打上最内层的私网标签L3,ASBR1为PE1的1.1.1.1地址打上L9标签表示去往1.1.1.1需要带上L9标签转发。保证1.1.1.1可达
- ASBR2收到标签后将目的1.1.1.1的L9换成L10标签表示去往1.1.1.1需要带上L10标签,最后发送到PE3
- 最后PE3去往10.1.1.1的标签有最里层的L3、L10/L9(由ASBR转换)、外网标签。
- 数据转发:
- 数据转发过程会有三层标签
- CE2去往10.1.1.1/24路由,PE3打上最里层的L3私网标签(10.1.1.1的标签)、L10(1.1.1.1的标签)、Lx(外网标签,去往ASBR2,同AS找路)
- P设备收到后剥离Lx外网标签打上标签3隐式空标签代表弹出
- ASBR2收到标签后将L10换成L9标签发送给ASBR1
- ASBR1根据收到的标签将L9剥离并打上外层标签发送给P设备
- P设备收到后剥离Lx外网标签打上标签3隐式空标签代表弹出发送给PE1
- PE1收到后将L3剥离并根据IP信息发送给VPN实例的CE1完成转发
- 优点:这种方案是最容易被接受的,因为它符合MPLS VPN的体系结构的要求,只有PE知道VPN路由信息,而P路由器只负责报文转发。这样就使得中间域的设备可以不支持MPLS VPN业务。尤其是跨越多个域时优势更加明显,而且这个方案支持负载分担等功能
- 缺点:要对BGP做扩展(利用BGP的一个新特性(RFC3107),这个特性可以让BGP传递公网路由的时候携带标签),而且隧道的生成也是由别于普通MPLS VPN结构,因此维护和理解起来难度比较大,不适合用于企业网络的环境
方案之间的比较和优势:
OptionB比较首选
作者:Zleoco,如若转载,请注明出处:https://www.zleoco.com/?p=2647