BGP協議
BGP:邊界網關協議,採用TCP179號端口。用在自治系統之間,提供無環的路徑,可對進出AS內流量依據策略來進行調控。
AS:自治系統,指的是在單一技術管理下,採用一種內部網關協議和通用度量在AS內轉發數據包,並採用一種外部網關協議將數據包路由到另一個As中。
AS標示:每個自治系統AS都有唯一的標識,稱爲AS號(AS number),由IANA(Internet Assigned Numbers Authority)來授權分配。這是一個16位的二進制數,範圍爲1~65535,其中65412~65535爲AS專用組(RFC2270)。
EGP:外部網關,可在不同的AS之間運行的路由協議。如BGP,採用“屬性”作爲選路參考。
IGP:內部網關,在同一個AS內運行的路由協議。如RIP(端口號520) ,EIGRP(88) ,OSPF(89) ,IS-IS .採用“度量值”作爲選路參考。
在如下情況下,我們採用BGP協議:AS允許數據包經過它到達其它AS;AS到達其它AS有多條鏈路進行連接;必須要對進出AS的數據進行調控;必須要將AS與其ISP的數據區分開等。
在如下情況下可以不用BGP:AS內實施的路由策略與ISP的一致時;單一連接到另一處AS(採用靜態默認路由最好);當路由器的能力達不到運用BGP的條件時;管理員對BGP的技術缺乏時;AS之間的帶寬不夠時(採用靜態默認路由最好)等。
BGP與對等體(PEER)(即鄰居)之間建立關係。
對等體的類型分爲:IBGP和EBGP。以AS NUMBER來進行區分,相同的爲IBGP,不相同的爲EBGP。IBGP:不必有直連的鏈路,只需要建立TCP連接即可。EBGP:通常情況下需要有直連的鏈路。
BGP的消息類型:
OPEN:當建立一條TCP連接時,雙方發送的第一條消息。回送KEEPALIVE消息進行確認。OPEN消息中包括如下信息:版本號(當前爲Version 4),as number,holdtime,bgp-id,可選參數等。
KEEPALIVE:確認BGP對等體之間的已然存在。維持鄰居關係。
UPDATE:進行AS間BGP路由信息的交換,還包括:不可行的路由長度,撤銷的路由,路徑屬性總長,路徑屬性,網絡層的可達信息等。
NOTIFICATION:發送錯誤信息。
BGP屬性類型:
公認屬性:well-known.所有運行BGP路由器必須識別的屬性。
可選屬性:optional.不必被所有運行BGP路由器支持的屬性。
必遵屬性:mandatory.必須出現在路由信息中的屬性。
自決屬性:discretionary.不必一定出現在路由信息中的屬性。
可傳遞屬性:transitive.可傳遞給鄰居的屬性。
非傳遞屬性:non-transitive.不可傳遞給鄰居的屬性。
不完全屬性:partial.不被當前路由器支持的任選可傳遞屬性。
屬性可以進行組合
公認必遵屬性:必須出現在路由信息中的屬性。分別有:AS-path ; next-hop ; origin(?,i,e)路由啓源
任選可傳遞屬性:不要求所有路由器都支持的屬性。如:聚合者;團體。
公認自決屬性:不是必須出現在路由信息中的屬性。如:本地優先屬性;原子聚合屬性。
任選非傳遞屬性:必須被不支持該屬性的路由器刪除。如:MED;發起者標識;集羣列表。
權重屬性:思科私有屬性,只在本地有效。