MCU入門 第9回
NAT/FW トラバーサル
- 3. NAT/FW トラバーサルの仕組み “NATとは”
- NAT/FW トラバーサルの必要性
- NAT/FW トラバーサルの仕組み “FWとは”
- NAT/FW トラバーサルの仕組み “NATとは”
- テレビ会議通信の仕組み
NAT(ナット:Network Address Translation)とは
Network Address Translationの略で、通常はルーターが提供する機能です。
自社の内側の人が外側の人とダイレクトに接続しないように、一度IPアドレス(住所)を変換してくれる通訳の役割をします。
もともとは、ローカルアドレス(プライベートアドレス)を利用しているPCを複数台グローバルアドレスに接続するという、利便性のための仕組みです。現在IPv4のグローバルアドレスは枯渇してしまいましたが、ローカルアドレスをうまく利用することで、グローバルアドレスの有効活用ができます。
上記は、「内から外側」という見方です。逆に、外から内側という見方をするとどうでしょう?
ルーターのグローバルアドレスが1つしかないのに、ローカルIPであるPCは複数台存在します。
アドレスが1対1対応ではないので、外部から見たら内部のPCを特定できない=セキュリティが高いのです。
NAT」にも、種類があります。通常「NAT」というと、狭い意味のNATとNAPTの両方を含むことが多いです。
この2つは、名前は似ているのですが、仕組みが違います。
狭い意味の NAT (Network Address Translation) はTCP/UDPのポート番号は変換せず、IPアドレスだけをルータで変換します。
変換されるのは一度に1つのローカルアドレスだけです。このため、複数のローカルアドレスで外部接続しようとすると、時間をずらす必要があります。
NAPTは、Network Address Port Translationの略です。NATとの違いは「Port」。
そう、IPアドレスを変換する点ではNATと同じですが、TCP/UDPのポート番号をルーターで動的に変換するところが違います。
ポート番号の変更をするおかげで、ローカルアドレスのIPが複数同時にグローバルに出て行ける、という長所があります。
でも、ポート番号って、サーバーのプログラムサービスを指定するための番号ですよね。 ルーターが勝手にポート番号を変えたら、必要なサービスが受けられなくなるような気がしませんか?
NAPTでは、サーバーへの「返信宛先通知」のときに利用する、クライアントの「IPアドレスとポート番号」をルーターで変更する、というものです。ポート番号は、サーバーのサービスを指定するためのものなので、クライアントのポート番号は任意のものでかまいません。
このため、ルーターはNAPT機能によって、IPアドレスをクライアントのものからルーター自身のものに、ポート番号を、任意の番号に書き換えます。サーバーからの返信は、ルーターのIPアドレス宛てで、先に任意で付けたポート番号宛てに来ます。 ルーターはそれを受け取ったら、先とは逆の変換をします。
IPアドレスをクライアントのIPアドレス、ポート番号はクライアントがつけていた元のポート番号に戻すのです。
このため、サーバーからクライアントに返信が届くときは、クライアントが最初に指定した「IPアドレスとポート番号」宛てに戻ってくることになります。
クライアントからすると、あたかもNAPTされておらず、サーバーと直接行ったように、通信が成り立つのです。