一、BGP基礎【回顧】
BGP(Border Gateway Protocol,邊界網關協議)是一種既可以用於不同 AS(Autonomous
System,自治系統)之間,又可以用於同一 AS 內部的動態路由協議。當 BGP 運行於同一 AS 內部
時,被稱為 IBGP(Internal BGP);當 BGP 運行於不同 AS 之間時,稱為 EBGP(External
BGP)。AS 是擁有同一選路策略,屬於同一技術管理部門的一組路由器。
二、BGP發言者和BGP對等體
運行 BGP 協議的路由器稱為 BGP 發言者。BGP 發言者接收或產生路由信息,並將路由信息發佈
給其它 BGP 發言者。
相互之間存在 TCP 連接、相互交換路由信息的 BGP 發言者互為 BGP 對等體。根據對等體所在的
AS,對等體分為以下幾種:
1、IBGP 對等體:對等體與本地路由器位於同一 AS。
2、EBGP 對等體:對等體與本地路由器位於不同 AS。
三、BGP的路由屬性
BGP 路由屬性是跟隨路由一起發佈出去的一組參數。它對特定的路由進行了進一步的描述,使得路
由接收者能夠根據路由屬性值對路由進行過濾和選擇。下面將介紹幾種常見的路由屬性。
1. 源(ORIGIN)屬性
ORIGIN 屬性定義了路由信息的來源,標記一條 BGP 路由是怎麼生成的。它有以下三種類型:
1)、IGP:優先級最高,表示路由產生於本 AS 內。
2)、EGP:優先級次之,表示路由通過 EGP 學到。
3)、 Incomplete:優先級最低,表示路由的來源無法確定。例如,從其它路由協議引入的路由信
息。
優先級:一句話 i>e>?
2. AS路徑(AS_PATH)屬性
AS_PATH 屬性記錄了某條路由從本地到目的地址所要經過的所有 AS 號。當 BGP 路由器將一條路
由通告到其他 AS 時,會把本地 AS 號添加在 AS_PATH 列表中。收到此路由的 BGP 路由器根據
AS_PATH 屬性就可以知道到達目的地址所要經過的 AS。
AS_PATH 屬性有以下兩種類型:
1)、 AS_SEQUENCE:AS號按照一定的順序排列。離本地AS最近的相鄰AS號排在前面,其他AS號
按順序依次排列。
2)、AS_SET:AS 號只是經過的 AS 的簡單羅列,沒有順序要求。
AS_PATH 屬性
AS_PATH 屬性具有如下用途:
A、避免路由環路的形成:缺省情況下,如果 BGP 路由器接收到的路由的 AS_PATH 屬性中已經
包含了本地的 AS 號,則 BGP 路由器認為出現路由環路,不會接受該路由。
B、影響路由的選擇:在其他因素相同的情況下,BGP會優先選擇路徑較短的路由。比如在 圖
中,AS 50 中的BGP路由器會選擇經過AS 40 的路徑作為到目的地址 8.0.0.0 的最優路由。用
戶可以使用路由策略來人為地增加AS路徑的長度,以便更為靈活地控制BGP路徑的選擇。
C、 對路由進行過濾:通過配置 AS 路徑過濾列表,可以針對 AS_PATH 屬性中所包含的 AS 號來
對路由進行過濾。
閱讀更多 專注分享網絡技術 的文章