よくネットワークの説明の際に利用される言葉で「NAT」という言葉があります。
NATとはどういうものなのか、ここではその特徴や種類について詳しく説明していきます。
NATとは?
NATとは、「Network Address Translation(ネットワーク アドレス トランスレーション)」の略で、一般的にはグローバルIPアドレスとプライベートIPアドレスを変換する技術を指します。
NATの背景の1つとして、「IP枯渇」があります。「IP枯渇」という言葉を聞いたことがある方も多いかと思いますが、実はIPアドレスというものは作られた当初から少なくなるとの懸念がありました。
IPアドレスの詳しい説明はここでは割愛しますが、IPアドレスは最大で約43億個しかなく、世界中のネットワークを考えると多くはない数字です。
それを解消するために、インターネット(外部)と通信ができる「グローバルIPアドレス」と、あるネットワーク内(例えば社内など)でのみ通信ができる「プライベートIPアドレス」が作られました。
しかし、グローバルIPアドレスとプライベートIPアドレスは、そのまま通信することが出来ません。そこでグローバルIPアドレスとプライベートIPアドレスを相互に変換する技術である、NATが誕生しました。
NATはNATテーブルと呼ばれるものを持っていて、一度変換したIPアドレスの変換前と変換後を自身のテーブルに記録します。これにより、戻ってきたパケットを記録したIPアドレスに返却することが出来るのです。
NATは2種類に分けることが出来ます。Source NATとDestination NATの2種類です。
Source NATとは?
別名「SNAT」(送信NAT)と呼ばれるものであり、プライベートネットワークから外部へ通信を行うためのIPアドレス変換の技術のことを指します。静的NATと呼ばれることもあります。
Destination NATとは?
別名「DNAT」(宛先NAT)と呼ばれるものであり、SNATとは逆に外部からプライベートネットワークへ通信を行うためのIPアドレス変換の技術のことを指します。動的NATと呼ばれることもあります。
IPv6ではNATがない?
IPアドレスはIPv4とIPv6に分けられます。
IPv6はIPv4の枯渇が懸念されていた当初から構想されていましたが、開発や普及に時間がかかるため短期的な対策としてIPv4をそのまま使える技術であるNATが利用されました。
IPv4が最大約43億個だったのに対し、IPv6は2の128乗個で約340澗(かん)個という想像もつかないような数字です。(ちなみに約340澗は340兆の1兆倍の1兆倍です)
IPv6ではインターネットへの通信にもLAN内の通信にも、共通の「グローバルユニキャストアドレス」と呼ばれるものを使います。ですので、基本的にはIPv6ではNATの技術を使用しないのです。
SIPとNATの関係性
SIPは「Session Initiation Protocol(セッション イニシエーション プロトコル)」の略で、音声や映像などをネットワーク上でリアルタイムに通信させるプロトコルです。よくVoIPなどに使われている技術なのですが、実はSIPとNATは相性が悪いことで有名です。
SIPはデータのやり取りにSDP「Session Description Protocol(セッション ディスクリプション プロトコル)」を使っています。SDPはIPアドレス情報などをメッセージ・ボディに含めて送信していますが、対してNATはパケットのIPヘッダのみを変換するのでSDP情報の中身までは変換されないのです。そのためNAT環境下でSIPを利用すると、「着信が出来ない」「自分の声は相手に届いているが、相手の声が聞こえない」などの問題が発生します。
現状では、「NAT越え」と呼ばれる技術や「RTP」と呼ばれる技術を使用した中継装置をインターネット上に設置するなどの対応を組み合わせ、SIPとNATの問題を回避しています。
NAPT(PAT)とは?
NATとよく似た言葉で、NAPT「Network Address Port Translation(ネットワーク アドレス ポート トランスレーション)」と呼ばれる技術があります。
別名、PATやIPマスカレードなどとも呼ばれます。PATはシスコ用語(CISCO製品で利用している用語)で、一般的にはNAPTと呼ばれています。
NATと同じくグローバルIPアドレスとプライベートIPアドレスを変換する技術ですが、NATは1対1で変換するので、もし100台のパソコンがあった場合は100個のグローバルIPアドレスが必要になります。この問題を解決するための技術がNAPTです。
NAPTではIPアドレスの他にポート番号も動的変換します。IPアドレスが同じでもそれぞれ送信元ポート番号が異なるので、100台のパソコンの通信をそれぞれ識別することが出来るのです。
まとめ
今回はNATについて紹介しました。
私達が普段何も考えずにインターネットに接続したりWebページを閲覧出来ているのは、こうした様々な技術の恩恵を受けているからであるということがご理解いただけたのではないかと思います。
ネットワークは奥が深いものですが、エンジニアにはなくてはならない知識です。この記事で少しでもネットワークに興味を持っていただけたなら、是非もっと深い知見を持ったエンジニアを目指してほしいと思います。
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.08.27
ネットワークの基本 ARPとRARPについて
ARPとRARPはネットワーク通信の基盤として働く重要な要素です。この記事はその役割と重要性を理解していただくことを目標とします。
- ネットワーク
2024.03.07
LANとは何か?WANとの違いや構築の仕方もくわしく解説!
同一の敷地・建物など局地的な範囲に構築されたネットワークのことです。
- ネットワーク
2023.09.29
難関試験ネットワークスペシャリスト試験の難易度は?
ネットワークスペシャリスト試験を受けるにあたって知っておきたい試験の概要や合格率、対策・勉強方法を紹介しているので、ぜひ参考にしてくださいね。
- ネットワーク
- 資格