在配置BGP的时,通常最容易遇到的问题就是路由黑洞,那么什么是路由黑洞呢,简单的说,它会默默的将
数据包丢弃,使所有数据包有去无回。我们知道传统的IP路由查找,它是逐跳查找的,通俗一点就是当数
据包到达路由设备的时候,每一台设备都要查找路由表,并且在路由设备有路由的前提下才能转发报文。
对BGP来说由于存在iBGP水平分割规则,只把路由传递一跳,这是一种防环机制,所以在BGP的设计上有些
设备就不会运行BGP。BGP是一种TCP的连接或者说是一种host-to-host的连接(可以跨越设备进行连接),所以路由传递是没有
问题的,但是数据包的路由却是有问题的。通常我们可以看到的现像是iBGP邻居关系可以正常建立,也就是
说控制平面看起来是正常的,但是数据平面确不可达。本篇我们就来介绍一下解决BGP路由黑洞的几种常见
的方法。我们以下图中的拓扑为例来进行演示,配置要求如下:
1、在AS100和AS300中,路由器R1配置多个环回口,都发布到BGP内,并且做路由聚合。
2、在AS200中,AS内部所有设备之间建立iBGP邻居关系。
3、AS之间使用直连建立eBGP邻居关系。
4、配置完成后,要求R1与R6的环回口能够互通。IP地址规划
R1:
lo0:1.1.1.1/24
lo1:192.168.1.1/24
lo2:192.168.2.1/24
lo3:192.168.3.1/24R6:
lo0:6.6.6.6/24
lo1:172.17.1.6/24
lo2:172.17.2.6/24
lo3:172.17.3.6/24

1、首先对各路由器进行基本的配置,以R1为例,配置各口的IP地址,配置环回口的IP地址,配置BGP 100,
并将环回口网段在BGP中进行宣告。以相同的方式配置AS300中的R6。
interface GigabitEthernet0/0/0ip address 10.1.2.1 255.255.255.0
interface LoopBack0ip address 1.1.1.1 255.255.255.0
interface LoopBack1ip address 192.168.1.1 255.255.255.0
interface LoopBack2ip address 192.168.2.1 255.255.255.0
interface LoopBack3ip address 192.168.3.1 255.255.255.0
bgp 100router-id 1.1.1.1peer 10.1.2.2 as-number 200
ipv4-family unicastundo synchronizationaggregate 192.168.0.0 255.255.252.0 detail-suppressed network 1.1.1.0 255.255.255.0 network 192.168.1.0 network 192.168.2.0 network 192.168.3.0 peer 10.1.2.2 enable

2、AS 200中的四台路上器,我们使用LoopBack 0接口建立iBGP邻居关系,同时在这四台路由器之间还要
配置IGP,这里我们使用OSPF协议。以R4的配置为例发下图,这里配置iBGP时可以使用AS Group以减轻配
置的工作量。

3、到这里所有配置完成后,查看BGP对等体,确认BGP邻居关系建立成功,从下图中可以看到R2分别与相应
路由器建立了eBGP和iBGP邻居关系。

4、此时从R1环回口ping R6环回口,会发现根本Ping不通。这就是由于路由黑洞导致的。因为R3或者R4没
有这条路由条目,导致了R1把包发给R2,R2把包发给R3或R4,R3或R4查表发现没有这条路由条目,就把包
给丢弃,造成了路由黑洞。

5、解决路由黑洞的方法有以下几种:1、在AS内使用物理线路的全互连,形成Full Mesh。2、在AS内IBGP的对等体邻接关系的全互连,逻辑上形成Full Mesh。3、将AS内部的边缘路由器上的BGP路由重新分发进IGP中。4、在AS内部的边缘路由器之间建立Tunnel。5、在AS内所有路由器上启用MPLS。6、配置路由反射器RR。7、联盟配置,现网中已经很少用到。方法一、不需要演示,并且在现网中也基本不会用到,因为当路由器数量较多时,使用物理线路全互联是
不现实的,并且通常路由器之间可能还会有其它设备,比如交换机或者波分。所以我们主要来看一下后面
6种方法。方法二、在AS内IBGP的对等体邻接关系的全互连,逻辑上形成Full Mesh
1、如下图可以看到,在AS200中,R2与R5属于OSPF中的ASBR,分别与R1和R6形成eBGP关系,它们在将EBGP
邻居发来的路由信息转发给R3和R4时,保留了EBGP传来的下一跳地址,但是对于R3与R4,它们并没有到达本
区域外的路由,这时我们就可以通过配置next-hop-local来解决这个问题。只需要在ASBR上进行修改,也
就是R2与R5。例如要将BGP的路由发送给3.3.3.3这个邻居时,将路由的下一跳设置成自己的地址,这个地址是
与3.3.3.3建立邻居所使用的源地址。缺省情况下,BGP设备向IBGP对等体发布路由时,不修改下一跳地址。2、使用以下命令进行配置,以R2为例:
bgp 200peer 3.3.3.3 next-hop-localpeer 4.4.4.4 next-hop-localpeer 5.5.5.5 next-hop-local

3、配置完成后,从R1环回口ping R6环回口,这时就可以Ping通了。

4、查看R3的BGP路由表,可以看到去往R1和R6的下一跳都指向了R2与R5。

5、查看R6的路由表,可以看到环回口地址已经进行了路由聚合。

6、在方法二中,我们按要求配置完以后,来思考一下下面的三个问题,理解下面三个问题后,说明对BGP配
置有了更深的理解。
● 6.1、R3与R4是否有必要建立IBGP邻居关系?
Answer: 虽然配置中按要求在R3与R4之间建立了IBGP邻居关系,但它们之间并不需要建立IBGP邻居。因为
R3与R4都会收到R2与R5发布的EBGP路由,通过设置更新发送bgp报文的接口为loopback0接口后,路由就变
成了活跃路由。假设即使R2R4之间和R3R5之间的链路同时断掉,由于域内都配置了IGP,下一跳仍然可达。
● 6.2、R3与R4是否需要使用Nexthop local命令,如果使用有没有问题?
Answer: 不需要。因为只需要在ASBR上修改EBGP邻居发来的路由的Next_Hop。R3与R4不是ASBR。
如果在R3和R4上使用了该命令也没有影响,因为BGP向IBGP邻居发布引入的IGP路由时,缺省就将下一跳属性
改为自身的接口地址。
● 6.3、AS200内的数据转发路径是基于什么决定的?
Answer:其实这里并不涉及BGP路由选路,R5只收到一条路由,所以不触发选路。数据转发直接基于IGP最短
路径转发。方法三、将AS内部的边缘路由器上的BGP路由重新分发进IGP中
1、在R3与R4上删除BGP 200
undo bgp 2002、在R2和R5中把BGP重分发进到OSPF。
ospf 1import-route bgp 

3、配置完成后,从R1环回口ping R6环回口,可以Ping通。

方法4、在AS内部的边缘路由器之间建立Tunnel
1、去掉R2和AR5的OSPF中重分发命令。
ospf 1undo import-route bgp 2、配置Tunnel口,以R2为例。
interface Tunnel0/0/1ip address 100.100.100.1 255.255.255.0tunnel-protocol gresource 2.2.2.2destination 5.5.5.53、修改BGP配置使用Tunnel IP建立Peer,以R5为例。
bgp 1undo peer 2.2.2.2peer 100.100.100.1 as-number 200peer 100.100.100.1 next-hop-localpeer 100.100.100.1 connect-interface Tunnel 0/0/1

4、 配置完成后,从R1环回口ping R6环回口,可以Ping通。 

方法5、 在AS内所有路由器上启用MPLS
1、首先删除R2和R5的Tunnel口设置。
undo int tunnel 0/0/12、R2与R5修改BGP200的peer,还是使用loopback 0地址建立peer。以R2为例。
bgp 200
undo peer 100.100.100.2
peer 5.5.5.5 as-number 200
peer 5.5.5.5 connect-interface LoopBack0
peer 5.5.5.5 next-hop-local3、在4台路由器都配置MPLS,以R2为例。
mpls lsr-id 2.2.2.2
mplsmpls ldp
int g0/0/1mplsmpls ldp
int g0/0/1mplsmpls ldp
route recursive-lookup tunnel

4、配置完成后,从R1环回口ping R6环回口,可以Ping通。

方法6、配置路由反射器RR
1、我们还可以使用路由反射来描述一个BGP Speaker通告一条IBGP路由到另外一个IBGP对等体。而这样
一个BGP Speaker通常被称为路由反射器(Route Reflector, RR),这样的一条IBGP路由被称为反射路由。2、路由反射宣告原则:从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机,不会反射给所有的
非反射客户端。从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)。
从EBGP对等体学到的路由,发布给所有的非客户机和客户机。● Client只需维护与RR之间的IBGP会话
● RR与RR之间需要建立IBGP的全互连
● Non-Client与Non-Client之间需要建立IBGP全互
● RR与Non-Client之间需要建立IBGP全互连3、配置RR非常简单,只需要在BGP peer中加入一条配置如下,将其配置为RR客户机即可,在我们的拓扑中
,这时R2与R5就不需要建立iBGP邻居关系了,这时需要同时在R3与R4上配置RR。注意配置RR就不再需要再配
置next-hop-local。以R3为例。
bgp 200
peer 2.2.2.2 reflect-client
peer 5.5.5.5 reflect-client 

4、配置完成后,从R1环回口ping R6环回口,可以Ping通。 

BGP路由黑洞解决办法介绍相关推荐

  1. linux进入黑洞路由,BGP路由黑洞解决办法介绍

    在配置BGP的时,通常最容易遇到的问题就是路由黑洞,那么什么是路由黑洞呢,简单的说,它会默默的将 数据包丢弃,使所有数据包有去无回.我们知道传统的IP路由查找,它是逐跳查找的,通俗一点就是当数 据包到 ...

  2. 利用MPLS解决BGP路由黑洞问题

    致歉声明:前版博客由于博主个人对于BGP知识的理解出现偏差,导致路由黑洞产生的原因解释错误,误导大家,抱歉. 配置文件的百度网盘连接及提取码. 链接:https://pan.baidu.com/s/1 ...

  3. MPLS解决BGP路由黑洞

    MPLS解决BGP路由黑洞 拓补图以及实验要求 配置思路和过程 根据要求(AS2的IP地址为172.16.0.0/16)可知该要求为子网划分. 首先是划分R2-R7骨干网络,可以看到AS2中总共有七段 ...

  4. 华为设备,使用mpls 解决bgp路由黑洞问题

    华为设备,使用mpls 解决bgp路由黑洞问题, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRC2zk2I-1617343115560)(C:\Users\Adm ...

  5. 简单利用路由黑洞解决DDOS流量攻击

    黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目. 提到黑洞路由就要提一下null0接口. null0口是个永不down的口,一般用于管理,详见null0 ...

  6. HCIE-RS论述BGP路由黑洞

    BGP路由黑洞 一.题目需求以及解决方法 A,D 两合设备用 loopback 口建立 IBGP邻居,现在管理员在A和D设备中把SiteA和SiteB的路由宣告到了BGP中.请问: 1.现在SITEA ...

  7. 【博客465】BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟

    BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟 路由黑洞的场景 黑洞出现场景: 两台非直连路由器可以建立BGP邻居关系,传递BGP路由.如果中间路由器没有运行BGP协议,可能会出现路 ...

  8. 乾颐堂军哥HCIE9-解决BGP路由黑洞、聚合的各种参数以及RR基础

    本技术文章讨论BGP的路由黑洞解决方案.BGP聚合,即减少路由条目数的技术 1.BGP路由黑洞 1.1 解决路由黑洞问题1 某些AS内的设备没有运行BGP(R3),那么它会缺少路由(2.2.2.2/6 ...

  9. BGP路由黑洞问题及BGP同步规则

    BGP路由黑洞出现为原因 两台BGP设备之间无需直连,只要IP连通,并且能够建立TCP连接,就能够建立BGP对等体,这个特点使路由传递更加灵活,但是也可能带来一个问题,就是路由黑洞问题. 如上图,已知 ...

最新文章

  1. 使用Movie Maker制作视频相册
  2. Visual C++设计UDP协议通讯示例
  3. [云炬创业基础笔记]第二章创业者测试8
  4. 分布式入门:常用的分布式基础算法
  5. MySQL数据库:查看数据库性能常用命令
  6. LeetCode 1060. 有序数组中的缺失元素(二分查找)
  7. Python安装Matplotlib,wordcloud,jieba第三方库
  8. 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)
  9. JS导出txt文本文件,Netsuite方案
  10. 经典中的经典算法:动态规划(详细解释,从入门到实践,逐步讲解)
  11. Word2013实战技巧
  12. H3C无线AC+AP配置3-双信号
  13. pt与px的对应关系
  14. Java图像识别技术:Test4J
  15. 未来三年的移动互联网创业----创新工场创始合伙人汪华 在移动开发者大会上的演讲
  16. Python练习题16:人名独特性统计
  17. 【Error】西部数据磁盘插上不显示盘符
  18. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
  19. winmail 数据库设置_企业邮箱winmail设置方法
  20. python江红书后第六章实验答案_C#NET程序设计教程实验指导(清华大学江红,余青松)实验源码第六章...

热门文章

  1. avidemux 拼接_如何使用Avidemux从视频文件创建简单铃声
  2. 项目管理杂谈:工期估算
  3. 数字滤波器概念及设计
  4. 技术帖 浅谈屏幕比例 16比9和4比3的小秘密
  5. 朋友买房借钱,该不该借?
  6. Fanuc开发技术集-Focas2中英文函数对照表第十七部分
  7. Python字典查找数据的5个操作方法
  8. Zipf's law
  9. win2003服务器管理功能介绍
  10. mybatis中关于example类详解mybatis的Example[Criteria]的使用