在 Fortinet 設備上使用 NAT66 (IPv6-to-IPv6 NAT)
很可能正是我的這一個要求,打破了系上網路的寧靜。智能所網段 (IAIS) 於星期二 (9/30 起) 開始提供 IPv6 服務 。這下連系務管理人員可能也不喜歡我了也說不定... (畢竟要熟悉一種新的,還不是簡單的能用數字表達的 IP,每次寫也要寫得又臭又長...)。
雖然寫了文章也講了 「IPv6 不應該這樣分配」... 也無法改變陽交大資訊人員的想法... (可能跟還沒有 Train 足夠多的人有關 ?)
反正教授們都很聰明,都會知道怎麼解決問題,故我正是用 NAT66 去解決自己的實驗室私有網路的 IPv6 問題。(不太懂為什麼要這麼做的請看前一篇文章)
誰能支援 NAT66:
選 Fortinet 純粹只是碰巧我有這台機器,但不可否認的是 Fortinet 也是我在眾多的網路產品之中,感覺 NAT 功能做的最為全面,支援幅度最大的一個廠商,不僅僅是傳統的 NAT44 與今天要介紹的 NAT66,甚至過度用的 NAT64 與 NAT46,Fortinet 在 FortiOS 6.x 就有支援了。
我的實驗室裡的 FortiWiFi 50E 2R (802.11ac 版)
- Cisco ASA 系列防火牆 (執行 9.2 版以後或更新的機器)
- CheckPoints 系列防火牆 (執行 R76 或更新的版本)
- Dell SonicWall 系列防火牆
- H3C SecPath 防火牆
- Huawei 電信級路由器 (Service Router) 與 HiSecEngine 防火牆且必須購買 NAT66 授權
- Juniper Junos 路由器與 SRX 防火牆
- Mikrotik 路由器 (任何執行 RouterOS v6 或更新的基本上都可以)
- OpenWRT 路由軟體
- OPNSense 路由防火牆軟體
- pfSense 路由防火牆軟體 (2.8.0 之後)
- VyOS 路由防火牆軟體 (1.5 之後)
- 任何執行 Linux 有 nftable 支援的機器
以下設備支援的是 NATv6 DIA (或稱為 NPTv6),仍然必須擁有外部對應網段(即內網若有一段64,外網就必須有相對應的 64,這是作為 Failover 跟 Load-Balancing 用的),不應做為 NAT66 設備使用
- Cisco 路由器 (執行 IOS 16 以後或更新的版本,含 XE)
所以這就是為什麼我會在前面特別提到 NAT66 支援的設備非常非常的少,是少到誇張的地步。我想也不會有人特定為了在交大自己實驗室網路裡面可以有 IPv6 所以特地去買這些東西吧 ? (別忘了,這些設備動輒都是數萬起跳的,就算是現在最便宜的 Fortinet 30G (不含資安功能授權) 也要 8000 多台幣。
交大教師 (光復校區) 最佳解套,那些汰換的二手設備
如果願意仔細花時間找露天或蝦皮,其實非常多以上產品的拋售,有些甚至有內建 WiFi 功能,剛好頂一台 AP,而且通常價格非常低廉,效能也經常比全新的家用款來的更好,功能更多:
隨便找的一台
但看在花費通常不會超過兩千的情況下,就看個人願意為 IPv6 犧牲多少... 對我而言,我需要 IPv6 子網做實驗,那當然一定花下去。
如果你跟我一樣是 Fortinet 的愛用戶,設定 IPv6 NAT 請看這裡
要在 Fortinet 上設定 IPv6 NAT並不難,思路很直覺
- 1. 設定 WAN IPv6
- 1.1 設定靜態 IPv6 路由 (如果你的 IPv6 是手動設定的時候)
- 2. 設定 LAN IPv6
- 3. 設定 IPv6 DNS
- 4. 設定 IPv6 NAT
沒了,就這樣。
1. 設定 WAN IPv6
點 「網路」 -> 「介面」-> 「wan1 (看你的 WAN 是哪個介面)」,按右鍵編輯
找到 IPv6 位址/Prefix 輸入你的 IPv6 位置 (備註: 交大的 IPv6 是人工配發手動設定,系辦會給)
如果您的學校是使用 DHCPv6,則請選擇 DHCPv6,如果使用 SLAAC (無狀態自動定址),請看以下,點右上角的「命令」介面,並輸入以下:
- config system interface (設定系統介面)
- edit wan1 (編輯 wan1 設定,這裡請注意你的 wan 到底是哪一個)
- config ipv6 (設定 IPv6)
- set autoconf enable (啟用自動設定)
結束時請記得打 end,不然設定不會儲存
1.1 設定 IPv6 靜態路由 (只有當你的 IPv6 的設定方式是手動時)
點 「網路」 -> 「靜態路由」-> 「新增 IPv6 靜態路由」
- 目的 ::/0 (代表所有流量的意思)
- 閘道器位置: 請輸入網管人員給你的閘道器位置
- 介面: 選擇你的 WAN 介面
其他的可以不用改
2. 設定 LAN IPv6
點 「網路」 -> 「介面」-> 「lan (有些會是 internal,如果你有自己建立 VLAN 或其他,請以此類推)」,按右鍵編輯
- IPv6 Addressing Mode : Manual (請務必設定為 Manual,因為對你的內網來說,你必須要固定路由器位置,讓其他設備找到你
- IPv6 位置/Prefix : 請輸入任何一段「不能公開路由的 IPv6 網段」,例如 2001:db8, 3fff: (書寫用位置), fc00-fdff: (ULA 位置)
重要提醒: 不要隨便使用沒有公開分配的 IPv6 網段,雖然短期一定沒問題,但長期仍然會有問題,包含位置覆蓋等等...
接著我們必須設定 IPv6 內網的位址發放,此處僅介紹 SLAAC 無狀態發放。雖然這會導致 IP 發放遺失一些管理性,但是:
- 並非所有設備都支援 DHCPv6 取得位置 (所有的 Android 裝置,IoT 設備)
- SLAAC 設定簡易,隨插即用
然而如果您的內網小於 /64 時,則必須使用 DHCPv6,因為 SLAAC 會失效。
設定 LAN SLAAC 自動定址在 FortiOS 7 以前必須使用 CLI 來達成,但設定也不困難:
- config system interface
- edit internal (請注意你的 lan 是哪一個,不清楚可以輸入 show)
- config ipv6 (設定 IPv6)
- set ip6-allowaccess ping (允許 IPv6 Ping,此步驟很重要,IPv6 十分依賴 ICMP)
- set ip6-send-adv enable (啟用 IPv6 Router Advertisement 廣播)
- set ip6-prefix-list (設定 IPv6 子網清單)
- edit fd00:64::/64 (編輯子網,請輸入你自己設定的子網,例如我的路由器位置為 fd00:64::ffff/64,那子網就是 fd00:64::/64)
- set rdnss fd00:64::ffff (設定網路內的電腦的 DNS 伺服器為 fd00:64::ffff,可以改為自己喜歡的 DNS 位置,而我一般會讓 Fortigate 自己做 DNS Relay)
記得使用 end 讓設定生效
3. 設定 IPv6 DNS
此處也十分直覺... 點選「網路」 -> 「DNS 伺服器」,輸入 ISP 或 MIS 給你的 DNS 設定,如果在 WAN 使用 DHCPv6 或是 SLAAC,那通常這裡可以不需要設定 (因為會自動帶入)
4. 設定 IPv6 NAT 政策
點選「政策 & 物件」 -> 「IPv6 政策」-> 新增 IPv6 政策
- 名稱: (請填寫你看得懂的,知道這個政策是做什麼的名稱)
- 進入介面: (你的 lan)
- 離開介面: (你的 wan)
- 來源: all
- 目的: all
- 服務: ALL
- 啟用 NAT: YES (這一步最重要,沒弄好都不會動)
完成
基本上設定到這一步,IPv6 NAT 已經完成了:
待續...
Wayne 10 月 1 日

.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)
留言
張貼留言