一:BGP概述
1:自治系統
自治系統是由同一個技術管理機構管理、使用同一選錄策略的一組路由器的集合。node
2:動態路由的分類
(1)按自治系統分類
IGP:自治系統內部路由協議,包括RIP、OSPF、ISIS、EIGRP
EGP:自治系統之間的路由協議,包括BGP,BGP的做用是控制路由的傳播和選擇最優路由
(2)按協議類型分類
距離矢量路由協議
鏈路狀態路由協議數據庫
3:BGP的概念
BGP是一種運行在AS和AS之間的動態路由協議,主要做用是在AS之間自動交換無環路信息、以此來構建AS的拓撲圖,從而消除路由環路並實施用戶配置的路由策略。網絡
4:BGP的特性
使用TCP179端口
屬於外部路由協議
是加強的路徑矢量路由協議
可靠的路由更新機制
豐富的度量方法
五環路的設置
路由條目附帶多種屬性信息
支持CIDR
豐富的路由過濾和路由策略
無需週期更新
路由更新只發送增量路由
週期性發送keepalive報文,保持TCP連通性app
二:BGP的工做原理
1:BGP鄰居關係
(1)BGP報文
Open報文
Update報文
Notification報文
Route-Refresh報文
Keepalive報文ide
(2)BGP狀態機
Idle狀態
Connect狀態
Active狀態
OpenSent狀態
OpenConfirm狀態
Established狀態oop
(3)BGP數據庫
BGP數據庫是BGP正常工做所須要的存儲空間,分爲以下幾種
IP路由表:全局路由信息庫
BGP路由表:BGP路由信息庫,包括最優的IP路由信息
鄰居表:對等體鄰居清單列表
Adi-RIB-In:對等體宣告給本地Speaker的未處理的路由信息庫
Adj-RIB-Out:本地Speaker宣告給指定對等體的路由信息庫測試
(4)BGP鄰居關係類型
IBGP鄰居:同一個AS內部的BGP鄰居關係
EBGP鄰居:AS之間的BGP鄰居關係ui
2:通告BGP路由的方法
(1)Network方式
將路由表的非BGP路由發佈到BGP路由表中並通告給鄰居
(2)Import方式
將所學的路由信息重分發到BGP路由表中,能夠引入BGP的路由包括直連路由、靜態路由及動態路由router
三:BGP的配置
1:BGP對等體的配置
(1)EBGP多跳
默認BGP中EBGP鄰居之間的TTL值爲1,使用EBGP多條的命令來解決非直連鄰居關係
(2)更新源創建鄰居關係
使用環路接口創建BGP鄰居關係blog
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爲運營商的路由器,R二、R三、R4爲公司網絡,全部路由器運行BGP路由協議
2:R1和R2之間、R1和R3之間都創建EBGP鏈接
3:R二、R三、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:測試
R二、R三、R4互相ping如下他們的loopback地址,要能ping通
三:配置R1和R二、R1和R3之間的鄰接關係,使他們之間能經過EBGP相互傳遞路由,在R二、R3和R4上配置IBGP鄰接關係,使R二、R三、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
(2)R4的路由表
[R4]dis bgp routing-table
*>i 1.1.1.1/32 10.0.24.2 0 100 0 100i
註釋:
*:表示有效的路徑
:表示最好的路徑
從上述結果能夠看出,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
方法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
注意:方法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?