NAT: ネットワーク アドレス変換の仕組み

この記事を読んでいるということは、おそらくインターネットに接続し、「コンピューター入門」 Web サイトで記事を閲覧していることでしょう。したがって、現在ネットワーク アドレス変換 ( NAT ) を使用している可能性が非常に高いです。

インターネットは、誰もが想像していたよりも大きく成長しました。正確な規模は不明ですが、現在の推定では、インターネット上でアクティブに活動しているユーザーの数よりも多いと考えられます。では、インターネットのサイズは NAT とどのような関係があるのでしょうか?すべて!この記事では、NAT がどのようなメリットをもたらすかを説明します。しかしその前に、NAT と NAT で何ができるのかを詳しく見てみましょう…

グローバル IP アドレス プールが枯渇した場合

コンピュータがインターネット上の他のコンピュータやWeb サーバーと通信するには、IP アドレスが必要です。 IP アドレス (IP は Internet Protocol の略) は、ネットワーク上のコンピュータの位置を識別する固有の 32 ビットの番号です。基本的に、これは住所のように機能し、あなたがどこにいるかを正確に調べて情報を届ける方法として機能します。

IP アドレスが最初に登場したとき、誰もがどんなニーズにも対応できるアドレスがたくさんあると考えていました。理論的には、 4,294,967,296 個の一意のアドレス(2 32 ) を持つことができます。パブリック IP アドレスの実際の数は、アドレスがクラスに分割される方法と、一部のアドレスがマルチキャスト、テスト、またはその他の特別な用途のために確保されているため、これより少なくなります (32 億から 33 億の間程度)。

インターネットが爆発的に普及し、ホーム ネットワークやビジネス ネットワークが増加するにつれて、利用可能な IP アドレスの数がまったく足りなくなりました。明らかな解決策は、パブリック IP アドレスの形式を再設計して、より多くのアドレスを使用できるようにすることです。これは開発中 (IPv6 と呼ばれます) ですが、インターネットのインフラストラクチャ全体の変更が必要なため、実装には数年かかります。

ここで NAT () が役に立ちます。ネットワーク アドレス変換により、ルータなどの単一のデバイスがインターネット (または「パブリック ネットワーク」) とローカル (または「プライベート」) ネットワークの間のエージェントとして機能できるようになります。つまり、コンピュータのグループ全体を表すには、単一の一意の IP アドレスだけが必要です。ただし、パブリック IP アドレスの不足は、NAT を使用する理由の 1 つにすぎません。

NATは何をするのですか?

NAT は、大きなオフィスの受付係のようなものです。あなたが要求しない限り、電話を転送しないように受付係に指示を残したとしましょう。その後、潜在的なクライアントに電話し、そのクライアントに折り返し電話するようメッセージを残します。あなたは受付係に、この顧客からの電話を待っていることを伝え、電話を繋いでもらいます。

クライアントは、クライアントが知っている唯一の番号である代表番号にあなたのオフィスに電話します。クライアントが受付係にあなたを探していると伝えると、受付係はあなたの名前と内線番号が一致する検索テーブルをチェックします。受付係は、あなたがこの通話を要求したことを知っているため、発信者を内線番号に転送します。

Cisco によって開発されたネットワーク アドレス変換は、デバイス (内部ネットワークと外部ネットワークの間にあるファイアウォール、ルータ、またはコンピュータ) によって使用されます。 NAT には多くの形式があり、いくつかの方法で機能します。

静的 NAT で IP アドレスがどのように変換されるかを示す図。
  • 静的 NAT – 未登録の IP アドレスを登録済みの IP アドレスに 1 対 1 でマッピングします。ネットワークの外部からデバイスにアクセスできる必要がある場合に特に便利です。
静的 NAT で IP アドレスがどのように変換されるかを示す図。
  • ダイナミック NAT – 未登録の IP アドレスを、登録済みの IP アドレスのグループから登録済みの IP アドレスにマッピングします。
  • オーバーロード– 異なるポートを使用して、複数の未登録 IP アドレスを単一の登録済み IP アドレスにマッピングする動的 NAT の形式。これは、PAT (ポート アドレス変換)、単一 IP アドレス NAT、またはポート レベルの多重化 NAT とも呼ばれます。
NAT 過負荷時に各コンピューターがどのように同じ IP アドレスに変換されるかを示す図。
  • 重複– 内部ネットワークで使用されている IP アドレスが、別のネットワークで使用されている登録済みの IP アドレスである場合、ルーターは、これらのアドレスをインターセプトして、登録済みの一意の IP アドレスに置き換えることができるように、これらのアドレスのルックアップ テーブルを維持する必要があります。 NAT ルーターは、「内部」アドレスを登録済みの一意のアドレスに変換するだけでなく、「外部」登録済みアドレスをプライベート ネットワークに一意のアドレスに変換する必要があることに注意することが重要です。これは、静的 NAT を介して行うことも、 DNS を使用して動的 NAT を実装することによっても行うことができます。
IP アドレスを変換する NAT ルーターの図。

内部ネットワークは通常、LAN (ローカル エリア ネットワーク) であり、一般にスタブ ドメインと呼ばれます。スタブ ドメインは、内部で IP アドレスを使用する LAN です。スタブ ドメイン内のネットワーク トラフィックのほとんどはローカルであるため、内部ネットワークの外には伝わりません。内部 IP アドレスは登録または未登録のいずれかであり、スタブ ドメインにそれを含めることができます。もちろん、未登録の IP アドレスを使用するコンピュータは、他の世界と通信するために NAT を使用する必要があります。

次のセクションでは、NAT を構成できるさまざまな方法を見ていきます。

ありがとう

この記事の作成にご協力いただきましたことに心より感謝いたします。

NAT構成

グローバルおよびプライベート IP ネットワークを管理する NAT ルーターの図。

NAT はさまざまな方法で構成できます。以下の例では、NAT ルーターは、プライベート (内部) ネットワーク上に存在する未登録 (内部、ローカル) IP アドレスを登録済み IP アドレスに変換するように構成されています。これは、未登録のアドレスを持つ内部デバイスがパブリック (外部) ネットワークと通信する必要がある場合に常に発生します。

  • ISP は、会社に一連の IP アドレスを割り当てます。割り当てられたアドレスのブロックは登録された一意の IP アドレスであり、内部グローバル アドレスと呼ばれます。未登録のプライベート IP アドレスは 2 つのグループに分割されます。 1 つは、NAT ルーターによって使用される小さなグループ (ローカル アドレスの外部) です。もう 1 つのはるかに大きなグループは、内部ローカル IP アドレスとして知られており、スタブ ドメインで使用されます。外部ローカル アドレスは、パブリック ネットワーク上のデバイスの一意の IP アドレス (外部グローバル アドレスと呼ばれます) を変換するために使用されます。
  • スタブ ドメイン上のほとんどのコンピュータは、内部ローカル アドレスを使用して相互に通信します。
  • スタブ ドメイン上の一部のコンピュータは、ネットワークの外部と頻繁に通信します。これらのコンピュータには内部グローバル アドレスがあるため、変換する必要はありません。
  • 内部ローカル アドレスを持つスタブ ドメイン上のコンピュータがネットワーク外部との通信を希望する場合、パケットは NAT ルーターの 1 つに送られます。
  • NAT ルーターはルーティング テーブルをチェックして、宛先アドレスのエントリがあるかどうかを確認します。一致する場合、NAT デバイスはパケットを変換し、アドレス変換テーブルにそのパケットのエントリを作成します。宛先アドレスがルーティング テーブルにない場合、パケットはドロップされます。
  • ルーターは内部グローバル アドレスを使用してパケットを宛先に送信します。
  • パブリック ネットワーク上のコンピュータがプライベート ネットワークにパケットを送信します。パケットの送信元アドレスは外部グローバル アドレスです。宛先アドレスは内部グローバル アドレスです。
  • NAT ルーターはアドレス変換テーブルを調べ、宛先 IP アドレスがそこにあり、スタブ ドメイン上のコンピュータにマッピングされていると判断します。
  • NAT ルーターは、パケットの内部グローバル アドレスを内部ローカル アドレスに変換し、宛先コンピューターに送信します。

NAT オーバーロードの接続

NAT オーバーロードは、 TCP/IP プロトコル スタックの機能である多重化を利用し、コンピュータが異なる TCP または UDP ポートを使用してリモート コンピュータ (または複数のコンピュータ) と複数の同時接続を維持できるようにします。 IP パケットには、次の情報を含むヘッダーがあります。

  • 送信元アドレス– 送信元コンピューターの IP アドレス (201.3.83.132 など)
  • 送信元ポート– このパケットの発信元コンピューターによって割り当てられた TCP または UDP ポート番号 (ポート 1080 など)
  • 宛先アドレス– 受信側コンピューターの IP アドレス (145.51.18.223 など)
  • 宛先ポート– 送信元コンピュータが受信側コンピュータに開くよう要求する TCP または UDP ポート番号 (ポート 3021 など)

アドレスは両端の 2 台のマシンを指定し、ポート番号は 2 台のコンピュータ間の接続が一意の識別子を持つことを保証します。これら 4 つのポート番号の組み合わせにより、単一の TCP/IP 接続が定義されます。各ポート番号は 16 ビットを使用します。これは、65,536 (2 16 ) 個の値が存在する可能性があることを意味します。実際には、メーカーごとにポートのマッピング方法が若干異なるため、使用可能なポートは約 4,000 個になると予想できます。

動的ネットワークアドレス変換

動的 NAT の仕組みは次のとおりです。

  • 内部ネットワーク (スタブ ドメイン) は、IP アドレスを配布する世界的権威である IANA () によってその企業に特別に割り当てられたものではない IP アドレスを使用して設定されています。これらのアドレスは一意ではないため、ルーティング不可能であると見なす必要があります。
  • 会社は NAT 対応ルーターをセットアップしています。ルーターには、IANA によって会社に与えられた一連の一意の IP アドレスがあります。
  • スタブ ドメイン上のコンピュータは、Web サーバーなどのネットワーク外部のコンピュータに接続しようとします。
  • ルーターはスタブ ドメイン上のコンピュータからパケットを受信します。
  • ルーターは、コンピューターのルーティング不可能な IP アドレスをアドレス変換テーブルに保存します。ルーターは、送信側コンピューターのルーティング不可能な IP アドレスを、一意の IP アドレスの範囲内で最初に使用可能な IP アドレスに置き換えます。変換テーブルには、一意の IP アドレスの 1 つと一致する、コンピュータのルーティング不可能な IP アドレスのマッピングが含まれています。
  • 宛先コンピュータからパケットが戻ってくると、ルーターはパケットの宛先アドレスを確認します。次に、アドレス変換テーブルを調べて、パケットがスタブ ドメイン上のどのコンピュータに属しているかを確認します。宛先アドレスをアドレス変換テーブルに保存されているアドレスに変更して、そのコンピュータに送信します。テーブル内で一致するものが見つからない場合、パケットはドロップされます。
  • コンピュータはルーターからパケットを受信します。このプロセスは、コンピュータが外部システムと通信している限り繰り返されます。

NAT オーバーロードの仕組み

オーバーロードの仕組みは次のとおりです。

  • 内部ネットワーク (スタブ ドメイン) は、IANA によってその企業に特別に割り当てられていないルーティング不可能な IP アドレスを使用して設定されています。
  • 会社は NAT 対応ルーターをセットアップしています。ルーターには、IANA から会社に与えられた固有の IP アドレスが割り当てられています。
  • スタブ ドメイン上のコンピュータは、Web サーバーなどのネットワーク外部のコンピュータに接続しようとします。
  • ルーターはスタブ ドメイン上のコンピュータからパケットを受信します。
  • ルーターは、コンピューターのルーティング不可能な IP アドレスとポート番号をアドレス変換テーブルに保存します。ルーターは、送信側コンピューターのルーティング不可能な IP アドレスをルーターの IP アドレスに置き換えます。ルーターは、送信側コンピューターの送信元ポートを、ルーターがアドレス変換テーブル内の送信側コンピューターのアドレス情報を保存した場所と一致するポート番号に置き換えます。変換テーブルには、ルータの IP アドレスとともに、コンピュータのルーティング不可能な IP アドレスとポート番号のマッピングが含まれています。
  • パケットが宛先コンピュータから戻ってくると、ルーターはパケットの宛先ポートをチェックします。次に、アドレス変換テーブルを調べて、パケットがスタブ ドメイン上のどのコンピュータに属しているかを確認します。宛先アドレスと宛先ポートをアドレス変換テーブルに保存されているものに変更して、そのコンピュータに送信します。
  • コンピュータはルーターからパケットを受信します。このプロセスは、コンピュータが外部システムと通信している限り繰り返されます。
  • NAT ルーターにはコンピューターの送信元アドレスと送信元ポートがアドレス変換テーブルに保存されているため、接続中は同じポート番号を使用し続けます。ルーターがテーブル内のエントリにアクセスするたびに、タイマーがリセットされます。タイマーが期限切れになる前にエントリが再度アクセスされない場合、エントリはテーブルから削除されます。

次のセクションでは、スタブ ドメインの構成について見ていきます。

スタブドメイン

スタブ ドメイン上のコンピュータが外部ネットワークに対してどのように見えるかを以下で確認します。

ソースコンピュータA

IPアドレス: 192.168.32.10

コンピュータポート: 400

NAT ルーターの IP アドレス: 215.37.32.203

NAT ルーターに割り当てられたポート番号: 1

ソースコンピュータB

IPアドレス: 192.168.32.13

コンピュータポート: 50

NAT ルーターの IP アドレス: 215.37.32.203

NAT ルーターに割り当てられたポート番号: 2

ソースコンピュータC

IPアドレス: 192.168.32.15

コンピュータポート: 3750

NAT ルーターの IP アドレス: 215.37.32.203

NAT ルーターに割り当てられたポート番号: 3

ソースコンピュータD

IPアドレス: 192.168.32.18

コンピュータポート: 206

NAT ルーターの IP アドレス: 215.37.32.203

NAT ルーターに割り当てられたポート番号: 4

ご覧のとおり、NAT ルーターは各コンピューターの IP アドレスとポート番号を保存します。次に、その IP アドレスを、自身の登録済み IP アドレスと、そのパケットの送信元コンピューターのエントリのテーブル内の位置に対応するポート番号に置き換えます。したがって、外部ネットワークは、NAT ルーターの IP アドレスと、ルーターによって割り当てられたポート番号を、各パケットの送信元コンピューター情報として認識します。

スタブ ドメイン上には、専用 IP アドレスを使用するいくつかのコンピュータが存在する可能性があります。ネットワーク上のどのコンピュータが NAT を必要とするかをルータに伝える IP アドレスのアクセス リストを作成できます。他のすべての IP アドレスは変換されずにパススルーされます。

ルーターがサポートする同時翻訳の数は、主にルーターが搭載する DRAM (ダイナミック ランダム アクセス メモリ) の量によって決まります。しかし、アドレス変換テーブルの一般的なエントリは約 160 バイトしか必要としないため、4 MB の DRAM を搭載したルータは理論的には 26,214 個の同時変換を処理でき、これはほとんどのアプリケーションにとって十分以上です。

IPアドレス情報の分類方法

IANA は、ルーティング不可能な内部ネットワーク アドレスとして使用するために、特定の範囲の IP アドレスを確保しています。これらのアドレスは未登録とみなされます (詳細については、これらのアドレス範囲を定義する を確認してください)。いかなる企業や代理店も、未登録のアドレスの所有権を主張したり、公共のコンピューターで使用したりすることはできません。

ルーターは、未登録のアドレスを (転送するのではなく) 破棄するように設計されています。これが意味するのは、未登録のアドレスを持つコンピュータからのパケットは、登録された宛先コンピュータに到達する可能性がありますが、その応答は最初に到達したルータによって破棄されるということです。

ネットワークに使用される IP アドレスの 3 つのクラスにはそれぞれ範囲があります。

  • 範囲 1: クラス A – 10.0.0.0 ~ 10.255.255.255
  • 範囲 2: クラス B – 172.16.0.0 ~ 172.31.255.255
  • 範囲 3: クラス C – 192.168.0.0 ~ 192.168.255.255

各範囲は異なるクラスに属しますが、内部ネットワークに特定の範囲を使用する必要はありません。ただし、IP アドレスが競合する可能性が大幅に減少するため、これは良い習慣です。

セキュリティと管理

パブリック ネットワークにトラフィックを誘導する静的 NAT を示す図。

動的 NAT を実装すると、内部ネットワークと外部ネットワークの間、または内部ネットワークとインターネットの間にファイアウォールが自動的に作成されます。 NAT では、スタブ ドメイン内から発信される接続のみが許可されます。

基本的に、これは、コンピュータが接続を開始しない限り、外部ネットワーク上のコンピュータはあなたのコンピュータに接続できないことを意味します。インターネットを参照してサイトに接続し、さらにはファイルをダウンロードすることもできます。ただし、他の人があなたの IP アドレスを把握し、それを使用してコンピュータのポートに接続することはできません。

特定の状況では、静的 NAT (インバウンド マッピングとも呼ばれます) を使用すると、外部デバイスがスタブ ドメイン上のコンピュータへの接続を開始できるようになります。たとえば、内部グローバル IP アドレスから Web サーバーに割り当てられた特定の内部ローカル IP アドレスに移動する場合、静的 NAT によって接続が可能になります。

一部の NAT ルーターは、広範なフィルタリングとトラフィック ログを提供します。フィルタリングを使用すると、企業は従業員が Web 上でアクセスするサイトの種類を制御し、従業員が疑わしいコンテンツを閲覧できないようにすることができます。トラフィック ログを使用すると、どのサイトが訪問したかに関するログ ファイルを作成し、そこからさまざまなレポートを生成できます。

プロキシサーバーに関する注意事項

NAT はプロキシ サーバーと混同されることがありますが、両者には明確な違いがあります。 NAT は、送信元コンピュータと宛先コンピュータに対して透過的です。どちらも、自分が 3 番目のデバイスを扱っていることに気づきません。ただし、プロキシ サーバーは透過的ではありません。

ソース コンピューターは、プロキシ サーバーに要求を行っていることを認識しているため、そのように構成する必要があります。宛先コンピュータは、プロキシ サーバーが送信元コンピュータであると認識し、プロキシ サーバーを直接処理します。また、プロキシ サーバーは通常、 OSI 参照モデルのレイヤー 4 (トランスポート) 以上で動作しますが、NAT はレイヤー 3 (ネットワーク) プロトコルです。上位層で動作すると、ほとんどの場合、プロキシ サーバーは NAT デバイスよりも遅くなります。

OSI 参照モデルの図。レイヤー 3 (ネットワーク層) での NAT を示しています。

NAT の本当の利点は、ネットワーク管理において明らかです。たとえば、リンク切れを心配することなく、Web サーバーや FTP サーバーを別のホスト コンピュータに移動できます。ルーターで受信マッピングを変更して、新しいホストを反映するだけです。また、唯一の外部 IP アドレスはルーターに属しているか、グローバル アドレスのプールから取得されているため、内部ネットワークを簡単に変更することもできます。

NAT と DHCP (動的ホスト構成プロトコル) は自然に適合します。スタブ ドメインの未登録 IP アドレスの範囲を選択し、必要に応じて DHCP サーバーに割り当てさせることができます。また、ニーズの増大に応じてネットワークをスケールアップすることも非常に簡単になります。 IANA にさらに IP アドレスをリクエストする必要はありません。代わりに、DHCP で構成された利用可能な IP アドレスの範囲を増やすだけで、ネットワーク上に追加のコンピュータを収容できる余地がすぐに確保されます。

マルチホーミング

企業がインターネットにますます依存するようになるにつれて、インターネットへの複数の接続ポイントを持つことが、急速にネットワーク戦略に不可欠な部分になりつつあります。マルチホーミングと呼ばれる複数の接続により、接続の 1 つで障害が発生した場合に壊滅的なシャットダウンが発生する可能性が低くなります。

マルチホーミングを使用すると、信頼性の高い接続を維持するだけでなく、単一の接続を通じてインターネットに接続するコンピュータの数を減らすことで負荷分散を実行できます。複数の接続を通じて負荷を分散すると、パフォーマンスが最適化され、待ち時間が大幅に短縮されます。

マルチホーム ネットワークは、多くの場合、複数の異なる ISP (インターネット サービス プロバイダー) に接続されます。各 ISP は、企業に IP アドレス (または IP アドレスの範囲) を割り当てます。ルーターは、TCP/IP プロトコル スイートの一部である BGP (ボーダー ゲートウェイ プロトコル) を使用して、異なるプロトコルを使用するネットワーク間のルーティングを行います。マルチホーム ネットワークでは、ルーターはスタブ ドメイン側で IBGP (内部ボーダー ゲートウェイ プロトコル) を使用し、他のルーターと通信するために EBGP (外部ボーダー ゲートウェイ プロトコル) を使用します。

マルチホーミングは、ISP への接続の 1 つが失敗した場合に大きな違いをもたらします。その ISP への接続を割り当てられたルーターは、接続がダウンしていると判断するとすぐに、すべてのデータを他のルーターのいずれかを経由して再ルーティングします。

NAT を使用すると、マルチホーム、マルチプロバイダー接続のスケーラブルなルーティングを容易にすることができます。マルチホーミングの詳細については、「 」を参照してください。

NAT と関連トピックの詳細については、次のページのリンクを参照してください。