BGP基礎(chǔ)之路由宣告

bgp 路由宣告

參考

BGP數(shù)據(jù)庫

  1. IP路由表(IP-RIB): 全局路由信息庫, 包括所有IP路由信息
  2. BGP路由表(Loc-RIB): BGP路由信息庫, 包括本地BGP Speaker(運(yùn)行了BGP的網(wǎng)絡(luò)設(shè)備)選擇的路由信息。存放的是BGP所有的路徑信息包括最優(yōu)的和不是最優(yōu)的路徑路徑都存放在這里。 是已經(jīng)處理過的路由
  3. 鄰居表: 對等體鄰居清單列表
  4. Adj-RIB-In: 對等體宣告給本地Speaker的未處理的路由信息庫, 是對等體發(fā)送過來的還未處理過的路由表項(xiàng)
  5. Adj-RIB-Out: 本地Speaker宣告給指定對等體路由信息庫,自己要發(fā)送哪些路由項(xiàng)給對等體

BGP路由處理數(shù)據(jù)流

<img src="https://hexo-1234.pek3b.qingstor.com/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/BGP/BGP%E8%B7%AF%E7%94%B1%E4%BF%A1%E6%81%AF%E5%A4%84%E7%90%86%E6%95%B0%E6%8D%AE%E6%B5%81.png" alt="BGP路由處理數(shù)據(jù)流" style="zoom:50%;" />

初始化拓?fù)?/div>

上面綠色線指的是 OSPF 類型的 IGP 協(xié)議

紅色虛線是 IBGP pper

EBGP 有紅色文字標(biāo)識

BGP路由通告原則一

  1. 連接一建立established階段, BGP Speaker將把自己所有BGP路由通告給新對等體(新加入的 peer,會獲得所有路由信息)
  2. 多條路徑時, BGP Speaker只選最優(yōu)的給自己使用 (選擇最優(yōu)路徑)
  3. BGP Speaker只把自己使用的最優(yōu)路由通告給對等體。 通過display bgp routing-table展示出來的路由, 最左側(cè)顯示為*>,箭頭>的為最優(yōu)的路由, 則只會傳遞最佳路徑給對等體。(傳遞最優(yōu)路徑)

BGP路由通告原則二

  1. BGP Speaker(R4)從EBGP(R5)獲得的路由會向它所有BGP對等體通告(包括EBGP(R6)和IBGP(R2))

    • 從 EBGP 學(xué)來的路由信息,會告知所有的 EBGP 和 IBGP
  2. IBGP鄰居(一個AS內(nèi))在路由通告的時候, 不修改下一跳。 —— 會導(dǎo)致無法順利傳輸數(shù)據(jù)包,因?yàn)椴桓淖兊南乱粭l不可達(dá)

    • 在從EBGP學(xué)來的路由在發(fā)給IBGP時, 不改變下一跳。 比如下圖R4從R5上學(xué)習(xí)到192.168.1.0/24這條路由, 則R4上就將這個目的地址的下一跳設(shè)置為BGP PEER為R5的10.10.5.5(因?yàn)槭菑腞5學(xué)來的, 回去肯定也是從R5)。

      但是R4發(fā)給IBGP(R2)時【通過BGP peer】, 其發(fā)的路由下一跳還是10.10.5.5(R2上display bgp routing-table查看), 但是R2是不知道10.10.5.5在哪, 會認(rèn)為這R4發(fā)過來的路由不可用。

      此時需要在R4上加一條配置, 將向IBGP傳遞學(xué)習(xí)到的路由的下一跳改成R4自己的BGP PEER 10.10.4.4。 R4上操作,保證IBGP下一跳可達(dá)

    • 解決方法:兩種修改方法,

      • 將對端發(fā)過來的下一跳改成自己: peer xxxx next-hop-local
      • 將IBGP內(nèi)的路由和EBGP間的靜態(tài)路由注入到IBGP內(nèi)部路由協(xié)議系統(tǒng), 不保證來回可通

BGP路由通告原則三

  1. BGP Speaker從IBGP獲得的路由不會通告給它的IBGP鄰居: 防止環(huán)路的產(chǎn)生。

如下圖R3和R5從R2學(xué)習(xí)的R1通告的路由192.168.1.0/24就不會發(fā)給R4。

這就要求一個AS內(nèi)的所有IBGP設(shè)備全互聯(lián), 如圖中的AS200中所有IBGP設(shè)備R2/R3/R4/R5要全互聯(lián)。但是這樣就會當(dāng)AS內(nèi)的IBGP設(shè)備過多時, 一個設(shè)備維護(hù)TCP連接變得很多。解決方有路由反射器和聯(lián)盟。

環(huán)路解釋:

假如會通告給它的IBGP鄰居,IBGP間可以傳遞路由: R2從R1學(xué)來的路由就會R2–>R3–>R4–>R5—R2形成環(huán)路

【為什么呢?

  • 就是首先 R2 從 R1 學(xué)來路由信息,那么在 R2 上此路由的下一跳為 R1

  • 正常情況:接下來 R3 和 R5 會從 R2 學(xué)習(xí)到此路由,為了順利傳輸,R3 和 R5 會記錄此路由的下一跳為 R2

    • 若是可以傳遞,接下來R3 和 R5會將此信息傳遞給 R4,R4 隨便記錄一下此路由信息的下一跳為 R3 或 R5 ,這個算正常
  • 環(huán)路情況:但 若 R3 和 R5 會從 R2 學(xué)習(xí)此路由時,R5 丟失了這條信息或沒有學(xué)到,那么只有 R3 學(xué)到,R3 會記錄此路由的下一跳為 R2

    • 若是可以傳遞,R3 會 傳遞給 R4 ,R4 記錄下一跳為 R3

    • R4 會傳遞給 R5,R5 記錄下一跳為 R4

    • R5 會傳遞個給 R2,R2 記錄下一跳為 R5

    • 因此便形成了環(huán),R2–>R3–>R4–>R5—R2

如果一個目的地址是AS100的192.168.1.1的數(shù)據(jù)包從AS400發(fā)到R3且R1與R2間斷了, 則出現(xiàn)R3-R2,R2發(fā)現(xiàn)R1不通了, 開始走環(huán)路R5–>R4–>R3, 這樣數(shù)據(jù)包就出不去了

通告原則3拓?fù)?/div>

BGP路由通告原則四

  1. 下圖BGP Speaker(R5)從IBGP(R2)獲得的路由是否通告給它的EBGP對等體(R6)要依IGP(AS)和BGP同步的情況來決定。比如R2從R1上學(xué)到一條192.168.20.0/24的路由, 然后傳遞給R5, 此時R5是將這條路由通告給R6就要根據(jù)同步情況。

同步理解:

下圖R5上運(yùn)行的IGP協(xié)議(OSPF等)是否學(xué)習(xí)到了192.168.20.0/24這條路由(沒有)?

學(xué)習(xí)到了,則IGP和R2傳遞過來的BGP一致,是同步的, 此時這條路由會從R5(IBGP)通告給R6(EBGP)。 反之不同步則不會通告。

現(xiàn)在默認(rèn)關(guān)閉同步功能, 只要是最佳路徑IBGP都通告給相連的EBGP設(shè)備。

同步指的是 IGP 協(xié)議獲得的信息 要和 BGP 協(xié)議獲得的信息是一致的

可通過display th返回信息如下undo synchronization 即為關(guān)閉了同步, 不會將bgp路由發(fā)給R6

  • 關(guān)閉同步后想要AS實(shí)現(xiàn)BGP轉(zhuǎn)發(fā)的前提: 同一AS內(nèi)的所有設(shè)備都要運(yùn)行BGP協(xié)議并全互聯(lián)才行

為什么要同步呢?

  • 因?yàn)槿缦聢DR2和R5運(yùn)行BGP協(xié)議,關(guān)閉同步后想要AS實(shí)現(xiàn)BGP轉(zhuǎn)發(fā)的前提: 同一AS內(nèi)的所有設(shè)備都要運(yùn)行BGP協(xié)議并全互聯(lián)才行, 否則BGP在AS內(nèi)走不通。

  • 實(shí)踐模擬:

    • 因?yàn)槟J(rèn)是關(guān)閉同步的, 需要新增加AS加入EBGP連接,獲取已有的全量bgp路由信息。
    • 現(xiàn)有環(huán)境AS200和AS300通過R5和R6進(jìn)行EBGP連接, R6上有一條BGP路由192.168.1.0/24并且已經(jīng)傳遞到AS200內(nèi)的IBGP設(shè)備R2和R5。 新增一個AS100, 讓其和AS200通過R1和R2進(jìn)行EBGP連接, 此時第一次全量BGP同步R2會將AS300的BGP路由192.168.1.0/24發(fā)給AS100的R1。 在R1上新增一個loopback接口13.13.13.1/24并將其路由加入到BGP中, 會發(fā)現(xiàn)AS200中IBG設(shè)備都有該BGP路由, 由于關(guān)閉了同步,該路由不會出現(xiàn)在AS300的R6上(原則體現(xiàn))。 現(xiàn)在從R1上ping AS300中的192.168.1.1, 在R2的g0/0/0口和g0/0/1口分別抓包, 發(fā)現(xiàn)發(fā)往R3的數(shù)據(jù)包沒有響應(yīng), 其就是因?yàn)镽3沒有BGP路由的原因
拓?fù)?/div>

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容