BGP的距離向量(Distance Vector)行為
BGP協定的設計,有一個很有趣的特色。每一家公司,無論公司內部的路由器包含幾套,公司內部的網路有多複雜,在BGP協定裏面,都只當成是一跳、一站(One hop)。
BGP協定,完全保留著距離向量(Distance Vector)門派的協定分類的特性。換句話說,我這家公司所有知道的可能的IP網路目的地網段(NLRI),他們在BGP資訊庫裡面的冠軍(最佳路由資訊),我全部都會分享給我的鄰接路由器。這種行為,正好就是距離向量門派的「武功心法」。
BGP防止路由資訊重複複製(Routing Loop)的內建機制
我一提到距離向量,我相信不少朋友,馬上就會聯想到,那個古老的Routing Information Protocol (RIP)協定。舊版CCNA教材花了好大的篇幅,來解釋RIP路由資訊重複複製(Routing Loop)的動態,這個問題,BGP會不會遇到呢?
當然會遇到,因為複製的路徑隨便繞著環狀拓樸繞個一圈,一定走會回來,「相遇會中」。但是需不需要擔心,不需要。因為,BGP的作者,想到了好辦法。
BGP作者的好辦法,其實很簡單。
每一次資訊(乘客)在離開我這一家公司,複製給鄰接路由器的時候,我就將我公司的統一編號(ASN),簽名簽在資訊上面。簽在哪裡,就是每一筆資訊(乘客)的AS-PATH這個路徑屬性上面。當然,這個簽到表的長度,肯定會越來越長。但是每一家公司,在檢查鄰居複製進來的BGP資訊(乘客),只要在簽到表上面,看到我自己的名字(ASN),我就知道,這個資訊(乘客),曾經經過我這裡複製出去。這當然代表,這一筆資訊就是被重複複製過的。我可以直接刪除掉。
因此,在跨公司的BGP協定(EBGP),有了這一個內建的機制,我們完全不需要擔心任何路由資訊重複複製的困擾。
AS-PATH只保護EBGP
等等,那如果鄰接的路由器,都是同一家公司的,也就是內部BGP鄰接關係(IBGP),還需不需要簽到?還需不需要檢查AS-PATH?
我先說結論:兩個問題的答案都是「不需要」。複製的規則,和避開路由資訊重複複製的機制,內部BGP協定(IBGP)的設計完全是不一樣的。我們下一篇再討論。
One more thing…
從以上的討論,我們發現,路由器必須要將鄰居送過來的Internet超過五十萬筆的BGP資訊,一筆一筆檢查,AS-PATH有沒有我們曾經簽到過的紀錄。感覺起來,肯定要花上不少時間來檢查。
沒錯,BGP協定,設計的目標,完全就不是為了讓交換速度加快的協定。我常常用這個類比,來說明BGP慢速度的感覺。
OSPF這一類的協定,就像是高速戰鬥機,反應速度很快,最高速度可以超音速,但是,一趟只能載送一個人(相對較少的數千筆資訊乘客)。
BGP這一類的行定,就像是噴射客機一樣,反應速度相對很慢、最高速度也遠低於音速,但是,一趟可以載送好幾百位乘客(超過五十萬筆的資訊乘客)。
至於我們前面提到的RIP這個失聯很久的協定,延續前面的類比,就像是練習用的飛行教練機。速度更慢,唯一的好處,是讓學員可以觀察得到,路由資訊重複複製的問題,和錯誤過程的重現。除了訓練用途之外,應該不會有航空公司,會用教練機來載乘客的。這也正是在生產網路上,我們不應該再使用RIP協定的主要原因。
A peaceful place for myself. Botanic Gardens, Saint Vincent and the Grenadines |
以上照片,都在下面這個地點附近拍攝的。
我是文章作者洪李吉。歡迎大家在下方留言,也歡迎大家分享本網站「Cisco學習資訊分享」的內容!
0 意見:
張貼留言
小技巧:也可以 匿名 留言!