跨網域路由與 BGP

供應商與客戶關係(provider-customer relationship)

網際網路上的路由,受金錢的形塑更甚於受地理的形塑。網路之間三大商業關係中的兩種,構成了供應商與客戶這一對:客戶向供應商付費購買轉送(transit)——也就是把客戶的流量載往網際網路其餘部分、又從那裡載回來的服務。這就像你付費給 ISP 取得住家連線一樣,只是放大到整張網路的規模:一家區域 ISP 付費給一家更大的骨幹網路,以抵達它自己抵達不了的各處。

這些關係驅動了一個網路願意宣告什麼,這由一條著名的經驗法則所概括,有時稱為 Gao-Rexford 規則。一個網路會把它知道的所有路由都宣告給它的客戶(客戶付費就是要抵達各處,所以給他們全部)。但對它的供應商與無結算對等者,網路只宣告它自己的路由與它客戶的路由——絕不宣告它從另一個供應商或對等者學到的路由。原因是經濟的:把供應商的路由再宣告給對等者,等於免費承載那些流量、做白工。正是這唯一的不對稱,使得網際網路的金錢往下流,而路由依「誰付錢給誰」而流動。

由此產生一個後果,即良好運作之網際網路路徑的「無山谷」(valley-free)性質:流量由客戶往上送到供應商,可能橫越一條對等鏈路,再由供應商往下送到客戶,但絕不會上去、下來、又再上去(那會強迫某人提供免費轉送)。當這份紀律被打破——通常是出於意外——就會出現路由洩漏(route leak):一個網路錯誤地宣告了它不該宣告的路由,導致流量湧入一個本不該承載它的網路。

接取 ISP X 向供應商 Y 付費購買轉送。X 把自己的前綴 192.0.2.0/24 往上宣告給 Y,Y 再把它宣告給網際網路其餘部分(X 是 Y 的付費客戶)。但 Y 不會把 X 的前綴免費似地宣告給 Y 自己的某個對等者——而 X 也絕不可把它從 Y 學到的路由再往前宣告給另一家供應商,否則 X 將在無意間,在兩個大型網路之間提供了免費轉送。

客戶拿到每一條路由;供應商與對等者只拿到你自己的與你客戶的路由——金錢形塑了宣告內容。

這些規則是靠設定來執行的慣例,而非 BGP 本身強制的——BGP 內建並沒有「客戶」或「對等者」的概念,因此一次設定錯誤就可能打破這份紀律、造成具破壞性的路由洩漏。

又称
transit relationshipcustomer-provider轉送關係供應商客戶關係