天天看點

BGP路由彙總的一個問題

使用的拓撲:

R1(S1/1)--(S1/0)R2(S1/1)--(S1/0)R3

BGP 64512:R1 R2

BGP 64513:R3

R1#show  run

interface Loopback0

 ip address 1.1.1.1 255.255.255.255

!

interface Loopback1

 ip address 172.16.0.1 255.255.255.0

interface Loopback2

 ip address 172.16.1.1 255.255.255.0

interface Loopback3

 ip address 172.16.2.1 255.255.255.0

interface Loopback4

 ip address 172.16.3.1 255.255.255.0

interface Serial1/1

 description DCE,BGP,connected to R1's S1/0,ip 172.16.255.2/30

 ip address 172.16.255.1 255.255.255.252

 clock rate 9600

router bgp 64512

 no synchronization

 network 172.16.0.0 mask 255.255.252.0

 neighbor 2.2.2.2 remote-as 64512

 neighbor 2.2.2.2 update-source Loopback0

 no auto-summary

ip route 2.2.2.2 255.255.255.255 Serial1/1

ip route 3.3.3.3 255.255.255.255 Serial1/1

ip route 172.16.0.0 255.255.252.0 Null0

/////

R2#show run

 ip address 2.2.2.2 255.255.255.255

interface Serial1/0

 description DTE,BGP 64512,connected to R1's S1/1,ip 172.16.255.1/30

 ip address 172.16.255.2 255.255.255.252

 description description DCE,BGP 64512,connected to R3's S1/0,ip 10.1.255.2/30

 ip address 10.1.255.1 255.255.255.252

 neighbor 1.1.1.1 remote-as 64512

 neighbor 1.1.1.1 update-source Loopback0

 neighbor 3.3.3.3 remote-as 64513

 neighbor 3.3.3.3 ebgp-multihop 2

 neighbor 3.3.3.3 update-source Loopback0

ip route 1.1.1.1 255.255.255.255 Serial1/0

R3#show run

 ip address 3.3.3.3 255.255.255.255

 ip address 192.168.0.1 255.255.255.0

 ip address 192.168.1.1 255.255.255.0

 ip address 192.168.2.1 255.255.255.0

 ip address 192.168.3.1 255.255.255.0

 description DTE,BGP 64513,connected to R2's S1/1,ip 10.1.255.1/30

 ip address 10.1.255.2 255.255.255.252

router bgp 64513

 network 192.168.0.0 mask 255.255.252.0

 neighbor 2.2.2.2 ebgp-multihop 2

ip classless

ip route 2.2.2.2 255.255.255.255 Serial1/0

ip route 192.168.0.0 255.255.252.0 Null0

這裡使用除auto-summary外的另一種方法彙總路由。由于bgp釋出的路由必須是路由表中明文存在的,是以這裡使用指明一條到null0的靜态路由,内容為lo口的彙總,由bgp釋出,當資料包比對該路由時,根據路由選擇中最長掩碼最優先比對的原則,就會由lo端口負責處理。原理與自動彙總一緻。而且可以随意指定彙總的掩碼長度,更加靈活。

本來以為彙總問題解決了,但使用ping驗證連接配接性時卻出現了問題。

R1#ping 192.168.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

R3#ping 172.16.1.1

Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:

進入最枯燥的排錯環節。首先是定位錯誤發生的地點。

R1#traceroute  192.168.1.1

Tracing the route to 192.168.1.1

  1 172.16.255.2 20 msec 28 msec 32 msec

  2  *  *  * 

可見資料包到達了R2,接着在R2上測試

R2#ping 172.16.1.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 24/30/40 ms

可見R1->R2,R2->R3,R3->R2都沒有問題,關鍵是R2->R1的時候出了問題。由于資料報目的地為R3,在R3使用調試

R3#debug ip icmp

在R1上使用ping,檢查R3的調試結果

R3#

*May 17 10:28:25.427: ICMP: dst (192.168.1.1) port unreachable sent to 172.16.255.1

終于發現問題了,由于之前為了縮減路由表的數量,把所有serial線路上的路由釋出都去掉了。既然如此,問題解決就簡單了。

R2(config)#router bgp 64512

R2(config-router)#net 172.16.255.0 mask 255.255.255.252

R2(config-router)#net 192.168.255.0 mask 255.255.255.252

讓R2通告兩台串聯鍊路的路由,問題解決

R1#ping 192.168.0.1

Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:

Success rate is 100 percent (5/5), round-trip min/avg/max = 36/67/96 ms

另外還有一種使用aggregate-address的方式,從試驗來看沒有什麼差别。雖然書上講使用static null0可能導緻其他路由器無法識别生成彙總的路由器,但從實驗上看,R3看到的彙總依然是由R2生成的。理論上講,由于aggregate-address隻在bgp程序裡有效,但由于aggregate是bgp的屬性(我不是很确定是否相關),是以若該彙總若隻針對bgp,則最好使用aggregate-address;若其它程序有可能調用該路由(如route-map),則最好使用static null0。

有關内容可參考此帖:

<a href="http://bbs.tech-ccie.com/viewthread.php?tid=2256">[url]http://bbs.tech-ccie.com/viewthread.php?tid=2256[/url]</a>

本文轉自 gole_huang 51CTO部落格,原文連結:http://blog.51cto.com/golehuang/77463

繼續閱讀