BGP筆記
BGP:用於AS與AS之間的路由,但現在也越來越多的用在IDC內部了
BGP是應用層協議,應用TCP協議(唯一一個運用TCP的路由協議)
IGP和EGP的區別:IGP運行在一個AS之內,EGP運行在AS之間。
BGP是一個高級的距離矢量協議,路徑矢量路由選擇協議
BGP是一個應用層協議,基於TCP的179端口
多數組:連接多家運營商
BGP通過單播發送報文,所以需要指定鄰居
BGP具有觸發更新機制(增量更新),沒有周期性更新.
BGP只追蹤和鄰居的鄰接關系,不追蹤路由信息,只要鄰接關系還在,鄰居給傳遞的路由信息就會信任。
BGP通過周期性的發送keepalive報文(類似於IGP裏面的HELLO報文)來維護鄰接關系,建立鄰接關系則用另外一種叫open的報文。
BGP的三張表:
1.neighbor table
2.BGP table(forwarding database)
3.IP routing table
BGP的四種報文:
1.Open
-includes hold time and BGP router ID
2.Keepalive
-周期性發送維護鄰接關系
3.Update
-所有的距離矢量協議發送的更新報文裏面都是直接攜帶路由條目的(OSPF攜帶LSA)
4.Notification
-When error is detected
-BGP connection closed after message is sent
BGP的五種狀態:
1.idle
2.connect
3.open sent
4.open confirm
5.established
IBGP管理距離:200
EBGP管理距離:20
TCP通過窗口機制實現流控,通過序列號防亂序,確認號防丟包,校驗和防止報文被篡改,以及重傳機制。
導致BGP路由不優的原因
1.Synchronization
當一臺路由器收到了IBGP對等體傳遞的IBGP路由的時候,會優先判斷該路由是否能通過
對某種IGP學到,如果能則同步實現,如果不能則同步失敗。
解決方案(將該特性關閉)
2:Next-Hop Unreachable
解決方案 Next-hop-self
一條BGP表中的BGP路由如果既打r又打>則代表該路由由於管理距離的原因雖然最優但是
無法加表,該路由可以傳遞給任何其他的鄰居(只要滿足規則)
ICMP Redirect
當一臺路由器通過一個接口接受到了一個報文,該路由器查表發現轉發這個報文需要將
其通過接收接口再次轉發出去。
當一臺BGP Speaker將一條BGP路由傳遞給同MA網段的下一跳EBGP鄰居時,該路由器如果
發現該路由條目的上一跳鄰居傳遞該路由的接口的IP地址和下一跳鄰居接收該路由的接
口的IP地址在同一個IP子網段,此時該路由器會主動將該路由條目的下一跳地址改寫為
上一跳鄰居的發送路由接口的IP地址(不是因為ICMP重定向)。
關於BGP路由條目的下一跳地址
1.如果一臺路由器將本地路由通告進BGP進程,則對於這些被通告路由,該路由器本地
BGP表中關於他們的下一跳都為0.0.0.0 本地路由包括直連路由和靜態路由。
2.如果一臺路由器將通過IGP獲悉的路由通告進BGP進程,則這些路由在該路由器的BGP
表中下一跳會繼承相應的IGP路由的下一跳地址。
3.如果一臺路由器將其本地通告的本地路由傳遞給其任何BGP對等體,則會將該路由條
目的下一跳改為本地對於這些鄰居的更新源。
4.如果一臺路由器通過EBGP學習到了一條路由,則該路由在傳遞給IBGP對等體時,默認
情況下一跳不變(除非做Next-Hop-Self)
5.如果一臺路由器將任何BGP路由通告給其EBGP對等體,則路由的下一跳會變成該路由器
對於該鄰居的BGP更新源地址。
BGP Auto-Summary
在早期的IOS版本中默認情況一臺路由器的BGP進程的Auto-Summary是開啟的,在後期新
版本的IOS中Auto-Summary是自動關閉的。
作用:
無論在路由器上是否開啟Auto-Summary都不會影響BGP精確通告的BGP路由,該特性只有
兩個作用
1:當在路由器上使用匯總通告的時候,如果該路由器路由表中擁有匯總條目內的明細
路由的時候,並且該路由器開啟了自動匯總,則該路由器會將明細路由抑制並且將其在
其主類網絡邊界匯總後發送給鄰居。
BGP屬性:
一、Weight(權重屬性)(接口概念)(影響本地流量選擇哪個路由器接口出去)(一個路由器擁有多個接口)(基於一個路由器)(cisco私有,一般用不到)
1.傳遞範圍:該屬性只能在路由器本地有意義,路由器發送任何BGP路由的時候不會攜帶該屬性
2.缺省值:對於一條下一跳地址為0.0.0.0的BGP路由,在該路由器本地BGP表中該路由的缺省Weight
值是32768
如果該路由是鄰居通告的,無論IGBP或EBGP都是缺省0,如果該路由是本地通告,但是來源
於IGP,則該路由缺省權重也是0.
範圍:0-65535
3.比較方式:Weight屬性值越大,該路由條目越優。
二、Local Preference(本地優先級)(影響本地流量選擇哪個路由器出去)(一個AS擁有多個出口)(基於一個AS)
1.傳遞範圍:只能在一個AS內傳遞(只能在傳遞IBGP路由的時候修改)
2.缺省值:只要是BGP路由無論是否本地產生,無論是IBGP/EBGP,缺省值都為100
3.比較原則:越大越好
三、MED(進入的流量選擇哪個路由器進來)
1.傳遞範圍:在對端AS內傳遞
2.缺省值:
3.比較原則:越小越好
四、之後的屬性用一張圖表示,就不詳細描述了
打破IBGP路由傳遞原則的兩大方式:
1.路由反射器 Route Reflector(鏡子原理)
Cluster IBGP RR Server RRC Client
RR收到了一條EBGP路由,會將其轉發給所有其他EBGP對等體以及所有IGBP對等體(包含Client以及Non-Client)
RR收到了一條IBGP路由(該路由是Client傳遞的),RR會將其轉發給所有其他的RR以及所有IBGP的Non-Client以及所有的EBGP對等體
RR收到了一條IBGP路由(該路由是Non-Client傳遞的),RR會將其轉發給所有Client以及所有EBGP對等體,但是不會傳遞給任何其他的Non-Client
2.聯邦 Confederation
1.所有聯邦路由器啟用BGP進程的AS號都是子AS號,聯邦建鄰居指的是對方的子AS號,外部路由指聯邦內BGP鄰居指的是主AS號
2.所有聯邦內路由器都要宣稱自己屬於主AS
3.聯邦內路由器要建立聯邦內EBGP連接時需要指定本地和什麽子AS連接
Community屬性(團體屬性) 公認自由 不可傳遞
1.Standard
No-Advertise:當路由器收到了帶有該團體屬性的BGP路由的時候,路由無法傳遞給任何其他的BGP對等體。
NO-Export:當路由器收到了帶有該團體屬性的BGP路由的時候,路由無法傳遞給其他的AS,只能在AS內傳遞,如果該AS起了聯邦,則該路由還可以在聯邦內子AS之間傳遞。
Local-AS:當路由器收到了帶有該團體屬性的BGP路由的時候,路由只能在接收者所在的AS內傳遞,無論該AS是一個主AS還是一個聯邦內子AS。
XX:YY tag
BGP筆記