手当たり次第に書くんだ

飽きっぽいのは本能

VyOS NAT66 masquerade 設定 – IPv6 NAT を使う条件

VyOS NAT66 masquerade は、IPv6 でも送信元アドレスを変換して外向き通信を扱うための設定です。IPv4 の NAPT に近い感覚で使えますが、IPv6 では NAT を標準設計にしない方が自然です。そのため、NAT66 は最初から入れる設定ではなく、使う理由を限定して選ぶ機能として考えます。

vyos nat66ipv6 nat で調べる時に重要なのは、設定コマンドだけではありません。ULA を使うのか、GUA prefix を LAN に配るのか、prefix 変更をどう受けるのか、Firewall と RA をどう合わせるのかを分けて確認します。

この記事では、VyOS 1.5 系で読むことを前提に、NAT66 masquerade の使いどころ、避けたい構成、設定例、確認コマンドを確認します。細かな表示やコマンド差分は利用している ISO と環境で確認してください。

この記事の結論

  • 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 + NAT66LAN 側は ULA、外向きで WAN 側 IPv6 へ変換するprefix 変更の影響を LAN 側から切り離したい場合
NPTv6prefix 変換で内部 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
save

Firewall と RA を合わせる

NAT66 を設定しても、Firewall と RA が合っていなければ通信は成立しません。IPv6 では、ルーター自身宛ての input と、LAN から外部へ通す forward を分けて考えます。

確認対象見ること
RALAN 側端末が IPv6 prefix と default route を受け取っているか
Firewall inputルーター自身宛ての SSH、DNS、ICMPv6 などをどう扱うか
Firewall forwardLAN から外部 IPv6 へ出る通信を許可しているか
ICMPv6近隣探索や MTU 発見に必要な通信を落としていないか
DNSIPv6 到達性と名前解決を分けて確認できるか

確認する

設定後は、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 eth2

LAN 側端末からは、IPv6 アドレス、default gateway、DNS、外部 IPv6 への疎通を確認します。可能であれば、WAN 側で送信元アドレスがどのように見えるかも確認します。

ping6 2001:4860:4860::8888
traceroute6 2001:4860:4860::8888

よくあるつまずき

症状見る場所考え方
LAN 端末に IPv6 が付かないRA、LAN interface、prefixNAT66 より前に 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 が必要なのか、どこで変換しているのか、端末側からどう見えるのかを確認できる状態にしておくことが重要です。

関連する記事
VyOS NAT66 masquerade 設定 – IPv6 NAT を使う条件

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る