BGP路由協議中在聚合路由的時候會產生黑洞路由為什

2021-03-06 04:39:27 字數 3512 閱讀 2501

1樓:匿名使用者

如上圖,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年的回答,讓後來者繼續學習!

2樓:傷傷逝逝

在eigrp和ospf裡都有的。做彙總的地方會產生一條指向空介面的預設路由,目的在於防環。

因為做彙總有一件事情,就是隻有當所有的明細路由均消失後,彙總路由才會消失。

試想一下,在做彙總的路由器上,一條明細路由消失了,但是他依然會通告彙總路由到下游去,那麼下游的路由器依然會發包上來。其實這也沒關係,大不了做彙總的路由器認為這個包不可路由,傳送個icmp回去也就好了。但是如果恰巧這臺路由器又有一條指向下游的預設路由呢?

結果只能是這些包一直打環,要等到ttl超時才能停下。

就是防環。

3樓:匿名使用者

防止網路出環(邏輯環) 鏈路狀態路由協議 都會有這個

為什麼bgp向外宣告的路由,必須要存在於自身的igp路由表中

4樓:匿名使用者

ebgp宣告路由不需要任何igp支援。

ibgp宣告是ibgp的同步原則(synchronization):當從ibgp鄰居學到一條路由時,只有當該路由所指向的prefix已經存在於本地路由器的igp路由表中,才可能認為這條從ibgp學到的路由是最佳的,否則不考慮該路由。

簡單說,其目的是為了避免產生路由迴圈和路由黑洞。

5樓:匿名使用者

樓上2位回答的不對。

具體用到那個rfc,我不知道。

原因是:bgp不是用來產生路由的,而是釋出、更重要的是控制已經存在的路由的。bgp中有規定:

bgp路由器只把自己使用的路由發給鄰居。所以,假如bgp釋出路由,被髮布的路由必須存在於ip路由表中,哪怕它是虛假路由,也必須有,就是這樣。

假如你的路由表中不存在某條路由,那麼,即便你釋出了這條路由,也不會生效,鄰居更不會收到。

基於什麼考慮?上面已經說了,bgp只把自己使用的路由發給鄰居,而自己使用的就是存在於ip路由表中的路由,是最優的。

樓上說:怕路由表沒有而產生不可達的情況。這是不正確的認識。

其實,不論bgp,還是ospf或其他路由選擇協議,都可以釋出不存在的路由器,前提是在自己的路由表裡手工新增一條指向null0的路由。有2個作用:路由聚合和黑洞路由。

路由聚合是為了減少路由表數量,路由黑洞是為了解決網路攻擊。

如:路由器a下接2個子網,10.1.

1.0/25和10.1.

1.128/25,或者更多。那麼假如不用聚合,就需要釋出2條路由,假如使用聚合,那麼,先建立1條聚合路由:

ip route 10.1.1.0 24 null0,然後在bgp中釋出聚合路由即可。

說了這些,不知您明白了沒有?若覺得我說的還行,就給我追加點分吧。

6樓:匿名使用者

您說的應該是ibgp的同步原則(synchronization):當從ibgp鄰居學到一條路由時,只有當該路由所指向的prefix已經存在於本地路由器的igp路由表中,才可能認為這條從ibgp學到的路由是最佳的,否則不考慮該路由。

簡單說,其目的是為了避免產生路由迴圈和路由黑洞。

我覺得網路夜行者說的對。hszpnlz說的有點小問題,bgp並非必須釋出已經存在於igp 路由表中的路由,只是在某些網路結構中需要而已,在cisco路由器上,是可以根據需要在router bgp配置狀態下,通過synchronization和no synchronization命令來開啟或關閉該特性。

什麼情況下,為什麼要開啟bgp同步的具體原理比較複雜,詳細的解釋網上很多而且**並茂更容易理解,比如下面幾篇文章。

實際ciscopress出的c**p新版route參考書的第十四章就有專門一小節說明。不過還沒中文版。

您不妨看過上面這些具體介紹後,還有不明白的,就其中某點提問,同時列出您已經看過的文章。這樣更容易獲得有針對性的回答。

7樓:網路夜行者

之所以要存在它的igp表中,是因為這宣告的可能會成為別的裝置進入某個網路的路由,如果這個路由不在你的igp表中,但你宣告出去.那其它裝置可能通過計算算出你這個裝置是到達某個網路的最好路徑,所以把你新增到了它的路由表中,然後它要到那個目標去的時候會經過你,而你的igp路由表中並沒有這一路由,這樣它就不會知道要怎麼去的目標那裡,導致路由出現問題.

8樓:吳禹先航

路由器向對方宣告一條路由,是說明自己有路徑可以到達這個目的地,然後對方可以通過我這臺路由器再到達這個目的地,也就是所謂的路由迭代,如果在宣告路由器上都沒有這條路由,說明這條路徑是路由器不知道的,它又怎麼能將這條不知道的路由通告給其他鄰居呢,rfc上應有解釋,個人理解是為了保證迭代成功

9樓:匿名使用者

當ebgp宣告路由表或本地介面沒有的ip的時候,不會向外散佈。

為什麼bgp路由表中有路由條目,但是確不能ping通

10樓:**ile小偉

你好:首先路由表中有路由不一定能ping通,你檢視這條路由的next-hop是否可達。

一般都是下一跳是黑洞路由所以導致ping不通。但是建議你試試一下幾個命令,做一個全面的查詢。

1,show ip bgp ex x.x.x.x 檢視下這條路由的資訊

2,show ip bgp 看是否有最佳路徑 >3,ping x.x.x.x sou x.x.x.x 帶源ping

11樓:雨中浮陽

首先要明白一個概念,ping通必須滿足 2個條件 1 你有對方的地址段的路由,你能把資料包傳過去。 2對方有你源地址的路由,因為ping資料包 對方收到 源地址和目的地址要轉變。源地址變成目的地址,目的地址變為源地址。

這樣應該好理解了吧,你本端有對方的路由,但是你沒有把自己的地址段通過你的ebgp路由器通告給外網(也就是對方沒有收到你的路由條目),對方路由器裡沒有關於你地址段的路由條目,ping當然就不會通了。

在BGP協議中提到了「路由字首」,什麼是路由字首啊?不懂額麻煩各位高手了!感謝

路由字首 網段 字首長度 子網掩碼 路由字首可以理解為路由條目 為什麼bgp向外宣告的路由,必須要存在於自身的igp路由表中 ebgp宣告路由不需要任何igp支援。ibgp宣告是ibgp的同步原則 synchronization 當從ibgp鄰居學到一條路由時,只有當該路由所指向的prefix已經存...

在EIGRP路由協議中,什麼時候路由表中沒有路由資訊,路由信

fc 可行復性條件 本地路由器的一個鄰居 制路由器所通告bai 的到達一個du目的網路的距離ad是否小於本地zhi路dao由器到達相同目的網路的可行距離 fd 可行後繼路由器就是滿足fc條件的鄰居路由器,這樣的路由才放入路由表中 路由協議eigrp裡面,as號意義是什麼。在什麼情況下eigrp才需要...

ospf協議中,什麼是lsa,它在路由器中的作用是什麼

lsa是鏈路狀態通告,它在路由器中又分為6類通告,每類通告在 用的上,很複雜!1 路由器lsa router lsa 由區域內所有路由器產生,並且只能在本個區域內泛洪廣播。這些最基本的lsa通告列出了路由器所有的鏈路和介面,並指明瞭它們的狀態和沿每條鏈路方向出站的代價。2 網路lsa work ls...