BGP路由黑洞与特性

成功也许会迟到, 但绝不会缺席。

一、BGP的特性

1、BGP的负载分担

(1)BGP的路由负载分担

当存在多条去往目的地的路径时,且这些BGP路由的属性满足BGP选路原则前9条一致和AS-Path一致时,可实现等价负载
BGP默认只支持一条等价路线

[AR-10-bgp]maximum load-balancing 
  INTEGER<1-8>  Specify maximum equal cost routes //默认只支持一条最优路线,最多可配置支持8条等价路线
  ebgp          EBGP routes as equal cost route   //配置多EBGP路由的的等价数目
  ibgp          IBGP routes as equal cost route   //配置多IBGP路由的的等价数目

(2)BGP下一跳路由负载分担

BGP的下一跳地址可能是非直连的,当下一跳地址在IGP内部实现等价负载时,BGP的下一跳地址也会随之出现等价负载。

2、BGP的同步

为避免AS内的BGP路由黑洞问题,BGP路由器必须与IGP同步,AS内的路由器不仅要通过BGP学习到此路由,而且要从IGP协议学习到该路由才会通告给EBGP邻居。

(1)BGP设备将BGP路由通告给它的EBGP邻居之前,先检查此路由的下一跳是否可达;在查看该BGP的路由前缀在IGP中是否存在该目标的前缀。满足这个两个条件才会传递此BGP路由至EBGP邻居

(2)华为设备和其他BGP厂商的设备默认都是关闭BGP同步的,且华为设备的BGP同步是不能手动开启的,默认就是关闭的

二、拓扑

在这里插入图片描述

三、基础配置

地址接口地址及IGP–OSPF配置完成,构建BGP邻居。使得图示接口地址在BGP设备获得

BGP邻居关系
EBGP: AR-8-----AR-1;AR-6-----AR-9
IBGP: AR-1-----AR-6

[AR-6-bgp]dis bgp peer
在这里插入图片描述

四、需求配置

1、BGP路由黑洞解决方案

(1)采用BGP设备直连链路建立BGP邻居解决路由黑洞

这里采用虚拟直连链路建立BGP邻居,采用图示地址配置隧道逻辑地址AR-1访问9.9.9.1/32路由时优选通过Tunnel隧道邻居172.168.1.2传递的路由

基于 虚拟专用网络构成的直连链路建立BGP邻居

配置基于物理接口的tunnel隧道

[AR-6]int Tunnel 0/0/0                      //创建并进入隧道接口
[AR-6-Tunnel0/0/0]tunnel-protocol gre       //此隧道采用“GRE--通用封装协议”封装传输的数据
[AR-6-Tunnel0/0/0]source 56.1.1.6           //此隧道在本端的物理承载地址为56.1.1.6
[AR-6-Tunnel0/0/0]destination 12.1.1.1      //此隧道对端的物理承载地址为12.1.1.1
[AR-6-Tunnel0/0/0]ip address 172.168.1.6 24 //此隧道的逻辑地址为172.168.1.1 掩码24位(隧道两端为同一个网段)
[AR-6-Tunnel0/0/0]quit

[AR-6]bgp 200
[AR-6-bgp]peer 172.168.1.1 as 200
[AR-6-bgp]peer 172.168.1.1 next-hop-local

AR-1 配置类似

[AR-1]dis bgp routing-table
在这里插入图片描述
[AR-1]dis ip routing-table
在这里插入图片描述
(2)非BGP设备底层采用MPLS–标签转发来解决BGP路由黑洞

AR-1访问9.9.9.2/32路由优先选择非Tunnel隧道的邻居6.6.6.6传递的路由

部署关键:

①开启MPLS协议以支持设备标签转发
②开启LDP协议使得标签自动下发
③开启BGP设备对BGP路由的标签隧道转发

便于测试 先关闭AR-2的g0/0/1接口,

通过MPLS解决BGP路由黑洞

注意:配置MPLS按照以下顺序操作

2、在BGP路由传递的沿线设备上开启MPLS标签转发功能

在需要通过标签转发的接口开启MPLS功能

[AR-2]int g0/0/1
[AR-2-GigabitEthernet0/0/1]shutdown

[AR-2]mpls lsr-id 2.2.2.2
[AR-2]mpls
[AR-2-mpls]quit
[AR-2]mpls ldp
[AR-2-mpls-ldp]quit
[AR-2]int g0/0/1
[AR-2-GigabitEthernet0/0/1]mpls
[AR-2-GigabitEthernet0/0/1]mpls ldp
[AR-2-GigabitEthernet0/0/1]int g0/0/2
[AR-2-GigabitEthernet0/0/2]mpls 
[AR-2-GigabitEthernet0/0/2]mpls ldp
[AR-2-GigabitEthernet0/0/2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]mpls 
[AR-2-GigabitEthernet0/0/0]mpls ldp
[AR-2-GigabitEthernet0/0/0]quit

AR-1、2、4、5、6 配置类似

3、在BGP设备开启对BGP路由的数据基于标签隧道的转发

[AR-1]route recursive-lookup tunnel //在BGP设备开启对BGP路由的数据基于标签隧道的转发

[AR-6]route recursive-lookup tunnel

[AR-1]dis mpls lsp
在这里插入图片描述
在AR-1设备下的g0/0/0接口下抓包
在这里插入图片描述

[AR-1]bgp 200
[AR-1-bgp]peer 172.168.1.6 ignore

[AR-6-bgp]peer 172.168.1.1 ignore

[AR-1-bgp]dis bgp routing-table
在这里插入图片描述

[AR-1-bgp]acl 2010
[AR-1-acl-basic-2010]rule 5 permit source 8.8.8.8 0
[AR-1-acl-basic-2010]quit
[AR-1]route-policy bgp_ospf permit node 10
[AR-1-route-policy]if-match acl 2010
[AR-1-route-policy]quit
[AR-1]ospf 1
[AR-1-ospf-1]import-route bgp  route-policy bgp_ospf 

[AR-1-ospf-1]dis ospf lsdb
在这里插入图片描述

[AR-9]route-policy community permit node 10
[AR-9-route-policy]apply community 200:1
[AR-9-route-policy]quit
[AR-9]bgp 100
[AR-9-bgp]peer 69.1.1.6 route-policy community export 
[AR-9-bgp]peer 69.1.1.6 advertise-community
[AR-9-bgp]quit

[AR-6]ip community-filter 1 permit 200:1
[AR-6]route-policy bgp_ospf  permit node 10
[AR-6-route-policy]if-match community-filter 1
[AR-6-route-policy]quit
[AR-6]ospf 1
[AR-6-ospf-1]import-route bgp route-policy bgp_ospf 

4、BGP的Tracking

AR-1与AR-2之间开启BGP的Tracking来检测去往BGP邻居的路由
当AR-1与AR-2故障时加快邻居的收敛

BGP Trackin

当环境中需要BGP能快速收敛,但是在不适用BFD联动的环境下,可以启用BGP本地的BGP peer tracking功能来监测去往邻居的路由,当受链路故障或者IGP影响 去往邻居的路由消失后BGP设备会立刻中断此邻居关系

注意:使用BGP Trackin功能 仅需在本地配置,这个检测时针对自身的

[AR-1-bgp]peer 2.2.2.2 trackin //开启针对邻居的Trackin功能,本地去往此邻居的路由消失后立刻中断邻居关系

[AR-2-bgp]peer 1.1.1.1 tracking 
[AR-2-bgp]peer 1.1.1.1 tracking delay X //本地去往邻居路由消失后延迟X时间再中断此BGP邻居(X取值范围0--65535S,推荐大于IGP的收敛时间)

5、BFD与BGP联动

AR-1与AR-8之间开启基于BGP的BFD检测,
要求在链路故障发生后1S内感知故障

BGP的可靠性

BGP与BFD的联动

BGP协议通过周期性的向对等体发送Keepalive报文来实现邻居检测。但这种机制检测到故障所需时间比较长,当数据流量巨大时,受此长时间的检测判断影响无法实现网络的快速收敛会导致数据的大量丢失BFD协议是专属的链路检测协议,具有毫秒级别的检测能力,BFD与BGP联动,可以使得BGP的在邻居链路故障时迅速感知故障完成收敛

注意:使用BFD与BGP的联动功能 需要在在需要检测的BGP邻居之间都配置

[AR-8]bfd                                       //开启BFD功能
[AR-8-bfd]quit
[AR-8]bgp 300
[AR-8-bgp]peer 18.1.1.1 bfd enable              //与邻居建立BFD会话
[AR-8-bgp]peer 18.1.1.1 bfd min-tx-interval 10  //与此邻居的BFD检测包发送间隔时间10ms
[AR-8-bgp]peer 18.1.1.1 bfd min-rx-interval10   //与此邻居的BFD检测包接收间隔时间10ms
[AR-8-bgp]peer 18.1.1.1 bfd detect-multiplier 3 //与此邻居的BFD检测超时次数3次

AR-1配置类似

[AR-8-bgp]peer 18.1.1.1 bfd block               //关闭与此邻居的BFD功能

6、在AR-6与AR-9之间配置BGP的Keychain认证,配置多个密钥

密钥1:加密–MD5;密码–1008611,生效时间2020-7-4 0:00 —23:59
密钥2:加密–sha-1 ;密码–10010,生效时间2020-7-5 0:00 —23:59
密钥3:加密–hmac-md5 ;密码–100001,生效时间2020-7-6 0:00 —23:59

BGP的认证

Keychain认证配置

Keychain认证需要先提前预配置认证算法,认证密码,认证名称以及密码切换周期等信息
在BGP进程配置基于对等体或者对等体组调用本设备的Keychain认证

[AR-9]keychain key mode absolute 
[AR-9-keychain]key-id 1
[AR-9-keychain-keyid-1]algorithm md5 
[AR-9-keychain-keyid-1]key-string 1008611
[AR-9-keychain-keyid-1]send-time  utc  0:00 2020-07-04 to 23:59 2020-07-04
[AR-9-keychain-keyid-1]receive-time utc 0:00 2020-07-04 to 23:59 2020-07-04
[AR-9-keychain-keyid-1]quit
[AR-9-keychain]key-id 2
[AR-9-keychain-keyid-2]algorithm sha-1
[AR-9-keychain-keyid-2]key-string 10010
[AR-9-keychain-keyid-2]send-time utc 0:00 2020-07-05 to 23:59 2020-07-05
[AR-9-keychain-keyid-2]receive-time utc 0:00 2020-07-05 to 23:59 2020-07-05
[AR-9-keychain-keyid-2]quit
[AR-9-keychain]key-id 3
[AR-9-keychain-keyid-3]algorithm hmac-md5
[AR-9-keychain-keyid-3]key-string 100001
[AR-9-keychain-keyid-3]send-time utc 0:00 2020-07-06 to 23:59 2020-07-06
[AR-9-keychain-keyid-3]receive-time utc 0:00 2020-07-06 to 23:59 2020-07-06
[AR-9-keychain-keyid-3]quit
[AR-9-keychain]quit
[AR-9]bgp 100
[AR-9-bgp]peer 69.1.1.6 keychain key

AR-6配置类似

[AR-6]dis cu se key
在这里插入图片描述

五、BGP的默认路由

1、默认路由下发

AR-8向AR-1通过默认路由
AR-8的路由表存在8.8.8.100/2;192.168.8.1/32任意一条路由时才可以下发默认

(1)无条件通过默认

[AR-8]bgp 300
[AR-8-bgp]	
[AR-8-bgp]peer 18.1.1.1 default-route-advertise  //无条件向邻居下发BGP的缺省路由

(2)有条件通告默认

[AR-8]bgp 300	
[AR-8-bgp]peer 18.1.1.1 default-route-advertise conditional-route-match-any 192.168.8.1 32 8.8.8.100 32 

[AR-8-bgp]int l100
[AR-8-LoopBack100]ip address 8.8.8.100 32

[AR-8-bgp]network 8.8.8.100 32
在这里插入图片描述
2、Import-route引入默认路由

默认情况下BGP设备无法将本设备存在的IGP协议的默认路由引入,通过“default-route imported ”可以把默认路由引入BGP。
(只有本设备存在非BGP协议获得且生效的默认路由才会生成BGP默认路由)

[AR-2-bgp]default-route imported  //允许本设备将默认路由引入BGP设备
[AR-2-bgp]import-route ?

3、在AR-8带源ping测 9.9.9.1与9.9.9.2结果截图
在这里插入图片描述

六、BGP路由黑洞的解决

描述解决BGP路由黑洞出现的原因,解决的方法

1、将BGP路由引入IGP

(1)BGP的路 由过多,IGP无法承载
(2)不合理的引入极易形成环,形成次优路径

有限的引入
默认情况下IBGP的路由不会引入进IGP协议

2、全互联

IBGP的防环—RR,联邦

3、建立直连链路

(1)在BGP设备直接连接物理直连
(2)在BGP设备直接运行Tunne1隧道—虚拟的直连

4、MPLS (多协议的标签转发—二层技术)

BGP路由配合MPLS标签转发
在这里插入图片描述

本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。

猜你喜欢

转载自blog.csdn.net/HYD696/article/details/107128771