VyOS NAT66 masquerade は、IPv6 でも送信元アドレスを変換して外向き通信を扱うための設定です。IPv4 の NAPT に近い感覚で使えますが、IPv6 では NAT を標準設計にしない方が自然です。そのため、NAT66 は最初から入れる設定ではなく、使う理由を限定して選ぶ機能として考えます。
vyos nat66 や ipv6 nat で調べる時に重要なのは、設定コマンドだけではありません。ULA を使うのか、GUA prefix を LAN に配るのか、prefix 変更をどう受けるのか、Firewall と RA をどう合わせるのかを分けて確認します。
この記事では、VyOS 1.5 系で読むことを前提に、NAT66 masquerade の使いどころ、避けたい構成、設定例、確認コマンドを確認します。細かな表示やコマンド差分は利用している ISO と環境で確認してください。
書籍
IPv6、ルーティング、NAT、Firewall、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- IPv6 では NAT66 を標準にせず、まず GUA prefix 配布や prefix delegation を検討する
- NAT66 は ULA を使った内部設計や prefix 変更の影響を小さくしたい場合の選択肢になる
- NAT66 を使う場合も、Firewall、RA、DNS、経路を合わせて確認する
- IPv4 NAPT と同じ気持ちで IPv6 NAT を入れると、到達性と切り分けが分かりにくくなる
- 設定後は
show nat66 source rules、IPv6 route、端末側の疎通を分けて確認する
NAT66 を使う前に考えること
IPv6 の基本は、端末がグローバル IPv6 アドレスを持ち、Firewall で到達性を制御する考え方です。IPv4 のように NAT が前提ではありません。NAT66 を使う前に、なぜ LAN 側へ GUA prefix を配らないのかを確認します。
| 選択肢 | 考え方 | 向いている場面 |
|---|---|---|
| GUA prefix 配布 | LAN 端末へグローバル IPv6 prefix を配る | 一般的な IPv6 接続、end-to-end 到達性を保ちたい場合 |
| Prefix delegation | 上流から受けた prefix を LAN 側へ配る | 家庭用回線や小規模ルーターで自然な構成にしたい場合 |
| ULA + NAT66 | LAN 側は ULA、外向きで WAN 側 IPv6 へ変換する | prefix 変更の影響を LAN 側から切り離したい場合 |
| NPTv6 | prefix 変換で内部 prefix と外部 prefix を対応させる | アドレスの一貫性を保ちつつ prefix 変更へ対応したい場合 |
NAT66 が合う場合
NAT66 が合うのは、IPv6 NAT を使う理由を説明できる場合です。たとえば、LAN 側は ULA で固定し、上流 prefix が変わっても内部設計を変えたくない場合があります。
- LAN 側に ULA を配り、内部アドレス設計を固定したい
- 上流 prefix が変わる環境で、端末側の prefix 変更を避けたい
- 検証環境や閉じた内部ネットワークから外向き IPv6 だけを許可したい
- IPv6 の外向き通信は必要だが、内部のアドレス設計を外部 prefix に依存させたくない
NAT66 を避けたい場合
一方で、IPv6 を正しく使える環境で、単に IPv4 NAT と同じ感覚を持ち込みたいだけなら、NAT66 は避けた方が分かりやすいことがあります。
- 上流から安定した GUA prefix や prefix delegation を受けられる
- LAN 側端末へ IPv6 到達性を自然に持たせたい
- 外部からの到達性を Firewall で制御すれば十分である
- NAT 変換によりログや障害切り分けを複雑にしたくない
LAN 側に ULA を用意する
NAT66 masquerade の例として、LAN 側に ULA prefix を配り、WAN 側へ出る時に送信元を変換する構成を考えます。ここでは eth2 を LAN 側、eth0 を WAN 側として扱います。
configure
set interfaces ethernet eth2 address 'fd00:10::1/64'
set service router-advert interface eth2 prefix fd00:10::/64
commit
save端末側には ULA が配られます。端末が IPv6 default route と DNS を得られているかも合わせて確認します。DNS が未設定だと、IPv6 疎通はできていても利用者からは通信できないように見えます。
NAT66 source masquerade を設定する
次に、LAN 側 ULA から WAN 側へ出る通信を NAT66 masquerade します。source prefix と outbound interface を明確にして、対象範囲を広げすぎないようにします。
configure
set nat66 source rule 5000 outbound-interface 'eth0'
set nat66 source rule 5000 source prefix 'fd00:10::/64'
set nat66 source rule 5000 translation address 'masquerade'
commit
saveFirewall と RA を合わせる
NAT66 を設定しても、Firewall と RA が合っていなければ通信は成立しません。IPv6 では、ルーター自身宛ての input と、LAN から外部へ通す forward を分けて考えます。
| 確認対象 | 見ること |
|---|---|
| RA | LAN 側端末が IPv6 prefix と default route を受け取っているか |
| Firewall input | ルーター自身宛ての SSH、DNS、ICMPv6 などをどう扱うか |
| Firewall forward | LAN から外部 IPv6 へ出る通信を許可しているか |
| ICMPv6 | 近隣探索や MTU 発見に必要な通信を落としていないか |
| DNS | IPv6 到達性と名前解決を分けて確認できるか |
確認する
設定後は、NAT66 rule、IPv6 route、インターフェイス、端末側疎通を分けて確認します。ルーター自身からの ping と、LAN 端末からの通信は別物です。
show nat66 source rules
show configuration commands | match 'nat66'
show ipv6 route
show interfaces ethernet eth0
show interfaces ethernet eth2LAN 側端末からは、IPv6 アドレス、default gateway、DNS、外部 IPv6 への疎通を確認します。可能であれば、WAN 側で送信元アドレスがどのように見えるかも確認します。
ping6 2001:4860:4860::8888
traceroute6 2001:4860:4860::8888よくあるつまずき
| 症状 | 見る場所 | 考え方 |
|---|---|---|
| LAN 端末に IPv6 が付かない | RA、LAN interface、prefix | NAT66 より前に LAN 側配布を見る |
| ルーターは外に出るが端末は出ない | forward firewall、RA、nat66 rule | ルーター自身と端末経由を分ける |
| 名前解決だけ失敗する | DNS forwarding、上流 DNS、端末側 DNS | 疎通と DNS を分けて確認する |
| NAT66 が効かない | source prefix、outbound interface | 対象 prefix と出口 interface を合わせる |
| 障害時に追いにくい | ログ、変換前後のアドレス | IPv6 NAT の運用コストを受け入れられるか見る |
まとめ
VyOS NAT66 masquerade は、IPv6 でも NAT 的な抽象化を使える機能です。ただし、IPv6 では NAT を標準設計にしない前提があるため、まず GUA prefix 配布、prefix delegation、Firewall による制御で足りるかを確認します。
NAT66 を使う場合は、ULA、RA、Firewall、DNS、経路、変換対象 prefix をセットで決めます。設定コマンドだけを見るのではなく、なぜ NAT66 が必要なのか、どこで変換しているのか、端末側からどう見えるのかを確認できる状態にしておくことが重要です。

