跨網域路由與 BGP

無預設區(default-free zone)

大多數網路在不確定該把封包送往何處時,會退而求其次依靠一條預設路由(default route)——「拿不定主意,就往上送給我的供應商,讓他們去想辦法」。這之所以行得通,是因為它們上方有人懂得更多。但位於最頂端的網路又能依靠誰?沒有人。無預設區(default-free zone)就是網際網路中由「沒有預設路由」之路由器所構成的那一部分,因為它們持有完整的路由資訊:一條通往公共網際網路上每個可達前綴的路由。

這些是核心裡的路由器——第一級骨幹以及其他承載完整 BGP 路由表者。為了在沒有任何「拿不定主意就……」之後備選項下仍能正確轉送,每一台都必須知道一條通往世界上每個目的地前綴的明確 BGP 路由。所有這些前綴的集合就是全域路由表(global routing table),其大小是網路界最受關注的數字之一。它一路無情地成長:在 2014 年突破了 512,000 條 IPv4 路由(這個里程碑撞垮了一些舊路由器,它們的記憶體表恰好在 512K 處溢位),如今 IPv4 路由表早已遠超過一百萬條,IPv6 路由表也在攀升。

無預設區之所以重要,是因為它界定了網際網路核心的硬體需求。這裡的路由器必須儲存每一個全域前綴、並為每一個算出一條最佳路徑——所以它的記憶體(尤其是快速的轉送記憶體)、以及吸收源源不絕之更新變動的能力,都設下了實質上限。這也是為什麼路由聚合(CIDR)如此重要:把許多小前綴合併成一則較大的宣告,可以避免全域路由表比現在還更快地爆炸性成長。

你家裡的路由器有一張很小的表加上一條預設路由:「任何我不認得的,送給我的 ISP。」無預設區裡的核心路由器則正好相反:完全沒有預設路由,但記憶體裡有超過一百萬條明確的 IPv4 前綴外加 IPv6 前綴,因為它正是那種「自己就必須知道如何抵達絕對一切」的路由器之一。

無預設區的路由器承載完整的全域路由表(沒有預設路由)——超過一百萬條 IPv4 前綴,且還在成長。

全域路由表無情的成長是真實的工程壓力,而非僅是冷知識——它推升路由器的記憶體成本,也是透過 CIDR 進行路由聚合的主要動機。

又稱
DFZ無預設區全路由區