MPLS VPN Option C 方式 试验及理解

来源:互联网 发布:最近的网络流行词 编辑:程序博客网 时间:2024/05/18 12:33

试验目的:

通过试验,进一步理解MPLS VPN 跨域路由传递与数据包转发原理

试验拓扑:


Option C 方式 私网路由只在PE间发送 ,ASBR-PE上不会有私网路由,那么用标签传递时数据包经过ASBR时至少有两层标签


拓扑说明:

PE1与PE2 建立MP-EBGP,PE1、ASBR-PE1,PE2、ASBR-PE2建立MP-IBGP,各AS内运行OSPF ,实现IGP互通。


1.在ASBR-PE 上宣告PE上的loopback地址用于建立BGP邻居

PE1与PE2建立MP-EBGP 时,使用彼此的loopback地址,分别为1.1.1.9、4.4.4.9 。这两个地址虽在各自的自治系统能互通,但不能传递到对方的自治系统,此时需要在bgp中宣告这两个地址,但不能在各自的PE上宣告(why?)因为此路由已在OSPF中学习到,该协议的优先级比BGP高,虽在PE上的BGP路由表中存在,但不会作为有效路由传递给其他邻居(华为模拟器是如此,能传递,但不是best,不能继续传递给相邻的AS),需要在同AS内的ASBR上宣告。

两种方式实现 Option C 

实现方式1

1 PE与ASBR-PE间建立IBGP邻居,给公网BGP路由打上标签(默认BGP路由不触发MPLS标签,需手动配置),这样数据包在离开PE路由器时有会打上三层标签(最外层是ldp分配的,中间层的公网和最里层的私网路由是MP-BGP分配),数据包到达ASBR-PE后实现外层BGP标签交换。

举例:PE1上配置 peer 2.2.2.9 label-route-capability 使PE能够接收ASBR-PE发送的带MPLS标签的路由。

peer label-route-capability命令用来使能处理标签路由能力,不然接收到带标签的bgp路由会丢弃(发送标签的前提是要手动给路由添加标签apply mpls-lable 再通过 peer export)。

缺省情况下,未使能处理标签路由能力。

如 

ASBR-PE1 配置:

bgp 100
 peer 1.1.1.9 as-number 100 
 peer 1.1.1.9 connect-interface LoopBack1
 peer 192.1.1.2 as-number 200 
 #


ospf 1 
 import-route bgp
 area 0.0.0.0 
  network 2.2.2.9 0.0.0.0 
  network 152.1.1.0 0.0.0.255 
  #
route-policy policy1 permit node 1 
 apply mpls-label
#
route-policy policy2 permit node 1 
 if-match mpls-label 
 apply mpls-label
 ipv4-family unicast
  undo synchronization
  network 1.1.1.9 255.255.255.255 
  peer 1.1.1.9 enable
  peer 1.1.1.9 route-policy policy2 export
  peer 1.1.1.9 next-hop-local 
  peer 1.1.1.9 label-route-capability
  peer 192.1.1.2 enable
  peer 192.1.1.2 route-policy policy1 export
  peer 192.1.1.2 label-route-capability
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 1.1.1.9 enable
#
return

PE1 配置:

bgp 100
 peer 2.2.2.9 as-number 100 
 peer 2.2.2.9 connect-interface LoopBack1
 peer 4.4.4.9 as-number 200 
 peer 4.4.4.9 ebgp-max-hop 255 
 peer 4.4.4.9 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.9 enable
  peer 2.2.2.9 next-hop-local 
  peer 2.2.2.9 label-route-capability
  peer 4.4.4.9 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 4.4.4.9 enable
 #
 ipv4-family vpn-instance vpn1 
  import-route direct
  peer 10.1.1.1 as-number 101 
  peer 10.1.1.1 ebgp-max-hop 2 

可以看到 PE1 上有到4.4.4.9的 lsp 路径,该路径通过BGP LSP建立


在ASBR-PE2上去掉 peer 4.4.4.9 route-policy policy2 export 命令,可以看到PE2上没有到1.1.1.9 的MPLS 路径。

ASBR-PE2 部分配置如下:

bgp 200
 peer 4.4.4.9 as-number 200 
 peer 4.4.4.9 connect-interface LoopBack1
 peer 192.1.1.1 as-number 100 
 #
 ipv4-family unicast
  undo synchronization
  network 4.4.4.9 255.255.255.255 
  peer 4.4.4.9 enable
  peer 4.4.4.9 next-hop-local 
  peer 4.4.4.9 label-route-capability 

  peer 192.1.1.1 enable
  peer 192.1.1.1 route-policy policy1 export
  peer 192.1.1.1 label-route-capability
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 4.4.4.9 enable




2.PE间邻居建立起来后即可交互私网路由,在PE1上查找bgp 路由表 发现 10.2.1.0的下一跳是4.4.4.9 。如是接着如何到达4.4.4.9(标签路径),发现走的是2.2.2.9(标签路径),需要保证两个公网下一跳的路由能通。




实现方式2 

在各自的AS内,直接将bgp 路由引入IGP (那么AS100中的P路由器会学到4.4.4.9的路由,在AS100中会建立一个从PE1、P、ASBR-PE1完整的MPLS LSP路径),全网互通(两个AS的IGP互通),ASBR-PE交换MPLS标签,此时从PE发出的数据包只带2层标签(相比方式1少一层标签)。不需要在PE与ASBR间建立MP-iBGP,交换IBGP路由

需要在ASBR-PE上配置 [ASBR-PE1-mpls]lsp-trigger bgp-label-route  使MPLS能够为BGP路由分配标签。

ASBR-PE1 配置如下:

ospf 1 
 import-route bgp
 area 0.0.0.0 
  network 2.2.2.9 0.0.0.0 
  network 152.1.1.0 0.0.0.255 
  network 172.1.1.0 0.0.0.0 
  network 172.1.1.0 0.0.0.255 
#
route-policy policy1 permit node 1 
 apply mpls-label
#
route-policy policy2 permit node 1 
 if-match mpls-label 
 apply mpls-label

bgp 100
 peer 192.1.1.2 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.9 255.255.255.255 
  peer 192.1.1.2 enable
  peer 192.1.1.2 route-policy policy1 export
  peer 192.1.1.2 label-route-capability
 # 
 ipv4-family vpnv4
  policy vpn-target

------------------------------------------

PE1 配置如下:

bgp 100
 peer 4.4.4.9 as-number 200 
 peer 4.4.4.9 ebgp-max-hop 255 
 peer 4.4.4.9 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  peer 4.4.4.9 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 4.4.4.9 enable
 #
 ipv4-family vpn-instance vpn1 
  import-route direct
  peer 10.1.1.1 as-number 101 
  peer 10.1.1.1 ebgp-max-hop 2