跨網域路由與 BGP

區域偏好(local preference)

當多條 BGP 路由抵達同一目的地時,自治系統需要一種辦法在內部表達「我們寧可用這一條」。區域偏好(local preference)就是那個旋鈕。它是一個附加在路由上、僅限於一個 AS 內部的數值,而 BGP 決策流程會最先看它——在比 AS 路徑長度之前、在任何其他條件之前。區域偏好較高者勝。可以把它想成這個網路貼在每條進來之路由上的「排名貼紙」:貼紙最高的那條,就是整個 AS 通往該目的地時會採用的出口。

「區域」(local)這個詞是關鍵。區域偏好在一個 AS 內部的路由器之間共享(透過 iBGP 傳遞),但絕不會送給另一個 AS。所以它表達的是純粹內部、通常是經濟性的偏好。一個常見設定是:路由進來時,匯入政策會對學自客戶的路由蓋上高區域偏好、對學自無結算對等者的路由蓋上中等、對學自付費供應商的路由蓋上低。因為區域偏好最先被檢查,這單一設定就讓整個 AS 偏好客戶出口勝過對等出口、勝過供應商出口——把「先賺錢、再省錢、最後才花錢」編碼了進去。

由於它蓋過 AS 路徑長度,區域偏好是日常裡對一個 AS 的「出向」(outbound)流量做流量工程最強而有力的工具——也就是決定你自己的封包往哪條路出去。它並不直接影響全世界其餘部分如何把流量送「給你」(那較難,牽涉到 AS 路徑加長與 MED)。而且因為它在 AS 之外不可見,兩個網路可以對同樣的路由各自採取完全不同的區域偏好政策,而永遠不會相互衝突。

通往前綴 P 的路由以三種方式抵達:經由客戶(區域偏好設為 200)、經由對等者(150)、經由供應商(100)。即使供應商那條路由的 AS 路徑最短,這個 AS 仍會把往 P 的流量從客戶送出去,因為區域偏好 200 最高,而它比 AS 路徑長度更早被檢查。

區域偏好是 BGP 的第一個決勝條件,且蓋過 AS 路徑長度;數值較高者勝,而且它永遠不離開 AS。

區域偏好只掌控你的流量如何「出去」;它對入向流量毫無作用,也永遠不對其他 AS 可見,因此無法用它來要求外界以某種方式抵達你。

又稱
LOCAL_PREFlocal-pref區域偏好本地優先權