自主系統号範圍1~65535,私有AS号64512~65535
外部BGP鄰居由于沒有運作IGP,為此,IP位址必須通過直連網絡或靜态路由才能到達。
内部GBP鄰居使用直連網絡,靜态路由或者動态路由協定,一般指定一個環回位址來建立IBGP會話。
為避免AS中出現路由選擇環路,BGP規定不将通過IBGP獲悉的路由傳播給其他IBGP對等體,IBGP鄰居收到更新後,不轉發更新,因為他們假定發送該更新的IBGP鄰居與所有IBGP發言者都直接相連,它已經将該更新發送給每個IBGP鄰居。
在AS内,IBGP鄰居之間的路徑被稱為中轉路徑,這種路徑中的所有路由器都必須運作BGP。這些IBGP會話必須是全互聯的。根據AS号區分iBGP或者EBGP。
基于TCP,端口179
初次建立連接配接發全表,接下來增量觸發更新。不需要發送定期路由選擇更新。
BGP database
1. 鄰居表 – neighbor
table
2. BGP表(轉發資料庫) - 多條路徑
3. ip路由表
4. 存儲收到和發送的BGP資訊的獨立的表
BGP 消息類型
1. Open
包括hold
time和BGP router
ID
Open:version number(向後相容),AS
number,holdtime,router ID,optional
parameters
2. Keepalive
Holdtime的1/3,holdtime時間不小于3s
3. Update
Network-layer reachability information
Path
attributes
Withdrawn
routes
4. Notification
When error is detected
Keepalive隻包含消息頭,長19位元組;預設情況下,每60秒發送一次,其他類型消息19~4096位元組。預設保持時間為180秒。
EBGP必須直連,IBGP不需要直接相連
一台路由器隻能存在于一個AS。
BGP session
1. idle
2. connect
3. open
sent
4. open
confirm
a) 如果沒有收到對open的響應(5秒内),路由器将進入Active狀态
5. established
BGP配置步驟:
1. 對等體組(對等體)
2. bgp
router-id
3. 指定鄰居
neighbor
4. 配置環回位址 指定源IP位址 (update-source)
5. EBGP多條 ebgp-multihop
6. 修改下一跳屬性
next-hop-self
7. 配置分發清單
8. network通告網絡
a) BGP network通告的網絡必須是ip路由表中存在的網絡号,但不管它是通過什麼方式學來的路由
b) 可配置靜态路由 ip
route x.x.x.x mask null0指向空接口,BGP将在路由選擇表中找到一個完全比對的條目,進而将該網絡通告給鄰居。
當有多條路徑時,BGP路由器隻能将其使用的最佳路徑通告給鄰居自主系統中的對等體。
Show ip bgp
a) Suppressed表示彙總路由
b) Damped 懲罰路由,如果過于頻繁的up和down,不啟用該路由
c) History 路由不可用,并可能出現了故障;曾經擁有路由,未删除
d) Rib
failure 路由沒有加入到RIB中
e) Next hop – 0.0.0.0是本地起源的
f) Stale 過期路由,用于支援不中斷轉發的路由器
g) Origin codes: ? --
表示不知道怎麼起源的,是重釋出的路由和靜态路由。
Show ip bgp rib-failure
Show ip bgp neighbors
Show ip bgp summary (檢視BGP鄰居)
Neighbor V AS MsgRcvd MsgSent TblVer
InQ OutQ Up/Down
State/PfxRcd
10.200.200.12 4 65001 806
808 15 0
0 13:15:18 2(從鄰居那收到了多少個網絡條目)
使用BGP來連接配接Inertnet
一個企業使用兩個ISP服務
什麼是多宿主MUltihoming?
連接配接至2個多個ISP以提升:
-可靠性:如果1個ISP或連接配接失效,仍有一個可用的網際網路通路。
-性能:為相同網際網路目的地更優的選路
ISP通告預設路由和部分路由
ISP通告全路由表
BGP自治系統
1.一個AS代表屬于同一個技術管理者的網絡集合
2.AS内部使用IGPs協定
3.自治系統之間使用BGP
4.保證交換無環路路由資訊
BGP距離矢量路由協定
1.IGPs通告網絡及描述對應到達這些網絡的路徑成本。
2.BGP通告路徑和可到達的網絡。BGP使用屬性描述路徑(屬性和路徑成本相似)
3.BGP允許管理者定義政策或規定,用于控制資料如何傳輸通過自治系統
BGP路由政策
BGP可以支援任何逐跳選路原則的政策。
BGP特征
BGP最适合在以下環境使用:
-一個AS允許資料封包通過它到達另外一個AS(比如說ISP的網絡)
-一個AS有多個連接配接到其它AS.
-資料進入和離開AS時必需控制路由政策和選路。
BGP不一定适合用于任何環境,在以下環境你不需要使用BGP:
-對路由過濾和BGP路徑選擇的了解有限
-隻有單條鍊路連接配接到網際網路和另外一個AS
-卻反記憶體或者處理BGP路由更新的能力
BGP是路徑矢量路由協定,較距離矢量路由協定有以下差異:
-可靠更新:基于TCP(PORT
179)
-隻有增加,觸發更新
-定時發送存活資訊驗證TCP連接配接
-豐富路徑成本(稱為路徑向量 或者
屬性)
-設計用于可擴充至巨大的網際網路絡。
BGP資料庫
1.鄰居表
-BGP鄰居表(單點傳播)
2.BGP表(轉發資料庫)
-從每個鄰居收到所有網絡清單
-到一個目的地可以包含多條路徑
-每個路徑均包含BGP屬性
3.IP
routing table
-到目的網絡的最佳路徑
BGP資訊類型
1.Open
-包含hold time和BGP router
2.keeppalive
3.Update
-僅有一條路徑資訊(可以有多個網絡)
-包含路徑屬性和網絡
4.Notitfication
-檢測到錯誤的時候
-資訊發送之後,BGP連接配接關閉
總結
1.BGP是多宿主連接配接INTERNET恰當的辦法
2.ISP提供的多宿主選項包含:
-僅通告1條預設路由
-1條預設路由和提供商自身的路由
-全路由
3.BGP是外部路由協定,用于自治系統之間,基于政策轉發,而不是最佳路勁(最好的政策就被認為是最佳路勁)
BGP資訊:
1. Open:用來建立BGP會話
2. Keepalive:用來維護TCP連接配接
3. Update:用來承載BGP路由資訊,每一個BGP更新都會相應的附帶一些BGP屬性。
4. Notification:當BGP檢測到錯誤之後,用于切斷BGP會話。
BGP路由器鑒别機制:BGP Router-ID(RID):
1. 如果有邏輯接口,邏輯接口IP位址最大的IP位址作為RID
2. 如果隻有實體接口,實體接口IP位址最大的IP位址作為RID
BGP鄰居關系的建立:
1. 首先,當BGP路由器之間準備建立TCP連接配接,此時,BGP鄰居關系的狀态稱之為空閑狀态(idle)
2. 當TCP連接配接建立完成之後,此時BGP鄰居關系的狀态稱之為活躍狀态(active)
3.
當TCP雙向連接配接建立之後,BGP路由器發送open包,open包包含的參數包含:AS号,keepalive計時器,RID等,這個狀态叫做OpenSent狀态
4. 對方給予open包,這個狀态叫做OpenConfirm狀态
5. 如果雙方Open包參數協商成功,那麼BGP鄰居(會話)關系建立,達到
Established狀态,如果不成功,可能回退到Active狀态,再重新發送Open包,試圖建立BGP會話。
3和4在CISCO IOS的show指令裡是看不到的,統稱為active狀态。
1、 AS-PATH屬性:AS-PATH屬性越短,路徑越優先。
2、 起源(Origin)屬性:定義BGP更新是如何産生的:
(1)、起源于IGP:BGP更新是通過BGP程序下network指令所釋出出來的。(i)
(2)、起源于EGP:BGP更新是通過EGP重分發進來的。(e)
(3)、起源不完整(incomplete):BGP更新是通過IGP(OSPF,EIGRP等)重分發進來的。(?)
如果同一個BGP更新有3種起源方式。IGP優先于EGP優先Incomplete
3、下一跳(NEXT_HOP)屬性:到達目标AS的下一個AS(IP位址)。
BGP連接配接關系:
1.内部BGP(Internal BGP,IBGP)
建立BGP鄰居關系的BGP路由器位于同一自治系統。
對于IBGP鄰居,AS-PATH屬性是不變,下一跳屬性也不變。
2.外部BGP(External BGP,EBGP)
建立BGP鄰居關系的BGP路由器位于不同自治系統。
對于EBGP,AS_PATH屬性根據經過的AS号碼向前疊加,下一跳屬性也會改變。
對于EBGP而言:下一跳屬性是宣告該EBGP更新的接口IP位址。
知名任意屬性:
1、本地優先級(Local_pref):預設值100。用于同一個AS多出口的選路控制,值超高,也就越優先。本地優先級隻在AS内比較(隻在IBGP鄰居間比較),用于影響出站流量。
本地産生的為空。
2、Atomic aggregate:用于通知鄰居AS,說明執行彙總路由器的路由資訊。位址資訊以RID呈現。
可選傳遞屬性:
1. Aggregator:定義了實行路由聚合(彙總)的路由器的IP位址AS号資訊,位址資訊是接口資訊。
2. 社團屬性(community):用于BGP的路由标記(打标簽)。
可選非傳遞:
1.
MED:預設值為0,值越低越優先,用于不同AS多出口的選路比較。用于影響進站流量。預設情況下,來自不同AS的MED屬性不能互相比較。如果MED屬性為空(NULL),CISCO裝置把空值當成0,其他廠商把空值當成無窮大。
CISCO私有屬性:權重(0-65535)
1. 本一産生的BGP更新權重預設是32768
2. 從鄰居學過來的BGP更新權重預設為0,值越高,越優先。權重本地有效,不傳遞。影響出站流量。
BGP的選路法則:
(必須要下一跳可達)
如果一個BGP更新同時通過多個鄰居學習到,就要進行一系列的選路比較法則。過程如下:
1. 先比較權重,權重高的越優先。(隻對本地有效,隻能影響自己不能影響别人)
2. 比較本地優先級,越高越優先,僅在同一個AS内的IBGP鄰居比較。
3. 本地産生(下一跳屬性為0.0.0.0)的優先于從鄰居學過來的。
4. AS-PATH長度最短。(BGP:路徑矢量協定)
5. 比較起源屬性:IGP優先于EGP優先于Incomlete
6. 比較MED屬性,越低越優先。
7. EBGP(AD=20)優先于IBGP(AD=200)
-------------------------------------------------分水嶺------------------------------------------------------------
8a.如果是EBGP更新,那麼最老(最先被學習到的)的EBGP更新更優先
8b.如果是IBGP更新,離鄰居IGP路徑成本最小的路徑優先。
9.比較BGP RID,越低越優先。
10.比較學習到BGP更新的接口位址,接口IP位址越小越優先。