当前位置:首页 > 无线WIFI连接 > 正文内容

bgp怎么防止路由黑洞的

楷峰2023年04月04日 21:20无线WIFI连接95

在这篇文章中,我们将深入探讨bgp怎么防止路由黑洞的和bgp的防环的相关内容,包括它们的定义、特点、优缺点等等。希望能对您有所启发和帮助。

本文目录一览:

BGP路由协议中,在聚合路由的时候会产生一个黑洞路由 ,为什么要产生这个黑洞路由?

如上图,R2将明细路由10.1.1.0/26,10.1.1.64/26,10.1.1.128/26,汇总成10.1.1.0/24并发给bgp邻居R1;

R2 到 R3有一条静态默认路由,R3到R1有一条10.1.0.0/16的B类路由;

①当R2上的明细路由均存在时,R1可正常访问10.1.1.64/26的网络;

②当R2上10.1.1.64/26路由消失,R1依旧能学习到R2的汇总路由10.1.1.0/24,因此当R1访问10.1.1.64/26网络时,数据包到达R2后,会依据默认路由到R3,在根据10.1.0.0/16的B类路由回到R1,形成环路。

此时,如果R2上有一条目的网段是10.1.1.0/24,出接口为null 0的路由,就不会出现环路,顶多是路由黑洞。

时隔8年的回答,让后来者继续学习!

BGP工作原理(5)

一、BGP路由信息决策过程

1、Adj-RIB-In    存放从对等体接收到的更新

当从对等体接收到Update报文时,路由器会把Update报文存储到路由信息库RIB,并指明是来自哪个对等体的;

Update报文经过BGP输入策略引擎路由过滤或修改属性;

路由器执行路径选择算法,来为每一条前缀确定最佳路径;

2、Loc-RIB    存放经过输入策略引擎、路径选择处理过的路由

得出的最佳路径被存储到本地BGP RIB中,然后将loc-RIB的路由加载到IP-RIB中;

3、Adj-RIB-Out    存放经过输出策略引擎处理过的路由

Loc-RIB中的路由在被通告给其他对等体之前,必须通过输出策略引擎,只有那些成功通过输出策略引擎的路由,才会被安装到输出RIB中;

二、BGP选路规则

1、忽略下一跳不可达的路由;

2、优选prefer-value数值大的路由;                缺省值0

3、优选Local-preference数值大的路由;        缺省值100

----------------------------------------------------4、5、6三条规则用于比较自身产生的路由

4、聚合路由优于非聚合路由;                             

5、手工聚合路由优于自动聚合路由;

6、network发布的路由优于import发布的路由;

7、优选as-path长度短的路由;

8、IGP起源的路由优于EGP起源的路由优于未知起源的路由;

9、优选MED数值小的路由;     缺省值0,命令compare-different-as-med修改缺省比较行为

10、EBGP路由优于IBGP路由;

11、优选下一跳IGP开销小的路由;

============================满足以上条件可选实现负载分担;

12、优选cluster-list长度短的路由;            有的有,有的没有,没有的优先

13、优选Originator-ID或RouterID小的路由;        二选一,优先比较Originator-ID

14、优选对等体地址小的路由;

三、BGP的负载分担

1、BGP路由的负载分担

到达同一目的地通常会存在多条有效路由,但是BGP只将最优路由发布给对等体;

前11个属性完全相同的情况下,可通过命令maximum load-balancing ebgp|ibgp配置BGP负载分担的最大等价路由条数,实现下发多条不同下一跳的BGP路由到IP路由表中,缺省值为1,不进行BGP路由负载分担;

如果满足负载分担条件的BGP路由数大于定义的BGP负载分担规格,继续从第12条规则比较下去;

到达同一目的地的eBGP路由和iBGP路由不能形成负载分担,如果最优路由是ibgp路由,则只是ibgp路由形成负载分担;如果最优路由是ebgp路由,则只是ebgp路由形成负载分担;

缺省情况下,BGP只对AS-path属性完全相同的路由进行负载分担,也适用于联盟内部的自治系统之间,可通过命令load-balancing as-path-ignore配置路由在形成负载分担时不比较路由的as-path属性,但是该方式可能会引起路由环路;

2、下一跳路由的负载分担

BGP区别于IGP协议的一点是其下一跳地址可以是非直连路由的接口IP,非直连的下一跳在路由器上会执行迭代路由进行查找路由表,BGP依赖下一跳路由来转发数据,所以如果下一跳地址所对应路由在IP路由表中是负载分担的(IGP的ICMP),也就间接实现了BGP报文转发的负载分担;

BGP同步

在华为VRP平台中,BGP同步默认是关闭的,并且不能手动开启;

BGP同步指BGP路由器必须与IGP同步,AS内的路由器不仅要通过BGP学习到此路由,并且要从IGP协议学习到该路由,才会将该路由通告给eBGP邻居;

除了BGP同步外,避免路由黑洞问题的方法还有IBGP全互连、RR、联盟、MPLS VPN;

四、BGP路由及默认路由

1、生成BGP路由,BGP协议自身是不能发现路由的

(1)通过network方式生成来自IGP的路由

将IP路由表中存在的路由注入进BGP,注入的路由要和IP路由表中路由的前缀和掩码一致;

network方式注入的路由,origin属性为igp;

(2)通过import-route方式引入外部路由

import-route方式引入外部路由,origin属性为incomplete;

(3)通过aggregate进行聚合的路由

自动聚合

自动聚合只能对import引入的路由进行有类聚合,不能对network方式注入的路由进行自动聚合;

自动聚合通过命令summary automatic实现,只能在引入路由的设备上生效,缺省未启用;

手动聚合

手动聚合通过命令aggregate可以对BGP路由表中的路由进行聚合;

如果聚合路由中所包含的明细路由的origin属性各不相同,那么聚合路由的origin属性按照优先级incompleteegpigp;

聚合路由会继承原明细路由中的所有团体属性;

聚合时可以携带关键字:

detail-suppressed    缺省手工聚合后通告所有明细路由,此参数抑制明细路由;

suppress-policy        用来实现部分抑制,部分不抑制,匹配route-policy的明细才抑制;

as-set        聚合路由as-path继承成员明细路由的AS号,缺省聚合路由会丢失明细的AS信息;

与普通as-path的segment类型as-sequence不同的是,as-set类型是一种AS号的无序集合;

对明细路由做聚合时,把所有明细路由AS-Path由前向后相同的部分放在()的前面,其余部分去重后放入();

origin-policy             有条件的聚合,只有满足route-policy匹配条件时,才生成聚合路由;

attribute-policy        用来修改聚合路由的属性;

2、默认路由

如果一台设备在网络中有多个EBGP邻居,或者存在多个路由反射器,那么该设备将会从邻居或者反射器接收全网的路由,该设备也会向本AS内的IBGP对等体发布路由,这样会极大地增加路由表的容量,通过向对等体发布缺省路由,减少对等体路由表的数量。

通过命令peer x.x.x.x default-route-advertise向对等体发布一条默认路由,可以通过route-policy来设置默认路由的属性;

参数conditional-route-match-any/all用来设置匹配条件,如果满足条件则发布默认路由;

(1)any指当匹配任一条件时,发布默认路由;

(2)all指当匹配所有条件时,发布默认路由;

什么是bgp服务器的路由黑洞

在配置BGP的时,通常最容易遇到的问题就是路由黑洞,那么什么是路由黑洞呢,简单的说,它会默默的将数据包丢弃,使所有数据包有去无回。我们知道传统的IP路由查找,它是逐跳查找的,通俗一点就是当数据包到达路由设备的时候,每一台设备都要查找路由表,并且在路由设备有路由的前提下才能转发报文。对BGP来说由于存在iBGP水平分割规则,只把路由传递一跳,这是一种防环机制,所以在BGP的设计上有些设备就不会运行BGP。BGP是一种TCP的连接或者说是一种host-to-host的连接(可以跨越设备进行连接),所以路由传递是没有问题的,但是数据包的路由却是有问题的。通常我们可以看到的现像是iBGP邻居关系可以正常建立,也就是说控制平面看起来是正常的,但是数据平面确不可达。

为什么在运行BGP的AS之内需要配置IBCP全链接

主要是避免路由的黑洞问题,例如AS1-AS2-AS3。现在AS1要和AS3互相访问,那AS1会把数据流发给AS2,AS2如果没有建立IBGP全互联,那么中间的路由器没有BGP路由,也就是没有AS1和AS3的路由,就会丢弃报文。那么造成AS1和AS3无法互相访问。当然,如果不采用BGP全互联的话也可以通过把BGP路由重发布到IGP里面,或者采用RR来减少IBGP的全互联。希望帮到你

【HCIP】3BGP协议-2.4.2实验:BGP邻居关系的建立

我们上节,做了实验,现在再来梳理几个点,之前AS1和AS234进行互联线路(R1--R2)中,我们并没有将R2的g0/0/0接口加入到IGP协议中,然后我们在R2、3、4路由配置ISIS协议,并且将R2和R4安置在AS234的BGP环境中,R3不运行BGP协议。AS之间走EBGP,以此来模拟EBGP、IBGP、IGP之间的联系。

R1创建一条环回口路由,利用network发布到BGP,此时R1的BGP路由表中插入了一条关于该路由的最优标识,利用

R2的BGP路由表也可以查看到该路由。

R2在路由表中查看有去往该路由下一跳的唯一路由,所以该路由在R2的BGP路由表中名副其实的也是带*的有效最优路由,符合

R4于此同时也可以收到R1产生的这条路由,但是这条路由在路由表中是否是最优的?还有待商榷。

我们查看R4路由表发现BGP路由表中该路由的下一跳并不在IGP路由表中,因此它在存放时没有有效符号标识更谈不上最优,由此对外的表现就是当这条路由到R4在路由表中命中的时候,会查询该路由的下一跳,发现下一跳竟然还是10.1.12.1,查询路由表,并没有找到相关记录,下一跳不可达就无法转发。原来我们少了解了一个原则,从EBGP邻居传过来的路由传给IBGP邻居时,下一跳默认不变。为什么会出现这种情况呢,这和我们开头做的限制也有一定的关系,就是我们并没有将R2的g0/0/0接口加入到IGP协议中,如果我们把R2 g0/0/0加入到IGP协议中,那么同在IGP协议下的R4的g0/0/0就可以算出到R2g0/0/0的路由,这样就不会产生这个下一跳不可达的现象。其实在生产环境中也是如此,我们默认在EBGP的AS之间的互联口不加入IGP协议。

解决方案1:

路由不可达,我们就做一条路由让它可达,也就是在R4上将这个下一跳指向自己的g0/0/0接口配置的10.1.34.4,这样通过IBGP协议我们就可以轻松的进行路由选择。

缺陷:BGP路由一般是十万条起步,这么庞大的路由我们无法进行逐条的手工配置。

解决方案2:

我们可以利用R2这个路由,针对IBGP邻居做一条next-hop-local

该命令仅对IBGP邻居生效,将从EBGP邻居得到的路由传递给指定的IBGP邻居时,下一跳修改为自身向该IBGP邻居发送BGP报文的源地址,

再次查看R4、R5的BGP路由表,如预想的一般。

我们看R2的路由,发现虽然R4收到了R2发过来的最优路由,但是并没有向R2再次发送,这样就避免了产生环路,!!!也就是

继续我们的猜想,R4通过EBGP将最优的路由传递给了它的BGP邻居。R5上现在可以从BGP路由表中查到去往1.1.1.0的路由,而且下一跳也是对的。

此时我们以为现在总可以访问R1的环回口了吧,我们进行ping命令,wac为啥不通???

我们往上查,看下R4是否可以ping通。R4此时也不可以,为什么会出现这个原因呢?

我们看它的下一跳所在路由表的路由,发现了一切

在这个拓扑图中,BGP传播路由是可以跨路由器传递的,A路由器可以将路由通过EBGP传递给B,B可以通过IBGP传递给D,因为B路由器到D路由器有运行OSPF协议,路由可达,D再次通过EBGP传递给E。

但是C路由器上却没有A路由器100.0.o.o的路由,因为C路由器没有运行BGP协议。

这样就会导致E路由器在回包的时候,将100.0.o.o的路由先发送给D,D继续转发给C,C直接丢弃。这就出现了BGP的路由黑洞。最终导致R3上没有去往1.1.1.0的路由。

对的!路由黑洞了,这个时候我们会想起来,

哦哦,我们需要进行

我们在R2上做一个同步

第一种方案,我们将BGP引入到IGP协议中,

此时我们继续测试ping 1.1.1.1 发现还是不通,

观察R4BGP的配置,发现其中有一个命令是,

其实,同步功能在华为设备中一直都是关闭的状态,没有开启的命令,同步同步并不影响R4的BGP路由1.1.1.1传递给R5.

此时我们在R5上也创建一个环回口

R4:与R1 的1.1.1.0一样,利用next-hop-local 将R4发往R2的下一跳改变,

peer 2.2.2.2 next-hop-local

isis协议中引入BGP

[R4-isis-1]dis this

[V200R003C00]

isis 1

is-level level-2

network-entity 49.0004.0000.0000.0004.00

import-route bgp

向所有BGP邻居手动触发路由更新

R4refresh bgp all export

我们通过R5

1、同步功能只能通过bgp路由黑洞检测机制,但是并不是解决路由黑洞。

2、这种方法目前已经被淘汰,如果BGP路由表产生振荡,会对IGP造成影响。

第二种方案:

我们将R2、R4上引入配置IGP配置取消

R4同

R3\ R4自己配

三条命令缺一不可

只要解决路由黑洞问题,BGP同步检查功能开启或者关闭无足轻重。

我们再做个小测试,我们现在可以通过1.1.1.1 访问到5.5.5.5,

是因为在几个BGP AS中,路由是通的,但是1.1.1.1 可以访问4.4.4.4 么?

测试之后 发现不可以。为什么呢?因为在BGP AS:234中4.4.4.4并没有发布出去

所以BGP路由访问的基本逻辑,你要是想别人能访问你,你就要把这条路由发布出去,然后再避免路由黑洞。我们发布出去,ping 4.4.4.4 1.1.1.1 还是不通,我们就需要自己再思考思考了

如何解决BGP路由黑洞问题

bgp路由黑洞最根本的原因是因为igp内部路由器没有bgp路由,导致数据包被丢弃,而mpls是根据标签来转发的,不需要内部路由器也学到bgp路由,只要as边界路由器有bgp路由,就能保证数据包穿越整个igp。

了解如何设置和管理无线网络和路由器是非常重要的,希望这篇文章可以帮助您更好地掌握这些知识。

扫描二维码推送至手机访问。

版权声明:本文由路由设置网发布,如需转载请注明出处。

本文链接:https://www.xt88888.com/post/13125.html

分享给朋友:

“bgp怎么防止路由黑洞的” 的相关文章

正方形的路由器有哪些

正方形的路由器有哪些

今天给各位分享正方形的路由器有哪些的知识,其中也会对方正宽带用什么路由器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、华为的路由器怎么样 2、正方体的路...

路由器的配置怎么检查

路由器的配置怎么检查

今天给各位分享路由器的配置怎么检查的知识,其中也会对路由器硬件配置怎么查进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、怎么检查路由器设置 2、怎么查看路...

路由器主重怎么分

路由器主重怎么分

本篇文章给大家谈谈路由器主重怎么分,以及路由器多重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、路由器有主副之分吗 2、路由器的分线如何再分 3、宽带有两个路由器...

信号强的路由器有哪些品牌

信号强的路由器有哪些品牌

本篇文章给大家谈谈信号强的路由器有哪些品牌,以及路由器哪个品牌信号强对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、什么牌子的路由器信号最好 2、什么牌子的无线路由器,...

宽带连接路由器怎么接

宽带连接路由器怎么接

今天给各位分享宽带连接路由器怎么接的知识,其中也会对怎么连路由器宽带连接进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、如何用路由器直接连接宽带? 2、电...

支持广电路由器的有哪些

支持广电路由器的有哪些

本篇文章给大家谈谈支持广电路由器的有哪些,以及广电 路由器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、广电宽带 得买什么样的路由器 2、腾达AX1803路由器支持广...