BGP精彩部分總結+實驗案例

什麼是BGP?

BGP( Border Gateway Protocol,邊界網關協議)是一個路徑矢量路由協議,和傳統的基於下一跳的IGP協議不同,它是基於AS(自治系統)的協議。BGP屬於外部網關路由協議,它解決的是AS之間的選路問題,如果把一個城市比作一個自治系統,那麼像RIP、OSPF等協議就相當於該城市的公交車或地鐵,而BGP則是火車,運行在城市之間。

什麼是自治系統?

自治系統( Autonomous System,AS )是由同一個技術管理機構管理、使用統一選路策略( 運行同一動態路由協議 )的一組路由器的集合,自治系統的編號取值範國爲1~ 65535。其中1~64511是互聯網上註冊的公有AS號類,類似公有IP地址,是全球唯一的且不可重複使用,64512-65535是私有AS號,類似於私有地址,可以重複使用但是互聯網上不可以被使用。

認識IGP、EGP、IBGP、EBGP?

IGP:即自治系統內部的路由協議,主要包含RIPv1/v2、OSPF、ISIS、EIGRP(思科私有協議),IGP是運行在AS內部的路由協議,它解決AS內部的選路問題,其主要作用是發現、計算路由。

EGP:即自治系統之間的路由協議,通常指BGP。EGP是運行在AS與AS之間的路由協議,它解決的是AS之間的選路問題,BGP的主要作用是控制路由的傳播和選擇最優路由。

IBGP和EBGP所定義於BGP(EGP)裏的鄰居關係

IBGP:同一個AS內部的BGP鄰居關係,IBGP鄰居通常是指運行BGP協議的對等體兩端均在同一個AS域內,屬於同一個 BGP AS內部。

EBGP:AS之間的BGP鄰居關係,EBGP鄰居通常是指運行BGP協議的對等體兩端分別在不同的AS內。
如下圖所示
在這裏插入圖片描述

總結動態路由分類

按自治系統分類可以分爲:
IGP、EGP(BGP)

按協議類型分類可以分爲距離矢量路由協議,鏈路狀態路由協議

距離矢量路由協議: RIPv1/v2、BGP(路徑矢量協議)、EIGRP(高級的距離矢量協議)

鏈路狀態路由協議: OSPF、ISIS

🆗,上面都瞭解以後,開始學習BGP

BGP的特性

  • 傳輸協議:TCP,端口號179
  • BGP是外部路由協議,用來在AS之間傳遞路由信息
  • 是一種增強的路徑矢量路由協議
  • 擁有可靠的路由更新機制,無環路協議設計
  • 具備豐富的 Metric度量方法
  • 無須週期性更新
  • 路由更新時只發送增量路由
  • 週期性發送 Keepalive報文,以保持TCP連通性

BGP的工作原理

BGP是跨公網,跨自治系統的路由協議,可以在自治系統之間學習路由。BGP的動態學習路由也是基於鄰居,只有鄰居關係正常,BGP纔可以正常工作。

BGP鄰居關係
運行BGP的路由器通常被稱爲 BGPspeaker(發言者),相互之間傳遞報文的 Speaker之間互稱爲對等體( Peer ),BGP鄰居關係的建立、更新和刪除是通過對等體之間交互5種報文、6種狀態機和5個表等信息來完成的,最終形成BGP鄰居

BGP的鄰居關係是基於TCP的,也就是說只要 TCP/IP可達,無論是否直連,BGP對等體彼此之間就可以建立鄰居關係

BGP的5種報文

報文 作用
open 建立BGP對等體之間的連接
update 更新增量路由
notification 檢測錯誤狀態,報錯
route-refresh 告知對等體本地支持的路由刷新能力
keepalive 週期性的發送,保持有效的連接

BGP的6種狀態機

狀態機 動作
idle 初始狀態,拒絕任何連接
connect 連接態,等待tcp連接的建立
active 活躍態,嘗試tcp的連接
opensent 檢查態,檢查收到的open報文,如果報文正確轉到下一連接狀態openconfirm;如果報文錯誤,轉到idle
openconfirm 等待態,等待對等體的keepalive或notification報文,如果是keepalive就進入到established;如果是notification就回到idle
established 建立態,對等體之間正常收發信息

通告BGP路由的方法

BGP路由是通過BGP命令通告而成的,而通告BGP路由的方法有兩種: NetworkImport
使用 Network命令可以將當前設備路由表中的路由( 非BGP )發佈到BGP路由表中並通告給鄰居。需要特別注意的是, network的對象是路由條目

[r1]bgp 100
[r1-bgp]network 1.1.1.1 32
[r1-bgp]network 192.168.100.0 24

使用Import命令可以將所學習到的路由信息重分發到BGP路由表中,是BGP宣告路由的一種方式,可以引入BGP的路由包括直連路由靜態路由動態路由協議學習的路由。和 Network方式的區別是,Import的對象是某種動態路由協議,而不是路由條目

[R2]bgp 100
[R2-bgp]import-route  ospf 110

保證IBGP下一跳可達

在AS邊緣的BGP設備,會接收到它的EBGP對等體鄰居傳遞過來的BGP路由信息,因爲EBGP鄰居接收到的BGP路由信息中下一跳改變,而在同一個AS內通過IBGP鄰居接收過來的BGP路由信息中的下一跳不會改變
如下圖所示:
在不同AS裏面,他們呢屬於EBGP鄰居,R2,R3的下一跳都正常;
在同一AS中,R3,R4是IBGP鄰居,下一跳都會指向R2,這樣R4就會有問題

在這裏插入圖片描述
解決辦法是在R3上宣稱下一跳爲R3自己,那麼R4看到的下一跳就變成34.1.1.3,而34.1.1.3可以通過IGP(ospf)學習到(圖中是直連),從而解決了路由無效的問題

[R3]bgp 300
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 23.0.0.2 as-number 200
[R3-bgp]peer 34.1.1.4 as-number 300
[R3-bgp]peer 34.1.1.4 next-hop-local

BGP的屬性

BGP的常用屬性有 Origin、AS-PATH、Next-Hop、Local-Pref和MED等

屬性 作用
origin屬性 用來定義路徑信息的來源,標記一條路由是怎麼成爲BGP路由的
AS-PATH(AS路徑)屬性 記錄了某條路由從本地到目的地址所要經過的所有AS編號,且離本設備最近的AS號在最前面
Next-Hop(下一跳) IGP中的下一跳描述的是下一個路由器,而BGP中的下一跳描述的是下一個AS
Local-Pref屬性 標識BGP路由的優先級,用於判斷流量離開AS時的最佳路由
med屬性 判斷流量進入鄰居AS時的最佳路由,其他條件相同的情況下,將優先選擇MED值較小者作爲最佳路由

BGP選路的規則

  • Local-Preference優先級以數值高的路由優先
  • 聚合路由優先級高於非聚合路由
  • 本地通過 Network命令引入的路由的優先級高於本地通過 Import-route命令引入的路由
  • AS路徑長度最短(最少個數)的路徑優先級高
  • 比較 Origin屬性,IGP優先級高於EGP,EGP優先級高於 Incomplete
  • 選擇MED優先級較小的路由
  • EBGP路由優先級高於IBGP路由

下面,再看一個BGP的實驗

BGP實驗

使PC1可以ping通PC2
然後修改BGP屬性來改變路徑
在這裏插入圖片描述
r1配置端口並建立對等體

[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip add 10.0.12.1 24
[r1-GigabitEthernet0/0/0]
[r1-GigabitEthernet0/0/0]int g0/0/1
[r1-GigabitEthernet0/0/1]ip add 10.0.13.1 24
[r1]int g0/0/2
[r1-GigabitEthernet0/0/2]ip add 192.168.100.254 24
[r1-LoopBack0]ip add 1.1.1.1 32
[r1-LoopBack0]q
## 創建對等體
[r1]bgp 100
[r1-bgp] router-id 1.1.1.1
[r1-bgp] peer 10.0.12.2 as-number 200 
[r1-bgp] peer 10.0.13.2 as-number 200
[r1-bgp]network 1.1.1.1 32
[r1-bgp]network 192.168.100.0 24

r2添加端口並創建對等體

[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ip add 10.0.12.2 24
[r2-GigabitEthernet0/0/0]int g0/0/1
[r2-GigabitEthernet0/0/1]ip add 10.0.24.1 24
[r2]int LoopBack 0
[r2-LoopBack0]ip add 2.2.2.2 32
[r2]ospf 110
[r2-ospf-110]area 0
[r2-ospf-110-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[r2-ospf-110-area-0.0.0.0]network 2.2.2.2 0.0.0.0
## 建立對等體
[r2]bgp 200
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 10.0.12.1 as-number 100
[r2-bgp]peer 10.0.24.2 as-number 200
[r2-bgp]peer 10.0.24.2 next-hop-local
[r2-bgp]q

r3添加端口並創建對等體

[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]ip add 10.0.13.2 24
[r3-GigabitEthernet0/0/0]int g0/0/1
[r3-GigabitEthernet0/0/1]ip add 10.0.34.1 24
[r3]int LoopBack 0
[r3-LoopBack0]ip add 3.3.3.3 32
[r3]ospf 110
[r3-ospf-110]area 0
[r3-ospf-110-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[r3-ospf-110-area-0.0.0.0]network 3.3.3.3 0.0.0.0
## 建立對等體
[r3]bgp 200
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 10.0.13.1 as-number 100
[r3-bgp]peer 10.0.34.2 as-number 200
[r3-bgp]peer 10.0.34.2 next-hop-local

r4添加端口並創建對等體

[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]ip add 10.0.24.2 24
[r4-GigabitEthernet0/0/0]int g0/0/1
[r4-GigabitEthernet0/0/1]ip add 10.0.34.2 24
[r4]int g0/0/2
[r4-GigabitEthernet0/0/2]ip add 172.16.46.254 24
[r4]int LoopBack 0
[r4-LoopBack0]ip add 4.4.4.4 32
[r4]ospf 110
[r4-ospf-110]area 0
[r4-ospf-110-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[r4-ospf-110-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[r4-ospf-110-area-0.0.0.0]network 172.16.46.0 0.0.255.255
## 建立對等體
[r4]bgp 200
[r4-bgp]router-id 4.4.4.4
[r4-bgp]peer 10.0.24.1 as-number 200
[r4-bgp]peer 10.0.34.1 as-number 200
[r4-bgp]network 4.4.4.4 32
[r4-bgp]network 172.16.46.0 24

配置完成
在r1查看路由如下
*代表有效的路由,>代表最優的路由,只有最優的路由纔會最終放入路由表中
在這裏插入圖片描述
ping通測試
在這裏插入圖片描述
修改優先級屬性來修改r1到r4的路徑

[r3]route-policy lop permit node 10
Info: New Sequence of this List.
[r3-route-policy]apply local-preference 222
[r3-route-policy]q
[r3]bgp 200
[r3-bgp]peer 10.0.34.2 route-policy lop export 
[r3]q
<r3>reset bgp all  # 刷新bgp路由表

在這裏插入圖片描述
修改AS-PATH屬性控制選路
自己指定經過那些AS

[R2]route-policy as permit node 10
Info: New Sequence of this List.
[R2-route-policy]apply as-path 100 200 300 additive 
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 10.0.24.2 route-policy as export 
[R2-bgp]quit
[R2]quit
<R2>reset bgp all

修改完r4查看路由表如下
在這裏插入圖片描述

通過MED屬性控制選路

[R2]route-policy med permit node 20
Info: New Sequence of this List.
[R2-route-policy]apply cost + 500
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 10.0.12.1 route-policy med export 
[R2-bgp]quit

在r1查看路由表如下
在這裏插入圖片描述
注:這裏只是演示怎麼修改,上面也能看出,修改完不一定是最優的路徑,所以,你在公司裏面一定要根據實際情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章