NATとIPマスカレード

ISDN ルータやファイアーウォールを設置したような環境では、インターネット側にグローバルアドレス、ローカル側にプライベートアドレスを利用することが一般的になっています。この時、ローカル側からインターネットにアクセスしようとしても、プライベートアドレスを利用しているためインターネットへルーティングが行われません。そこで、インターネットへアクセスするためにプライベートアドレスをグローバルアドレスへ変換しなければなりません。その変換を行う仕組みが NAT や IP マスカレードと呼ばれるものです。

* NAT (Network Address Translation)

NAT(Network Address Translation)は、IPヘッダ内の始点アドレスと終点アドレスの変換を行います。アドレスの変換は、ひとつのプライベートアドレスに対し、ひとつのグローバルアドレスを割り当てます。そのため、インターネットにアクセスするノード分のグローバルアドレスを用意しなければなりません。

NATによるIPアドレスの変換

* IP Masquerade (IPマスカレード)

IPアドレスを変換する際に、ポート番号も変換する仕組みで Linuxの実装をIPマスカレードといいます。実際は NAPT(Network Address and Port Translation) と呼びます。IPマスカレードは、複数のプライベートアドレスをひとつのグローバルアドレスに割り当てます。IPマスカレードでは、IPアドレスだけではどのプライベートアドレスから来たパケットなのか判断できないので、IPアドレスとポート番号を対応させることでパケットの対応づけをしています。

IPマスカレードによるアドレス変換

しかし、IP マスカレードにはいくつかの問題があります。

* 静的IPマスカレード

静的IPマスカレードとは、IPマスカレードの変換テーブルをあらかじめ固定で登録しておくことで、従来IPマスカレードでは不可能だったインターネット側からのアクセスを可能にするものです。

テーブルへは、以下の三つの情報をもとに登録します。