NATとは

NAT(Network Address Translation)は、IPパケットのヘッダーにあるIPアドレスを別のIPアドレスに変換する技術のことです。

主に企業や家庭内のローカルエリアネットワーク(LAN)で使用されるプライベートIPアドレスと、インターネット上で通信を行うために必要なグローバルIPアドレスを相互に変換するために利用されます。IPv4アドレスの枯渇問題に対応するための不可欠な技術として、現代のネットワークインフラにおいて極めて重要な役割を担っています。

NATの主な役割と仕組み

NATの基本的な役割は、限られた数のグローバルIPアドレスを複数の端末で効率的に共有すること、および内部ネットワークの構成を外部から隠蔽してセキュリティを高めることにあります。

1. アドレス変換のプロセス

内部ネットワークの端末がインターネットにアクセスする際、ルーターやファイアウォールなどのNATデバイスが、送信元であるプライベートIPアドレスを自身の保持するグローバルIPアドレスに書き換えます。このとき、変換前後の対応関係を「NATテーブル」と呼ばれる管理表に記録します。

2. 返信パケットの処理

外部のサーバーから返信が届くと、NATデバイスはNATテーブルを参照し、宛先IPアドレスを元の内部端末のプライベートIPアドレスに戻して転送します。

NATの種類と発展形

NATには変換の方式によっていくつかの形態が存在します。

スタティックNAT(静的NAT)

1つのプライベートIPアドレスに対して、特定の1つのグローバルIPアドレスを固定的に割り当てる方式です。外部から特定のサーバー(Webサーバーやメールサーバーなど)にアクセスさせる必要がある場合に用いられます。

ダイナミックNAT(動的NAT)

複数のグローバルIPアドレスのプールを用意し、内部端末が通信を開始するたびに空いているアドレスを動的に割り当てる方式です。

NAPT(IPマスカレード)

一般的にNATと呼ばれる機能の多くは、このNAPT(Network Address Port Translation)を指します。IPアドレスだけでなくポート番号も変換に利用することで、1つのグローバルIPアドレスだけで、複数の内部端末が同時にインターネットに接続することを可能にします。

メリットとデメリット

メリット

  • IPアドレスの節約:組織内で膨大な数の端末があっても、少数のグローバルIPアドレスで運用が可能です。
  • セキュリティの向上:外部から内部端末のプライベートIPアドレスが直接見えないため、外部からの直接的な攻撃を防ぐ壁となります。

デメリット

  • CPUおよびメモリの負荷:パケットごとにヘッダーの書き換えとテーブル参照を行うため、ネットワーク機器の処理負荷が増大します。
  • プロトコルの制約:IPアドレス情報をペイロードに含む特定のアプリケーション(一部のVoIPやP2P通信など)では、通信が正常に行えない場合があり、NATトラバーサルなどの回避技術が必要になります。

ネットワーク設計における評価

ネットワークの設計において、NATデバイスが処理できる同時セッション数は重要な性能指標となります。最大セッション数を

N_{max}

、現在の利用セッション数を

N_{used}

としたとき、空きリソースの割合 $R$ は以下の式で表されます。

R = \frac{N_{max} - N_{used}}{N_{max}} \times 100

このリソースが枯渇すると、新たな通信が確立できなくなる「NAT溢れ」が発生するため、大規模なネットワークでは適切なキャパシティプランニングが求められます。

まとめ

NATは、IPv4アドレスが不足する中でインターネットの爆発的な普及を支えてきた基盤技術です。IPv6への移行が進む現在においても、セキュリティ上の利点や既存資産の運用の観点から、引き続き重要な技術として位置づけられています。

関連用語

パケット | 今更聞けないIT用語集
プロトコル | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。