BGP協議的原理及應用
一、BGP特征
① 傳輸協議:TCP,端口號179
② BGP是外部路由協議,用來在AS之間傳遞路由信息
③ 是一種增強的路徑矢量路由協議
④ 擁有可靠的路由更新機制
⑤ 具備豐富的Metric度量方法
⑥ 無環路協議設計
⑦ 為路由條目附帶多種屬性信息
⑧ 支持CIDR(無類別域間選路)
⑨ 豐富的路由過濾和路由策略
⑩ 無需周期性更新
⑪ 路由更新時只發增量路由
⑫ 周期性發送KeepAlive報文以保持TCP連通性
二、BGP報文
Open報文
Update報文
Notification報文
Router-refresh
KeepAlive
三、BGP狀態機
Idle狀態
Connect狀態
Active狀態
OpenSent狀態
OpenConfirm狀態
Established狀態
四、BGP數據庫
IP路由表(IP-RIB) IBGP
BGP路由表(Loc-RIB) EBGP
五、BGP對等體配置:對等體交互原則
①從IBGP對等體獲得的BGP路由,BGP設備只傳遞給它的EBGP對等體
②從EBGP對等體獲得的BGP路由,BGP設備只傳遞給它所有EBGP和IBGP對等體(對等體是IBGP只能傳一跳,對等體是EBGP則不限制)
③當存在多條到達同一目的地址的有效路由時,BGP設備只將最優路由發布給對等體
④路由更新時,BGP設備只發送更新的BGP路由
⑤所有對等體發送的路由,BGP設備都會接收
⑥所有EBGP對等體在傳遞過程中下一跳改變
⑦所有IBGP對等體在傳遞過程中下一跳不變
⑧默認EBGP傳遞時,TTL值為1
⑨默認IBGP傳遞時,TTL值為255
六、更新源建立鄰居關系
1、BGP直連網段建立鄰居
2、BGP環回口建立鄰居
①EBGP區域命令
Peer 3.3.3.3 as-number 100 指向對端BGP
Peer 3.3.3.3 connect-interface loop back 0 建立鄰居接口
Peer 3.3.3.3 ebgp-max-hop 255 修改多跳,默認1跳
設置靜態路由下一跳
②IBGP區域命令
Peer 1.1.1.1 as-number 100 指向對端BGP
Peer 1.1.1.1 connect-interface loop back 0 建立鄰居接口
Peer 1.1.1.1 next-hop-local 下一跳指向自己,此命令只在AS邊緣路由器設置
BGP實現全網互通實驗,如下圖
實驗目的:實現BGP全網互通
實驗步驟:
Step1:必打命令
R10:
<Huawei>undo terminal monitor
<Huawei>system-view
[Huawei]sysname R1
[R1]user-interface console 0
[R1-ui-console0]idle-timeout 0 0
[R1-ui-console0]quit
R11、R12、R13、R14同理
Step2:配置BGP,以及接口下IP
R10:
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 45.1.1.1 24
[R1-GigabitEthernet0/0/1]undo shut
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 14.1.1.1 24
[R1-GigabitEthernet0/0/0]undo shut
[R1-GigabitEthernet0/0/0]int loop 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]quit
R11:
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 14.1.1.2 24
[R2-GigabitEthernet0/0/0]undo shut
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]undo shut
[R2-GigabitEthernet0/0/1]int loop 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]quit
R12:
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 12.1.1.3 24
[R3-GigabitEthernet0/0/0]undo shut
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3-GigabitEthernet0/0/1]undo shut
[R3-GigabitEthernet0/0/1]int loop 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]quit
R13:
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 23.1.1.4 24
[R4-GigabitEthernet0/0/0]undo shut
[R4-GigabitEthernet0/0/0]int loop 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]quit
R14:
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 45.1.1.5 24
[R5-GigabitEthernet0/0/0]undo shut
[R5-GigabitEthernet0/0/0]int loop 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]quit
進入接口設置好IP后,ping 檢查是否互通
Step3:設置R10、R11、R12的ospf協議
R10:
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 14.1.1.0 0.0.0.255
R11:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 14.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
R12:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
輸入命令:display ospf peer 檢查ospf鄰居
Step4:設置BGP鄰居
R14:
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 1.1.1.1 as-number 100——設置對等體AS號
[R5-bgp]peer 1.1.1.1 connect-interface loop 0——對等體對等體更新源設為loop 0
[R5-bgp]peer 1.1.1.1 ebgp-max-hop 255——對等體跳數設為255
[R5-bgp]quit
[R5]ip route-static 1.1.1.1 32 45.1.1.1——設置靜態路由確保R14與R10互通
R10:
[R1]ip route-static 5.5.5.5 32 45.1.1.5——設置靜態路由確保R14與R10互通
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 5.5.5.5 as-number 300——設置對等體AS號
[R1-bgp]peer 5.5.5.5 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R1-bgp]peer 5.5.5.5 ebgp-max-hop 255——對等體跳數設為255
[R1-bgp]peer 2.2.2.2 as-number 100—— 設置對等體AS號
[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R1-bgp]peer 2.2.2.2 next-hop-local ——設置對等體可達
[R1-bgp]peer 3.3.3.3 as-number 100——設置對等體AS號
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R1-bgp]peer 3.3.3.3 next-hop-local ——設置對等體可達
R11:
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 1.1.1.1 as-number 100 ——設置對等體AS號
[R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R2-bgp]peer 3.3.3.3 as-number 100——設置對等體AS號
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
R12:
[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 1.1.1.1 as-number 100 ——設置對等體AS號
[R3-bgp]peer 1.1.1.1 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R3-bgp]peer 1.1.1.1 next-hop-local ——設置對等體可達
[R3-bgp]peer 2.2.2.2 as-number 100——設置對等體AS號
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R3-bgp]peer 2.2.2.2 next-hop-local ——設置對等體可達
[R3-bgp]peer 4.4.4.4 as-number 200——設置對等體AS號
[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0——對等體對等體更新源設為loop 0
[R3-bgp]peer 4.4.4.4 ebgp-max-hop 255——對等體跳數設為255
[R3-bgp]quit
[R3]ip route-static 4.4.4.4 32 23.1.1.4——設置靜態路由確保R12與R13互通
R13:
[R4]ip route-static 3.3.3.3 32 23.1.1.3設置靜態路由確保R12與R13互通
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 3.3.3.3 as-number 100 ——設置對等體AS號
[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0—對等體對等體更新源設為loop 0
[R4-bgp]peer 3.3.3.3 ebgp-max-hop 255——對等體跳數設為255
輸入命令:display bgp peer 檢查bgp鄰居
Step5:宣告回路和網段
R14:
[R5]bgp 300
[R5-bgp]network 5.5.5.5 32
[R5-bgp]network 45.1.1.0 24
R10:
[R1]bgp 100
[R1-bgp]network 45.1.1.0 24
[R1-bgp]network 5.5.5.5 32
[R1-bgp]network 14.1.1.0 24
[R1-bgp]network 1.1.1.1 32
R11:
[R2]bgp 100
[R2-bgp]network 12.1.1.0 24
[R2-bgp]network 14.1.1.0 24
[R2-bgp]network 2.2.2.2 32
R12:
[R3]bgp 100
[R3-bgp]network 3.3.3.3 32
[R3-bgp]network 12.1.1.0 24
R13:
[R4]bgp 200
[R4-bgp]network 3.3.3.3 32
每個路由器輸入:display bgp routing-table 查看BGP 路由表,如優先級低的重新宣告