BGP通告原则及黑洞处理方案

上一篇文章"BGP原理及通告原则"介绍了BGP的5条原则:
BGP通告原则:
① 仅将自己最优的路由发布给邻居(>优化)
② 通过EBGP邻居获得的最优路由可以发布给所有的BGP邻居
③ 通过IBGP邻居获得的路由不会发布给IBGP邻居(防止IBGP路由环路)
④ BGP和IGP同步(华为默认关闭该特性)
⑤ 默认从EBGP邻居学到的BGP路由的下一跳是EBGP对等体的IP地址,当该路由向AS内部传递至时,路由传递给IBGP邻居时下一跳地址不变(还是上一个AS的接口地址)

华为对第④条默认关闭,这里跟大家介绍一下其中的原因:

BGP通告原则及黑洞处理方案_第1张图片
1.RTA上存在一个100.0.0.0/24的用户网段,通过EBGP发布给RTB, RTB与RTD建立了IBGP邻居关系, RTD通过IBGP学习到该BGP路由,并将该路由发布给EBGP邻居RTE.
2.当RTE访问100.0.0.0/24的路由时,查找路由表,发现到达100. 0.0.0/24路由的下一跳是RTD, RTE查找出接口后,将数据包发送给RTD; RTD收到数据包后,查找路由表,发现到达100.0.0.0/24路由的下一跳是RTB,出接口是RTD上与RTC相连的接口,于是将数据包发给RTC, RTC查找路由表,发现没有到达100.0.0.0/24的路由,于是将数据丢弃,形成"路由黑洞"
这里介绍简单介绍一下路由黑洞(BGP的路由黑洞:可以学到路由,但是数据不可达.)
3.根据BGP的通告原则:一条从IBGP邻居学来的路由在发布给一个BGP邻居之前,通过IGP必须知道该路由,即BGP与IGP同步。如图所示, RTD在收到RTB发来的IBGP路由之后,如果要发布给BGP邻居RTE,则在发布之前先检查IGP协议(即OSPF协议)能否学到该条路由。如果能,则将IBGP路由发布给RTE华为路由器上,默认是将BGP与IGP的同步检查关闭的,原因是为了实现IBGP路由的正常通告。但关闭了BGP与IGP的同步检查后会出现“路由黑洞"的问题。

因此,有两解决方案解决上述问题:

① 将BGP路由引入到IGP,从而保证IGP与BGP的同步。1但是,因为Internet上的BGP路由数量十分庞大,一旦引入到IGP,会给IGP路由器带来巨大的处理和存储负担,如果路由器负担过重,则可能瘫痪。
(非运营商方案,因为运营商的路由条目极其庞大.)
② IBGP路由器必须是全互联(每个路由器都需要运行BGP),确保所有的路由器都能学习到通告的路由。这样可以解决关闭同步后导致的“路由黑洞”问题。
(运营商方案,避免庞大路由导致路由器负担过重而瘫痪.)

你可能感兴趣的:(网络,路由器,bgp,网络协议)