BGP鄰居建立過程及報文詳解

2021-06-07 06:47:31 字數 3430 閱讀 5403

bgp鄰居建立過程及報文詳解

bgp是基於tcp的,要建立鄰居首先得建立tcp連線,所以要保證鄰居位址可達,可以利用igp協議來完成鄰居的連通性。

所以我們在r1和r2上分別配置靜態路由完成鄰居連通性

r1:ip route 10.10.10.10 255.255.255.255 192.168.1.2

r2: ip route 1.1.1.1 255.255.255.255 192.168.1.1

bgp配置如下:

r1:

router bgp 10                        //啟用bgp協議 as為10

no auto-summary           //關閉自動彙總

no synchronization          //關閉同步(ios 12.2後都是預設關閉)

neighbor 10.10.10.10 remote-as 10  //指定鄰居和鄰居as

neighbor 10.10.10.10 update-source loop 0   //指定更新源否則(預設

為介面ip)

network 20.20.20.20 mask 255.255.255.255       //把路由發布到bgp中(有靜態,半動態,純動態注入) 

r2:

router bgp 10                        //啟用bgp協議 as為10

no auto-summary           //關閉自動彙總

no synchronization          //關閉同步(ios 12.2後都是預設關閉)

neighbor 1.1.1.1 remote-as 10      //指定鄰居和鄰居as

neighbor 1.1.1.1 update-source loop 0   //指定更新源否則(預設為介面ip)

注意:使用ibgp時預設跳數為255,ebgp的預設跳數為1,如果使用ebgp的looback位址建鄰居,需手工指定跳數

neighbor 10.10.10.10 ebgp-multihop 2 //後面接的是跳數1-255

bgp路由的發布:

靜態注入:手工配置的靜態路由,再由network發布到bgp中(如上面r1)

半動態注入:通過igp協議學習到的路由,再通過network發布到bgp中

純動態注入:通過把igp路由重發布到bgp中 

bgp鄰居建立狀態:

idle:初始狀態

connect:bgp等待tcp連線的建立

active:tcp連線失敗,重新建立tcp連線

opensent:tcp建立成功,傳送open報文

openconfirm:收到正確的open報文

established:bgp鄰居建立成功

tcp三次握手過程:

bgp鄰居建立過程詳解:

1.r1向指定的鄰居傳送tcp連線請求包,sip=1.1.1.1 dip=10.10.10.10 sp=40029 dp=179 syn=1,seq=0;

2.r2收到連線請求後同意則回應sip=10.10.10.10 dip=1.1.1.1 sp=179 dp=40029 syn=1,ack=1,確認號=1,seq=0;

3. r1收到

連線請求確認後再

後傳送確認,連線建立。sip=1.1.1.1 dip=10.10.10.10 sp=40029 dp=179 ack=1,確認號=1 seq=1;

4.tcp連線建立後,r1傳送bgp open報文(型別1)。my as=10,hold time=180s(哪邊先確認tcp連線成功就傳送open報文)

bgp identifier=1.1.1.1(bgp標識,相當於ospf的router-id,loopbackip最大的位址)

bgp報文頭部格式

:marker(16位元組):用於bgp認證,不使用認證時所有位元為1

length(長度):2位元組 type(型別):1位元組

型別1:open協商bgp引數,建立鄰居關係

型別2:update傳播bgp路由

型別3:notification報告錯誤,中止鄰居關係

型別4:keepalive維持鄰居關係,週期為60s

open報文格式:

version(版本):1位元組,現在為版本4

my as (自己的as號):2位元組,上面的as為10

hold time(超時):2位元組,預設為180s

bgp identiffer(標識):4位元組,為loopback中最大的ip

optional parameters length:可變長度(可先內容)

5.tcp連線成功r2也發外送open報文my as=10,hold time=180s

bgp identifier=10.10.10.10(loopback位址)

open報文格式:

version(版本):1位元組,現在為版本4

my as (自己的as號):2位元組,上面的as為10

hold time(超時):2位元組,預設為180s

bgp identiffer(標識):4位元組,為loopback中最大的ip

optional parameters length:可變長度(可先內容)

6.bgp鄰居建立好後,每隔60s傳送keepalive報文

keepalive報文格式為bgp的報文頭

,沒有報文體,每60s傳送。

7.當有路由被發布到bgp中(增量更新,只攜帶增加的路由資訊)或有路由失效時,傳送update報文:

update報文格式:

unfeasible routes length(2位元組):不可到路由長度,如沒有則為0

total path attribute length(2位元組):bgp屬性長度 屬性有很多種,下次再詳細講解

path attributes(可變長):bgp路徑屬性 裡面有經過的as號

nework layer reachability information(可變長):可達路由資訊,裡面包含字首長度和網路號

8.當路由失效時,也傳送update報文:

update報文格式:

unfeasible routes length(2位元組):不可到路由長度,這路由有不可達路由

withdrawn routes:撤消路由條目,包括字首長度和網路號

total path attribute length(2位元組):這裡為0,沒有資料

原文詳見:

BGP建立鄰居過程

1 idle 此狀態不允許bgp連線,不分配網路資源 2 connection 此時已完成3次握手 3 active connection失敗或者open報文傳送沒有響應進入active狀態 4 openset connection後會傳送open報文,相當於進行同步as 版本號 keepalive...

bgp 建立鄰居傳送的報文 BGP協議,鄰居建立

1.bgp 邊界閘道器路由協議 boder gateway protocol 特點 屬於外部閘道器路由協議 針對大型網路 大型跨國集團 運營商 國與國之間的路由 2.路由協議分類 內部閘道器路由協議igp rip ospf isis eigrp思科私有 外部閘道器路由協議egp egp 早期淘汰 b...

BGP 鄰居建立

bgp鄰居發現如下圖 先啟動bgp的一端發起tcp連線,rtb先啟動bgp協議,rtb使用隨機埠號向rta的179埠發起tcp連線。bgp報文如下 前三個包不難看出並沒有包含任何bgp資訊。bgp協議被設計執行在as之間傳遞路由,as之間是廣域網鏈路資料報在廣域網上傳遞是可能出現不可 的鏈路擁塞或丟...