跨網域路由與 BGP

路由政策(routing policy)

在單一網路內部,路由通常意味著「找最短路徑」。但在網路之間,這個直覺是錯的。路由政策(routing policy)是一個自治系統用來決定下列事項的一套商業與工程規則:要從鄰居接受哪些路由、當多條路由抵達同一目的地時偏好哪一條、以及要把哪些路由轉告給誰。可以把它想成一個網路對待流量的「家規」:問的不是「哪條最短?」,而是「哪條對我們最好、以及合約上允許我們怎麼做?」

政策存在於 BGP 對話的三個環節。在匯入(import)時,AS 過濾它願意接受哪些被宣告的路由(拒絕偽造前綴,或拒絕來自某鄰居、而它本不該提供的路由),並為接受的路由標上像區域偏好(local preference)這樣的屬性,以標示偏好哪一條。在選擇(selection)時,當多條路由抵達同一前綴,BGP 決策流程會挑出一條——先看區域偏好,再看 AS 路徑較短者,接著是其他決勝條件。在匯出(export)時,AS 決定要把它選中的哪些路由再宣告出去、宣告給誰,並遵循客戶/對等者/供應商的慣例。一個典型的金錢導向政策是:優先選經過客戶的路由(你收得到錢),其次是對等者(免費),最後才是供應商(你要付錢)——不得已的下策。

政策正是跨網域路由之所以成為一件獨立而複雜之事的全部理由。如果網際網路只想要最短路徑,單一個連結狀態協定就能算出來。但各個網路是擁有合約、偏好與競爭對手的獨立企業,它們絕不會單純地把流量交給地理上最近的人。BGP 的設計——宣告完整路徑、讓每個 AS 套用自己的過濾與偏好——正是為了在仍產出無迴圈、能運作之路由的同時,表達政策而存在。

一個 AS 學到兩條通往同一前綴的路由:一條經過付費供應商(AS 路徑長 2),一條經過無結算對等者(AS 路徑長 4)。最短路徑協定會選供應商。但這裡的 BGP 政策對對等者那條路由設了較高的區域偏好,於是 AS 刻意選了較長卻免費的對等路徑來省錢——正好與「最短者勝」相反。

政策可以蓋過路徑長度:網路往往偏好較長、較便宜的路由,而捨棄較短、較昂貴的那條。

路由政策意味著你的封包走哪條路徑,是由其他網路的商業利益決定的,而非由「對你最快」決定——而且你通常對那些決定既看不見、也無法掌控。

又稱
BGP policy路由政策路由策略