P3_BGP_不同地址族下的RR
结论
在BGP的IPV4 Unicast做RR非常简单,不用考虑RT,最关键的是并不需要MPLS的加持,做完IGP和BGP之后,客户机就直接通过BGP-UPDATE报文向着RR发送IPV4的路由信息了,其它的客户机也能顺利的收到路由信息。
而在VPNV4 Unicast的当中,事情就没有这么简单了,不但需要MPLS的加持(至于为什么需要MPLS的加持,可以参考我另一篇博客https://www.cnblogs.com/yizhangheka/p/17589616.html),而且还得考虑做反射器的位置和RT,在做VPNV4的反射器时,一定要尤为注意这两点,否则VPNV4的RR不会成功。
IPV4 UNICAST
就这么简单的拓扑图,目的是AR1上的路由信息,传递给RR,即AR2,然后通过AR2再反射到AR3,让AR1和AR3能相互通信。
IGP_ISIS基础配置
# AR1的基础配置
sys
sysn AR1
int l0
ip add 10.0.1.1 32
int g0/0/0
ip add 10.0.12.1 24
isis 1
is-level level-2
network-enti 49.0001.0010.0001.00
int g0/0/0
isis en 1
int l0
isis en 1
quit
# AR2的基础配置
sys
sysn AR2
int l0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.12.2 24
int g0/0/1
ip add 10.0.23.2 24
isis 1
is-level level-2
network-enti 49.0001.0020.0002.00
int g0/0/0
isis en 1
int g0/0/1
isis en 1
int l0
isis en 1
quit
# AR3的基础配置
sys
sysn AR3
int l0
ip add 10.0.3.3 32
int g0/0/0
ip add 10.0.23.3 24
isis 1
is-level level-2
network-enti 49.0001.0030.0003.00
int g0/0/0
isis en 1
int l0
isis en 1
quit
BGP的基础配置
# AR1
bgp 100
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack0
# AR2
bgp 100
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack0
# AR3
bgp 100
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack0
RR相关配置
打算让AR2当RR,然后在AR1的BGP进程当中宣告一个网段,看AR3是否能收到,能收到说明反射器生效了,实验成功;
# AR1
interface LoopBack11
ip address 11.11.11.11 255.255.255.255
bgp 100
network 11.11.11.11 32
# AR2
bgp 100
peer 10.0.1.1 reflect-client
peer 10.0.3.3 reflect-client
# AR3收到了,说明反射器生效了
[AR3]dis bgp routing-table
*>i 11.11.11.11/32 10.0.1.1 0 100 0 i
# 通信成功
[AR3-bgp]ping 11.11.11.11
PING 11.11.11.11: 56 data bytes, press CTRL_C to break
Reply from 11.11.11.11: bytes=56 Sequence=1 ttl=254 time=40 ms
Reply from 11.11.11.11: bytes=56 Sequence=2 ttl=254 time=40 ms
Reply from 11.11.11.11: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 11.11.11.11: bytes=56 Sequence=4 ttl=254 time=20 ms
Reply from 11.11.11.11: bytes=56 Sequence=5 ttl=254 time=30 ms
IPV4 VPNV4
还是这个拓扑,目的是让AR1的VPNV4路由传给AR2,即RR,然后反射给AR3,让AR1和AR3之间的能够通过VPNV4路由信息进行相互通信。
MPLS
基础的ISIS配置如上一个章节,我们这一章再ISIS的基础再加上MPLS和MP-BGP,到底为什么加MP-BGP,是因为需要MP-BGP运载VPNV4路由,而运载需要的MP-BGP UDPATE报文需要MPLS LSP路径来触发,所以MPLS也必须得做上;
# AR1
mpls lsr-id 10.0.1.1
mpls
mpls ldp
int g0/0/0
mpls
mpls ldp
quit
# AR2
mpls lsr-id 10.0.2.2
mpls
mpls ldp
int g0/0/0
mpls
mpls ldp
int g0/0/1
mpls
mpls ldp
quit
# AR3
mpls lsr-id 10.0.3.3
mpls
mpls ldp
int g0/0/0
mpls
mpls ldp
quit
MP-BGP
AR1的配置
# AR1
ip vpn-instance OA
route-dist 1:1
vpn-target 1:1
interface LoopBack2
ip binding vpn-instance OA
ip address 111.111.111.111 255.255.255.255
ospf 1 vpn-instance OA router-id 10.0.1.1
a 0
network 111.111.111.111 0.0.0.0
bgp 100
undo default ipv4-unicast
peer 10.0.2.2 as 100
peer 10.0.2.2 connect-interface LoopBack 0
ipv4-fa vpnv4
peer 10.0.2.2 enable
ipv4-fa vpn-instance OA
import ospf 1
在AR1上已经产生了VPNV4的路由条目,如下所示:
AR3的配置
AR3只做为VPNV4路由的接受端,配置如下所示:
# AR1
ip vpn-instance OA
route-dist 3:3
vpn-target 1:1
int l33
ip bind vpn OA
ip add 33.33.33.33 32
ospf 1 vpn-instance OA
a 0
network 33.33.33.33 0.0.0.0
bgp 100
undo default ipv4-unicast
peer 10.0.2.2 as 100
peer 10.0.2.2 connect-interface LoopBack 0
ipv4-fa vpnv4
peer 10.0.2.2 enable
quit
ipv4-fa instance OA
import ospf 1
quit
AR2的配置
bgp 100
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 10.0.1.1 enable
**peer 10.0.1.1 reflect-client**
peer 10.0.3.3 enable
**peer 10.0.3.3 reflect-client**
#
ipv4-family vpnv4
**policy vpn-target**
peer 10.0.1.1 enable
peer 10.0.3.3 enable
问题出现
我们会发现反射器AR2都没有AR1和AR3上的VPNV4路由,本身都没有,那又如何进行反射呢?AR1和AR3相互没有对方的VPNV4路由!问题出在哪里呢?你想一下,我们是将VPNV4路由交给了反射器AR2,抓包看一下肯定是有MP-BGP的UPDATE报文的,但是注意呀,AR1和AR3交给AR2的是VPNV4路由,面不是普通的路由条目,可是你看在AR2的上配置,反射器并没有配置在VPNV4地址族内!而是配置到了ipv4-family unicast地址族当中了,所以第一个改进是把反射器配置在VPNV4的地址族内。
另外还有一点,MP-BGP UPDATE报文当中是携带的RT的,而AR2本身都没有VN,更没有设置RT,所以AR2在收到AR1或AR3发送给它的MP-BGP UPDATGE报文时,并不会接收它的路由条目,原因就是因为RT对不上!所以第二个改进就是我们希望AR2本身不再核心RT,就直接转发就可以了,所以还要VPNV4的地址族内把undo policy vpn-target敲上,改进后的配置如下如下。
AR2的正常配置
AR2做为RR反射端配置十分重要,如下所示:
bgp 100
undo default ipv4-unicast
peer 10.0.1.1 as 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.3.3 as 100
peer 10.0.3.3 connect-interface LoopBack 0
ipv4-fa vpnv4
**undo policy vpn-target**
peer 10.0.1.1 enable
peer 10.0.1.1 reflect-client
peer 10.0.3.3 enable
peer 10.0.3.3 reflect-client
quit
搞完之后,由于不再匹配RT,反射器也配置对了地方,AR1和AR3都能相互接收到对方的VPNV4路由了,如下所示:
<AR3>dis bgp vpnv4 all routing-table
*> 33.33.33.33/32 0.0.0.0 0 0 ?
*>i 44.44.44.44/32 10.0.1.1 0 100 0 ?
*>i 111.111.111.111/32 10.0.1.1 0 100 0 ?
[AR1-ospf-1-area-0.0.0.0]dis bgp vpnv4 all routing-table
*>i 33.33.33.33/32 10.0.3.3 0 100 0 ?
*> 44.44.44.44/32 0.0.0.0 0 0 ?
*> 111.111.111.111/32 0.0.0.0 0 0 ?