BGP路由黑洞解决办法介绍
在配置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路由黑洞解决办法介绍相关推荐
- linux进入黑洞路由,BGP路由黑洞解决办法介绍
在配置BGP的时,通常最容易遇到的问题就是路由黑洞,那么什么是路由黑洞呢,简单的说,它会默默的将 数据包丢弃,使所有数据包有去无回.我们知道传统的IP路由查找,它是逐跳查找的,通俗一点就是当数 据包到 ...
- 利用MPLS解决BGP路由黑洞问题
致歉声明:前版博客由于博主个人对于BGP知识的理解出现偏差,导致路由黑洞产生的原因解释错误,误导大家,抱歉. 配置文件的百度网盘连接及提取码. 链接:https://pan.baidu.com/s/1 ...
- MPLS解决BGP路由黑洞
MPLS解决BGP路由黑洞 拓补图以及实验要求 配置思路和过程 根据要求(AS2的IP地址为172.16.0.0/16)可知该要求为子网划分. 首先是划分R2-R7骨干网络,可以看到AS2中总共有七段 ...
- 华为设备,使用mpls 解决bgp路由黑洞问题
华为设备,使用mpls 解决bgp路由黑洞问题, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRC2zk2I-1617343115560)(C:\Users\Adm ...
- 简单利用路由黑洞解决DDOS流量攻击
黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目. 提到黑洞路由就要提一下null0接口. null0口是个永不down的口,一般用于管理,详见null0 ...
- HCIE-RS论述BGP路由黑洞
BGP路由黑洞 一.题目需求以及解决方法 A,D 两合设备用 loopback 口建立 IBGP邻居,现在管理员在A和D设备中把SiteA和SiteB的路由宣告到了BGP中.请问: 1.现在SITEA ...
- 【博客465】BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟
BGP(边界网关协议)-----BGP路由黑洞及路由反射器与联盟 路由黑洞的场景 黑洞出现场景: 两台非直连路由器可以建立BGP邻居关系,传递BGP路由.如果中间路由器没有运行BGP协议,可能会出现路 ...
- 乾颐堂军哥HCIE9-解决BGP路由黑洞、聚合的各种参数以及RR基础
本技术文章讨论BGP的路由黑洞解决方案.BGP聚合,即减少路由条目数的技术 1.BGP路由黑洞 1.1 解决路由黑洞问题1 某些AS内的设备没有运行BGP(R3),那么它会缺少路由(2.2.2.2/6 ...
- BGP路由黑洞问题及BGP同步规则
BGP路由黑洞出现为原因 两台BGP设备之间无需直连,只要IP连通,并且能够建立TCP连接,就能够建立BGP对等体,这个特点使路由传递更加灵活,但是也可能带来一个问题,就是路由黑洞问题. 如上图,已知 ...
最新文章
- 使用Movie Maker制作视频相册
- Visual C++设计UDP协议通讯示例
- [云炬创业基础笔记]第二章创业者测试8
- 分布式入门:常用的分布式基础算法
- MySQL数据库:查看数据库性能常用命令
- LeetCode 1060. 有序数组中的缺失元素(二分查找)
- Python安装Matplotlib,wordcloud,jieba第三方库
- 【LeetCode】【HOT】215. 数组中的第K个最大元素(优先队列)
- JS导出txt文本文件,Netsuite方案
- 经典中的经典算法:动态规划(详细解释,从入门到实践,逐步讲解)
- Word2013实战技巧
- H3C无线AC+AP配置3-双信号
- pt与px的对应关系
- Java图像识别技术:Test4J
- 未来三年的移动互联网创业----创新工场创始合伙人汪华 在移动开发者大会上的演讲
- Python练习题16:人名独特性统计
- 【Error】西部数据磁盘插上不显示盘符
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
- winmail 数据库设置_企业邮箱winmail设置方法
- python江红书后第六章实验答案_C#NET程序设计教程实验指导(清华大学江红,余青松)实验源码第六章...