RIP手工彙總產生的路由黑洞

我們在用手工彙總路由時可能產生路由黑洞問題從而使網絡變成不可達,本次的實驗環境如下面的拓撲:R0和R1之間是192.168.12.0/24;R1和R2之間是192.168.23.0/24;R2和R3之間是192.168.34.0/24;R3的右邊是一個4.0.0.0的網絡,R3上有一條默認路由指向左邊,即從s0/1出來。所有路由器用RIP協議來學習路由條目,我們在R3的s0/1接口上做手工彙總,彙總地址爲4.4.0.0/24,先來看看結果如何。
做了彙總後,R0、R1、R2的路由表是一致的,R3的路由表有詳細子網的信息。

實驗拓撲

彙總之後R0、R1、R2的路由表是一樣的,如下圖:R1、R2、R3路由表

 R3的路由表中有詳細的4.0.0.0網絡各子網的條目:R3

下面在R0上用traceroute來測試網絡,先測試現有的網絡4.4.4.0/24,測試結果爲網絡是連通的。測試

 然後我們來看,如果這時有個去往4.4.5.0/24(網絡中沒有的網段)網絡的數據包,它會被怎樣轉發呢?黑洞

從圖上我們可以看到,因爲4.4.5.0/24是不存在的子網,但他是4.4.0.0的子網,R0按照路由表發給R1R1發給R2R2發給R3R3的路由表有4.4.0.0網絡的詳細條目,但查不到4.4.5.0網絡,就按默認路由發往R2R2查看路由表4.4.5.0網絡是4.4.0.0的子網,按照R2的路由表,4.4.0.0的下一跳是192.168.34.2(R3),然後將包發給R3;接下來就會循環上面的過程,直到TTL值變爲0才丟棄該包。從上面的途圖中我們也能看出包一直在192.168.34.1(R2)192.168.34.2(R3)之間循環。

當然一般情況下這樣的情況也不會有什麼問題,但如果有人利用這一點,惡意發數據包去往4.4.0.0子網下,但實際又是不存在的子網(如4.4.5.0/24),這樣的數據包一旦有很多會不會引起網絡的擁塞呢?

爲了避免這樣的情況發生,我們在做手工彙總時最好再添加一條彙總條目的路由指向NULL0。現在在這個實驗中我們來添加一條這樣的路由條目看看(當然了要在彙總的路由器上添加):NULL

然後我們再來看看結果會怎麼樣: 07

現在,我們看到數據包顯示是目標是不可達的,這樣就不會在R2和R3之間循環了,而是直接R3被丟棄了。這樣即使有很多這樣的數據包也不會有問題了,R3會直接丟棄他們。

注:指向NULL 0 的這條條目只有在RIP手工彙總時需要添加,其他的路由協議中,當你在手工彙總時會自動產生一條指向NULL0的條目。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章