BGP
- 一、簡述
- 二、常用命令總結
- 三、實驗
一、簡述
IBGP 水平分割
:從一個 IBGP 對等體學到的路由,不會再通告給其他的 IBGP 對等體。在一個 AS 內部,路由器之間通過 IBGP 交換路由信息。如果沒有水平分割機制,當多個路由器之間形成全連接的 IBGP 對等關系時,就可能會出現路由在 AS 內不斷循環的情況。EBGP 水平分割
:從一個 EBGP 對等體學到的路由,不會再通告給這個 EBGP 對等體的同一 AS 內的其他 EBGP 對等體。當一個 AS 與另一個 AS 之間通過 EBGP 連接時,為了防止 AS 間的路由環路,采用了這樣的規則。
二、常用命令總結
display bgp peer #查看 BGP 對等體
display bgp routing-table #查看 BGP 路由表#在R1上通過 network 命令發布路由
[R1]bgp 64513
[R1-bgp] network 10.1.1.1 24#在R2上將路由的下一跳地址修改為自身
[R2]bgp 64512
[R2-bgp] peer 10.0.3.3 next-hop-local #向對等體10.0.3.3宣告自己知道的路由時,告訴它將路由的下一跳都改為我R2。
[R2-bgp] peer 10.0.4.4 next-hop-local
三、實驗
背景
你是公司的網絡管理員。公司的網絡采用了 BGP 協議作為路由協議。公司的網絡由多個自治系統組成,不同的分支機構使用了不同的 AS 號,現在你需要完成公司網絡的搭建工作。在公司總部使用了 OSPF 作為 IGP,公司內部不同分支機構使用的是私有的 BGP AS 號。在完成網絡搭建以后,你還需要觀察 BGP 路由信息的傳遞。
拓撲
配置
R1
[V200R003C00]
#sysname R1
#
interface GigabitEthernet0/0/0ip address 10.0.1.1 255.255.255.0
#
interface LoopBack0ip address 1.1.0.1 255.255.255.255
#
interface LoopBack1ip address 1.1.1.1 255.255.255.0
#
bgp 64513 #創建區域64513router-id 1.1.0.1 #和ospf類似,設置router-idpeer 2.2.0.2 as-number 64512 #有個EBGP對等體,在區域64512peer 2.2.0.2 ebgp-max-hop 2 #與這個對等體最大跳數設為2peer 2.2.0.2 connect-interface LoopBack0 #與這個對等體連接用LoopBack0接口#ipv4-family unicast #默認的undo synchronization #默認的network 1.1.1.0 255.255.255.0 peer 2.2.0.2 enable #默認的
#
ip route-static 2.2.0.2 255.255.255.255 10.0.1.2
#
return
R2
[V200R003C00]
#sysname R2
#
interface GigabitEthernet0/0/0ip address 10.0.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1ip address 10.0.2.2 255.255.255.0
#
interface LoopBack0ip address 2.2.0.2 255.255.255.255
#
bgp 64512router-id 2.2.0.2peer 1.1.0.1 as-number 64513 peer 1.1.0.1 ebgp-max-hop 2 peer 1.1.0.1 connect-interface LoopBack0peer 3.3.0.3 as-number 64512 peer 3.3.0.3 connect-interface LoopBack0peer 4.4.0.4 as-number 64512 peer 4.4.0.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 1.1.0.1 enablepeer 3.3.0.3 enablepeer 3.3.0.3 next-hop-local peer 4.4.0.4 enablepeer 4.4.0.4 next-hop-local
#
ospf 1 router-id 2.2.0.2 area 0.0.0.0 network 2.2.0.2 0.0.0.0 network 10.0.2.2 0.0.0.0
#
ip route-static 1.1.0.1 255.255.255.255 10.0.1.1
#
return
R3
[V200R003C00]
#sysname R3
#
interface GigabitEthernet0/0/1ip address 10.0.2.3 255.255.255.0
#
interface GigabitEthernet0/0/2ip address 10.0.3.3 255.255.255.0
#
interface LoopBack0ip address 3.3.0.3 255.255.255.255
#
bgp 64512router-id 3.3.0.3peer 2.2.0.2 as-number 64512 peer 2.2.0.2 connect-interface LoopBack0peer 4.4.0.4 as-number 64512 peer 4.4.0.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 2.2.0.2 enablepeer 4.4.0.4 enable
#
ospf 1 router-id 3.3.0.3 area 0.0.0.0 network 3.3.0.3 0.0.0.0 network 10.0.2.3 0.0.0.0 network 10.0.3.3 0.0.0.0
#
return
R4
[V200R003C00]
#sysname R4
#
interface GigabitEthernet0/0/0ip address 10.0.4.4 255.255.255.0
#
interface GigabitEthernet0/0/2ip address 10.0.3.4 255.255.255.0
#
interface LoopBack0ip address 4.4.0.4 255.255.255.255
#
bgp 64512router-id 4.4.0.4peer 2.2.0.2 as-number 64512 peer 2.2.0.2 connect-interface LoopBack0peer 3.3.0.3 as-number 64512 peer 3.3.0.3 connect-interface LoopBack0peer 5.5.0.5 as-number 64514 peer 5.5.0.5 ebgp-max-hop 2 peer 5.5.0.5 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 2.2.0.2 enablepeer 2.2.0.2 next-hop-local peer 3.3.0.3 enablepeer 3.3.0.3 next-hop-local peer 5.5.0.5 enable
#
ospf 1 router-id 4.4.0.4 area 0.0.0.0 network 4.4.0.4 0.0.0.0 network 10.0.3.4 0.0.0.0
#
ip route-static 5.5.0.5 255.255.255.255 10.0.4.5
#
return
R5
[V200R003C00]
#sysname R5
#
interface GigabitEthernet0/0/0ip address 10.0.4.5 255.255.255.0
#
interface LoopBack0ip address 5.5.0.5 255.255.255.255
#
interface LoopBack1ip address 5.5.1.5 255.255.255.0
#
bgp 64514router-id 5.5.0.5peer 4.4.0.4 as-number 64512 peer 4.4.0.4 ebgp-max-hop 2 peer 4.4.0.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 5.5.1.0 255.255.255.0 peer 4.4.0.4 enable
#
ip route-static 4.4.0.4 255.255.255.255 10.0.4.4
#
return
總結
- R2、 R3、 R4 之間基于 Loopback0 接口建立全互聯的 IBGP 對等體關系:R2與R3、R2與R4;R3與R2、R3與R4;R4與R2、R4與R3。
- 默認情況下, EBGP 連接允許的最大跳數為 1,這導致 EBGP 對等體之間只能使用直連鏈路建立 EBGP 對等體關系, 為使用環回口作為更新源需要手動修改 EBGP 連接允許的最大跳數(直連1個、環回口1個,共2個EBGP對等體連接)。
- R3 上已經學習到 R1、 R5 上發布的 BGP 路由, 但是都是非有效路由, 這是因為它們的下一跳在 R3 上都不可達, 為此可以在 R2、 R4 上通過
next-hop-local 命令
修改下一跳地址為 R2、 R4 的更新源地址。(R2告訴R3,將自己發給它的BGP路由的下一跳都改為R2自己,R4同理) - 通過本次實驗,有了更多理解,EBGP和IBGP之間通過對等體有一個大框架的路由,可以使用
network
或import-route
將本AS內路由導入bgp路由,進而在某一路由器下,ip路由表獲得了bgp提供的一些路由。
例如,本實驗,在R1上通過bgp路由表導入ip路由的只有R5的loopback1,只有這兩個的loopback1之間能ping通,而R1的ip路由表中沒有到R3、R4的路由,所以無法ping通。