1. 程式人生 > >BGP項目實驗案例(基於華為設備)

BGP項目實驗案例(基於華為設備)

優先 ref 無環 修改 傳播 五環 增加 ble 狀態機

一:BGP概述
1:自治系統
自治系統是由同一個技術管理機構管理、使用同一選錄策略的一組路由器的集合。

2:動態路由的分類
(1)按自治系統分類
IGP:自治系統內部路由協議,包括RIP、OSPF、ISIS、EIGRP
EGP:自治系統之間的路由協議,包括BGP,BGP的作用是控制路由的傳播和選擇最優路由
(2)按協議類型分類
距離矢量路由協議
鏈路狀態路由協議

3:BGP的概念
BGP是一種運行在AS和AS之間的動態路由協議,主要作用是在AS之間自動交換無環路信息、以此來構建AS的拓撲圖,從而消除路由環路並實施用戶配置的路由策略。

4:BGP的特性
使用TCP179端口
屬於外部路由協議
是增強的路徑矢量路由協議
可靠的路由更新機制

豐富的度量方法
五環路的設置
路由條目附帶多種屬性信息
支持CIDR
豐富的路由過濾和路由策略
無需周期更新
路由更新只發送增量路由
周期性發送keepalive報文,保持TCP連通性

二:BGP的工作原理
1:BGP鄰居關系
(1)BGP報文
Open報文
Update報文
Notification報文
Route-Refresh報文
Keepalive報文

(2)BGP狀態機
Idle狀態
Connect狀態
Active狀態
OpenSent狀態
OpenConfirm狀態
Established狀態

(3)BGP數據庫
BGP數據庫是BGP正常工作所需要的存儲空間,分為如下幾種
IP路由表:全局路由信息庫
BGP路由表:BGP路由信息庫,包括最優的IP路由信息

鄰居表:對等體鄰居清單列表
Adi-RIB-In:對等體宣告給本地Speaker的未處理的路由信息庫
Adj-RIB-Out:本地Speaker宣告給指定對等體的路由信息庫

(4)BGP鄰居關系類型
IBGP鄰居:同一個AS內部的BGP鄰居關系
EBGP鄰居:AS之間的BGP鄰居關系

2:通告BGP路由的方法
(1)Network方式
將路由表的非BGP路由發布到BGP路由表中並通告給鄰居
(2)Import方式
將所學的路由信息重分發到BGP路由表中,可以引入BGP的路由包括直連路由、靜態路由及動態路由

三:BGP的配置
1:BGP對等體的配置
(1)EBGP多跳
默認BGP中EBGP鄰居之間的TTL值為1,使用EBGP多條的命令來解決非直連鄰居關系

(2)更新源建立鄰居關系
使用環路接口建立BGP鄰居關系

2:保證IBGP下一跳可達

3:BGP的屬性
(1)BGP屬性的分類
公有必遵
公認任意
可選過度
可選非過度

(2)BGP屬性的介紹
Origin屬性
AS-PATH屬性
Next-Hop屬性
Local-Pref屬性
MED屬性

4:BGP的選錄原則
忽略不知道下一跳的路由。
忽略不同步的IBGP路由。只在同步規則被啟用的情況下有此項。
優先選擇Weight較大的路由(Cisco私有)。
優先選擇local-preference較大的路由。
優先選擇起始於本路由器的路由
優先選擇AS-Path最短的路由。
優先選擇Origin(起源)較低的路由
優先選擇Metric(MED)較小的路由
優先選擇EBGP路由>聯盟EBGP>IBGP路由。
優先選擇到BGP NEXT_HOP最近的路由
如果上述屬性都相同且配置了maximum-paths(EBGP)或maximum-paths ibgp(IBGP)則可以將所有路由放進路由表。但BGP向外宣告只發最優那條。
優先選擇來自較小RID的路由器。如果路由器為RR,則選擇擁有較小ORIGINATOR_ID。
優先選擇來自較小IP地址的鄰居。

實驗案例:

技術分享圖片

實驗說明:

說明:
1:R1為運營商的路由器,R2、R3、R4為公司網絡,所有路由器運行BGP路由協議
2:R1和R2之間、R1和R3之間都建立EBGP連接
3:R2、R3、R4之間建立IBGP全連接
4:運營商網絡為AS100,公司網絡為AS200
5:在AS200內,使用IGP協議來計算路由(IGB使用OSPF協議)

要求:
1:實現兩個AS之間的互通
2:通過修改BGP屬性實現業務需求的路徑從R2切換到R3

實驗拓撲

技術分享圖片

實驗步驟:

一:基礎配置
1:配置各個設備的ip地址
(1)R1
<Huawei>sys
[Huawei]sysname R1

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.0.12.1 24
[R1-GigabitEthernet0/0/0]undo shut

[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.0.13.1 24
[R1-GigabitEthernet0/0/1]undo shut

[R1-GigabitEthernet0/0/1]int loop0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]quit
[R1]

(2)R2
<Huawei>sys
[Huawei]sysname 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.2 24

[R2-GigabitEthernet0/0/1]int loop0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]quit
[R2]

(3)R3
<Huawei>sys
[Huawei]sysname R3

[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 10.0.13.3 24

[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 10.0.34.3 24

[R3-GigabitEthernet0/0/1]int loop0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]quit
[R3]

(4)R4
<Huawei>sys
[Huawei]sysname R4

[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 10.0.24.4 24
[R4-GigabitEthernet0/0/0]undo shut

[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 10.0.34.4 24
[R4-GigabitEthernet0/0/1]undo shut

[R4-GigabitEthernet0/0/1]int loop0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]quit
[R4]

二:配置公司網絡的OSPF協議,使公司內網可以互訪
1:R2
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[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]quit
[R2-ospf-1]quit

2:R3
[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[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]quit
[R3-ospf-1]quit

3:R4
[R4]ospf 1
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]quit
[R4-ospf-1]quit

4:測試
R2、R3、R4互相ping以下他們的loopback地址,要能ping通

三:配置R1和R2、R1和R3之間的鄰接關系,使他們之間能通過EBGP相互傳遞路由,在R2、R3和R4上配置IBGP鄰接關系,使R2、R3、R4之間可以通過IBGP互相傳遞路由。

1:R1的配置
<R1>sys
[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.3 as-number 200
[R1-bgp]network 1.1.1.1 32

2:R2的配置
[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.4 as-number 200
[R2-bgp]peer 10.0.24.4 next-hop-local
[R3-bgp]import-route ospf 1

3:R3的配置
[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.4 as-number 200
[R3-bgp]peer 10.0.34.4 next-hop-local
[R3-bgp]import-route ospf 1

4:R4的配置
<R4>sys
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 10.0.24.2 as-number 200
[R4-bgp]peer 10.0.34.3 as-number 200
[R4-bgp]network 4.4.4.4 32
[R4-bgp]quit
[R4]

5:查看BGP路由
(1)R1的路由表
[R1]dis bgp routing-table

> 1.1.1.1/32 0.0.0.0 0 0 i
> 4.4.4.4/32 10.0.12.2 0 200i

  • 10.0.13.3 0 200i

(2)R4的路由表
[R4]dis bgp routing-table

*>i 1.1.1.1/32 10.0.24.2 0 100 0 100i

  • i 10.0.34.3 0 100 0 100i
    *> 4.4.4.4/32 0.0.0.0 0 0 i

註釋:
*:表示有效的路徑

:表示最好的路徑
從上述結果可以看出,R4到R1之間的通信是通過R2來傳遞的

四:使用BGP各種屬性控制選路

方法1:修改優先級參數,使R4到R1的通信通過R3來傳遞
本地優先級(local-preference屬性)的默認值為100,越大越有先,取值範圍0-4294967295
想走誰,就將誰的local-preference值設置的大些

(1)在R3上修改優先級:
[R3]route-policy lop permit node 10
[R3-route-policy]apply local-preference 222
[R3-route-policy]quit
[R3]bgp 200
[R3-bgp]peer 10.0.34.4 route-policy lop export
[R3-bgp]quit
[R3]quit
<R3>reset bgp all

(2)在R4上查看路由表
R4的路由表
[R4]dis bgp routing-table

*>i 1.1.1.1/32 10.0.34.3 0 100 0 100i

  • i 10.0.24.2 0 100 0 100i
    *> 4.4.4.4/32 0.0.0.0 0 0 i

方法2:使用AS-path屬性控制選路,使得R4到R1的通信是通過R2來傳遞的
不想走誰,就增加誰的as-path路徑值

(1)先在R3上先刪除前面配置的local-preference屬性所對應的路由策略
<R3>sys
[R3]bgp 200
[R3-bgp]undo peer 10.0.34.4 route-policy lop export
[R3-bgp]quit

(2)在R2上修改AS-PATH屬性,增加R2的路徑,使得R4在選路的時候優先選擇R3
<R2>sys
[R2]route-policy as permit node 10
[R2-route-policy]apply as-path 123 123 123 additive
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 10.0.24.4 route-policy as export
[R2-bgp]quit
[R2]quit
<R2>reset bgp all

(3)在R4上查看路由表
<R4>dis bgp routing-table
Total Number of Routes: 13
Network NextHop MED LocPrf PrefVal Path/Ogn

*>i 1.1.1.1/32 10.0.34.3 0 100 0 100i

  • i 10.0.24.2 0 100 0 123 123 123 100i

註意:方法1和方法2都是從R4到R1的通信,任選一個即可;方法3是從R1到R4的通信

方法3:通過MED屬性控制選路,使得R1到R4的通信是通過R3來傳遞的
不想走誰,就把誰的MED設置的大些

(1)修改MED屬性,增加R2路由器的MED值
[R2]route-policy med permit node 10
[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
[R2]quit
<R2>reset bgp all
<R2>

(2)在R1上查看路由表
<R1>dis bgp routing-table
*> 4.4.4.4/32 10.0.13.3 1 0 200?

  • 10.0.12.2 501 0 200?

BGP項目實驗案例(基於華為設備)