本節書摘來自異步社群《bgp設計與實作》一書中的第2章,第2.8節,作者【美】randy zhang , micah bartell,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
bgp設計與實作
如前面章節“比較控制層面和轉發層面”所提到的一樣,ip rib,或者稱為ip路由選擇表,是一個十分關鍵的資料庫,它為控制層面和轉發層面之間提供了重要的聯系。一方面,不同的路由選擇源,或路由選擇協定,例如bgp和is-is,都将它們的路徑加載到rib中。另一方面,rib為建立轉發資料庫(一些交換方法直接使用rib進行資料轉發)提供資訊。
當每一種路由選擇協定接收路由更新或者其他資訊時,它會選擇到達任何給定目的地的最佳路徑,并嘗試把這條路徑安裝到路由選擇表中。當多條到達同一條字首/掩碼的路徑存在時,路由器會根據該協定所涉及的管理距離來決定是否安裝路由。ios已經為不同的路由選擇協定,或路由選擇源預先定義了管理距離,但這些管理距離是可以被配置的。來自于較低管理距離的路由選擇源的字首優先。備份路由仍然被路由選擇協定所維持——如果路由選擇協定支援的話——當已存的最佳路由失效時,備份路由可以被用作最佳路由。
注意:
當bgp在ip rib中安裝路由失敗時,将會在路由器的bgp rib中報告一條rib失敗的消息。失敗的代碼将辨別出原因。請查閱附錄b以了解更多的資訊。
ip rib被組織成網絡描述符塊(network descriptor block,ndb)的集合。每一個ndb就是路由選擇表中的一個表項,它代表了通過下列3種來源之一擷取的網絡字首:
在路由器的本地接口上配置的一個位址/掩碼對。這樣就成為一條直連路由,它具有最高的優先級,或者說它的管理距離為0。
在路由器上配置的靜态路由。靜态路由的預設管理距離是1。
動态路由選擇協定,例如bgp。
ndb包含的資訊有網絡位址、掩碼、管理距離,還有動态路由選擇協定操作所需要的資訊,例如路由重分布。因為ndb中的每一條字首可能通過多條路徑到達,是以也使用了路由選擇描述符塊(routing descriptor block,rdb)。每一個ndb可以連接配接一個或多個rdb,這些rdb存儲了實際的下一跳資訊。目前,一個ndb最多可以連接配接8個rdb,這些rdb設定了基于每目的地(per destination)的負載分擔鍊路數目的上限(也就是8條)。注意到,由于ndb受單個路由選擇協定的控制,是以路由選擇協定就決定了每個ndb可以關聯多少個rdb。
en/us/tech/tk365/technologies_tech_note09186a0080094823.shtml):
無類(classless)——最長比對字首查找。如果沒有找到比對的字首,就使用預設路由;如果有,就使用它。從cisco ios軟體版本11.3開始就使用預設的ip無類查找了(雖然它仍然顯示在運作配置中)。
有類——最長比對查找。如果路由選擇表包含了目的主網絡(major network)(由目的位址解析出的有類網絡)的子網,那麼将不考慮選擇超網(supernet)和預設路由。