天天看點

衆元教育H3CSE20200603班---BGP基本原理之二

引入

前面我們了解了BGP的起源背景、幾個基本術語、五個消息以及它的一個狀态機,現在我們來了解它選路的手段之一以及它的選路規則。

一、BGP路由屬性

BGP是通過比較路由攜帶的屬性,來完成路由選擇、環路避免等工作的。BGP路由屬性基于“TLV”架構,易于擴充,有一下四類:

衆元教育H3CSE20200603班---BGP基本原理之二
  1. 公認必遵屬性(Well-known mandatory):所有BGP路由器都必須能夠識别這種屬性,且必須存在于Update消息中,如果缺少這種屬性,路由資訊就會出錯。
  2. 公認可選屬性(Well-known discretionary):所有BGP路由器都可以識别,但不要求必須存在于Update消息中,可以根據具體情況來選擇。
  3. 可選傳遞屬性(Optional transitive):在AS之間具有可傳遞的屬性。BGP路由器可以不支援此屬性,但它仍然會接收帶有此屬性的路由,并通告給其他對等體。
  4. 可選非傳遞屬性(Optional non-transitive):如果路由器不支援此屬性,該屬性會被忽略,且不會通告給其他對等體。

在這四類屬性中,有一下幾種常見的BGP屬性,我們需要了解,并記住該屬性的作用。

1.AS_PATH屬性

衆元教育H3CSE20200603班---BGP基本原理之二

AS_PATH屬性為公認必遵屬性,該屬性域訓示出該路由更新資訊經過了哪些AS路徑,主要作用就是保證AS之間無環路。

特點:

  • 當BGP将一條路由通告到其他AS時,便會把自己的AS号添加在AS_PATH清單的最前面。收到此路由的BGP路由器根據AS_PATH屬性就可以知道去目的位址所需要經過的AS。
  • 通常情況下,當一個路由更新到達一個AS的邊界路由器時,如果邊界路由器發現這個AS号在路由的AS路徑屬性中已經存在,邊界路由器會丢棄此路由。
  • AS_PATH屬性可用于路由的選擇與過濾。在其它因素相同的情況下,BGP會優先選擇AS_PATH最短的路由(選擇路徑最短的)。
  • BGP發現者在向EBGP鄰居發送路由更新時修改AS_PATH屬性,在向IBGP鄰居發送時不修改該屬性。

2.NEXT_HOP屬性

NEXT_HOP屬性為公認必遵屬性,它為BGP發言者訓示了去往目的位址的下一跳。

衆元教育H3CSE20200603班---BGP基本原理之二

其下一跳的屬性的取值與IGP的下一跳不一樣,分為四種情況:

  • BGP發言者把自己産生的路由發給所有鄰居時,将把該路由資訊的下一跳屬性設定為自己與對端連接配接的接口位址。
  • BGP發言者把從EBGP鄰居得到的路由發給IBGP鄰居時,并不改變該路由資訊的下一跳屬性,将從EBGP得到的路由的NEXT_HOP直接傳遞給IBGP鄰居。
  • BGP發言者把接收到的路由發送給EBGP對等體時,将把該路由資訊的下一跳屬性設定為本地與對端連接配接的接口位址。
  • 對于可以多路通路的網絡(如以太網或者幀中繼),如果通告路由器和源路由器的接口處于同一網段,則BGP會向鄰居通告路由的實際來源。

注意:需将這四種情況對照上圖仔細了解

3.ORIGIN屬性

ORIGIN屬性是公認必遵屬性,它訓示該條路由的起源,也即這條路由是通過何種方式注入BGP中的。它有三種類型:

  1. IGP:優先級最高,說明路由産生于本AS内。
  2. EGP:優先級次之,說明路由通過EGP學到。
  3. Incomplete:優先級最低,它并不是說明路由不可達,而是表示路由的來源無法确定。例如,引入其他路由協定的路由資訊。

這三種類型的來曆:

  1. BGP把通過network指令指定注入BGP中的路由的ORIGIN屬性設定為IGP。
  2. BGP把通過EGP注入BGP中的路由ORIGIN屬性設定為EGP。
  3. BGP把由IGP協定引入BGP中的路由的ORIGIN屬性設定為Incomplete。

4.LOCAL_PREF屬性

本地優先(LOCAL_PREF)屬性是公認可選屬性,用于在一個AS有多個出口的情況下,判斷流量離開AS時的最佳路由。

衆元教育H3CSE20200603班---BGP基本原理之二

特點:

  • 該屬性隻在本AS内傳播,不傳遞到AS外。
  • 當BGP的路由器通過不同的IBGP對等體得到目的位址相同但下一跳不同的多條路由時,會優先選擇LOCAL_PREF屬性值較高的路由。
  • LOCAL_PREF的屬性值僅僅會影響離開該AS的流量,不會影響進入該AS的流量。
  • 預設情況下,LOCAL_PREF屬性值為100。

5.MED屬性

MED(MULTI_EXIT_DISC)屬性為可選非傳遞屬性。MED屬性相當于IGP使用的路徑成本(Metric),用于EBGP鄰居有多條路徑到達本AS的情況,告訴EBGP鄰居進入本AS的較優路徑。

衆元教育H3CSE20200603班---BGP基本原理之二

特點:

  • 當一個運作BGP的路由器通過不同的EBGP對等體得到目的位址相同但下一跳不同的多條路由時,在其他條件相同的情況下,将優先選擇MED值較小者作為最佳路由。
  • MED值盡僅在相鄰的兩個AS之間傳遞,收到此屬性的AS不會再将其通告給任何第三方AS。
  • 通常情況下,BGP隻比較來自同一個AS的路由的MED屬性值,不比較來自不同AS的MED值,若一定要比較,則需要進行特别的配置。

6.Preferred-value屬性

首選值(Preferred-value)屬性為私有BGP屬性。為從不同對等體接收的路由配置設定不同的Preferred-value值,可以改變從指定對等體學到的路由的優先級。

衆元教育H3CSE20200603班---BGP基本原理之二

特點:

  • 系統會給所有從不同EBGP對等體學來的路由配置設定一個初始Preferred-value值0.
  • 擁有最高Preferred-value值得路由将被選作到達指定網絡得路由。
  • Preferred-value屬性隻在本地有效,不随路由資訊傳播。

二、BGP的選路規則

a)BGP路由處理流程

衆元教育H3CSE20200603班---BGP基本原理之二
  1. 接收路由過濾與屬性設定是BGP發言者在對等體接收到路由後的第一部工作。BGP接收到路由後,根據配置的接收政策對接收到的BGP路由進行比對與過濾(根據路由攜帶的屬性),并對其設定相關的屬性。
  2. 完成了接收政策的比對後,如果有需要,BGP發言者将對路由進行聚合,合并其中的具體路由,依此減少路由表的規模。
  3. 完成了接收政策的比對具體路由合并後,BGP将對接收到的路由進行優選。對于到達同一目的位址的多條BGP路由,BGP發言者隻選擇最佳的路由給自己使用,并将此最佳路由安裝到IP路由表中,稱為有效路由。
  4. 在向BGP對等體釋出路由的時候,BGP發言者需要依據一定的釋出政策,将對已經安裝到自己IP路由表的部分有效路由進行釋出。
  5. 同時,BGP路由器需要執行釋出路由過濾與屬性設定,然後将通過過濾的BGP路由發送給自己的BGP對等體。如果有需要,BGP發言者将對路由進行聚合,合并其中的具體路由,依此減少路由表的規模。

而對于IGP路由,則需要先經過引入政策的過濾和屬性設定,将IGP路由表中的有效路由引入BGP路由表中,然後才能進行釋出路由過濾與屬性設定,并将過濾後的路由發送給自己的BGP對等體。

b)路由優先順序

  1. 首先丢棄下一跳(NEXT_HOP)不可達的路由。
  2. 優選Preferred-value值最大的路由。
  3. 優選本地優先級(LOCAL_PREF)最高的路由。
  4. 依次選擇network指令生成的路由、import-route引入的路由、聚合路由。
  5. 優選AS路徑(AS_PATH)最短的路由。
  6. 依次選擇ORIGIN屬性為IGP、BGP、Incomplete的路由。
  7. 優選MED值最低的路由。
  8. 依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由。
  9. 優選下一跳路徑成本最低的路由。
  10. 優選CLUSTER_LIST長度最短的路由。
  11. 優選ORIGINATOR_ID最小的路由。
  12. 優選Router ID最小的路由器釋出的路由。
  13. 優選位址最小的對等體釋出的路由。

有這麼多條BGP選擇路由的政策可知,BGP協定本身一定能夠選出唯一一條達到目的網段的最優路由。

c)路由釋出政策

  1. 存在多條有效路由時,BGP發言者隻将最優路由釋出給對等體,如果配置了advertise-rib-active指令,則BGP釋出IP路由表中的最優路由;否則,釋出BGP路由表中的最優路由。
  2. BGP發言者隻将自己使用的路由釋出給對等體。
  3. BGP發言者從EBGP獲得的路由會向它所有的BGP對等體釋出(包括EBGP對等體和IBGP對等體)。
  4. BGP發言者從IBGP獲得的路由不會向它的IBGP對等體釋出。
  5. BGP發言者從IBGP獲得的路由會釋出給它的EBGP對等體。
  6. BGP連接配接一旦建立,BGP發言者将把滿足上述條件的所有BGP路由釋出給新對等體。之後,BGP發言者隻在路由變化時,向對等體釋出更新的路由。

最後,BGP的所有基本原理就都在這裡啦,後續還會釋出BGP路由器的基本配置,以及控制BGP路由和它的增強配置,希望看客們在這之前可以好好消化一下這基本原理~

繼續閱讀