ネットワークアドレス変換(NAT)

ネットワークアドレス変換(NAT)は、主に次の目的に利用されます。

インターネットにアクセスするホストには、IANAや他のインターネットアドレス登録機関から割り当てられた、グローバルに固有なアドレスが必要になります。ただし、IPアドレスが不足しているため、プライベートネットワーク上のすべてのホストに対してグローバルに固有なIPアドレスを割り当てることは、実用的ではありません。NATは、特定のルータインタフェースを介してインターネットにアクセスするホストに対して自動的に、グローバルに固有なアドレスを割り当てることで、この問題を解決しています。NATによって、プライベートネットワーク上のホストがグローバルにユニークなIPアドレスを持っていない場合でも、インターネットにアクセスさせられます。

NATは、パブリックネットワーク上のホストから、プライベートネットワーク上のリソースへのアクセスを制限する場合にも用いられます。プライベートネットワーク外のホストからのアクセスを許可するプライベートネットワーク内のホストだけが、アドレス変換されるようにNATを設定することによって、その他のプライベートネットワーク内のリソースに対するアクセスを禁止することができます。

通常NATは、インターネットへのアクセスを提供する場合に用いられますが、プライベートネットワーク内で一部のシステムを、残りの部分から切り離したり保護するためにも利用されます。たとえば、重要なリソースを持つ会社全体へのアクセスを制限したり、財務部門や人事部門の機密情報を保護するために用いられます。


動作モード

NATは、ダイナミックのみ、スタティックのみ、およびダイナミックとスタティックの組み合わせの3種類のモードで動作させることができます。ダイナミックモードは、プライベートネットワーク上のホストからパブリックネットワークへのアクセスを許可する場合に用いられます。スタティックモードは、パブリックネットワーク上のホストから、プライベートネットワーク上の任意のリソースにアクセスさせる場合や、特定のプライベートホストだけにパブリックホストにアクセスさせる場合に用いられます。組み合わせのモードは、ダイナミックモードとスタティックモードの両方の機能を利用する場合に用いられます。

ダイナミックモードでは、インターネットにアクセスするホストに対して、NATとポートを使ってIPアドレスが動的に割り当てられます。ポートは、常時再利用される利用可能なポートのプールから取得されます。パケットがパブリックネットワークに転送される場合に、プライベートアドレスがグローバルにユニークなアドレスに置き換えられ、ランダムにポートが割り当てられます。セッションが完了すると、ポートはプールに返されます。このプールに返されたポートは、必要に応じて再利用されます。パブリックネットワークからプライベートネットワークに接続することはできません。ダイナミックモードを使用するには、NATインタフェースに1つのパブリックアドレスを設定する必要があります。

NATは、TCP/IP接続用に5000ポート、UDPマッピング用に5000ポート、そしてICMPマッピング用に5000ポートを確保しています。すべてのUDPまたはICMPマッピング用のポートを使い尽くした場合に新しい通信を確立するには、NATは一番古いマッピングを削除して、そのポートを使って新しいマッピングを行います。すべてのTCP接続用ポートを使い果たした場合に新しくTCP接続を確立するには、NATは次の順番に従って、基準に合致する接続を削除して、そのポート番号で新しい接続を確立します。

スタティックモードでは、NATはIPアドレスの対からなるテーブルで設定されます。各テーブルエントリには、パブリックホストからのアクセスを許可する各ホストに対するIPアドレスの対があります。最初のIPアドレスは、プライベートアドレスがマップされるパブリックIPアドレスを示します。二番目のIPアドレスは、プライベートネットワーク内のホストアドレスを示します。パブリックホストは、パブリックIPアドレスを使わないとプライベートホストにアクセスできないため、このネットワーク変換テーブルにIPアドレスが定義されているホストにだけしかアクセスすることができません。また、プライベートIPホストがネットワークアドレス変換テーブルに定義されると、そのホストはパブリックIPホストに完全にアクセスできるようになります。スタティックモードを使用するには、各プライベートホストに対して1つのパブリックIPアドレスを設定する必要があります。

NATはダイナミックモードとスタティックモードの両方を同時に利用することができます。この両方を組み合わせたモードは、プライベートネットワーク内に、インターネットにアクセスさせたいホスト、およびパブリックホストからアクセスさせたいリソースがある場合に用いられます。ダイナミックおよびスタティックモードを使用するには、動的変換のために1つのパブリックアドレスを、そして各プライベートホスト用に1つのパブリックアドレスを設定する必要があります。


インプリメント

NATにはIPアドレスの変換のほかにも、次の利点があります。

図2-22に、ダイナミックモードでのNATの利用を示します。図2-22のプライベートネットワークでは、クラスAのアドレス10.33.96.5が使われています。パブリックネットワークへのルータのNATインタフェースは、クラスCアドレスの201.44.53.7が設定されています。このクラスCアドレスは、グローバルに固有で、IANAに登録されています。

プライベートアドレス10.33.96.5のホストが、パブリックアドレス198.76.28.4でインターネットにアクセスする場合、そのホストはプライマリルータにパケットを送信します。ルータには、WANインタフェースに設定されたデフォルトルータがあるので、パケットはWANインタフェースに転送されます。次にNATはパケットを転送する前に、IPヘッダ中の発信元アドレス10.33.96.5を、グローバルに固有なアドレス201.44.53.7に変換しまた新しいポートに変換します。同様に、応答のIPパケットも逆の順番でアドレスとポートの変換が行われます。

NATが有効になっているインタフェースは、RIPを使ってプライベートネットワークをパブリックネットワークにアドバタイズしないように設定する必要があります。

図 2-22.
NATのダイナミックモード

図2-23に、NATのスタティックモードを示します。この場合、パブリックネットワーク上のホストからプライベートネットワーク内のUNIXホストにアクセスできるようにNATが設定されています。ホストのプライベートアドレスは、10.33.96.10と10.33.96.30です。ネットワークアドレス変換テーブルには、これらのプライベートアドレスをそれぞれパブリックIPアドレスの198.76.28.11および198.76.28.31に変換するように設定されています。ネットワークアドレス変換テーブルに複数のパブリックアドレスを設定するには、『Novell Internet Access Server 4.1 Routing Configuration』で説明しているように、NATを有効にしたインタフェースでマルチホーミングを使うように設定する必要があります。

このようにNATを設定すれば、パブリックホストから宛先アドレス198.76.28.11または198.76.28.31に向けたパケットをNAT対応インタフェース上のNetWareルータが受信すると、パケットの宛先アドレスが適切なプライベートアドレスに変換され、適切なプライベートホストに転送されます。ホストからパブリックホストへの応答パケットは、逆の手順をたどって処理が行われます。このようにして、パブリックネットワーク上のホストから、プライベートネットワーク上の特定リソースにアクセスすることができます。ただし、アクセスできるホストは、ネットワークアドレス変換テーブルにプライベートアドレスが設定されているリソースだけに限定されます。また、ネットワークアドレス変換テーブルに設定されているプライベートホストは、任意のパブリックホストにアクセスすることができます。

NAT対応インタフェースは、RIPを使ってプライベートネットワークをパブリックネットワークにアドバタイズしないように設定してください。

注: マルチアクセスの設定をしたスタティックモードでNATを使用する場合、NATスタティックマッピングテーブルに定義されているそれぞれのアドレスに対するスタティックホストルートがパブリックルータになければなりません。番号付きポイントツーポイントでNATを使用する場合は、スタティックホストルートを設定する必要はありません。

図 2-23.
NATのスタティックモード


制限事項

NATの制限事項を次に示します。


NATで未登録のIPアドレスを使う

NATを使う場合にプライベートホストに割り当てるIPアドレスを決めるには、RFC 1918のガイドラインに従ってください。RFC 1918の説明によると、IANAがプライベートインターネット用に次の3つのIPアドレスブロックを予約しています。

10.0.0.0から10.255.255.255 (10/8プリフィックス)
172.16.0.0から172.31.255.255 (172.16/12プリフィックス)
192.168.0.0から192.168.255.255 (192.168/16プリフィックス)

最初のブロックは、24ビットブロックとして、2番目のブロックは20ビットブロックとして、そして3番目のブロックは16ビットブロックとして扱われます。最初のブロックは単一のクラスAネットワーク番号で、2番目のブロックは16の連続したクラスBネットワーク番号、3番目のブロックは256の連続したクラスCネットワーク番号になっています。インターネットのバックボーンルータには、これらのネットワークアドレスへのパケット転送を防ぐフィルタがあります。そのため、これらのアドレスを使えば、Novell IP Gateway、NAT、またはファイアウォールが機能しなくなった場合にも、プライベートホストをパブリックネットワークから保護することができるのです。ただし、ISPが使っているルータによってはこのようなアドレスのフィルタリング機能がないものがあるため、プライベートホストが、同じISPを使っている他のIPホストからアクセスされる可能性もあります。

RFC 1918に記載されている範囲のネットワークアドレスは、IANAや他のインターネット登録機関に申請しないでも自由に使うことができます。そのため、これらのネットワーク番号は多くの企業や、独自のプライベートインターネットを使って通信するためにアドレス空間を共用している企業群によって用いられています。


フィルタリングの規則

NATがフィルタリングするパケットの種類は、NATの動作モードによって決まります。NATのモードは、[ステータス]パラメータで設定します。このパラメータには、[使用不可]、[ダイナミックのみ]、[スタティックのみ]、および[スタティックとダイナミック]が設定できます。NATパラメータの設定については、『Novell Internet Access Server 4.1 Routing Configuration』を参照してください。

NAT対応のインタフェースに[使用不可]を設定すると、着信パケットや発信パケットのIPアドレスやポートが変更されることはありません。デフォルトでは、この設定になっています。

NAT対応のインタフェースに[ダイナミックのみ]を設定すると、フィルタリング規則は次のようになります。

注: NATはインタフェースから転送される任意の発信パケットを変換します。登録IPアドレスと未登録IPアドレスの両方を持つプライベートネットワークの場合、登録IPアドレスはNATインタフェースに設定されている登録アドレスに変換されます。

NAT対応インタフェースに[スタティックのみ]を設定する場合、フィルタリングルールは次のようになります。

注: NAT対応インタフェースのフィルタを設定し、パブリックネットワークから特定のサービス、ホスト、またはネットワークへのアクセスだけを許可することで、安全なスタティック変換を作成することができます。フィルタの設定については、『Novell Internet Access Server 4.1 Routing Configuration』を参照してください。

NAT対応インタフェースに[スタティックとダイナミック]を設定すると、フィルタリングルールは次のようになります。


インターネットへのアクセスにNATまたはNovell IPゲートウェイを使うかどうかの判断

インターネットアクセスにNATを使うことは、Novell IPゲートウェイを使う場合に比べて様々な長所があります。Novell IPゲートウェイを利用する場合、各ホスト上にクライアントソフトウェアをインストールする必要があります。NATの場合は、特別にクライアントソフトウェアを必要とはしません。Novell IPゲートウェイは、Windows 3.1およびWindows 95ホストでだけ利用できます。NATはMacintosh*、UNIX*、OS/2*、およびWindows NT*などの任意のプラットフォームから利用することができます。また、NATはネットワーク層で動作するため、セッション層で動作するNovell IPゲートウェイトよりも高速になります。ただし、Novell IPゲートウェイを使えば、NDSとアクセス制御によってインターネットへの接続を制御することができるという利点があります。