设为首页收藏本站language 语言切换
查看: 3175|回复: 7
收起左侧

[原创] MPLS VPN 跨域方式 Option C 中的一个问题

[复制链接]
发表于 2015-2-25 17:52:16 | 显示全部楼层 |阅读模式
请教各位一个 MPLS VPN 中 Optionc 的问题 cisco 配置)因为上传不了图  就用手画一下拓扑图:
CE1----------------PE1--------------ASBR1-------------ASBR2-----------------PE2------------CE2
               环回口:3.3.3.3/32                                                 环回口:6.6.6.6/32
Option c 的跨域方式是在 PE1和 PE2之间建立 MP-BGP 的 VPN 邻居关系,以此来发布 VPNV4的私网路由标签.
大概的部署过程大致分为以下几部分:
1.在 PE1和 ASBR1区域,部署 MPLS IP, 通过 LDP 分发标签并且建立 LSP, 逐跳.
   在 PE2和 ASBR2区域,部署 MPLS IP, 通过 LDP 分发标签并且建立 LSP, 逐跳.      这也就是3层标签中最外层标签
2.在 PE1和 ASBR1,ASBR1和 ASBR2,ASBR2和 PE2之间,分别建立正常的 IBGP,EBGP,IBGP 邻居.
   在 PE1,ASBR1,ASBR2,PE2上都配置 send-label,以及 activate.
   在 ASBR1和 ASBR2上,分别将 PE1和 PE2的环回口路由 network 出去,通过这样,就可以把两个 PE 的环回口路由打上 IPV4的标签,也就是第二层标签
   标红的就是我的疑问,后面详细讲述
3.通过第二步,PE1和 PE2之间的环回口以及可以互通,于是在 PE1和 PE2之间建立正常 EBGP 邻居,指定 update 以及多跳.
   然后在 address famliy  vpn 中,互指 VPN邻居,以此来分配私网标签以及私网路由.也就是第三层标签
4.最后数据通信的时候,最内层是 VPNV4的标签,也就是私网路由的标签
                                中间一层是 IPV4的标签,也就是指导如何去往对端 PE 的 标签
                                 最外层是 LSP 的标签,也就是域内通过 LDP 分发的逐跳标签.
现在来说说我的问题上面标红部分)
在两个 ASBR 上通告 PE 的环回口路由,是打二层标签的前提,那么理想情况应该是:
ASBR2将 PE2的环回口路由6.6.6.6/32进行通告,发布给 ASBR1,再发布给 PE1,这也是 PE1和 PE2能够建立 EBGP 邻居的前提
那么问题来了:在 ASBR2上做 network 的时候,除了会发布给 ASBR1,还会发布给 PE2,而且上面第三步中,PE2和 PE1是建立了 EBGP 邻居关系的,那么 PE2也会把这条6.6.6.6/32的路由发布给 PE1,导致 PE1会学到两个来源的6.6.6.6/32,一个是 ASBR1的(IBGP),一个是 PE2的(EBGP),根据 AD 值,会选 PE2的,在 PE1的BGP 路由表里出现:6.6.6.6/32 --> next-hop:6.6.6.6, 这时候因为 PE1不选择从 ASBR1学到的路由会导致 PE1和 PE2之间的 EBGP 出现路由不可达,最终断开,断开后,又会重新收敛,先学习从 ASBR1学到的6.6.6.6/32,等到收到 PE2发布过来的同样路由的时候,又会选择 PE2,之后路由不可达....所以出现 EBGP 邻居在翻滚
以下是翻滚的信息:
R3(config-router-af)#
*Mar  1 03:56:30.055: %BGP-5-ADJCHANGE: neighbor 6.6.6.6 Up
R3(config-router-af)#
*Mar  1 03:59:30.867: %BGP-5-ADJCHANGE: neighbor 6.6.6.6 Down BGP Notification sent
R3(config-router-af)#
*Mar  1 03:59:30.867: %BGP-3-NOTIFICATION: sent to neighbor 6.6.6.6 4/0 (hold time expired) 0 bytes
R3(config-router-af)#
*Mar  1 04:00:05.535: %BGP-5-ADJCHANGE: neighbor 6.6.6.6 Up
R3(config-router-af)#
*Mar  1 04:03:06.054: %BGP-5-ADJCHANGE: neighbor 6.6.6.6 Down BGP Notification sent
R3(config-router-af)#




我在网上已经查过很多 MPLS VPN option c 的案例配置,里面都没有特别说明怎么解决这个问题,请各位朋友相互讨论交流一下.
7F7D51E6-2816-4521-8D70-C9535AD77D9E.png
发表于 2015-2-25 18:21:56 | 显示全部楼层
你为啥不把2个ASBR当RR,如果用它来反射ipv4d bgp路由,按理说就不会收到2个来源了吧~
沙发 2015-2-25 18:21:56 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2015-2-25 18:37:00 | 显示全部楼层
option c,我觉得有2种配置方法:
1,ASBR之间是ipv4 bgp+send label;
2,ASBR之间是IGP+LDP
两种方法的目的是一样的,就是为了打通LSP通道。

对于第一种方法,你应该用ASBR当RR,在PE和ASBR之间建立MP-IBGP邻居,ASBR之间建立MP-EBGP邻居
并且2台ASBR之间建立EBGP邻居并send-label,对对端RR(ASBR)通告本端的2台路由器的lo0
然后通过BGP和IGP(比如在2台ASBR之间建立OSPF)的重分布,完成对方地址的学习。

对于第二种方法,之前PE和ASBR建立MP-IBGP邻居,ASBR当RR和对端ASBR建MP-EBGP邻居这些都不变。
然后2台ASBR之间还是需要建立IPv4的EBGP邻居。
接着你应该在2台ASBR互联的接口下敲以下命令:
mpls ldp discovery transport-address interface
mpls ip
接着写静态路由对端PE的lo0口,并且重分布直连和静态路由进IGP。

呃,说的有点乱。不管怎样就一个条件,只要能打通LSP,就可以传递路由。按照你的说法,一个是EBGP邻居,一个是RR来的MP-EBGP邻居,按理说不冲突。
板凳 2015-2-25 18:37:00 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 23:42:00 | 显示全部楼层
非常感谢你的回复.
其实把 ASBR 作为 RR ,就是为了当 BGP 邻居太多的时候, RR 作为控制层面传递路由,而真实流量并不通过 RR, 通过 RR 这方式,也是可以实现路由的发布的.这个我也是赞同的.
但是即使是将 ASBR 作为 RR, 还是会有我帖子里的问题.是这样的:
PE2的6.6.6.6/32 我们肯定是在 ASBR2上通告给 ASBR1,同时 ASBR1作为 RR 反射给 PE1.
同时,在 PE1和 PE2之间也会建立正常 EBGP 邻居以及 VPN 邻居,那么 PE2也会通过这个 EBGP 邻居将6.6.6.6/32发布给 PE1
最终 PE1会收到两条6.6.6.6/32的路由,一条是 ASBR1发的,一条是 PE2发的.因为 ASBR1是 IGBP 所以应该选择 PE2,这样会导致 PE1和 PE2的 EBGP 邻居断开.
所以虽然你说可以使用 ASBR 作为 RR, 这个也是没错的,但是一样会出现 EBGP 邻居翻滚的问题的.
我在网上的搜索中看到很多 OPTION C 的案例,大部分的案例里都没有提到这个问题
地板 2015-2-25 23:42:00 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 23:43:45 | 显示全部楼层
vaio 发表于 2015-2-25 18:37
option c,我觉得有2种配置方法:
1,ASBR之间是ipv4 bgp+send label;
2,ASBR之间是IGP+LDP

非常感谢你的回复.
其实把 ASBR 作为 RR ,就是为了当 BGP 邻居太多的时候, RR 作为控制层面传递路由,而真实流量并不通过 RR, 通过 RR 这方式,也是可以实现路由的发布的.这个我也是赞同的.
但是即使是将 ASBR 作为 RR, 还是会有我帖子里的问题.是这样的:
PE2的6.6.6.6/32 我们肯定是在 ASBR2上通告给 ASBR1,同时 ASBR1作为 RR 反射给 PE1.
同时,在 PE1和 PE2之间也会建立正常 EBGP 邻居以及 VPN 邻居,那么 PE2也会通过这个 EBGP 邻居将6.6.6.6/32发布给 PE1
最终 PE1会收到两条6.6.6.6/32的路由,一条是 ASBR1发的,一条是 PE2发的.因为 ASBR1是 IGBP 所以应该选择 PE2,这样会导致 PE1和 PE2的 EBGP 邻居断开.
所以虽然你说可以使用 ASBR 作为 RR, 这个也是没错的,但是一样会出现 EBGP 邻居翻滚的问题的.
我在网上的搜索中看到很多 OPTION C 的案例,大部分的案例里都没有提到这个问题
5# 2015-2-25 23:43:45 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2015-2-26 01:07:42 | 显示全部楼层
zlw10100 发表于 2015-2-25 23:43
非常感谢你的回复.
其实把 ASBR 作为 RR ,就是为了当 BGP 邻居太多的时候, RR 作为控制层面传递路由,而 ...

如果没理解错的话,一个是PE和RR是用MP-IBGP建立邻居,而ASBR和ASBR之间是用EBGP建立邻居,然后重分布进自己AS内的IGP,哪里会存在路由翻转问题?
我的环境如下:
R1 - R2 - R3   ----  R4 - R5 - R6
PE - RR - ASBR -- ASBR- RR- PE

然后我贴2个路由表给你看一下
R4#sh ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
B        11.1.1.1 [20/3] via 34.1.1.3, 00:01:42
      22.0.0.0/32 is subnetted, 1 subnets
B        22.1.1.1 [20/2] via 34.1.1.3, 00:01:42
      34.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C        34.1.1.0/24 is directly connected, FastEthernet0/0
C        34.1.1.3/32 is directly connected, FastEthernet0/0
L        34.1.1.4/32 is directly connected, FastEthernet0/0
      44.0.0.0/32 is subnetted, 1 subnets
C        44.1.1.1 is directly connected, Loopback0
      45.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        45.1.1.0/24 is directly connected, FastEthernet1/0
L        45.1.1.4/32 is directly connected, FastEthernet1/0
      55.0.0.0/32 is subnetted, 1 subnets
O        55.1.1.1 [110/2] via 45.1.1.5, 00:02:14, FastEthernet1/0
      56.0.0.0/24 is subnetted, 1 subnets
O        56.1.1.0 [110/2] via 45.1.1.5, 00:02:14, FastEthernet1/0
      66.0.0.0/32 is subnetted, 1 subnets
O        66.1.1.1 [110/3] via 45.1.1.5, 00:02:14, FastEthernet1/0
R4#

R6#sh ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
O E2     11.1.1.1 [110/1] via 56.1.1.5, 00:01:42, FastEthernet0/0
      22.0.0.0/32 is subnetted, 1 subnets
O E2     22.1.1.1 [110/1] via 56.1.1.5, 00:01:42, FastEthernet0/0
      44.0.0.0/32 is subnetted, 1 subnets
O        44.1.1.1 [110/3] via 56.1.1.5, 00:02:13, FastEthernet0/0
      45.0.0.0/24 is subnetted, 1 subnets
O        45.1.1.0 [110/2] via 56.1.1.5, 00:02:23, FastEthernet0/0
      55.0.0.0/32 is subnetted, 1 subnets
O        55.1.1.1 [110/2] via 56.1.1.5, 00:02:23, FastEthernet0/0
      56.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        56.1.1.0/24 is directly connected, FastEthernet0/0
L        56.1.1.6/32 is directly connected, FastEthernet0/0
      66.0.0.0/32 is subnetted, 1 subnets
C        66.1.1.1 is directly connected, Loopback0
R6#

R6#sh ip bgp vpnv4 all
BGP table version is 8, local router ID is 66.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 100:1
*>i1.1.1.1/32       11.1.1.1                 0    100      0 100 i
Route Distinguisher: 200:1 (default for vrf B)
*>i1.1.1.1/32       11.1.1.1                 0    100      0 100 i
*> 6.6.6.6/32       0.0.0.0                  0         32768 i
R6#


R6#trace vrf B 1.1.1.1

Type escape sequence to abort.
Tracing the route to 1.1.1.1

  1 56.1.1.5 [MPLS: Labels 18/21 Exp 0] 116 msec 80 msec 76 msec
  2 45.1.1.4 [MPLS: Labels 20/21 Exp 0] 72 msec 72 msec 96 msec
  3 34.1.1.3 [MPLS: Labels 20/21 Exp 0] 92 msec 76 msec 72 msec
  4 23.1.1.2 [MPLS: Labels 16/21 Exp 0] 96 msec 76 msec 56 msec
  5 1.1.1.1 100 msec 72 msec 96 msec
R6#


我想这就是典型的,你要的option C的模型吧。保持内层标签不变。
6# 2015-2-26 01:07:42 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-26 08:43:11 | 显示全部楼层
vaio 发表于 2015-2-26 01:07
如果没理解错的话,一个是PE和RR是用MP-IBGP建立邻居,而ASBR和ASBR之间是用EBGP建立邻居,然后重分布进 ...

感谢你的讨论. 今天我找到了昨天让我有这个问题疑问的帖子.里面写的挺好的.
http://blog.sina.com.cn/s/blog_66ee34150100ykkl.html
7# 2015-2-26 08:43:11 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2016-1-21 00:16:47 | 显示全部楼层
把两个pe之间的ipv4路由更新disable掉这个问题是不是会得到解决呢
8# 2016-1-21 00:16:47 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-10 10:55 , Processed in 0.062414 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表