配置BGP AS号替换
应用环境
VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。由于EBGP使用AS号检测路由环路,如果PE和CE之间运行EBGP,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。实现方法是在PE上配置BGP的AS号替换功能。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_Path中有与CE相同的AS号,将被替换成PE的AS号后再发布。对于对等体组,处理规则一样。
配置思路
骨干网上运行IGP协议实现PE之间的互通,并能互相学到对方的Loopback地址。
PE之间要建立MPLS LDP LSP;PE上还要创建VPN实例,接入CE。
PE和CE之间建立EBGP关系,将CE路由引入到PE中。
在PE上配置BGP的AS号替换功能。
配置注意事项
对于CE连接到多个PE的情况(Multi-homed CE),单独使用BGP的AS号替换功能将可能导致路由环路,需要配合SOO(Site-of-Origin)特性一起使用。
配置实例
如下图,CE1和CE2属于同一个VPN,分别接入PE1和PE2。CE1和CE2复用AS号600。要求实现CE1和CE2互通。
BGP AS号替换组网示意图
适用产品和版本
采用NE系列路由器,版本为(VRP5.30)及后续版本。
说明
P路由器推荐采用NE5000E、NE80E、NE40E。
PE路由器推荐采用NE80E、NE40E、NE80、NE40、NE20E、NE20、NE16E或NE08E。
CE路由器推荐采用NE80、NE40、NE20E、NE20、NE16E、NE08E或NE05。
配置步骤
步骤 1 配置基本BGP/MPLS IP VPN
包括以下配置:
在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
PE之间建立MP-IBGP对等体关系,发布VPN-IPv4路由;
在PE2上配置VPN1的VPN实例,接入CE2;
在PE1上配置VPN1的VPN实例,接入CE1;
PE1和CE1、PE2和CE2之间配置BGP,将CE的路由引入PE。
完成上述配置后,在CE2上执行display ip routing-table命令,可以看到CE2能够学到CE1接入PE1的接口所在网段(10.1.1.0/24)的路由,但没有到达CE1内部VPN(100.1.1.0/24)的路由。CE1上也存在同样的现象。
[CE2] display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Pos1/0/0
10.1.1.1/32 BGP 255 0 10.2.1.2 Pos1/0/0
10.2.1.0/24 Direct 0 0 10.2.1.1 Pos1/0/0
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.2.1.2/32 Direct 0 0 10.2.1.2 Pos1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.0/24 Direct 0 0 200.1.1.1 InLoopBack0
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
在PE上执行display ip routing-table vpn-instance命令,可以看到PE的VPN实例中有到达对端CE内部VPN的路由。
以PE2的显示为例:
[PE2] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 1.1.1.9 NULL0
10.1.1.1/32 BGP 255 0 1.1.1.9 NULL0
10.2.1.0/24 Direct 0 0 10.2.1.2 Pos1/0/0
10.2.1.1/32 Direct 0 0 10.2.1.1 Pos1/0/0
10.2.1.2/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.1.1/32 BGP 255 0 1.1.1.9 NULL0
200.1.1.1/32 BGP 255 0 10.2.1.1 Pos1/0/0
在PE2上打开BGP的Update报文调试信息开关,可以看到PE2发布了去往100.1.1.1/32的路由,AS路径信息为“100 600”。
<PE2> terminal monitor
<PE2> terminal debugging
<PE2> debugging bgp update vpn-instance vpn1 peer 10.2.1.1 verbose
<PE2> refresh bgp vpn-instance vpn1 all export
*0.4402392 PE2 RM/7/RMDEBUG:
BGP.vpn1: Send UPDATE to 10.2.1.1 for following destinations :
Origin : Incomplete
AS Path : 100 600
Next Hop : 10.2.1.2
100.1.1.1/32,
在CE2上执行display bgp routing-table peer received-routes命令,可以看到CE2没有接收100.1.1.1/32的路由。
[CE2] display bgp routing-table peer 10.2.1.2 received-routes
Total Number of Routes: 4
BGP Local router ID is 10.2.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 10.2.1.2 0 100?
*> 10.1.1.1/32 10.2.1.2 0 100?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
步骤 2 配置BGP的AS号替换功能
在PE上配置BGP的AS号替换功能。
# 以PE2上的配置为例。
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 substitute-as
可以看到PE2向CE2发布的路由中,100.1.1.1/32的AS路径信息由“100 600”变为“100 100”:
*0.13498737 PE2 RM/7/RMDEBUG:
BGP.vpn1: Send UPDATE to 10.2.1.1 for following destinations :
Origin : Incomplete
AS Path : 100 100
Next Hop : 10.2.1.2
100.1.1.1/32,
再次查看CE2接收的路由信息和路由表:
[CE2] display bgp routing-table peer 10.2.1.2 received-routes
Total Number of Routes: 5
BGP Local router ID is 10.2.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 10.2.1.2 0 100?
*> 10.1.1.1/32 10.2.1.2 0 100?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
*> 100.1.1.1/32 10.2.1.2 0 100 100?
[CE2] display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Pos1/0/0
10.1.1.1/32 BGP 255 0 10.2.1.2 Pos1/0/0
10.2.1.0/24 Direct 0 0 10.2.1.1 Pos1/0/0
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.2.1.2/32 Direct 0 0 10.2.1.2 Pos1/0/0
100.1.1.1/32 BGP 255 0 10.2.1.2 Pos1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
在PE1上也配置BGP的AS号替换功能后,CE1和CE2的GigabitEthernet接口能够相互Ping通。
[CE1] ping –a 100.1.1.1 200.1.1.1
PING 200.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 200.1.1.1: bytes=56 Sequence=1 ttl=253 time=109 ms
Reply from 200.1.1.1: bytes=56 Sequence=2 ttl=253 time=67 ms
Reply from 200.1.1.1: bytes=56 Sequence=3 ttl=253 time=66 ms
Reply from 200.1.1.1: bytes=56 Sequence=4 ttl=253 time=85 ms
Reply from 200.1.1.1: bytes=56 Sequence=5 ttl=253 time=70 ms
--- 200.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 66/79/109 ms





