天天看點

BGP學習筆記

自主系統号範圍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位址越小越優先。

繼續閱讀