<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          6 分鐘看完 BGP 協(xié)議。

          共 2648字,需瀏覽 6分鐘

           ·

          2022-07-04 22:52

          之前我們聊 RIP 、OSPF 協(xié)議都是基于 AS 即自治系統(tǒng)內(nèi)的協(xié)議,可以把它們認為是域內(nèi)路由協(xié)議;而下面我們要聊的就是 AS 之間的協(xié)議了,這也叫做域間路由協(xié)議,或者叫做外部網(wǎng)關協(xié)議,其最著名的一個協(xié)議就是 BGP協(xié)議,目前使用最多的協(xié)議版本就是 BGP 的第四個版本 BGP - 4,簡稱為 BGP ( Border Gateway Protocol )。

          在 RIP 和 OSPF 這些協(xié)議中,是由 IP 的網(wǎng)絡地址進行路由控制,而 BGP 協(xié)議則需要通過整個互聯(lián)網(wǎng)進行路由控制,范圍要大很多。

          BGP 的環(huán)境與 RIP、OSPF 的環(huán)境不一樣,主要在于互聯(lián)網(wǎng)的規(guī)模過于龐大, 使得自治系統(tǒng)之間的路由選擇比較困難。互聯(lián)網(wǎng)上的路由器對任何 IP 地址都能通過路由表找到它的目的網(wǎng)絡。這是一個非常龐大的集合,如果使用鏈路狀態(tài)協(xié)議 RIP 和 OSPF 的話,必須要維護一個非常大的了路由集合,一方面路由表檢索起來效率很低,而且如此龐大的數(shù)據(jù)項也不方便維護。還有一點是每個路由器的 metric 不一樣,有可能這個 metric 是經(jīng)過了 100 個路由,而那個鏈路到達 100 個路由可能就直接報錯了。

          而且自治系統(tǒng)間的路由選擇必須考慮策略問題,這些策略需要把政治、地緣、安全或者經(jīng)濟方面考慮在內(nèi)。

          由于上面這些特殊情況的存在,BGP 協(xié)議只是滿足選擇一條到達目的網(wǎng)絡比較好的路由,而非選擇一條最佳路由,BGP 采用了路徑向量路由選擇協(xié)議,它與 RIP 和 OSPF 有很大的差別。

          在 BGP 協(xié)議中,每個 AS 自治系統(tǒng)內(nèi)部都有許多 BGP 邊界路由器,這個 BGP 邊界路由器就相當是自治系統(tǒng)內(nèi)部的發(fā)言人。不同 AS 之間的 BGP 邊界路由器如果要交換路由信息的話,就需要先建立 TCP 連接,然后在此連接上交換  BGP 報文以建立 BGP 會話,通過 TCP 能夠提供可靠的服務。兩個交換報文的 BGP 邊界路由器都被稱為彼此的臨站(天使)或者對等站。

          下圖是一個使用了 BGP 邊界路由器和 AS 的關系示意圖:

          BGP 所交換的網(wǎng)絡可達性信息就是要到達某個網(wǎng)絡所要經(jīng)過的一系列的路由。當各個 BGP 邊界路由器一旦交換了可達性信息之后,就會選擇出來一條到達各個 AS 比較好的路由路徑。

          BGP 支持無分類域間路由選擇 CIDR,因此 BGP 的路由表也就應當包括當前目的網(wǎng)絡前綴、下一跳路由器,以及到達目的網(wǎng)絡所經(jīng)過的 AS 。

          在 BGP 剛剛運行時,BGP 的臨站是交換整個 BGP 路由表,以后只要在發(fā)生變化時更新有新變化的部分即可。這樣對節(jié)省網(wǎng)絡帶寬和減少路由器開銷有很大好處,這個特性和 OSPF 非常相似。

          BGP - 4 主要有下面幾類報文類型:

          • OPEN ( 打開 )報文,用來和相鄰的 BGP 區(qū)域邊界路由器建立關系,進行通信初始化。
          • UPDATE ( 更新 ) 報文,用來通告路由信息,以及列出需要更新的多條路由。
          • KEEPALIVE ( 保活 ) 報文,用來周期性的證實臨站的連通性。
          • NOTIFICATION ( 通知 ) 報文,用來發(fā)送檢測到的差錯。

          如果兩個臨站屬于兩個不同的自治系統(tǒng),而且其中一個臨站打算和其他臨站進行路由交換的時候,這時候應當有一個路由商量的過程。商量的過程包括臨站路由器是否還能夠接受額外的路由信息。因此一開始進行商談的時候應該要先發(fā)送 OPEN 報文,如果臨站可以接受這種關系,就用 KEEPALIVE 報文響應。響應完成后,兩個臨站就算是建立關系了。

          關系建立之后,是需要相互維持的,這就和情侶之間確定關系之后,你作為老爺們總不能三天兩頭不搭理人家吧?俗話說的好,感情是需要維持的,那么這個路由關系也是需要維持的。通信雙方中的每一方都需要確信對方是否已經(jīng)存在,因此兩個 BGP 邊界路由器需要定期交換 KEEPALIVE 報文,一般這個定期的時間就是 30 s。

          BGP 邊界路由器可以使用 UPDATE 報文來更新路由:包括撤掉以前通知過的路由和增加新的路由。撤銷路由時一次可以撤銷多條,但是新增路由一個 UPDATE 報文只能增加一條。

          當然在 BGP 中不存在 "好消息傳播快壞消息傳播慢" 的問題( 感覺 RIP 的這個問題被玩出梗了 )。因為 BGP 邊界路由器不只有一個,而且當某個路由器或者鏈路出現(xiàn)故障時,由于 BGP 邊界路由器可以不止從一個臨站獲得路由信息,因此很容易選出新的路由。

          下面是 BGP 的報文格式:

          上面介紹的四種報文類型它們具有通用的報文首部,首部為 19 字節(jié),通用首部主要分為三個字段。

          • 標記 marker 字段為 16 字節(jié)長,用來鑒別收到的 BGP 報文,如果不使用鑒別,標記字段要置為全 1。
          • 長度字段指出包括通用首部在內(nèi)的整個 BGP 報文的長度,以字節(jié)為單位,最小值是 19,最大值是 4096.
          • 類型字段的值為 1 到 4,分別對應上面報文的介紹順序。

          OPEN 報文共有 6 個字段,如下圖抓包所示

          前三個字段是 BGP 通用報文首部,下面的幾個字段依次是 Version 版本 ( 1 字節(jié),值為 4  ), My AS 本自治系統(tǒng)號( 2 字節(jié),使用的是全球唯一的 16 位系統(tǒng)號 ) , Hold Time 保持時間 ( 2 字節(jié),以秒計算的保持為臨站關系的時間 ),BGP Identifier BGP 標識符 ( 4 字節(jié),路由器的 IP 地址 ),下面是可選長度和可選參數(shù)。

          KEEPALIVE 報文只有 BGP 19 字節(jié)的通用首部。

          UPDATE 報文有五個字段,如下圖所示

          報文中的 Unfeasible routes length 表示不可行路由長度,后面有個字段報文沒有列出來,就是 Withdrawn Routes ,要撤銷的路由列表,后面的 Total Path Attribute Length 表示路徑屬性總長度,后面的 Path attributes 就表示路徑屬性,最后的 NLRI 標識發(fā)出這個報文的網(wǎng)絡。

          NOTIFICATION 報文有三個字段,如下圖所示

          主要包括差錯代碼 ( 1 字節(jié) ),差錯子代碼 ( 1 字節(jié) ) ,后面還有差錯數(shù)據(jù)。

           往期推薦 

          ??

          《On Java》值得讀嗎?

          萬字長文爆肝路由協(xié)議!

          DNS,給你安排明白了!

          Java 中的語法糖,真甜。

          10 分鐘聊聊計算機

          計算機的本質(zhì)是哲學。


          瀏覽 41
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产Avaaa | 欧美操逼免费毛片视频 | 亚洲中文字幕免费在线 | 激情网五月 | 久久综合婷婷国产五区 |