1:1 NAT(静的NAT)を徹底解説 — 仕組み・用途・運用上の注意点とベストプラクティス

概要:1:1 NATとは何か

1:1 NAT(読み:ワン・トゥー・ワンNAT)、一般には「静的NAT」や「スタティックNAT」と呼ばれる技術は、プライベートIPアドレス(例:192.168.x.x)とグローバルIPアドレス(例:203.0.113.x)を一対一で恒久的に対応付けるアドレス変換の一種です。外部からの着信トラフィックを内部の特定ホストへそのまま届かせたい場合や、内部のサーバに固定のグローバルIPを割り当てたい場合などに使われます。

なぜ使うのか:利用シナリオ

  • インターネット上から内部サーバ(Web、メール、VPNゲートウェイ等)へ直接接続を許可したいとき。

  • 固定のグローバルIPが必要なサービスやライセンス(IP制限)を利用する場合。

  • DMZに配置したいホストをルータ直下に置かず、内部ネットワークに残したまま公開したい場合。

  • クラウドやデータセンタから移行する際、既存のIPベースのアクセス制御を維持したい場合。

技術的な仕組み

1:1 NATは、送信元/宛先IPアドレスを書き換えることで動作します。代表的な動作は次の通りです。

  • 外部→内部(着信):ルータが受け取ったパケットの宛先グローバルIPを対応するプライベートIPに変換して内部ネットワークへ転送する。

  • 内部→外部(発信):内部ホストからの送信パケットの送信元プライベートIPを対応するグローバルIPに書き換えて外部へ送出する。

多くの実装では、ポート番号は原則的に書き換えない(ポート保持)ため、外部からの特定ポートへの接続もそのまま内部ホストの同ポートへ届きます。ただし、機器や設定によりポート変換(ポートフォワーディング)を組み合わせることも可能です。

1:1 NAT と PAT(多対一NAT)の違い

PAT(Port Address Translation、いわゆるNAPTやオーバーロード)は複数の内部IPを1つのグローバルIPに対してポート番号を使って多重化するのに対し、1:1 NATは1つの内部IPに1つのグローバルIPを割り当てます。結果として、1:1 NATは外部からの接続を容易に受け付けられる反面、必要なグローバルIP数が増えます。

実装上の留意点(ARP / プロキシARP、ルーティング)

  • 同一LANセグメント上にグローバルIPを割り当てる場合、ルータがそのグローバルIPに対するARP要求に応答する(プロキシARP)必要がある場合があります。特にプロバイダから割り当てられたパブリックIPがルータの接続先ネットワーク内にあるときに重要です。

  • グローバルIPが別経路(別サブネット)に存在する場合は、ルーティングで正しくルータが経路を持つことが必要です。複数のパブリックIPを扱う場合は、アドレスプールとルーティングの整合性を取ることが重要です。

  • フェイルオーバ構成(VRRP、HSRP、CARP等)で1:1 NATを運用する場合、パブリックIPがアクティブなルータに引き継がれるように同期やARPフローテイブルの考慮が必要です。

典型的な設定例(概念的)

各ベンダで記述方法は異なりますが、Ciscoルータの概念的な例としては次のような一行で表現されることが多いです。

ip nat inside source static 192.168.1.10 203.0.113.10

この設定は、内部の192.168.1.10と外部の203.0.113.10を1:1で対応付けます(実際のコマンドや文法は機器に依存します)。

メリット

  • 外部からの接続を簡単に一台の内部サーバに割り当てられる(公開サーバ運用が容易)。

  • 内部アドレス体系をそのまま維持できるため、内部構成を変えずに公開できる。

  • ログや監査でのトラフィック関連付けが比較的容易(1対1なのでどの外部IPがどの内部ホストか明確)。

  • NATによるポート番号の衝突が起きにくい(ポートをそのまま保持するため)。

デメリットと注意点

  • グローバルIPv4アドレスを消費する。大規模にホストを公開するとIP枯渇を招く。

  • NATはセキュリティ機能そのものではない。外部から到達可能になるため、公開するサーバはファイアウォールや適切なアクセス制御を必ず併用する。

  • アプリケーションによってはアドレスが埋め込まれているプロトコル(FTP、SIPなど)で追加処理(ALGsやプロキシ)が必要になることがある。

  • ヘアピンNAT(同一ネットワーク内のクライアントが公開IP経由でサーバにアクセスする)に対応していない機器もあり、別途設定が必要になる場合がある。

アプリケーションプロトコルとの相性

多くのTCP/UDPベースのサービスは1:1 NATと問題なく動作しますが、次のような注意点があります。

  • FTP(アクティブ/パッシブ):データ接続でIPアドレスやポートが制御パケット内に含まれるため、ALGsやアプリケーションプロキシでの対応が必要な場合がある。

  • SIPやH.323:シグナリングメッセージ内にIPアドレスが含まれる場合が多く、メディアストリームが正しく到達しないことがある。SIP ALGsやSTUN/TURNを利用する設計が必要。

  • SSL/TLSやVPN(IPsec等):NAT自体は暗号化通信を壊さないが、IPsecのトンネルモード等ではNATトラバーサル(NAT-T)等を考慮する必要がある。

ヘアピンNAT(NATループバック)について

社内のクライアントが、サーバの外部公開アドレスを使ってアクセスしたときに、ルータがそのトラフィックを内部に戻す機能をヘアピンNATと言います。これが無いと内部からは内部IPでしかアクセスできず、アクセス方法が環境によって変わってしまうため、ユーザ体験やサービス構成上問題になることがあります。多くの商用ルータではヘアピンNATが設定可能ですが、動作を確認しておくことが重要です。

冗長化と可用性

1:1 NATを冗長構成で運用する際は、アクティブ/スタンバイ間でNATテーブルや状態の同期が必要になる場合があります。セッションを途中で切り替えると既存セッションが切断されるため、冗長化設計(ステートフルフェイルオーバ、セッション同期)を検討してください。また、パブリックIPの切り替え時にARPの挙動やBGP/静的ルートの再学習時間も考慮します。

IPv6時代の位置づけ

IPv6の理念はエンドツーエンド接続性の回復であり、基本的にはNATを必要としません。IPv6に移行すれば1:1 NATの必要性は低下しますが、移行期間中はIPv4アドレス不足や互換性のために1:1 NATやNAT64等の手法が並存します。設計段階ではIPv6ネイティブへの移行戦略を明確にしておくとよいでしょう。

運用上のベストプラクティス

  • 公開するサーバには必ず最小限のアクセス制御リスト(ACL)やホスト型ファイアウォールを設定する。

  • ログを残す:NAT変換ログとFWログを連携させ、通信の発生元・先を追跡できるようにしておく。

  • アドレスプランを策定し、パブリックIPプールを管理して無駄な割当を避ける。

  • ヘルスチェックや監視を導入して、パブリックIPで公開しているサービスの可用性を常時監視する。

  • 機器ベンダの実装差(ヘアピンやALGの挙動)を事前に検証する。

  • 冗長化構成ではセッション同期方式とフェイルオーバ時の挙動を検証する。

代替技術や併用が考えられるソリューション

  • リバースプロキシ / ロードバランサ:複数サーバ公開やTLS終端を集中化したい場合、1:1 NATの代替や併用で有効。

  • クラウドのElastic IPやパブリックIP割当:クラウドでは1:1に相当する静的パブリックIPを割り当てる仕組みがある(例:AWS Elastic IP)。

  • IPv6ネイティブ化:長期的にはIPv6を前提としたアーキテクチャへ移行するのが望ましい。

まとめ

1:1 NAT(静的NAT)は、内部ホストを安定して外部公開するためにシンプルで分かりやすい手法です。一方でグローバルIPv4アドレスの消費、プロトコル互換性、冗長化・運用の複雑さといった課題も抱えます。運用ではセキュリティや監視、ベンダ実装の差異に注意し、可能な限りIPv6移行やリバースプロキシといった代替技術との比較検討を行うことが重要です。

参考文献