是的,BGP是外部網(wǎng)關路由協(xié)議,是運行于TCP上的一種自治系統(tǒng)的路由協(xié)議,用來在AS之間傳遞路由信息。BGP是唯一一個用來處理像因特網(wǎng)大小的網(wǎng)絡的協(xié)議,也是唯一能夠妥善處理好不相關路由域間的多路連接的協(xié)議。
本教程操作環(huán)境:windows10系統(tǒng)、Dell G3電腦。
外部網(wǎng)關協(xié)議(Exterior Gateway Protocol)是AS之間使用的路由協(xié)議,最初于1982年由BBN技術公司的EricC.Rosen及DavidL.Mills提出。其最早在RFC827中描述,并于1984年在RFC904中被正式規(guī)范。EGP是一種簡單的(網(wǎng)絡)可達性協(xié)議,其與現(xiàn)代的距離-矢量協(xié)議和路徑-矢量協(xié)議不同,它僅限適用于樹狀拓撲的網(wǎng)絡。
由于EGP存在很多的局限性,IETF邊界網(wǎng)關協(xié)議工作組制定了標準的邊界網(wǎng)關協(xié)議(BGP),當前被廣泛使用。
BGP的介紹
BGP是外部網(wǎng)關路由協(xié)議,用來在AS之間傳遞路由信息;BGP協(xié)議屬于TCP協(xié)議,端口號為179
邊界網(wǎng)關協(xié)議(BGP)是運行于 TCP 上的一種自治系統(tǒng)的路由協(xié)議。 BGP 是唯一一個用來處理像因特網(wǎng)大小的網(wǎng)絡的協(xié)議,也是唯一能夠妥善處理好不相關路由域間的多路連接的協(xié)議。 BGP 構建在 EGP 的經(jīng)驗之上。 BGP 系統(tǒng)的主要功能是和其他的 BGP 系統(tǒng)交換網(wǎng)絡可達信息。網(wǎng)絡可達信息包括列出的自治系統(tǒng)(AS)的信息。這些信息有效地構造了 AS 互聯(lián)的拓撲圖并由此清除了路由環(huán)路,同時在 AS 級別上可實施策略決策。
BGP特點
(1)是一種增強的路徑矢量路由協(xié)議,擁有可靠的路由更新機制;
(2)具備豐富的Metric度量方法;
(3)無環(huán)路協(xié)議設計;
(4)為路由條目附帶多種屬性信息;
(5)支持CIDR(無類別域間選路);
(6)豐富的路由過濾和路由策略;
(7)無需周期性更新:
(8)路由更新時只發(fā)送增量路由;
(9)周期性發(fā)送KeepAlive報文以保持TCP的連通性。
擴展:
- BGP鄰居關系就是對等體關系;
- BGP鄰居就是BGP對等體(peer)。
BGP消息類型
- 運行BGP的路由器稱之為BGP Speaker,BGP Speaker之間將會交換五種類型的報文,其中OPEN報文,KEEPALIVE報文以及NOTIFICATION報文用于鄰居關系的建立和維護。
BGP的五種報文如下:
- Open:負責和對等體建立鄰居關系;主要包括BGP版本、AS號等信息;試圖建立BGP鄰居關系的兩個路由器在建立了TCP會話連接之后開始交換OPEN信息以確認能否形成鄰居關系。
- KeepAlive:該報文在對等體之間周期性的發(fā)送,用于判斷對等體之間的可達性,實現(xiàn)BGP鄰居關系的維護;
- Update:該報文用于在BGP對等體之間用于交換路由信息。其中包括撤銷路由信息和可達路由信息及其各種路由屬性;
- Notification:BGP的差錯檢測機制;一旦檢測帶任何形式的差錯,BGP Speaker會發(fā)送一個NPTIFICATION報文,隨后與之相關的鄰居關系將被關閉;
- Route-refresh:用來通知BGP對等體自己支持路由刷新能力。
BGP數(shù)據(jù)庫類型:
- IP路由表————–IGP
- BGP路由表———–EGP
BGP的6個狀態(tài)機
- Idle–空閑:Idle是BGP連接的第一個狀態(tài),在空閑狀態(tài),BGP在等待一個啟動事件,啟動事件出現(xiàn)以后,BGP初始化資源,復位連接重試計時器,發(fā)起一條TCP連接,同時轉入Connect狀態(tài);
- Connect–連接:在Connect狀態(tài),BGP發(fā)起第一個TCP連接,如果連接重試計時器(Connect-Retry)超時,就重新發(fā)起TCP連接,并繼續(xù)保持在Connect狀態(tài),如果TCP連接成功,就轉入OpenSent狀態(tài),如果TCP連接失敗,就轉入Active狀態(tài);
- Active–活躍:在Active狀態(tài),BGP總是在試圖建立TCP連接,如果連接重試計時器超時,就會退回到Connect狀態(tài),如果連接TCP成功,就轉入OpenSent狀態(tài)。如果TCP連接失敗,就繼續(xù)保持在Active狀態(tài),并繼續(xù)發(fā)起TCP連接;
- OpenSent–打開消息已發(fā)送:在OpenSent狀態(tài),TCP連接已經(jīng)建立,BGP也已經(jīng)發(fā)送了第一個Open報文,剩下的工作,BGP就在等待其對等體發(fā)送Open報文。并對收到的Open報文進行正確性檢查,如果有錯誤,系統(tǒng)就會發(fā)送一條出錯通知消息并退回到Idle狀態(tài),如果沒有錯誤,BGP就開始發(fā)送Keepalive報文,并復位Keepalive計時器,開始計時。同時轉入OpenConfirm狀態(tài);
- OpenConfirm–打開消息確認:在OpenConfirm狀態(tài),BGP發(fā)送一個Keepalive報文,同時復位保持計時器,如果收到了一個Keepalive報文,就轉入Established階段,BGP鄰居關系就建立起來了。如果TCP連接中斷,就退回到Idle狀態(tài);
- Established–連接已建立:在Established狀態(tài),BGP鄰居關系已經(jīng)建立,這時,BGP將和它的鄰居們交換Update報文,同時復位保持計時器。