在 Slashdot 上看到 PlusNet 決定測試用 CGNAT (Carrier-grade NAT) 解決 IPv4 不夠的問題:「UK ISP PlusNet Testing Carrier-Grade NAT Instead of IPv6」。
用超大型 NAT 並不是特別的新聞 (某些 mobile network 上就是這樣做),但 ISP 如果用在一般網路上則很有可能會跟客戶的 NAT device (可能是公司,也可能是家庭) 發生 Private Network 相同而導致問題。
2012 年 4 月的 RFC 6598 (IANA-Reserved IPv4 Prefix for Shared Address Space) 將 100.64.0.0/10
(Shared Address Space) 這個網段保留,拿來給營運 CGNAT 的 ISP 使用:
NetRange: 100.64.0.0 - 100.127.255.255 CIDR: 100.64.0.0/10 OriginAS: NetName: SHARED-ADDRESS-SPACE-RFCTBD-IANA-RESERVED NetHandle: NET-100-64-0-0-1 Parent: NET-100-0-0-0-0 NetType: IANA Special Use
在 RFC 裡規定 100.64.0.0/10
只能拿來內部使用不得交換;如果要交換必須要有能力將不同介面的 100.64.0.0/10
當作不同網段 NAT (也就是 CGNAT 會做的事情):
In particular, Shared Address Space can only be used in Service Provider networks or on routing equipment that is able to do address translation across router interfaces when the addresses are identical on two different interfaces.
另外文件裡還定義了使用 100.64.0.0/10
時對 DNS 的過濾。
如果 CGNAT 上不能打洞,那麼很多應用就很苦了 (得靠 UDP hole punching 打洞,這還得在沒有 randomized NAT port 的情況下才打的通),不過非 P2P 的應用應該不會有問題...
會不會做一做之後就維持這個方式?IPv6 遙遙無期... XD
One thought on “ISP 架設 NAT 解決 IPv4 不夠的問題...”