BGP 双平面实验

BGP双平面:

主要还是一种分流互备。
两个平面可以为两个运营商,且为多城市接入,本实验将1/3/5/7看做一个平面,做AS1,2/4/6/8看做另一个平面,做AS2;
两个平面一个可作为生产使用,另一个作为办公使用,无故障时互不干扰;
当出现某条线路断开时,可以进行自动切换,并尽量不干扰另一面,尽快回到自己的工作网络;
不同城市之间距离较远可以使用专线网络,同一城市之间距离较近可以使用以太网

实验拓扑图:

在这里插入图片描述

实验配置:

***底层使用OSFP宣告建邻,每个路由器有两个邻居,例:

在这里插入图片描述

***查看底层路由:

在这里插入图片描述可以看到表中有3/5/7的路由,表明底层配置没有问题(所有的都需要检查)

***进行BGP宣告(每个路由器均宣告,配置思路相同)

(以下均只给出其中一台的配置,其余与其大致相同)
在这里插入图片描述
在这里插入图片描述

***完成建邻IBGP(同一AS):

在这里插入图片描述

***相邻AS建邻EBGP(相邻AS):

在这里插入图片描述

***EBGP完成建邻:

在这里插入图片描述

***XA和DG宣告自己:

在这里插入图片描述在这里插入图片描述去往对方,均有两条线路;此时可以看到线路的选择和预期是符合的,但是显然此次选路具有偶然性,因此仍需要进行通过团体属性干涉选路

邻居间进行团体属性传递,EBGP/IBGP邻居间都要写入

在这里插入图片描述举例:
在这里插入图片描述

配置完成后,在XA和DG分别使用ROUTE-MAP进行匹配,传递团体属性定义在出方向(DG配置大致相同)

XA(config)#ip prefix-list COMM-A permit 10.100.1.1/32
XA(config)#ip prefix-list COMM-B permit 10.100.2.2/32

XA(config)#route-map COMM permit 10
XA(config-route-map)#match ip address prefix-list COMM-A
XA(config-route-map)#set community 100:1
XA(config)#route-map COMM permit 20
XA(config-route-map)#match ip address prefix-list COMM-B
XA(config-route-map)#set community 100:2

使用ip bgp-community new-format 方便查看设置的团体属性(最好所有设备都写):在这里插入图片描述
route-map写完后要进行调用

XA(config)#router bgp 100
XA(config-router)#neighbor 10.99.1.1 route-map COMM out
XA(config-router)#neighbor 10.99.2.1 route-map COMM out

查看刚才打标记路由:
在这里插入图片描述在这里插入图片描述可以看到刚才设置的团体属性

然后添加更改LP值,进行干涉选路:

XA(config)#ip community-list expanded A permit .* :1$ 使用正则表达式匹配两种流量
XA(config)#ip community-list expanded B permit .*:2$
XA(config)#route-map SC permit 10
XA(config-route-map)#match community A
XA(config-route-map)#set local-preference 200
XA(config-route-map)#exit
XA(config)#
XA(config)#route-map SC permit 20
XA(config-route-map)#exit
XA(config)#
XA(config)#route-map BG permit 10
XA(config-route-map)#match community B
XA(config-route-map)#set local-preference 200
XA(config-route-map)#exit
XA(config)#route-map BG permit 20
XA(config-route-map)#exit
XA(config)#router bgp 100
XA(config-router)#neighbor 10.99.2.1 route-map BG in 调用在in方向

查看更改后的LP值:
在这里插入图片描述

基本干涉选路完成,进行流量方向测试:

生产1去往生产2:
在这里插入图片描述生产2去往生产1:
在这里插入图片描述办公1去往办公2:
在这里插入图片描述办公2去往办公1:
在这里插入图片描述可以看到办公流量只在平面1传递;办公流量只在平面2传递

线路故障:假如XA的S1/2口线路断开在这里插入图片描述

XA去往生产2的流量切换到另一个接口s1/3,为满足实验要求,去往生产2的流量应该在8上往上走,重新回到生产的工作网络

此时根据社团属性进行比较测试

先修改local值(给出CD-B修改后状态)

CD-B(config)#route-map SC permit 10
CD-B(config-route-map)#set local-preference 200
CD-B(config-route-map)#ex
CD-B(config)#router bgp 2
CD-B(config-router)#neighbor 10.1.78.7 route-map SC in
在这里插入图片描述

修改后,生产流量流向:(此时流向符合要求)

在这里插入图片描述

恢复线路,查看对原来又没有影响(可以看到流量方向仍正常,无影响)

在这里插入图片描述

根据对称,在SZ-B进行同样的设置:

再次查看生产流向:(流量仍旧正常)
在这里插入图片描述

重新断开XA的s1/2口,再次进行流量测试:

生产1去往生产2:
在这里插入图片描述
生产2去往生产1:
在这里插入图片描述可以看到1去往2,流量方向正常;2去往1,流量传递过程中,从平面1跳至平面2进行传递,不符合实验需求。
此时通过修改WEIGHT值,来干涉选路:
SH-A#show run | s route-map
neighbor IBGP route-map SC in 在出方向调用(通平面IBGP邻居都要写入)
route-map SC permit 10
match community SC
set weight 100
route-map SC permit 20

修改后查看选路情况:

在这里插入图片描述
可以看到2去往1的流量没有跳至平面2,正常的从自己的工作网络传播

进行流量方向测试:

生产1去往生产2:
在这里插入图片描述生产2去往生产1:
在这里插入图片描述可以看到流量恢复正常,满足要求

平面2关于办公的配置和平面1关于生产的配置大致相同