南桃園 - 可能是我用過最爛也最好的網路(七)你有離開 CGNAT 的權利

  Wayne's (Mis)adventure of NTY CATV 系列文:

(七) 你有離開 CGNAT 的權利 (你在這裡)

TL;DR.

如果你已經知道 CGNAT 是什麼,我建議你拉到最下面直接看怎麼處理可以離開 TBC 南桃園的 CGNAT 網段,否則,我建議你先看完這一篇,再決定要不要離開 CGNAT。

首先,NAT 是什麼

任何要能在網際網路上通行的設備都需要遵循一套共有的協定,那就是 Internet Protocol (網際網路協定,本文以下簡稱 IP 協定)。而要參與這個大型網路,必須要先取得 IP Address (IP 位址)。
你可以把網際網路想像成複雜的電話網路,而 IP 位置就是你申請的電話號碼,要講電話就必須申請電話號碼。電話號碼在整個電話網路中不能重複,否則就會出現一號不知道應該連誰的窘境,機器也不知道怎麼處理。

那既然講到號碼,那麼號碼就必須被設計。所以當時以 32 bits 的長度的識別碼作為每一個參與的裝置的識別,所以才會有 192.168.1.1 這種熟悉的組合。就像在市話系統裡面,每隻電話只能有一隻唯一的電話號碼一樣。而我們從 32 bits 這一個長度,我們可以大約估算能有約 43 億個位置,但扣除一些特殊用途的位置後,可提供連線的裝置只能至多 37 億個。這就像 7 位數市話至多只能提供約 700 萬可用門號一樣 (扣除 0 與 1 開頭的特殊用途碼。)

至於為什麼會有 NAT ,故事是這樣的:
莫約 1990 年代初期,隨著網際網路爆發性成長,大家注意到一個嚴峻的現實:設備增加的速度遠快過 IP 位址能供給的速度。這會導致 IP  位址在可見的時間 (當時估計是 20 年內) 內就會用完,屆時就沒有任何 IP 位址給新設備上網。這間接導致企業取得 IP 位址也慢慢的昂貴起來,難以擴展網路。於是 1994 年,Cisco 提出了一個新的想法跟做法,原話是這樣:

「IP 網路最初的理想是「端對端完全互聯(End-to-End)」,人人平等且彼此都能直接連通。但實際上,絕大多數使用者在這個生態中都是主動發起連線的「消費者」(Client),而不是提供服務、需要被外部存取的「伺服器」(Server)。這意味著,絕大多數終端設備根本不需要一個永久且獨占的「公網 IP」。

 這引申 Cisco 要做的事情就是:

「如果大多數的設備只是上網和傳資料,不會被外部主動連入,那為什麼他們還需要獨占一個公網 IP 位址呢?真的要上網時,透過一台設備(通常是 Gateway)『借用』公網 IP 進行轉譯即可。而內部私網只要使用一組規範好、可重複使用的『私網 IP』就好了。這樣所有設備能繼續維持現有的 IP 協定,同時又能允許數以萬計的私網存在。」

所以這就是 NAT 的原型。但我想你也在 NAT 的簡述裡面看到一個小問題

「公網 IP 是借用的,如果這次連線結束了,或是外部有人想要主動連進來(例如你想在自己電腦架 Minecraft 伺服器讓朋友連),從外面來看,他是根本找不到也連不到你藏在內部的電腦。」

這就像你透過公司分機打外線給客戶,對方看來電顯示只會看到「公司代表號」。當通話結束後,客戶如果直接撥那個代表號打回來,只會碰到完全不知道剛才發生什麼事的公司總機小姐一樣。

當然一切都有解法,例如跟公司總機正式登記一組直撥號碼,不然就是先跟總機小姐說:「如果等等誰打過來,請直接幫我轉接到 XX 分機。」

所以 NAT 若要允許外部主動連入,也一樣要在擁有公網 IP 的 Gateway 上先設定好(也就是常見的 Port Forwarding / 轉發),連入才能正常運作。


Cisco PIX 515E - 第一台支援 NAT 功能的防火牆兼路由器


我看完了,那 CGNAT 是什麼

CGNAT 的全名稱為 Carrier-Grade Network Address Translation。首先先講 Carrier-Grade 已經點明了,這種 NAT 的作法是由「電信商」發起的,轉譯的 Gateway 位置,也是在電信商的機房。那為什麼電信商也要做 NAT 呢 ? 因為:

IP 位址好貴阿 !  客戶連線裝置又多,又拚了命叫我低價高速 !

還記得我們前面提到 IP 位址耗盡的問題嗎?當 2011 年,最後一個 IP 位址區塊由 IANA 分發之後,全球就正式進入了沒有 IP 可用的狀態了。就台灣的電信商要更多的 IP 位址只有兩種做法:

  • 等別的電信商不需要,釋出到次級市場轉賣
  • 排隊等 APNIC(亞太網際網路資訊中心),那邊有人釋出不要的網段

就連 TWNIC 本身為了避免 IP 位址的浪費,基本上也刻意施行逐年調漲 IP 位址維護費用的機制,透過價格手段強迫業者更有效率地利用 IP 位址資源。

結合我們前面所說的「多數人只是拿來上網,不架站」的情形下,CGNAT 的出現極為合理:將數個用戶收束使用同一個公網 IP 位址,既能減少營運開支、增加用戶容納數量,同時也不影響一般用戶日常生活上網的需求。

一張我仍在南桃園 CGNAT 內的測速圖,可以看到我當時的 IP 是 10.32 開頭,Typical 私有 IP


CGNAT - The Good, The Bad, The Ugly

一般用戶的福音

其實對於大多數只上網、看影片、刷社群、不太打遊戲的用戶來說,CGNAT 帶來的正面效益遠大於限制。

還記得我們前面談到的 NAT 運作模式嗎?正是因為外部網路無法主動建立連線到你的設備,這相當於電信商在機房端就免費為你架設了一層嚴密的硬體防火牆。處於 CGNAT 後方的裝置,能完全免疫來自公網的自動化腳本掃描與直接攻擊。

此外,CGNAT 將「用戶內部網路」與「網際網路出口 IP」解耦,這讓電信公司在機房端的路由調度更加靈活——ISP 可以根據即時流量,動態最佳化公網出口選擇與流量負載平衡,甚至在出口線路異常時無縫切換,用戶完全不需要重連,也不會有感覺。

再者,低廉的月費,可能也需要感謝 CGNAT 的部屬。就 IP 位址市場大概已接近個 IP 40-50 美金的價格,且每年還要繳費給 TWNIC 的維護費,ISP 硬性買足 IP 位址,成本最後也只能反映到月租費上。 CGNAT 能把更多的支出,轉向其他的用途 (例如服務與頻寬),反而能用比較少的錢享受高頻寬。

總結來說,對於純上網、看影片、對網路技術不太理解的普通使用者來說,留在 CGNAT 內反而是一個更安全、更省心的選擇,盲目追求獨立公網 IP 反而可能暴露在未知的資安風險之中。

一棒子打死一群人

但 CGNAT 也並非什麼缺點都沒有。當多人共用一個 IP 位址時,「一顆老鼠屎壞了一鍋粥」的狀態會更明顯。過往每個固網連接都會有一個公網 IP 位址,所以各網路服務皆使用「公網 IP 作為使用者的識別」。以 Mega 網路硬碟做舉例,每個公網 IP 在匿名存取的情況之下,有每六個小時 1-5GB 左右的通訊量。如果與你共享同一個公網 IP 的鄰居,先用完了下載量,那麼你就必須另外等待六個小時。這當然不僅於此,如果有人某遊戲被 IP Ban 了,那你也連同連坐,就算你什麼都沒有做,也是一樣。

Mega 免費下載用量用罄

你也許能做的,要麼等待 CGNAT 的系統輪換公網 IP 位址,或是打電話給 MSO,呈請更換對外 IP。
不過我想對於這樣的狀況也不用太過悲觀,因為這是一個慢速的轉換過程。當 CGNAT 逐漸增加應用範圍之後,更多的網路服務會改以 Account/Token-based 做為每個使用者的判斷,而不是 IP-based。那屆時 CGNAT 會導致的連坐效應會減少。但站在工程師的角度,我仍然還是會誠實地告訴你,也許有 9 成會讓你不碰到這個問題,但仍然要有那 1 成可能還是傾向不更改的心理準備。

P2P 並非萬惡,打遊戲比你想得更容易碰到

P2P(Peer-to-Peer,對等網路)簡言之就是資訊的交換來自於「你連我」、「我連你」,藉此建立一個不需要中央伺服器轉發、回應更即時的網路。許多人聽到這個詞可能會先想到 BT、eMule 這種盜版下載平台而聞聲色變。但撇開過氣的下載時代不說,P2P 技術在遊戲世界中從未消失。

像是 Sony PlayStation 與 Nintendo 玩家之間的對戰、或是像 GTA Online 這類熱門連線遊戲,都需要玩家裝置之間直接互聯。以往電信商配發公網 IP 時,NAT 屬於你私自管理的範疇(例如透過 UPnP 或手動開 Port),這些都不是問題;但 CGNAT 由電信商統一管轄、使用者毫無控制權,這會導致 UPnP 完全失效,使基於 P2P 連線的遊戲出現 NAT Type Strict(嚴格)的警告,造成無法跨房組隊或連線品質極差。

因為 CGNAT 的部屬方法導致 GTA 多人連線有問題

網路怎麼使用應該是我的事

講了這麼多,其實回到 Network Neutrality  (網路中立性) 論點來說,電信商(ISP)應該平等對待所有網路流量,不應對特定的內容、來源或應用程式進行差別待遇或干預。但是 CGNAT 的作法重新分配連接埠與私有 IP,這就導致了用戶失去公有 IP 帶來的獨立性,也讓原本應該可以執行的行為 (e.g, P2P) 大幅限縮,某些方面就是對於應用程式做了差別待遇跟干預。就現在比較實際的作法,我的看法如下:

對於固網 (包含 FWA),是否 CGNAT 應該是用戶的選擇

*註: FWA (Fixed Wireless Access) 為定點式無線存取,類似的產品比較接近遠傳大無線,或是遠傳 5G 寬頻
目前台灣家用固網中,除中華電信與新世紀資通外,台固傳媒暨凱擘,中嘉,TBC 等前三大 MSO 已經陸續開始啟用 CGNAT 來應對逐漸增加的使用者數量。整理一下三家的態度大概如下:
  • 台固傳媒暨凱擘
    • 1 個固定公網 IP 免費申請
    • 加價至多申請額外六個固定 IP,每個加價 149 每月
    • 動態 IP 不保證公網 IP (有實施 CGNAT,開頭 10.x)
  • 中嘉
    • 1 個固定公網 IP 免費申請 (計量式上網不適用)
    • 加價至多申請額外六個固定 IP,每個加價 100 每月
    • 動態 IP 似乎不保證公網 IP (有消息實施 CGNAT)*
      註: 中嘉算是完整繼承和信超媒幾乎所有的 IP,還會缺 IP 有點怪)
  • TBC
    • 1 個固定公網 IP 免費申請
    • 加價至多申請額外五個固定 IP,每個加價 300 每月
    • 2023 年後申請的客戶預設 CGNAT (開頭 10.x)
其實就實施 CGNAT 這件事情,我並不反對,但是我反對的是這些:
  • 舊有客戶沒有溝通,沒有達到告知責任,直接實施。
  • 新的客戶申請時沒有知情權,直到申裝之後才發現。
然而以上兩項,無論是我申請時問業務,或是網路上查詢到抱怨的反應,都顯示這些實施 CGNAT 的固網廠商,並沒有明確做到告知義務,導致申請後與消費者之期待有落差。
如果加入本就沒告知,那選擇能離開 CGNAT 就應該是用戶的權利。

為什麼呢 ? 別小看台灣這個小島,我們持有約 3,569 萬個 IP 位址,在全球排名第 15 名;算下來平均每個人其實能分到 1.5 個公網 IP,這還高過很多全球平均。而且就 Use-Case 來說,申請固網本身就有較高的機會需要使用公網 IP 的 Use Case,例如對於線上遊戲連線品質敏感的玩家,遠端管理或監視,或甚至像我有架設私有伺服器(HomeLab)/自用網路服務需求的玩家。

但目前似乎除了申請固定 IP 一途,沒有一間廠商顯示離開 CGNAT 有明面的方法。

對於行動網路,CGNAT 能是完全有必要的實施

並不是我對於消費型行動網路就有持降級或者是輕視的態度,而是綜觀 Mobile IP 系統的部屬,從以前的 WAP、GPRS、HSPA 系統到現在的 Flat IP 來說,固定 IP 網段的管理不經濟,站點切換時也不好管理,還會降低用戶靈活性。而且... 你是否觀察過你自己怎麼使用手機與筆電存取行動網路呢?99% 的使用者,應該都只是拿來上網刷影音吧?


--- 從這裡開始是南桃園 TBC 部分 ---

Cable Modem 差別待遇,CGNAT 的內與外

莫約在 2026 年 8 月 15 日左右,我另一條線路南桃園的線路數據機 (CGN5-AP2) 出現了非常奇怪的狀況。這台安裝不過 8 個月,但發生這個問題的那幾天,氣溫是非常高的。(室內 32)
  1. 首先速度會開始變得很慢 (無論上行還是下行)
  2. 其中接近 Cable-In 的兩個 Ethernet Port 會自動從 1G 降速到 100M
  3. 上傳功率從正常的 45 dbmV,一路飆到 54 dbmV
  4. 接著就是整台當機,不再傳送任何資料。
如果立刻重新開機... 那機器就是很久很久很久.... (超過 N 多分鐘的久) 才會正常,但很快的又會當機。
死當的 CGN5-AP2

有趣的是,同一個房間我還有安裝另一台 Cable Modem,同一條線拆分出來的 (CGNM-1210) 上傳功率,速度完全正常。所以我也只好把問題敘述好,請工程師來了:




我覺得大概連 L1 Support 大概都已經知道我是誰了,並沒有多問什麼,就直接把我的要求給了維修部門,而且好玩的來了:

更換後的 CGNM-1210

這次什麼都沒問,也沒想了解為什麼,就直接拿來我指定的型號來換了。
有時我真的覺得師傅來不是幫我解決問題的,反而比較喜歡閒聊,從改什麼 WiFi 設定可以讓用戶傳輸速度最大,哪個型號的 Hitron 比較穩定,不然就是問我你是怎麼敢裝兩台南桃園的寬頻的 (有時覺得挺好笑的,連你們自己的工程師也不太相信南桃園的品質,這真的不太 OK....) 而當然我怎麼判斷該不該裝,其實前面我已經有講過了。

南桃園對於懂網路的人非常願意開綠燈


這一台 CGNM-1210 跟我第一次安裝的  CGNM-1210 有些不同,這一台是他人拆機後拿來我這裡安裝的。為什麼我會知道呢 ?
看機器沾了點油漆,還有灰塵,我用酒精跟其他洗劑擦了擦,Modem 算是回到了比較新的狀態。透過機器的情形,大概能猜出上個主人應該是安裝有一點時間的。至少 3~4 年應該跑不掉,而且非常關鍵的一點,機器接上去第一個動作,是先更新韌體,這更加說明了這台機器有好一段時間沒有出庫安裝了。

因為基本上這是裝過的機器,對於核心網路的 IP 入網許可應該是已經存在,要做的頂多是在我這一區 CMTS 的註冊許可。一切都很順利,基本上檢查完網路速度,跟上行狀態,我就先請工程師回去了。

登入管理頁面去改 Bridge Mode 的時候,我眼尖的看到了一個東西:
拿到的是公網 IP

我用電腦直接插網路線到我另一台 CGNM-1210 的機器:
另一台拿到 CGNAT

這讓我有一個大膽的假設:

用戶 Cable Modem 能取得的 IP Pool 是跟隨 Cable Modem 的

簡言之:
到底在 CGNAT 裡面還是外面,是這台 Cable Modem 第一次註冊進 IP Pool 時有關

因為換 Modem 要遷移固定 IP 跟 IPv6 服務,就這個我已經聊若指掌了 (可以去看我的第四章)
但我這次決定對我的假設做一次嘗試,於是我在請求 IPv6 服務變更的信件裡面,故意加了一條轉達訊息:
我在這同時,也要求請將指定的 Cable Modem 遷出 CGNAT

結果怎麼呢 ? 我約在當天晚上 10 點,就接到 TBC 來電,說指定的 Modem 已經 By-Pass CGNAT 。而我去檢查,也確實是如此:

CGNAT 在 Modem 中顯示已經配發公網 IP 位址
看了看,除了其中兩個固定 IP 是我特別申請的之外,其他兩個已經成功拿到了公網 IP 位置。
整個過程的順暢讓我大開眼界。

雖然 TBC 經常被罵比凱擘與中嘉服務還要差,而某些方面在旅遊台裡面自己插入 Local 的廣告,用的機上盒比起前面兩位有差距,但願意配合用戶的網路需求,跟允許用戶離開 CGNAT,就光這個我就足夠願意把凱擘跟中嘉丟一邊去。

離開 CGNAT 的自律與應有素質

會使用 CGNAT 代表 ISP 已經開始對於可用的公有 IP 位址開始預警,如果我們把幾大電信的客戶與 IP 位址可分配比,就能看到各大 ISP 都是在什麼情況下開始實行 CGNAT。
  • Hinet (中華家用固網) 1:3.29 (373 萬客戶 / 1223 萬 IP 位址)
  • Seednet (遠傳家用固網) 1:2.01 (85 萬客戶 / 170 萬 IP 位址)
  • 凱擘大寬頻暨台固媒體 1:0.99 (155 萬客戶 / 153 萬 IP 位址)
  • 中嘉和網 1:1.89 (110 萬客戶 / 200 萬 IP 位址)
  • TBC暨大大寬頻 1:1.01 (41萬客戶 / 42 萬 IP 位址)
所以其實從這裡可以看的出來,1:2 是一個重要的分水嶺,一旦 ISP 低過這個數值,那 CGNAT 就必然會實施。就像中嘉也開始有風聲實施 CGNAT。透過計算,TBC 僅適合至多一用戶一 IP 位址。故,這裡我仍然要提醒,TBC 仍然願意讓用戶離開 CGNAT 應該是 IP 位址資源上還允許,但已經不充裕,如果濫用,這項福利隨時都可能會不再能使用。儘可能以最少 IP 位址數使用作為準則。

留言

熱門文章