InfraAcademy

InfraAcademy Blog

NATとは?”なぜPCはインターネットに接続できるのか”【ネットワーク基礎講座】

こんにちは、インフラエンジニアのryuです。

今回は、NAT(ナット)について解説します。NATとは、Network Address Translationの略で、IPアドレスを変換する技術です。

なぜIPアドレスを変換する必要があるのか、どのような場面でNATが使われているのかを分かりやすく解説します。NATの種類やNAPTとの違いも、あわせて整理していきましょう。

NATとは?IPアドレスを変換する技術

まずは、NATという言葉の意味からおさえていきます。

NATってそもそも何なのだろうと、疑問に思ったことはありませんか。ひとことで答えるなら、NATとはローカルIPアドレスとグローバルIPアドレスを変換する技術のことです。

IPアドレスはPCの場所を表すものです。なぜ、IPアドレスを変換する必要があるのでしょうか?

実は、自宅のPCが当たり前のようにインターネットへ接続できているのはNATのおかげです。NATがなぜ必要なのか、理解できるように詳しく解説します。

NATはローカルIPアドレスとグローバルIPアドレスを変換する

NATが一番使われる場面は、ローカルIPアドレスとグローバルIPアドレスを変換するところです。自分のPCがインターネットに接続する際に、IPアドレスの変換がされています。

では、そもそもローカルIPアドレスとグローバルIPアドレスとはどのようなIPアドレスなのでしょうか?NATを理解するために、おさらいしましょう。

種類 使われる場所 割り当てるのは誰か
ローカルIPアドレス LAN(自分のネットワーク)の中 ルーターやネットワーク管理者
グローバルIPアドレス WAN(インターネット) プロバイダー

自分のネットワーク、つまりLANで使用するのがローカルIPアドレスです。自宅のWifiで使用しているPCやスマホには、ローカルIPアドレスが割り当てられます。

LANそのものの仕組みをおさらいしたい方は、LANとは何かを図解した記事を先に読むと理解がスムーズです。

一方、インターネットで使用するIPアドレス、つまりWANで使用するIPアドレスがグローバルIPアドレスです。インターネットを契約するとき、プロバイダーから割り当てられるIPアドレスです。

ローカルIPアドレスとして使ってよい範囲は、RFC1918という文書で次のように決められています。プライベートIPアドレスとも呼ばれます。

クラス 使える範囲
クラスA 10.0.0.010.255.255.255
クラスB 172.16.0.0172.31.255.255
クラスC 192.168.0.0192.168.255.255

自宅のPCで 192.168. から始まるIPアドレスを見たことがある方も多いのではないでしょうか。まさにこの範囲が、LANの中だけで通用するローカルIPアドレスです。

ルーターでIPアドレスを変換する

NATの変換を実際に行っているのは、ルーターです。ルーターがローカルIPアドレスとグローバルIPアドレスを変換して、自宅内のPCからインターネットにアクセスできるようにします。

ルーターとは、異なるネットワークの通信を制御するネットワーク機器です。ルーターでNATの設定をすることで、インターネットへアクセスすることが可能になります。

ただ、家庭用はモデムでNATしていたり、無線WifiルーターでNATしていたりします。設定はすでにされているので、特に意識することなくPCを使用することができます。

ルーターがどのような機器なのかは、ハブとルーターの違いを解説した記事で詳しく解説しています。

なぜNATが必要なのか

そもそも、なぜIPアドレスをわざわざ変換する必要があるのでしょうか。理由は大きく2つあります。

理由1:IPv4アドレスの数が足りないから

現在のインターネットで広く使われているIPv4アドレスは、理論上でも約43億個しかありません。世界中のPCやスマホ、サーバーに1つずつ配るには、まったく足りない数です。

実際に、IPアドレスを世界規模で管理しているIANAの在庫は、2011年2月に枯渇しました。すべての機器にグローバルIPアドレスを配る運用は、もう成り立たないのです。

そこで、LANの中ではローカルIPアドレスを自由に使い、インターネットに出るときだけグローバルIPアドレスへ変換する方式が広まりました。この変換を担っているのがNATです。

家の中にPCが何台あっても、外に出るときはルーターのグローバルIPアドレスを共有できます。NATのおかげで、貴重なグローバルIPアドレスを大幅に節約できるわけです。

理由2:ローカルIPアドレスはインターネットで使えないから

もう1つの理由は、ローカルIPアドレスがインターネット上でルーティングされないことです。

ローカルIPアドレスは、どこのLANでも自由に使ってよいアドレスです。つまり、世界中に同じ 192.168.0.1 が無数に存在しています。

宛先として一意に決まらない以上、インターネット上のルーターはローカルIPアドレス宛のパケットを運べません。だからこそ、インターネットに出る前にグローバルIPアドレスへの変換が必要になります。

宛先をもとにパケットが運ばれていく仕組みは、ルーティングを解説した記事で詳しく説明しています。

NATでどのようにIPアドレスが変換されているのか

NATがIPアドレスを変換する技術だと分かりました。では、IPアドレスがどのように変わっているのか具体的に見てみましょう。

ここからは、IPアドレスがどのように変換されてインターネットに通信されているのか確認してみます。

ローカルのPCからインターネットにアクセスする

まず、自分のPCからインターネットにアクセスすることを想定します。構成は以下の通りです。

ローカルのPCからインターネットにアクセスする

自分のPCが 192.168.0.1、ルーターのローカルネットワーク側が 192.168.0.254、インターネット側が 161.93.34.45 とします。

PCからインターネットに通信する際、インターネット上のサーバーは別のネットワークにあるため、一旦ルーターを経由します。

NATの環境

では、NATをしない場合、インターネット上のサーバーはローカルPCに返答を返すことができるでしょうか?答えはできません。

なぜなら、インターネット上のサーバーは 192.168.0.1 のネットワークを知らないからです。ローカルIPアドレスは、インターネット上でルーティングされていないのでしたね。

NATをすることでインターネット上のサーバーが返答できる

ローカルPCからインターネット上のサーバーにアクセスする際、ルーターを経由します。ここで、NATの変換が行われます。

具体的には、送信元のIPアドレスが変更されます。

NATで送信元IPアドレスが変換される

ローカルPCからアクセスがあると、インターネット上のサーバーは応答を返します。この場合、送られてきたパケットの送信元に応答を返します。

NATで送信元が変換された場合、サーバーはルーターのグローバルIPアドレス宛に応答を返します。

グローバルIPアドレスはプロバイダーで管理されており、ルーティングもされています。そのため、サーバーは迷わず返答を返すことができるのです。

そして、ルーターは受け取った返答の宛先を、元のローカルPCのIPアドレスに変換して返します。

NATの動作2

このときルーターは、変換前と変換後のIPアドレスの対応をNATテーブルという表で記憶しています。返答が戻ってきたら、NATテーブルを参照して宛先を元のアドレスへ戻しているわけです。

NATの動作は少し難しいですが、宛先と送信元のIPアドレスに着目していると分かりやすいです。行きの通信で送信元が変わり、帰りの通信で宛先が戻る、と覚えておきましょう。

NATの種類は3つある

ひとくちにNATと言っても、変換の方式によって3つの種類に分けられます。それぞれの特徴を表で整理してみましょう。

種類 変換の方式 主な用途
スタティックNAT 1対1で固定的に変換 サーバーの公開
ダイナミックNAT 複数のグローバルIPから動的に割り当て 企業内からのインターネット接続
NAPT(PAT) ポート番号も使って多対1で変換 家庭のインターネット接続

それぞれの方式を、順番に見ていきましょう。

スタティックNAT

スタティックNATは、ローカルIPアドレスとグローバルIPアドレスを1対1で固定的に変換する方式です。

社内にあるサーバーをインターネットへ公開したい場合など、変換の組み合わせを固定したい場面で使われます。Ciscoルーターでは、次のような設定でスタティックNATを構成できます。

Router(config)# ip nat inside source static 192.168.0.1 161.93.34.45

実際には、インターフェースへのinside/outsideの指定なども必要です。具体的な手順はCiscoルーターでスタティックNATを設定する記事で、設定例つきで解説しています。

ダイナミックNAT

ダイナミックNATは、あらかじめ用意した複数のグローバルIPアドレスの中から、空いているものを動的に割り当てる方式です。

変換の組み合わせは通信のたびに変わります。ただし、用意したグローバルIPアドレスの数を超える台数は、同時にインターネットへ出られません。

NAPT(PAT・IPマスカレード)

NAPTは、IPアドレスに加えてポート番号も変換に使う方式です。Ciscoの用語ではPAT、Linuxの世界ではIPマスカレードとも呼ばれます。

ポート番号で通信を区別できるため、1つのグローバルIPアドレスを多数の端末で同時に共有できます。現在もっとも広く使われているのが、この方式です。

NATとNAPTの違い

NATとNAPTの違いは、資格試験でも実務でもよく問われるポイントです。結論から言うと、違いはポート番号まで変換するかどうかです。

2つの違いを表で整理しておきます。

比較項目 NAT NAPT
変換するもの IPアドレスのみ IPアドレスとポート番号
1つのグローバルIPを同時に使える台数 1台 多数
主な利用場面 サーバー公開など 家庭や会社のインターネット接続

IPアドレスだけを1対1で変換するNATでは、1つのグローバルIPアドレスを同時に使えるのは1台だけです。家族全員のスマホやPCが同時にインターネットを使えているのは、ポート番号で通信を区別しているおかげです。

つまり、家庭のルーターで実際に動いているのは、厳密にはNAPTなのです。広い意味でのNATの中に、NAPTが含まれるという関係で捉えておきましょう。

NAPTの動作の流れは、NAPTを詳しく解説した記事で図解しています。本記事とあわせて読むと、理解が深まりますよ。

NATのメリット・デメリット

NATの仕組みと種類が分かったところで、メリットとデメリットも整理しておきましょう。実務でネットワークを設計するときに、必ず意識するポイントです。

メリット:アドレスの節約とセキュリティ向上

最大のメリットは、先ほど説明したグローバルIPアドレスの節約です。1つのグローバルIPアドレスで、LAN内の多数の端末がインターネットを利用できます。

もう1つのメリットは、セキュリティの向上です。インターネット側からはルーターのグローバルIPアドレスしか見えないため、LAN内のPCのアドレスや構成を直接知られることがありません。

デメリット:外部から通信を開始できない

デメリットは、インターネット側からLAN内の機器へ通信を開始できないことです。NATテーブルは内側からの通信をきっかけに作られるため、外側から始まる通信は変換のしようがないのです。

自宅のサーバーを外部へ公開したい場合は、ポート開放(ポートフォワーディング)という設定が必要になります。特定のポート宛に届いた通信を、LAN内の決まった機器へ転送する設定です。

また、通信データの中にIPアドレスを含める一部のアプリケーションでは、NATを挟むと正しく動かないことがあります。いわゆるNAT越えと呼ばれる問題で、VoIPや一部のP2P通信が代表例です。

自分のPCでNATを確認してみよう

ここまでの内容は、実は自分のPCですぐに確かめられます。読むだけで終わらせず、手を動かして確認してみましょう。

まず、自分のPCのローカルIPアドレスを調べます。Windowsならコマンドプロンプトで、次のコマンドを実行します。

ipconfig

たとえば、次のように表示されます。

イーサネット アダプター イーサネット:
   IPv4 アドレス . . . . . . . . . .: 192.168.0.5
   サブネット マスク . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . .: 192.168.0.254

192.168. から始まっていれば、それはローカルIPアドレスです。あわせて表示されるデフォルトゲートウェイの役割は、デフォルトゲートウェイを解説した記事で説明しています。

Linuxの場合は ip addr、Macの場合は ifconfig をターミナルで実行すると、同じように確認できます。

次に、ブラウザでグローバルIPアドレスを表示してくれる確認サイトにアクセスしてみてください。そこに表示されるのが、いま自分が使っているグローバルIPアドレスです。

PCに設定されたローカルIPアドレスと、確認サイトに表示されたグローバルIPアドレスは違っていたはずです。この差こそが、途中のルーターでNAT(正確にはNAPT)されている証拠です。

さらに手を動かして学びたい方は、ブラウザだけでネットワーク演習ができるInfraAcademyのネットワーク講座もおすすめです。NATを含むネットワークの基礎を、シミュレーター上で実際に試しながら学べます。

NATに関するよくある疑問

最後に、NATについて初心者の方からよく聞かれる疑問に答えておきます。

家庭のルーターでNATの設定は必要?

結論としては、基本的に設定不要です。市販のWifiルーターは、初期状態でNAPTが有効になっています。

一方、企業のネットワークやクラウド環境では、管理者がNATを設計して設定します。インフラエンジニアを目指すなら、設定方法まで理解しておくと強みになりますよ。

最近の光回線ではどこでNATされている?

最近の光回線では、IPv4 over IPv6と呼ばれる接続方式が主流になりつつあります。この場合、方式によってNATが行われる場所が変わります。

MAP-E方式では自宅のルーターがNATを行い、DS-Lite方式では事業者側の装置がNATを行います。スマホの回線でも、キャリア側の設備でNATを行うCGNATという仕組みが広く使われています。

自宅のルーターだけでなく、事業者側でも変換される時代になったと押さえておけば十分です。

NATがあるとオンラインゲームがつながりにくいのはなぜ?

オンラインゲームでは、プレイヤー同士が直接通信する場面があります。ところが、NATの内側にいる機器へは外部から通信を開始できません。

そのため、お互いがNATの内側にいると接続が確立しにくくなります。ゲーム機の設定画面に表示されるNATタイプは、この通信のしやすさを表した指標です。

まとめ

今回は、NATについて解説しました。最後に要点を振り返っておきましょう。

NATとは、ローカルIPアドレスとグローバルIPアドレスを変換する技術でしたね。IPv4アドレスの不足を補い、そのままではインターネットに出られないローカルIPアドレスのPCを、世界中のサーバーとつないでいます。

動作のポイントは、行きの通信で送信元が変換され、帰りの通信で宛先が元に戻ることでした。家庭で実際に動いているのは、ポート番号まで変換するNAPTだという点もあわせて覚えておきましょう。

まずは ipconfig で、自分のローカルIPアドレスを確認するところから始めてみてください。手を動かすと、理解が一気に深まりますよ。

さらにネットワークを体系的に学びたい方は、実務に必要なネットワーク基礎知識もあわせてご覧ください。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る