面對 IPv6 我們從未準備好 - 從陽交大網路位址政策看待 NAT66
如果要說通訊技術類相關學術領域之領頭,陽交大如果算不上台灣第一,那敢叫板的可能只剩台大,ESA 這三個縮寫代表著 Engineering、Science、Administration,鋪下了電機、資通訊、光電的基礎。
就連網路也特立獨行
說到陽交大那就不得去說他的網路地位。不,不是說 140.113 有多厲害,沒有人敢跟 112 與 118 叫板,但台灣網際網路的地位中,陽交大是有 AS (Antonomous System) 編號,並使用 BGP 協定與多家電信進行互聯的大學。相較於其他大學依賴於教育部與 TWAREN (台灣高品質學術網路) 的路由,陽交大算是非常講究「網路自主性」的學校。
教育部於 1998 年提供了 140.113 之後,交大在數年後自己申請了 211.76.240.0/20 這一段 IP,並且獨立出 AS (即 AS18185),上游為 SeedNet 聯合數位。雖然當時為何申請這一段 IP 已經查無根據,但這在台灣所有大學中是絕無僅有的。因為這個慣例是直到 2022 年的 7 月,臺灣科技大學申請了 103.191.22.0/23 並獨立出 AS63899 之後才打破。
- 申請「企業型」或「固接專線」上網到你的公司所在地:
簡言之:我買你的線(無論實線或虛擬)接到網際網路,買你的頻寬,但不買你的 IP 位置 - 購買 IP-Transit 服務:
簡言之:因為我沒有能力自己介接這麼多 ISP,所以我需要你來協助幫我路由這一段 IP 到我的路由器上,包含未來所有產生的流量也需乘載。
那各位對於這兩項服務所需費用有概念嗎?(以下費率 2025 年 9 月取得)
- FTTx 企業型(注意:不是光世代固定制!或是其他的 OO 固定制,這些使用的 IP 仍然由 ISP 擁有納管)計價方式:電路月租費(已包含頻寬費用)
- 固接專線,計價方式 線路價 + 通信費
- FTTx 企業型: 712,000
- 固接專線:330,464 + 900,000 = 1,230,464
這是一個非常可觀的數字,就算只有 100M,也足夠讓一間公司就僅網路開支就高的非常可觀。(這邊我們不探討其他常用方法,包含 VPN 接入等)
所以當我們看看陽交大目前與個不同電信之簽約互聯:
我能很明確的告訴你,陽交大對他的網路很敢花錢,也很敢建設。就陽交大目前的規模,已經足夠勝任一間中型 ISP。(交大的對外總頻寬 70G 左右,服務約 5 萬多人,相較於僅服務嘉義市的世新有線電視,5.5 萬用戶數,對外總頻寬只有 16G。按照此類標準,交大若要當 ISP 是足夠服務一個縣市的。)很超前的技術,管理方案卻提不出來也跟不上
近期終於把實驗室算是建設到一定程度,網路也上線了,身為 IAIS 智能研究所丙組(資訊通信組)的教授,又曾任於會接觸電信服務的公司,我會要求 IPv6 服務再也正常不過。
- 我是那個當知道 He.net 與 Sixxs 有提供 v6 Tunnel 時,還特地去換了路由器讓 6in4 會 Work 的人 (2007 年)
- 我是那個當知道中華電信有提供 IPv6 試驗服務就立刻跑去櫃檯申請服務還繳費的人 (2011 年)
- 我是那個當進公司第一件事情是把整個公司一星期內全部 Dual-Stack 的人 (2023 年)
- 我是瘋到有試驗過純 IPv6 內網,並使用 NAT64 使 v6 去上 v4 網路的人 (2024 年)
然而近幾日與陽交大網管的互動... 能看得出,就算是身為台灣網路最前衛的大學,對於 IPv6 的管理方案仍然與 IPv4 依舊:
所以看起來他們仍然想要的做法還是:
- 每個系所有自己的網段,學校對於每個系所有一個路由器管理 (這裡的一個未必是實體上的一個,可能是虛擬的,例如一台路由器管轄 N 個網段)
- 每個系所必須自行處理 IP 的配發
非常典型的 IPv4 管理方法,其管理方式也在許多學校施行已久,而且這樣可以有效地減低資網中心的管理需求,並把部分責任切分出去。而我能很明確地說,很可能最後會變成 IPv6 位置是 IPv4 位置的衍伸,例如:114.113.255.254,那 IPv6 就可能是像 2001:F18:113:255::254 之類的。這樣不僅省去了系所不需要懂 IPv6,不懂網路的人也就照表操課。
管理上確實沒有問題:
- IPv6 確實可以使用該方法進行管理,而且完全不衝突
- 如果有人需要擁有自己的子網路呢 ? (別笑,這件事情發生的比你想的多非常多,只要你家有一台分享器,你就在用自己的子網路,架設一台路由器在實驗室或辦公室太平常了)
- /64 已經是 IPv6 Defacto 的最小子網單位 (請見 RFC7421),再切會導致更小的子網之中部分特性出嚴重問題,例如 SLAAC 自動定址服務可能會訂出一個規定外的位置,或是根本不會運作。
- IPv6 是沒有 Defacto NAT 標準的,因為 IP 原本設計的目的是在於互聯,NAT 會製造互聯問題,所以當上面不配發子網給下面時就會發生子網路中沒有 IP 可以配發的窘境。
- 支援 IPv6 Passthrough 的設備是少到你無法想像
- 我們假設為了解決上述問題,所以將假想的路由器作為可以 "自動無視 IPv6 流量",就像路由器對於 IPv6 的流量如一台 Switch 一樣,直接穿透。但實際上有支援這項設定的「家用路由器」只有華碩跟 TP-Link (到目前我有接觸過的),不可能所有人都願意花這麼多錢去買 Cisco。而且這樣又產生了另一個問題:是不是底下子網的設備又必須要跟別人討論誰的 IPv6 Range 在哪呢 ? 怎麼進行自動設定 ? 所有設備都要手動設定 ? 包含你的手機連上了自己實驗室的區域網路... ?
這是個很典型的誤區:拿 IPv4 的管理方法去管 IPv6。但這會導致非常多的問題,包含 IPv6 的穿透率。
IPv6 DHCP-PD 與消滅 NAT,又要貪 NPT,融合成了管理上的怪物
IP 最初設計的目的是在於無障礙的互聯,NAT 對於許多人來說是福音,但對於設計 IP 的人來說是個噩夢,與最後的折衷 - 因不可否認的是在 1993 年的當時,對於 IPv4 的枯竭已經認為是無可避免。當人們發現連接的網路因為逐漸減少而競價的位置而越來越貴,網路的可擴展性也受到了限制。
NAT 很好的解決了這個問題,試想:
- 我們上網時並不會一次使用完全部的 Sessions (65535),多數情形之下我們僅用接近數百,其中有許多會在通訊結束後消除。所以數個通訊裝置使用一個 IP 是可行的。
- 當我們上網 (主動向外連線時),若有一表可以記錄出去的連線,與內網對應的關係設備,屆時連回來不會導致問題。(所以網外連取得服務是毫無阻礙,但連入確會有問題就是在這裡,因為表中沒有規定。這時我們就要設定 Static NAT)
- 外界網路如何改變,與內部網路毫無關係,內部怎麼搞,跟外面也沒關係,同時也讓網路備援變得很容易: WAN1 IP 斷了 ? 那就改 Table 換 WAN2 IP 出去吧,內網什麼都不用改。
- 外界連入連線「是被強制管理的」(不設定進不來),增加安全性
- IPv6 的位置數已經多到連每一粒沙都可以有位置還會有剩,為什麼還要 NAT ?
- 如果沒有位置數量的問題,NAT 就沒有存在的必要性 (請記住 NAT 當初創造的目的是因為 IP 不足,其附帶效果並非當時設計時所想到的)
- 因為無法預料會有多少子網,所以我先預備「子網池 (Prefix Pool)」,你有需要,你宣告需求(Prefix Delegation),我給你。
- 路由一段到指定路由器,例如: 2001:db8:1::/48
- 路由器 A 切分 1. 所屬管轄網路的子網,以及 2. 可配發的子網
可能會類似如下: - This Subnet: 2001:db8:1::/64
- Prefix Delegation Pool: 2001:db8:1:100::/56, Allow-Size 64...
- WAN IPv6: 2001:db8:1::55 (任何在 2001:db8:1:: 之中的可用位置)
- LAN IPv6: 2001:db8:1:101::/64 (注意這裡核發的是網段,不是位置,任何在 Pool 內可以發的網段都能用)
- For Any to 2001:db8:1:101::/64 Goto 2001:db8:1::55
- 就算是接近無限的位置 (IPv6),當取得資源是有價時,就不可能予取予求
- 請問一個客戶最多可以拿多少網段 ?
- 如果限制 /64,那客戶如果底下又分給其他的 AP 呢 ? (想想學生宿舍)
- 那如果我配了 /48 (65536 個 /64) 這樣合理嗎 ? 可是台灣的制度,一次是配 /32,那這樣 65536 個 /48 不很快就全配光了 ?
- DHCP-PD 每次配發都會改變 (目前不是所有的 ISP 都支援 Prefix Hint (就是點名我要哪個 Prefix),畢竟這個會踩到服務區隔,好比光世代固定制),每次我的內網 IP 都會變,那我要怎麼管理內網 ?
- Fail-Over 跟 Load-Balancing 這樣要怎麼做 ?
- 把一內網逐一對應到一外網
- 外網若改變,只需改變 NPT 中對應的外網,內網無須改變
- 這些零零總總的設計從未考慮做為一個使用者,當擁有自己的私有網路時的延展性 ?
- 這些東西似乎都是針對 ISP 已經提供服務的環境做設想
作為陽交大,你在等待哪一個 ? 是等淘汰的 NAT66 死灰復燃 ? 還是向前 ?
- ISP 只能滿足大部分區間用戶的需求,不可能無限滿足,但 IPv6 使得 ISP 必須管理更多
- 用戶對自己的子網路失去絕大多數位置的控制權
- 沒有任何一個家用產品支援 NAT66,甚至是更簡單的 NPT66
- 甚至就連企業級產品也不一定都支援 NAT66 (例如 Cisco ISR 系列)
- 一個 WAN IPv6 加上一個對應的 LAN IPv6 /64 子網
- 140.113.255.254 -> 2001:F18:113:255::254 (WAN) -> 2001:F18:A255:254::/64
(備註: 以上只是舉例,必須特別注意衍生網段是否在實際操演中可路由)
SLAAC, DHCPv6 與 /64 的重要性
IPv6 定址中主要分為兩類
- 無狀態定址 (Stateless / SLAAC)
- 路由器廣播網路大小與 RA (Router Advertisement),有些會附帶 RDNSS (Recursive DNS Service Location),IPv6 位置請自訂 (通常是透過一組函數計算出來,一般是跟網卡的 MAC 有關)
- 有狀態定址 (Stateful / DHCPv6)
- 基本上跟認知的 DHCP 相同,所以能提供固定位置等。但要注意的是,支援 DHCPv6 的設備並不多,Android 全部設備都不支援,IoT 設備也幾乎相同。(想想看是 Implement 整個 DHCPv6 Stack 比較簡單,還是幾個 Hash Function 就可以決定位置比較簡單 ?)
- 混和式 (Stateless, Stateful 不同程度的同時存在)
- 兩者可以同時存在,也可以部份存在。常出現的會是位置 SLAAC,但是 DNS 資訊由 DHCPv6 提供,或者是同時配發 Stateless 與 Stateful 位置









留言
張貼留言