BGP的各種屬性
邊界網關協議(BGP)是運行於 TCP 上的一種自治系統的路由協議。 BGP 是唯一一個用來處理像因特網大小的網絡的協議,也是唯一能夠妥善處理好不相關路由域間的多路連接的協議。 BGP 構建在 EGP 的經驗之上。 BGP 系統的主要功能是和其他的 BGP 系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。這些信息有效地構造了 AS 互聯的拓樸圖並由此清除了路由環路,同時在 AS 級別上可實施策略決策。
BGP采用TCP179端口,BGP不會學習路由, 只會傳遞路由。
* BGP選路原則
-- BGP的度量值叫做路徑屬性
-- 特有的屬性包括:
* 公認必選屬性(AS-Path、Next-hop...)
* 任選可透明傳遞屬性
* 任選非可透明傳送屬性
-- 公認屬性:
* 公認屬性可以是強制性的, 意味這所有的BGP更新消息都必須包含該屬性, 也可以是自己選擇的, 更新中不包含此屬性
* 所有的BGP執行都必須識別它
-- 公認必選屬性
* 強制更新中必須有此屬性
-- 公認可選屬性
* 在更新中可能有此屬性
-- 任選屬性
* 不要求BGP一定要支持該屬性
-- 任選可透明傳送
* 即使BGP過程不支持該屬性, 它也應當接受包含該屬性的路由並且把這個路徑傳送給它的對端
* 不識別該屬性的BGP過程可以忽略包含這個屬性的更新消息並且不向它的對端公布這條路徑
* BGP路徑屬性包括:
-- AS-path *
-- Next-hop *
-- Origin(起源) *
-- Local preference(本地優先)
-- MED(度量值)
-- Others
註: *表示公認必選屬性
* AS Path屬性
-- 是公認的必遵屬性
-- 是路由到達一個目的地所經過的一系列自治系統號碼的有序列表
-- 當BGP將一條路由通告到其他AS時, 便會把自己的AS號添加在AS_PATH列表的最前面
* Next-hop屬性
-- 是公認的必遵屬性
-- 為BGP發言者指示去往目的地的下一跳
* Origin屬性
-- ORIGIN屬性定義路由信息的來源, 標記一條路由是怎麽成為BGP路由的
-- 三種ORIGIN屬性類型:
* IGP: 表明路由信息產生與AS內部, 一般是聚合路由或者通過Network命令引入的路由
* EGP: 路由信息是通過EGP協議引入的(一般情況下, 不會碰到此標記, 因為EGP已經被淘汰了)
* Incomplete: 路由信息是通過其他方式得來的, 一般是通過Import引入的IGP路由或者靜態路由
-- 在其它選路因素相同的情況下, BGP會比較ORIGIN屬性來確定到達相同目的地的最佳路由
* IGP優先於EGP, EGP優先於Incomplete
* Local Preference屬性 ----> 只適用於本地自治系統內選路
-- 公認的可選屬性
-- 默認優先級為100
-- 用於AS內IBGP鄰居選擇離開本AS時的最佳路由, 它表明BGP路由器的優先級
-- 僅在IBGP對等體之間交換, 不傳遞或通告給其他EBGP對等體
-- 本地優先級屬性是一個公認可選的屬性, 只在本地AS有效和傳遞, 默認值是100
* BGP的路由優選
-- 首先丟棄下一跳(NEXT_HOP)不可達的路由
-- 優選weight值最大的路由
-- 優選本地優先級(LOCAL_PREF)最高的路由
-- 優選聚合路由
-- 優選AS路徑(AS_PATH)最短的路由
-- 依次選擇ORIGIN屬性為IGP、EGP、Incomplete的路由
-- 優選MED值最低的路由
-- 依次選擇從EBGP、聯盟、IBGP學來的路由
-- 優選嚇一跳度量值最低的路由
-- 優選CLUSTER_LIST長度最短的路由
-- 優選ORIGINATOR_ID最小的路由
-- 優選Router ID最小的路由器發布的路由
-- 優選地址最小的對等體發布的路由
* MED屬性 -----> 適用於外部AS進入本地AS時選路
-- 本地優先級影響離開AS的因素, 如果想要影響進入AS的因素, 則可以使用MED屬性:
* 是可選非傳遞屬性
* 相當於IGP路由協議使用的度量值metric, 當一個AS有多個入口點時, 用於判斷流量進入AS時的最優路徑
* 僅在相鄰兩個AS之間傳遞, 收到此屬性的AS一方不會再將其通告給任何其他第三方AS
* Weight 權重(Cisco私有) ----> 適用於本地AS去外部AS時選路
-- 管理權重是CISCO特有的BGP參數, 只適用於一臺路由器中的路由
-- 為從對等體接收的路由分配首選值, 從而影響選路
-- 權重是不會傳遞給其它的路由器, 只在本地路由器有效
* 應用BGP負載分擔時的選路
-- BGP協議本身一定能選出唯一一條到達目的網段的最有路由
-- 通過配置允許BGP負載分擔
-- BGP的負載分擔與IGP的負載分擔有所不同:
* IGP是通過協議自身定義的路由算法, 對到達同一目的地址的不同路由, 將度量值(metric)相等的路由進行負載分擔
* BGP本身並沒有路由計算的算法, 但BGP有豐富的選路規則, 可以在對路由進行一定的選擇後, 有條件地進行負載分擔
* 管理大型BGP
-- 大規模BGP網絡所遇到的問題
* BGP對等體眾多, 配置繁瑣, 維護管理難度大
* BGP路由表龐大, 對設備性能提出挑戰
* IBGP全連接, 應用和管理BGP難度增加
* 路由變化頻繁, 導致路由更新頻繁
-- 解決大規模BGP網絡所遇到的問題
* BGP對等體眾多
-- 對等體組(Peer Group)
-- BGP團體(Community)
* BGP路由表龐大
-- BGP路由聚合
* IBGP全連接
-- BGP路由反射(Route Reflection)
-- BGP聯盟(Confederation)
* 路由器變化頻繁
-- BGP路由衰減(Route Dampening)
* 對等體組
Router(config-router)#
neighbor [peer-group-name] peer-group
* 創建對等體組
Router(config-router)#
neighbor [ip-address] peer-group [peer-group-name]
* 定義一個鄰居加入到這個組中來
* 當有很多策略相同的鄰居關系時, 它就變得非常有用
* 成員可以有不同的入站策略
* 一個對等體組只需要一次更新實例, 高效
* 簡單化配置
BGP的各種屬性