MCU入門 第9回 NAT/FW トラバーサル③– NAT/FW トラバーサルの仕組み “NATとは” – 【社内用】MCU製品情報サイト VC.info

MCU入門 第9回 NAT/FW トラバーサル③
– NAT/FW トラバーサルの仕組み “NATとは”

2011年9月掲載

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つのローカルアドレスだけです。このため、複数のローカルアドレスで外部接続しようとすると、時間をずらす必要があります。
NATのしくみイメージ図
NAPTは、Network Address Port Translationの略です。NATとの違いは「Port」。そう、IPアドレスを変換する点ではNATと同じですが、TCP/UDPのポート番号をルーターで動的に変換するところが違います。ポート番号の変更をするおかげで、ローカルアドレスのIPが複数同時にグローバルに出て行ける、という長所があります。 でも、ポート番号って、サーバーのプログラムサービスを指定するための番号ですよね。 ルーターが勝手にポート番号を変えたら、必要なサービスが受けられなくなるような気がしませんか? NAPTでは、サーバーへの「返信宛先通知」のときに利用する、クライアントの「IPアドレスとポート番号」をルーターで変更する、というものです。ポート番号は、サーバーのサービスを指定するためのものなので、クライアントのポート番号は任意のものでかまいません。 このため、ルーターはNAPT機能によって、IPアドレスをクライアントのものからルーター自身のものに、ポート番号を、任意の番号に書き換えます。 サーバからの返信は、ルーターのIPアドレス宛てで、先に任意で付けたポート番号宛てに来ます。 ルーターはそれを受け取ったら、先とは逆の変換をします。 IPアドレスをクライアントのIPアドレス、ポート番号はクライアントがつけていた元のポート番号に戻すのです。 このため、サーバーからクライアントに返信が届くときは、クライアントが最初に指定した「IPアドレスとポート番号」宛てに戻ってくることになります。クライアントからすると、あたかもNAPTされておらず、サーバーと直接行ったように、通信が成り立つのです。
NAPTのしくみイメージ図
BlueJeans無料トライアルを試してみる