BGP路由黑洞与特性

    技术2025-12-10  9

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

    文章目录

    一、BGP的特性二、拓扑三、基础配置四、需求配置五、BGP的默认路由六、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标签转发

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

    艺博东 认证博客专家 网络 路由交换 微信公众号:艺博东关注后,回复关键字“简历”,即可领取简历模板大全,更多干货等你来领取。写作的初衷:学习、怕学了之后很快会忘记,所以及时的做总结,这样便于加深理解和记忆,也为其积累经验。博客专家,内容合伙人。
    Processed: 0.008, SQL: 9