自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

人人都想了解的BGP,路由策略這樣處理

網(wǎng)絡(luò) 路由交換
路由協(xié)議,套用IT里面的術(shù)語,實際上就是分布式數(shù)據(jù)庫系統(tǒng),它包含了節(jié)點間的數(shù)據(jù)傳遞和節(jié)點內(nèi)的數(shù)據(jù)處理。對于BGP來說,節(jié)點間基于TCP(端口179)的連接,在這個基礎(chǔ)上,可以構(gòu)建AS間的EBGP,AS內(nèi)的IBGP,IBGP有full mesh,BGP路由反射器等,這些都是BGP節(jié)點之間的連接方式,這次看看BGP router內(nèi)部是如何處理數(shù)據(jù)。

作者簡介:肖宏輝,畢業(yè)于中科院研究生院,8年的工作經(jīng)驗,其中6年云計算開發(fā)經(jīng)驗,OpenStack社區(qū)積極活躍,有超過300個commit和超過30000行代碼的貢獻。目前關(guān)注SDN/NFV等虛擬網(wǎng)絡(luò)技術(shù)。本文所有觀點僅代表作者個人觀點,與作者現(xiàn)在或者之前所在的公司無關(guān)。

路由協(xié)議,套用IT里面的術(shù)語,實際上就是分布式數(shù)據(jù)庫系統(tǒng),它包含了節(jié)點間的數(shù)據(jù)傳遞和節(jié)點內(nèi)的數(shù)據(jù)處理。對于BGP來說,節(jié)點間基于TCP(端口179)的連接,在這個基礎(chǔ)上,可以構(gòu)建AS間的EBGP,AS內(nèi)的IBGP,IBGP有full mesh,BGP路由反射器等,這些都是BGP節(jié)點之間的連接方式,這次看看BGP router內(nèi)部是如何處理數(shù)據(jù)。 

[[212997]]

BGP是一種path vector路由協(xié)議,對比其他類的路由協(xié)議,path vector隨路由攜帶的輔助信息更多,處理也稍微復(fù)雜一些。BGP內(nèi)部處理流程簡單的畫了一下,如下所示,各家的實際實現(xiàn)可能略有不同,但應(yīng)該大同小異。 

在看這個處理流程前,先看看一些相關(guān)概念。

Path Attribute(PA)

Path對應(yīng)的就是route,那顧名思義,這是BGP Route的一些參數(shù)屬性。Path Attribute是BGP的基礎(chǔ)組成元素,它貫穿了整個BGP 路由處理的過程。

首先,BGP節(jié)點間傳遞的BGP message就是由NLRI(Network Layer Reachability Information)和PA組成。這個可以從BGP Update Message看出來。如果只考慮IP路由,那么NLRI就是IP prefix。 

其次,BGP policy engine的處理是圍繞著Path Attribute展開的。第三,BGP best path selection,是根據(jù)PA做的算法。

Path attribute分為4類:

  • Well-known Mandatory: 所有的BGP router必須識別這個屬性,并且所有的BGP Message必須包含這個屬性
  • Well-known Discretionary: 所有的BGP router必須識別這個屬性,BGP Message可以不包含這個屬性
  • Optional Transitive: BGP router可以不識別這個屬性,如果不識別直接無視這個屬性
  • Optional Non-transitive: BGP router可以不識別這個屬性,如果不識別要將這條BGP Message丟棄

常見的BGP Path Attribute如下表所示: 

這里NEXT_HOP也屬于Path Attribute,BGP處理過程中可以修改NEXT_HOP。EBGP router默認會修改NEXT_HOP為自己,IBGP router默認不會修改NEXT_HOP,這在上一篇講過。

Routing Information Base(RIB)

RIB其實是設(shè)備商的術(shù)語?;蛟S不太恰當(dāng),但是Global RIB可以對應(yīng)操作系統(tǒng)里面的路由表。Global RIB和路由表都決定IP packet的三層轉(zhuǎn)發(fā)的路徑。RIB除了存放路由條目,還保存一些路由協(xié)議相關(guān)的輔助信息。除了Global RIB,每個路由協(xié)議都有自己的RIB,這樣,路由協(xié)議可以將一些生(Raw)數(shù)據(jù)與真正應(yīng)用的數(shù)據(jù)進行隔離。BGP維護幾個RIB,包括了:

  • BGP Adjacent In RIB:保存所有接收到的BGP Message,這里可能存在多條BGP Message指向同一個目的IP prefix
  • BGP Local RIB:保存經(jīng)過處理和運算得到的***BGP Message,對于同一個目的IP prefix,只存在一條***的BGP Message
  • BGP Adjacent out RIB:保存將要發(fā)送給BGP Peer的BGP Message

BGP協(xié)議收發(fā)的數(shù)據(jù)不會直接寫到Global RIB里,而是放到了BGP自己的RIB里面,在適當(dāng)?shù)臅r候?qū)懭隚lobal RIB,前面說過,這樣可以實現(xiàn)數(shù)據(jù)隔離,有選擇的將BGP數(shù)據(jù)寫入主路由表。BGP的三個RIB保存著不同處理階段的BGP Message,為不同階段的操作提供數(shù)據(jù)。接下來過一下BGP路由處理過程。

Route Processing

1. BGP Adjacent in RIB 

這一步比較簡單,來者不拒,所有收到的BGP Message都存到了BGP Adjacent in RIB

2.Input Policy 

nput policy會完成兩部分工作,filtering和manipulation。

Filtering會根據(jù)Path Attribute過濾BGP Message,這里需要注意兩個內(nèi)置的過濾,一個是判斷當(dāng)前的AS是否在BGP Message的AS_PATH中,如果在的話,那么這是一條之前已經(jīng)經(jīng)過當(dāng)前AS的Message,這條Message會被過濾。另一個會判斷BGP Message里的NEXT_HOP是否可達,如果不可達,那么這條Message會被標(biāo)成Invalid,也會被過濾。除了內(nèi)置的過濾,用戶(對,就是網(wǎng)工)和控制程序也可以添加過濾規(guī)則,例如通過route-map,access-list,distribution-list等。

Manipulation會修改BGP Message的Path Attribute,這樣可以控制后面的步驟,例如Best path selection。舉個例子,BGP Router從兩個鄰居收到同一個IP Prefix的BGP Message,那么可以通過修改某一個鄰居的BGP Message的PA,使得其中一條BGP Message在下一步中勝出。

3.Best path Selection 

Local Route是本地的并且希望通過從BGP發(fā)布出去的路由。例如思科的設(shè)備,通過network命令可以發(fā)布本地路由,也可以通過redistribution,將IGP的路由重分布到BGP。這些Local Route都將轉(zhuǎn)換成了BGP Message,和經(jīng)過Input policy過濾和修改過的BGP Message,一起參與Best Path Selection。

Best Path Selection是一個根據(jù)Path Attribute運算,從指向同一個目的IP prefix的,多條BGP Message中選出一條***的過程。這個過程不復(fù)雜,但是比較繁瑣,相應(yīng)的介紹也很多了,限于篇幅我就不展開了,感興趣可以看看思科的文檔BGP Best Path Selection Algorithm。

4.BGP Local RIB 

Best Path Selection能確保指向同一個IP prefix只有一條(其實也可以多條,取決于multipath)***的BGP Message,這些BGP Message會存到BGP Local RIB。接下來的處理會分兩條路徑。

***個是寫入到Global RIB,也就是全局路由表。當(dāng)路由器中,沒有其他的路由協(xié)議生成了指向相同目的IP prefix的路由,或者有的話,該路由協(xié)議的Administrative Distance(AD)大于BGP的AD值,那么這個時候BGP Local RIB的路由才會寫入到Global RIB。EBGP的AD值是20,小于大部分路由協(xié)議,IBGP的AD值是200,大于大部分路由協(xié)議。

第二個是輸出到Output Policy,進而發(fā)往其他的BGP Peer。

這兩個路徑互不影響,就算BGP沒有競爭過其他路由協(xié)議,沒有將路由寫到全局路由表,也不影響路由傳遞給其他的BGP Peer。

5.Output Policy 

與Input Policy類似,這里也做filtering和manipulation。

Filtering會根據(jù)Path Attribute過濾BGP Message,可以自己定義,也有BGP程序自帶的過濾。還是以AS_PATH為例,如果目的BGP Peer的AS在BGP Message的AS_PATH中,那么這條BGP Message不會生成對應(yīng)的發(fā)往該BGP Peer的BGP Message。

Manipulation會修改BGP Message的Path Attribute,例如修改MED值,進而生成發(fā)往BGP Peer的BGP Message。

經(jīng)過Output Policy之后,一條BGP Message,會生成針對每一個可以送達的BGP Peer的,多條BGP Message。雖然來自同一個BGP Message,但是這里的每個BGP Message里面包含的Path Attribute可能因為定義策略不一樣。

6.BGP Adjacent out RIB

人人都想了解的BGP,路由策略這樣處理

類似于***步,這部分也簡單,生成好的BGP Message發(fā)往對端的BGP Peer。

***

以上就是BGP路由處理過程,可以看出都是圍繞Path Attribute。如果說BGP基于TCP傳輸,給BGP router間的傳輸帶來可靠性,那么Path Attribute給BGP的應(yīng)用帶來了靈活性。

責(zé)任編輯:未麗燕 來源: SDNLAB
相關(guān)推薦

2015-05-15 10:09:09

程序員

2015-02-10 09:32:20

BGP路由器

2017-03-16 13:03:28

智能技術(shù)人工智能機器視覺

2019-05-16 08:31:43

物聯(lián)網(wǎng)物聯(lián)網(wǎng)開發(fā)IOT

2020-04-02 13:17:24

開發(fā)團隊技術(shù)

2015-08-17 10:50:34

2010-07-05 16:28:18

BGP路由協(xié)議

2010-07-12 16:07:14

BGP路由協(xié)議

2010-06-10 16:16:42

BGP路由協(xié)議

2010-06-18 15:03:12

BGP路由協(xié)議

2011-08-23 09:54:26

路由BGP

2010-06-25 15:07:10

BGP路由協(xié)議

2009-12-22 14:22:14

BGP路由

2013-10-24 09:43:39

路由器

2019-12-04 07:57:22

6G5G網(wǎng)絡(luò)

2010-08-05 13:11:52

2010-06-18 14:18:44

BGP路由協(xié)議

2011-03-14 17:26:29

BGP

2021-02-23 09:28:48

大數(shù)據(jù)數(shù)據(jù)分析

2018-10-09 15:20:57

CIOHRHRM
點贊
收藏

51CTO技術(shù)棧公眾號