BGP & MP-BGP & VRF

BGP & MP-BGP & VRF

正常BGP

# 启动bgp之后的默认配置
[CX1]bgp 100
[CX1-bgp]dis th
#
bgp 100
 #
 ipv4-family unicast
  undo synchronization
[CX1-bgp]peer 10.0.3.3 as-number 100
[CX1-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[CX1-bgp]dis th
#
bgp 100
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.3.3 enable

[CX1]dis bgp peer
 BGP local router ID : 10.0.1.1
 Local AS number : 100
 Total number of peers : 1                 Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State  PrefRcv
  10.0.3.3        4         100        3        3     0 00:00:11 **Established**        0
  • 第七行的意思是默认使用ipv4中的单播,我们敲的peer 10.0.3.3默认就会自动写入到ipv4地址族当中
  • 第8行的意思是同时关闭IPV4地址族当中的BGP和IGP的同步功能;

我们具体来看一下传统IPV4单播BGP的配置:

[CX1-bgp]dis th
#
bgp 100
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.3.3 enabl

其实我只是敲了第四行和第五行配置,但其实生成的配置却不仅有两条,我们发现它自动生成了一条peer 10.0.3.3放在了ipv4-family当中

MP-BGP

但当我们配合MPLS搞MPLS-VPN的时候,这个时候就不能再使用IPV4的地址族了,而是要使用vpnv4的地址族,所以我们要关闭IPV4的单播(其实不关也行,就是看着不太舒服),启动ipv4的vpnv4单播地址族如下所示:

[[CX1]undo bgp 100
Warning: The BGP process will be deleted. Continue? [Y/N]:y
[CX1]bgp 100
[CX1-bgp]**undo default ipv4-unicast**
[CX1-bgp]**ipv4-family vpnv4 unicast**
[CX1-bgp-af-vpnv4]qu
[CX1-bgp]dis th
#
bgp 100
 undo default ipv4-unicast
 #
 ipv4-family unicast
  undo synchronization
 #
 ipv4-family vpnv4
  policy vpn-target
#
return

[CX1-bgp]**peer 10.0.3.3 as-number 100**
[CX1-bgp]**peer 10.0.3.3 connect-interface LoopBack 0**
[CX1-bgp]dis th
#
bgp 100
 undo default ipv4-unicast
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.0.3.3 enable
 #
 ipv4-family vpnv4
  policy vpn-target

尴尬的事情出现了,当我们关闭于ipv4的单播启用了vpnv4之后,同时敲了两条命令,两条在全局,这和正常的BGP效果一样的,但是peer 10.0.3.3 enable并没有自动出现在ipv4-family vpnv4当中,如果这样建立对等体的话是不成功的,我们必须得手动进入到ipv4-family vpnv4当中把peer 10.0.3.3 enable写进去才可以,如下所示:

[CX1-bgp-af-vpnv4]peer 10.0.3.3 enable
Warning: This operation will reset the peer session. Continue? [Y/N]:y

[CX1-bgp]**dis bgp vpnv4 all peer**
 BGP local router ID : 10.0.1.1
 Local AS number : 100
 Total number of peers : 1                 Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State  PrefRcv
  10.0.3.3        4         100        7        7     0 00:03:24 **Established**        0

MP-BGP与VRF

VRF拥有单独的路由表,也可以单独去配置静态路由或动态路由,可以看做是一台独立的设备,现在的问题时MP-BGP是如何利用本地的VRF与对等体中的VRF做的关联呢?

首先我们要明确一点,VRF之间是不会直接交互的,而是要通过MP-BGP,MP-BGP对等体之间是可以直接交互通信的,VRF需要利用MP-BGP与对端的VRF进行交互,也就是说MP-BGP进程与VRF进程有所关系,也就是说MP-BGP进程要把VRF进程里面的一些信息引入到MP-BGP当中!而且还要把对端发送过来的路由信息注入到本端的VRF当中

创建vpn实例是单独的进程,创建MP-BGP也是单独的进程,将两者关系起来是通过BGP当中的vpn-instance类型!在做两者的路由引入的时候要通过BGP当中的vpn-instance

关键问题

如何给VRF当中配置静态路由和动态路由?又如何进行查看

其实这个问题的关键是我们怎么样在PE设备的操作系统当中进入到VRF当中进行配置路由呢?

# BGP
bgp 2345
ipv4-family vpn-instance A
router-id 172.16.0.1
peer 172.16.0.2 as 64538
-----
# OSPF
ospf 1 vpn-instance A
a 0
network 172.16.0.5 0.0.0.0
-----
# 查看VRF里面的路由条目
dis ip routing-table vpn-instance A
--

如何判断PE的VRF与CE中的动态路由之间是否正常建立了邻接关系

# 查看是否被引入PE系统当中
dis bgp vpnv4 all peer

如何确定MP-BGP与VRF之间的路由都已经相互引入成功了

[AR5_PE2]bgp 2345
[AR5_PE2-bgp]ipv4-family vpn-instance A
[AR5_PE2-bgp-A]import-route ospf 1
[AR5_PE2-bgp-A]ospf 1
[AR5_PE2-ospf-1]import-route bgp

dis bgp vpnv4 vpn-instance A routing-table

如何查看本端MP-BGP给VRF分配的标签

dis bgp 

MP-BGP与VPN实例

MP-BGP可以有多个地址族这一点我们都知道

  • 默认是ipv4的单播
  • 与MP-BGP对等体之间交互的是ipv4的vpnv4类型
  • 与本地vpn实例之间交互的是vpn-instance类型,专用于MP-BGP进程与VRF进程相互之间的路由引入
posted @ 2021-02-10 20:13  张贺贺呀  阅读(641)  评论(0)    收藏  举报