BGP的屬性與選路
公認必遵屬性
origin屬性:i表示IGP,描述的是透過network或路由匯聚方式通告在BGP的;e表示透過egp協議重分發通告的(並不常用到);?表示incomplete,是透過除了egp外的方式重分發(優先順序:i>e>?)
origin
AS-path:描述的是一條BGP路由經過了多少個自治系統,當路由器收到一條ebgp路由時,會檢查AS-path,是否包含自身的as號,主要是用於路由防環。在多條as-path路徑中會選擇最優的那一個,即as-path的所經過的as最少的那個。
as-path
next-hop:從ebgp鄰居學習到的路由,傳遞給自己的ebgp鄰居時候,下一條改變為自身連線鄰居的更新源地址,傳遞給自己的ibgp鄰居後,下一條預設不會變化(可以配置命令:next-hop local,更新源地址會是自己。)從ibgp鄰居學習來的路由傳送給自己的ebgp鄰居,下一跳地址會是自己的更新源地址
next-hop
公認自由屬性
local_preference:
僅僅在ibgp鄰居之間有效
,不會通告給其他的自治系統,表明路由器的BGP優先順序,用來判斷流量離開自治系統所選擇的路徑
MED:僅在
相鄰的兩個自治系統
之間傳遞,收到這個屬性的自治系統不會將其通告給其他的自治系統,用來判斷流量進入自治系統的最佳路由
community:有兩個作用(1,
限定路由的傳播範圍
;2,
打標記,便於處理相同標記的路由
)預設各個廠商不會開啟這個屬性,需要手動配置;
表示為XX(一般是自治系統號):YY
Internet:預設的,只要符合通告即可
no-export:收到後不會發給其他的自治系統
no-adervice:對等體收到後,不會發送給他的任何BGP鄰居(包括ibgp鄰居)
第四個屬性屬於BGP聯盟
BGP的選路原則
鄰居收到路由通告,會有三種路由選擇情況:
到達目的地的唯一路由,直接優選
多條路由,選擇優先順序最高的
到達同一個目的地的且路由優先順序一樣的,選擇更細緻的原則去進行選擇
一般來說,優先順序的規則如下
丟失下一跳不可達的路由
優選preference_value值最高的(BGP的私有屬性、
是華為的私有屬性
,相當於BGP選路中的weight,僅在本地路由器生效,越大越優)
優選本地路由優先順序最高的(local_preference:
僅僅在ibgp鄰居之間有效
,不會通告給其他的自治系統,表明路由器的BGP優先順序,用來判斷流量離開自治系統所選擇的路徑)
手動聚合>自動聚合>network>import
優選as-path短的(
傳送的路由每到達一個自治系統,那麼會在AS-path左邊新增as號
)
origin型別:igp>egp>incomplete(
比如將BGP重分發在ospf中,實現igp.bgp同步
)
來自同一個自治系統的優選med小的(僅在
相鄰的兩個自治系統
之間傳遞,收到這個屬性的自治系統不會將其通告給其他的自治系統,用來判斷流量進入自治系統的最佳路由)
優選ebgp路由(ebgp>ibgp)(同一個自治系統的2臺邊界路由器收到相同ebgp路由,他會收到ibgp鄰居發來的路由更新,會優先選擇ebgp更新過來的。)
優選cluster_list最短的
優選originator_ID最小的
優選router-ID最小的路由器釋出的路由(每一臺路由器的唯一標識)
優選具有較小IP地址的鄰居學來的路由(鄰居的IP地址)