VyOS の NAPT、いわゆる IP マスカレードは、LAN 側のプライベートアドレスを WAN 側インターフェイスのアドレスへ変換し、複数端末からインターネットへ出られるようにするための設定です。
NAPT は送信元 NAT です。通信を許可する機能そのものではなく、Firewall、デフォルトルート、WAN インターフェイス、PPPoE、DNS が成立したうえで、送信元アドレスとポートをどう変換するかを決めます。
この記事では、VyOS 1.5 系で読むことを前提に、NAPT / IP マスカレードの役割、設定例、Firewall や PBR との関係、確認手順をまとめます。アドレスは公開用の例です。
書籍
NAT、Firewall、ルーティング、PPPoE、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- NAPT は内部から外部へ出る通信の送信元 NAT である
outbound-interfaceは実際に外へ出るインターフェイスを指定するsource addressで NAT 対象の内部ネットワークを絞る- PPPoE のような動的アドレスでは
masqueradeが扱いやすい - Firewall、route、PBR、DNS と分けて確認する
NAPT の役割
NAPT は、内部ネットワークから外部へ出る通信の送信元 IP アドレスとポート番号を変換する仕組みです。戻り通信は変換テーブルをもとに元の内部ホストへ戻されます。
| 要素 | 役割 | 確認すること |
|---|---|---|
source address | NAT 対象の内部ネットワーク | 意図しないネットワークを含めていないか |
outbound-interface | 外へ出るインターフェイス | PPPoE や WAN 物理のどちらか |
translation address | 変換後の送信元 | masquerade か固定アドレスか |
| conntrack | 戻り通信の対応 | 変換状態が作られているか |
家庭用ルーターでは当たり前に使われますが、VyOS ではどの送信元を、どの外向きインターフェイスで変換するのかを明示します。
masquerade を設定する
次は、192.168.0.0/16 の内部ネットワークから pppoe0 へ出る通信を masquerade する例です。PPPoE のように外側アドレスが動的に変わる可能性がある場合、固定アドレスではなく masquerade を使うのが扱いやすくなります。
configure
set nat source rule 500 outbound-interface 'pppoe0'
set nat source rule 500 source address '192.168.0.0/16'
set nat source rule 500 translation address 'masquerade'
commit
saveルール番号は、用途ごとに間隔を空けておくと後から追加しやすくなります。複数の出口や複数の内部セグメントを扱う場合は、送信元と出口の対応を明確にします。
固定グローバルアドレスで変換する場合
WAN 側に固定アドレスがあり、変換後アドレスを明示したい場合は、masquerade ではなく固定アドレスを指定する構成もあります。
configure
set nat source rule 510 outbound-interface 'eth0'
set nat source rule 510 source address '10.10.0.0/24'
set nat source rule 510 translation address '203.0.113.10'
commit
save固定アドレスを指定する場合は、そのアドレスが実際に外部側で使えること、戻り経路が成立すること、上流側で許可されていることを確認します。
Firewall と NAT を分けて考える
NAPT は通信許可ではありません。LAN から外へ出る通信を Firewall が拒否していれば、NAT ルールがあっても通信は通りません。逆に Firewall が許可していても、プライベートアドレスのまま外へ出る構成では戻り通信が成立しません。
| 要素 | 役割 |
|---|---|
| Firewall | 通信を許可または拒否する |
| NAT | 送信元や宛先のアドレスを変換する |
| Route | どの出口へ送るか決める |
| DNS | 名前から宛先アドレスを引く |
PPPoE と組み合わせる
PPPoE でインターネットへ出る場合、外向きインターフェイスは物理 WAN ではなく pppoe0 になります。Firewall や NAPT の適用先も、実際に通信が出る PPPoE インターフェイスを基準に確認します。
show interfaces pppoe
show ip route
show nat source rulesPBR と併用する場合
PBR で出口を切り替える場合、どの通信がどの出口へ出るのかを先に確認します。出口が複数あるのに NAT ルールが 1 つだけだと、片方の出口では変換されない、または意図しない出口で変換されることがあります。
show configuration commands | match 'policy route'
show configuration commands | match 'nat source'
show ip route確認する
設定後は、NAT ルール、変換状態、経路、Firewall、名前解決を分けて確認します。外へ出られない場合、NAPT だけを見ると原因を見落とします。
show nat source rules
show nat source translations
show conntrack table ipv4
show ip route
show firewall
show configuration commands | match 'nat source'よくあるつまずき
| 症状 | 見る場所 | 考え方 |
|---|---|---|
| LAN から外へ出られない | route / Firewall / NAT | NAT だけでなく出口と許可を見る |
| PPPoE で変換されない | outbound-interface | 物理 WAN ではなく pppoe0 を指定する |
| 一部セグメントだけ出られない | source address | NAT 対象に含まれているか確認する |
| PBR 経由だけ失敗する | PBR と NAT の対応 | 出口ごとに NAT ルールを見る |
| IPv6 も同じように NAT したい | IPv6 設計 | IPv4 NAPT と IPv6 NAT66 を混同しない |
まとめ
VyOS の NAPT は数行で設定できますが、実際には Firewall、デフォルトルート、PBR、WAN インターフェイス、DNS とセットで確認する必要があります。重要なのは、どの内部通信を、どの出口で、どのアドレスへ変換するのかを説明できる状態にすることです。
IPv4 の NAPT と IPv6 の NAT66 は同じ感覚で扱わない方が安全です。IPv4 では NAPT が一般的ですが、IPv6 ではまず NAT なしで到達性と Firewall を設計し、NAT66 が必要な理由を明確にしてから使います。

