昨天我们了解了IGP和BGP的选路原则,今天来一条条进行验证。
一、拓扑说明
这里使用标准拓扑进行实验。
![拓扑](https://img-blog.csdnimg.cn/img_convert/d7603e378e9984ff15185e0a1a3acbbd.png)
-
AS内部、设备互联地址如图所示,所有设备均创建Loopback0接口,所有设备使用环回口地址作为Router ID。AS100内运行OSPF,在内部互联接口(不包含连接外部AS的接口)、Loopback接口上激活OSPF。 -
AS内部基于Loopback0接口建立IBGP对等体关系,AS之间基于直连接口建立EBGP对等体关系。 -
R4、R5上存在相同的网段:192.168.1.0/24,通过network命令将该网段的直连路由注入到BGP,用于验证BGP路由优选规则。
简单说就是内部IGP使用OSPF让lookback口网段学习路由,然后AS100内建立IBGP全互联,AS间使用直连建立EBGP,AS200和AS300都有192.168.1.0/24网段,在AR1上通过BGP路由选路原则验证会从AR2走还是AR3走,这里先不纠结为什么两个AS都有这个网段先。如果学习过前面的文章配置基本环境应该没有大问题了。
二、丢弃下一跳不可达的路由
这边地址不太一样代入进去就行了。
![alt](https://img-blog.csdnimg.cn/img_convert/736d55911e9a90eaa4b37cc92db3ea7a.png)
R4、R5将192.168.1.0/24通告给R2和R3,然后路由属性中的Next_Hop属性值为发出接口的IP地址。
R2、R3通告给R1时不会修改下一跳地址,所以在AR1上看到下一跳还是10.1.24.4和10.1.35.5。但是R2、R3的G0/0/1接口是没有跑OSPF等路由协议的,AR1是没有到达的路由,因此出现AR1上的192.168.1.0/24下一跳不可达,不会优选路由。
因此我们需要在R2和R3上与AR1建立邻居时指定从本身出去。在R2、R3上通过next-hop-local命令修改Next_Hop属性值为本地更新源地址。其实就是上次我在实验配置中说的。
查看现象:
# 这两个路由都没有被有效和优选,R2和R3分别通告了路由。
[AR1]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
i 192.168.1.0 10.1.24.4 0 100 0 200i
i 10.1.35.5 0 100 0 300i
在R2、R3上配置与AR1建立邻居修改本地更新源地址。
# R2、R3上都配置
peer 1.1.1.1 next-hop-local
再检查AR1的BGP路由。
# 可以看到NextHop为R2、R3的lookback口,而且路由有效了,优选R2出去
[AR1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 192.168.1.0 2.2.2.2 0 100 0 200i
* i 3.3.3.3 0 100 0 300i
就是在BGP路由选路中需要确保路由的下一跳可达,不管是通过BGP或者IGP,否则不参与选路。
三、优选Preferred-Value属性值最大的路由
Preferred-value首选值是华为设备的私有BGP属性,仅本地AS有效,不随路由信息传播,越大越优先。
1、可以直接在BGP视图针对对等体使用,从指定对等体学习到的路由都设置指定的Preferred-value首选值。
# 因为Preferred-Value是本地有效所以要在需要实现选路的路由器也就是AR1上设置
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 3.3.3.3 enable
peer 3.3.3.3 preferred-value 100 # 值越大越优先,默认为0
# 查看BGP路由,这里看到PrefVal列已经为100了,从AR3出去。
[AR1]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 192.168.1.0 3.3.3.3 0 100 100 300i
* i 2.2.2.2 0 100 0 200i
或者看具体路由信息也可以看到。
![Preferred-Value](https://img-blog.csdnimg.cn/img_convert/6535f5b0778144051b9717f82e51cea3.png)
2、也可以通过路由策略来匹配指定的路由设置Preferred-value。
# 配置前缀列表匹配192.168.1.0/24,配置路由策略AR3匹配到前缀列表,apply 增加一个200的首选值
route-policy AR3 permit node 10
if-match ip-prefix AR3
apply preferred-value 200
#
route-policy AR3 permit node 20
#
ip ip-prefix AR3 index 1 permit 192.168.1.0 24
# BGP配置
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 3.3.3.3 enable
peer 3.3.3.3 route-policy AR3 import # 在从AR3接收192.168.1.0/24路由时修改首选值
查看效果:
# 这里可以看到PrefVal为200,优选AR3路径出去。
[AR1]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 192.168.1.0 3.3.3.3 0 100 200 300i
* i 2.2.2.2 0 100 0 200i
这是BGP选路规则的第一条,通过Preferred-Value
进行路由优选。
总结:BGP选路规则的前提是路由的下一跳可达,否则可能导致路由黑洞等情况。通过修改本地的Preferred-Value
进行路径优选,是华为的一个私有属性,值越大越优,可以在BGP视图或者路由策略进行修改,可以参考之前的文章。
如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子
本文由 mdnice 多平台发布