01 互聯網是如何誕生的?
一開始,電腦之間互相訪問靠的是網線連接。這樣,電腦能收到在網線上傳輸的所有數據。
但不是每臺電腦都希望收到與自己無關的數據,所以需要“路由器”來將電腦們統一管理和分發,傳送數據到指定的地方。
就像無形之中電腦被分了很多個“組”一樣,這些“組”都使用相同的技術協議進行管理,我們將這樣的“組”稱之為“自治系統(AS)”。
自治系統,顧名思義,就是自己管理自己,一般來說就是由機構或者組織來統一管理自己內部的網絡。現實當中,常見的自治系統有一所大學,一個企業或者一個公司個體。
為了便于理解,我們把自治系統這個概念放大到“忍者世界”的國家層面。
比如中興文檔的數據想要從興之國送去土之國、雷之國、火之國。很明顯要經過其它中間國家。
若數據想經過雨之國,那么雨之國可能會想:“憑什么讓你的數據從我這里通過,我怎么知道你的數據里是不是藏著爆炸符呢?”
而且在實際中,每個自治系統都可能采用不同的數據傳輸手段,這樣通信肯定會受到阻礙,又怎么會發展為現在的互聯網呢?
02 BGP究竟是什么?
為調節這種紛爭,IANA這個機構就出現主持公道了!(IANA就是負責分配IP地址的那個源頭機構)
IANA給每個國家(自治系統)都分配不重復的編號,這些編號可以理解為大家都遵守的和平協議的標識,而這個和平協議,就是BGP(Border Gateway Protocol,邊界網關協議)。
如果每一個國家(自治系統)都使用BGP這個規則來進行數據的傳輸,那么路由器也再不需要把全世界的設備都記下來,只需要把國家(自治系統)的編號記錄下來就可以啦!
那數據是如何在不同自治系統的路由器之間進行傳輸的呢?
那就要說到BGP的兩個分類了:IBGP(Interior Border Gateway Protocol,內部邊界網關協議)和EBGP(External Border Gateway Protocol,外部邊界網關協議),那么他們分別是什么呢?文檔君慢慢跟你道來~
03 IBGP和EBGP有什么區別?
IBGP(Internal BGP)和EBGP(External BGP)從字面意思來看Internal表示向內,External表示向外。
可能粉絲們有疑問BGP本來就是邊界網關協議啊?不就是一種外部網關協議嗎?為什么還要再區分內部和外部呢?
文檔君繼續舉例子,這個問題可以理解為分工合作,EBGP就好比每個國家的外交部,外交部專門和其他國家打交道,獲取信息后傳送給國內的媒體再公布給社會。
相對地,IBGP就可以理解為國內大媒體,將外交部獲得的消息傳遞到國內。
結合上面的例子,繼續來說說EBGP和IBGP有哪些區別呢?
EBGP僅處理自治系統之間的數據傳輸,IBGP僅處理自治系統之中的數據傳輸,就像外交部和國內媒體分工非常明確。
IBGP從EBGP獲得的自治系統路徑,是不會進行更新或者修改的,如果要更新也得由EBGP去更新或者修改,IBGP內部不會獨自修改。
正如國內媒體在得到外交部發布的國際新聞以后,不能自行編造新聞,必須如實傳遞,不然會使得國內民眾的信息不對稱。
EBGP是不需要進行全互聯的。比如興之國要和火之國通信,中間相隔其他國家,如果通過另外架設網絡來繞過中間國家,顯然是不劃算的,也是不現實的。但是如果中間國家也有使用EBGP的話,就可以透過中間國家來傳遞數據了,這樣就不需要進行全互聯了。
04 IBGP與IGP有什么區別呢?
這個時候可能又有同學疑惑,有了IBGP,是不是不需要IGP了呢?
當然不是!
IBGP與IGP重點不同,我們在學習IGP時,我們了解它有鼎鼎有名的幾員大將,如OSPF、IS-IS、RIP……。IGP的重點在于自治網絡中發現和計算路由,而IBGP在于控制整體路由的傳播。
延用上文的例子。
IBGP負責國際新聞在國內的整體流通,就好比國內非常有話語權的大媒體,但是具體如何傳遞給民眾并不負責。
而IGP就負責消息在國內各個小媒體上的傳播,并盡力于如何讓這些消息傳播的更快更準確,所以IBGP和IGP缺一不可。
讀到這里,大家已經可以分清了BGP家族中的EBGP,IBGP,IGP了吧!那我們再詳細說說BGP是如何工作的?
05 BGP是如何工作的?
這兩個BGP建立會話的時候會有四種基本報文類型。
建立連接——Open報文:Open報文是TCP建立連接后發送的第一個報文,用來與其他設備或自治系統建立連接。
交換信息——Update報文:Update報文用于在設備或自治系統之間交換路由信息。
檢測狀態——Notifiaction報文:當BGP檢測到錯誤狀態時,就向對等體發出Notifiaction報文,之后BGP連接會自動中斷。
保持連接——Keepalive報文:BGP會周期性地向設備或自治系統發出Keepalive消息,用來保持連接的有效性。
為方便執行會話,BGP將交互過程分為以下六種狀態:
Idle(空閑):為初始狀態,復位TCP連接的重連計時器(通常為60 s),準備發起TCP連接。路由器查找路由表,是否有到達鄰居的路由。
Connect(連接):BGP發送第一個TCP連接,若收不到鄰居發來的TCP應答報文,收不到應答的時間超過重連計時器規定的時間,就會重新發起TCP連接,并繼續保持在Connect狀態。
如果TCP連接成功,就轉到Open sent狀態。
如果TCP連接失敗,就轉為Active狀態。
Active(行動):當可以發送TCP連接,也可以收到鄰居的應答報文,但是依然無法建立起TCP三次握手,就會進入到此狀態(TCP三次握手參見往期推文三次握手,四次揮手,原來TCP這么有禮貌!)。在此狀態,BGP總是試圖建立TCP連接。
如果TCP連接建立成功,就轉到Open sent狀態。
如果TCP連接建立失敗,不停重新發起TCP連接,就退回到Connect狀態,并在計時器結束后,轉回Active狀態。
Open sent(Open發送):TCP連接成功,發送第一個Open報文,并等待接收鄰居的Open報文。
OPEN confirm(Open證實):表示收到鄰居的Open報文,等待Keepalive報文或者Notifiaction報文,如果沒有收到又會進入Active狀態。
Established(已建立):最后BGP會話連接的時候就是Established狀態了。之后可以通過Keepalive報文進行鄰居保活。
其實說了這么多,BGP這個協議的核心也是讓數據在跨域傳輸的時候選擇最優的路徑,要選擇最優的路徑,就必須考慮非常多的屬性、時間等因素。
這里提及BGP最重要的6個屬性:
本地偏好(local Perference)——越大越優
這個屬性會發送給自治系統里所有的IBGP路由器,也就是這個屬性在自治系統里使用,并且提供離開自治系統的最優路徑,這個屬性值同樣是越大路徑越優。
舉個例子,選擇市內交通工具的場景就類似于比較本地優先級~
MED——越小越優
說的屬性就是MED( Multiple Exit Discriminator ,多出口鑒別器),如果你的相鄰自治系統有兩個或者多個BGP,路由和你的自治系統相連,這個時候MED屬性就可以定義哪條路徑更優,使用MED屬性值來標識這些屬性值越低,表示為更優的路徑。
MED屬性特點如下:
用于向外部對等體指出進入AS的首選路徑。
僅在相鄰兩個AS之間傳遞。
與local Perference分別指引進、出AS的路徑。
同理,選擇市間交通工具的場景就類似于比較MED屬性~
自治系統路徑(AS path)——越少越優
AS path就是路由經過的所有AS的集合喔!
當前我們需要跨越AS進行通信的時候,將本地AS號添加到列表的最前面就可以啦!
AS path屬性可以避免形成路由環路,還可以用于路由的選擇和過濾。那么AS path屬性是如何進行路由選擇和過濾的呢?
優先級屬性(origin):
IGP>EGP>INCOMPLETE
源屬性是有優先級的喔!IGP優先級最高,EGP次之,Incomplete優先級最低。
NEXT HOP屬性
下一跳屬性定義了到達目的地下一跳的設備IP地址,是告訴別人去往目的地的下一個“坐標”。比如:當我們跳格子的時候,首先要看到下一個格子的位置。對于路由器來說,要首先確認下一個格子(設備)的IP地址,才可以發送數據到這個設備。
具體還可以分為以下情況:
COMMUNITY屬性
團體屬性根據某些特征對路由信息進行分類,與AS無關。常被用來簡化路由策略的應用和降低維護管理的難度。
有了這些屬性以后,我們就可以使用算法配合這些屬性,算出最佳的路徑。
當然BGP并不是一個自動配置的協議,而是需要手動配置的啊!
06 BGP有哪些新發展?
接下來我們就把話筒遞給BGP,讓他來介紹一下BGP有哪些新發展?
信息搜集有途徑——BGP Link State
經過認真的深造學習,BGP不僅擴展上文提到的屬性,還定義了新的link-state NLRI,一致通過了地址族信息AFI/SAFI為163888/71的封裝標準,實現了網絡拓撲收集的一種新方式——BGP-LS!使得拓撲的收集更為高效!
大型組網有對策——Segment Routing
網絡安全有保障——BGP Flow Specification
DoS(Denial of Service)/DDos(Distributed Denail of Service)攻擊對網絡安全是一個重大威脅,它就像堵車一樣會導致網絡擁塞或者服務器CPU占用過高而無法為用戶提供服務。而傳統的流分類、重定向技術都有一定的缺陷。
BGP為了解決傳統預防方法的缺陷,通過NLRI(Network Layer Reachability Information,網絡層可達信息)屬性攜帶流量匹配信息,AFI/SAFI為1/133,擴展了團體屬性來攜帶數據流處理動作,比如對流量進行限速、引流、丟棄等。
極簡演進有方向——EVPN
互聯網業務高速發展,數據中心內服務器數量的大量增加,虛擬機的產生使得二層域內MAC數量劇增,傳統二層以太網VPN技術VPLS不能滿足建立超大型數據中心的需要。
審核編輯:劉清
-
路由器
+關注
關注
22文章
3707瀏覽量
113543 -
TCP
+關注
關注
8文章
1350瀏覽量
78986 -
計時器
+關注
關注
1文章
419瀏覽量
32634 -
BGP
+關注
關注
0文章
83瀏覽量
15317
原文標題:BGP、EBGP、IBGP、IGP還沒搞清?BGP又有哪些新發展?
文章出處:【微信號:ztedoc,微信公眾號:中興文檔】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論