[index]
CentreCOM AR300/AR700 シリーズ コマンドリファレンス 2.3
IP/レンジNAT
対象機種:AR300 V2、AR300L V2、AR320、AR720、AR740
- NATとは
- NATの種類
- スタティックNAT
- スタティックENAT
- ダイナミックNAT
- ダイナミックENAT
- Ethernet上でNATを使用する場合の注意事項
- スタティックNAT
- ダイナミックNAT
- グローバル側インターフェースアドレスを使用したダイナミックENAT
本製品には2種類のNAT機能があります。1つはIPモジュールの一部として実装されているレンジNAT(またはIP NAT)、もう1つはファイアウォールモジュールの一部として実装されているファイアウォールNATです。
ここではレンジNATの使用方法について解説します。なお、2つのNATの併用はできませんので、ファイアウォール機能を使用する場合はレンジNATではなくファイアウォールNATを使ってください。
IPでは、プライベートアドレスと呼ばれる特殊なアドレスの範囲が定められています。次にその範囲を示します(RFC1918)。
10.0.0.0-10.255.255.255 (10.0.0.0/8)
172.16.0.0-172.31.255.255 (172.16.0.0/12)
192.168.0.0-192.168.255.255 (192.168.0.0/16)
|
これらは、社内LANのように閉じたネットワークで自由に使用できるアドレスです。アドレスの割り当て方法は各組織が自由に選択できます。割当機関などのアドレスの使用申請をする必要はありません。個々のLANは完全に独立しているため、複数の組織が同じアドレスを使用していても問題は起こりません。それぞれのLANでアドレスが重複していなければよいのです。
これに対し、インターネットにアクセスする場合は、全世界で唯一無二のグローバルなIPアドレスを使用しなくてはなりません。グローバルアドレスは、一意性を保証するため各地の割り当て機関が管理しており、通常エンドユーザーはISP(インターネットサービスプロバイダー)などから一定数のアドレス割り当てを受けます。
ここで問題になるのは、インターネットの急激な普及等によりIPアドレスが不足気味になったことです。ネットワークの規模にもよりますが、インターネットへのアクセスが必要な端末の数だけグローバルアドレスを取得することは困難になっています。そこで、少数のグローバルアドレスを有効活用するために考え出されたのがNAT(Network Address Translation)です。
NATは、ルーターなどの機器でIPヘッダーのアドレスを自動的に書き換える機能です。LAN上の各端末には通常プライベートアドレスを使用し、インターネットにアクセスするときだけ始点アドレスをグローバルアドレスに変換して通信させようというのが、NATの基本的な考え方です。
NATはアドレス変換のパターンによっていくつかの種類に分類できますが、もっとも基本的なNATでは、トラフィックの識別にIPヘッダーの始点および終点IPアドレスのみを使用します。このため、プライベートアドレスとグローバルアドレスの対応は常に1対1となります。すなわち、グローバルネットワークにアクセスする端末の数だけ、グローバルアドレスが必要になります。
これに対し、トラフィックの識別にIPアドレスとTCP/UDPポートの両方を使用することにより、1つのグローバルIPアドレスで複数のプライベートアドレスに対応できる機能をENAT(Enhanced NAT)と呼びます(IPマスカレードなどと呼ばれることもあります)。ENATを使用すれば、端末型ダイヤルアップのように1つしかグローバルアドレスを割り当てられない環境でも、LAN側の複数の端末が同時にインターネットにアクセスできるようになります。
以下、レンジNATでサポートしているNATの種類について説明します。
プライベートIPアドレスからグローバルIPアドレスへの1対1変換を行います。どのアドレスからどのアドレスに変換するかは、あらかじめ固定的に設定します。
- プライベートIPアドレス「A」を、あらかじめ設定したグロ−バルIPアドレス「X」に1対1で変換します。また、その逆変換を行います。
- IPアドレス変換なので、上位のプロトコルタイプには依存しません。
- 両方向からの接続が可能です(プライベートIPアドレス←→グローバルIPアドレス)
■ グローバル側インターフェースがPPPの場合は、単に次のように入力します。IPがプライベートアドレス、GBLIPがグローバルアドレスです。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.5 GBLIP=1.1.1.5 ↓
■ グローバル側インターフェースがEthernetの場合は、上記の設定に加え、グローバル側LANでのARP要求に応えるため、次のコマンドを追加してプロキシーARPを効かせる必要があります。ここでは、プライベート側インターフェースをeth0、グローバル側インターフェースをeth1とします。
ADD IP ROUTE=1.1.1.5 MASK=255.255.255.255 INT=eth0 NEXTHOP=0.0.0.0 PREFERENCE=0 ↓
これは、ホスト「1.1.1.5」がeth0側に存在することを教えるコマンドです。PREFERENCE=0(優先度最高)を指定しているため、この経路エントリーは他のエントリーよりも優先されます。グローバルLAN上で1.1.1.5へのARP要求があった場合、このエントリーに基づきルーターが代理応答します(プロキシーAPR)。
Note
- スタティックNATをダイナミックENATと併用する場合は、先にスタティックNATの設定を行ってください。レンジNATでは、NATテーブルを設定順に検索し、最初にマッチした条件に基づいて変換を行います。そのため、スタティックNATを先に設定しないとダイナミックENATの設定条件と一致してしまい、スタティックNATの設定が有効にならなくなります。
プライベートIPアドレス+TCP/UDPポ−ト番号から、グローバルIPアドレス+TCP/UDPポート番号への1対1変換を行います。どのアドレス+ポートをどのアドレス+ポートに変換するかは、あらかじめ固定的に設定します。固定グローバルアドレスが1個しかないような環境で、特定のサービスを外部に公開したいようなときに利用できます。
Note
- スタティックENATは、必ずダイナミックENATと組み合わせて使用します。あらかじめダイナミックENATの設定を行い、スタティックENATで使用するアドレスの範囲を指定しておく必要があります。
- プライベートIPアドレス「A」+TCP/UDPポート番号「aa」を、あらかじめ設定したグロ−バルIPアドレス「X」+TCP/UDPポート番号「xx」に変換します。また、その逆変換を行います。
- TCP/UDPポート番号を使用するため、プロトコルタイプはTCP/UDPのみとなります。
- 両方向からの接続が可能です(プライベートIPアドレス←→グローバルIPアドレス)
■ 次のようなアドレス変換を行うスタティックENATの設定例を示します。
- プライベートIPアドレス「192.168.10.3」 のTCP ポート80番を、グローバルIPアドレス「1.1.1.3」の TCPポート80番 に変換します。また、その逆を行います。
- プライベートIPアドレス「192.168.10.4」のTCP ポート20番を、グローバルIPアドレス「1.1.1.3」の TCPポート20番 に変換します。また、その逆を行います。
- プライベートIPアドレス「192.168.10.4」のTCP ポート21番を、グローバルIPアドレス「1.1.1.3」の TCPポート21番 に変換します。また、その逆を行います。
また、スタティックENATの前提として、プライベートIPアドレス「192.168.10.0/24」をグローバルIPアドレス「1.1.1.3」に変換するダイナミックENATの設定を施します。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLIP=1.1.1.3 ↓
ADD IP NAT IP=192.168.10.3 PROT=TCP PORT=80 GBLIP=1.1.1.3 GBLPORT=80 ↓
ADD IP NAT IP=192.168.10.4 PROT=TCP PORT=20 GBLIP=1.1.1.3 GBLPORT=20 ↓
ADD IP NAT IP=192.168.10.4 PROT=TCP PORT=21 GBLIP=1.1.1.3 GBLPORT=21 ↓
Note
- レンジNATでは、グローバルIPアドレスが不定な場合はスタティックENATを使えません。その場合は、ファイアウォールNATを使用してください。
複数のプライベートIPアドレスから複数のグローバルIPアドレスへの多対多変換を行います。アドレス変換時には、あらかじめ指定された範囲から使用されていないアドレスが自動的に選択されて変換されます。
- 複数のプライベートIPアドレス「A〜C」を、複数のグロ−バルIPアドレス「X〜Z」の中で使用されていないアドレスに変換します。
- IPアドレス変換なので、上位のプロトコルタイプには依存しません。
- 片方向からのみ接続できます(プライベートIPアドレス→グローバルIPアドレス)。
Note
- ダイナミックNATは、他のNATに比べてメリットが少ないためあまり使われません。
■ プライベートIPアドレス「192.168.1.1」〜「192.168.1.254」を、グローバルIPアドレス「192.168.100.1」〜「192.168.100.127」の範囲内で未使用のIPアドレスに変換するダイナミックNATの設定例を示します。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.1.0 MASK=255.255.255.0 GBLIP=192.168.100.1 GBLMASK=255.255.255.128 ↓
1つのグローバルアドレスを複数のホストで共用するもっとも一般的なNATで、アドレス・ポート変換、NAPT(Network Address Port Translation)、IPマスカレードなどとも呼ばれます。複数のプライベートIPアドレス+TCP/UDPポート番号を、1つのグローバルIPアドレス+複数のTCP/UDPポ−ト番号に変換します。ポート番号の割り当ては動的に行われます。
- 複数のプライベートIPアドレス+TCP/UDPポート番号「A:aa」、「B:bb」、「C:cc」を、あらかじめ設定した1つのグロ−バルIPアドレス+それぞれ固有のポート番号「X:xa」、「X:xb」、「X:xc」に変換します。グローバルアドレスを1つしか使わないため、各トラフィックの識別はポート番号によることになります。これにより、1つのグローバルIPアドレスを利用して、複数の端末がグローバルネットワークにアクセスできるようになります。
- TCP/UDPポート番号を使用するため、プロトコルタイプはTCP/UDPのみとなります。
- 片方向からのみ接続できます(プライベートIPアドレス→グローバルIPアドレス)。
ダイナミックENATの設定は、GBLIPパラメーターでグローバルアドレスを明示的に指定する形式と、GBLINTERFACEパラメーターでグローバル側インターフェースを指定するだけの形式があります。後者の場合、GBLINTERFACEパラメーターで指定したインターフェースのアドレスがNAT用アドレスとして使用されます(ダイヤルアップ環境など、WAN側のアドレスが不定なときに使用します)。
■ NAT用グローバルアドレスを明示する場合は、GBLIPパラメーターを使用します。次に、プライベートIPアドレス192.168.10.1〜254をグローバルIPアドレス1.2.3.4に変換するダイナミックENATの設定例を示します。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLIP=1.2.3.4 ↓
■ PPP接続などでグローバルIPアドレスを動的に取得する場合は、GBLIPの代わりにGBLINTERFACEパラメーターで、グローバル側インターフェース名を指定することもできます。この場合、ENATのグローバルIPアドレスとしては、GBLINTERFACEで指定したインターフェースに割り当てられたIPアドレスが使用されます。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLINT=ppp0 ↓
■ NAT用グローバルアドレスとしてインターフェースアドレスを使う場合(GBLINT指定時など)、ルーターからグローバル側に対してMAILコマンド、FINGERコマンド、TRACEコマンドが使えなくなります。ルーターからグローバル側にTELNETすることはできます。ファイアウォールのENATでは、いずれも可能です。
■ NAT用グローバルアドレスとしてインターフェースアドレスを使う場合(GBLINT指定時など)、グローバル側からルーターへのPingには応答しません。一方、ファイアウォールのダイナミックENATでは応答します。
■ ダイナミックENAT使用時であっても、グローバル側からルーターへのTelnetは可能です。これを防ぐには、ファイアウォールNATを使うとよいでしょう。ファイアウォールNATでは、グローバル側からのアクセスはすべて拒否します。あるいは、レンジNATを使用するのであれば、次のようなIPフィルターを併用してください。
ADD IP FILTER=0 SO=0.0.0.0 PROTO=TCP DPORT=TELNET AC=EXCLUDE ↓
ADD IP FILTER=0 SO=0.0.0.0 AC=INCLUDE ↓
SET IP INT=ppp0 FILTER=0 ↓
■ スタティックENATを使用する場合、あらかじめダイナミックENATの設定を行ない、スタティックENATで使用するIPアドレスの範囲を設定しておく必要があります。
■ スタティックNATとダイナミックENATの両方を使用してアドレス変換を行う場合、設定順序に注意する必要があります。レンジNATでは、NATテーブルを設定順に検索し、最初にマッチした条件に基づいて変換を行います。そのため、スタティックNATを先に設定しないとダイナミックENATの設定条件と一致してしまい、スタティックNATの設定が有効にならなくなります
- よくない設定例(ダイナミックENATの設定を先に行っている)
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLIP=1.2.3.4 ↓
ADD IP NAT IP=192.168.10.10 GBLIP=1.2.3.4 ↓
- 正しい設定例(スタティックNATの設定を先に行っている)
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.10 GBLIP=1.2.3.4 ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLIP=1.2.3.4 ↓
Note
- レンジNATでENATを設定した場合、ルーターからグローバル側へのTRACE、FINGER、MAIL(メール送信)ができません。
Ethernet上でNATを使用する場合の注意事項 |
ここでは、Ethernet上でNATを使う場合の注意点について解説します。
Ethernet上でNATを使用する場合、NAT後のグローバルアドレスとして、グローバル側インターフェースのIPアドレスと異なるアドレスを使用するためには、NAT用グローバルアドレスを経路表に手動登録し、プロキシーARPを有効にする必要があります。
Note
- NAT後のグローバルアドレスとしてインターフェースアドレスを使用するときは、経路登録の必要はありません。また、グローバル側がEthernetでないときも必要ありません。
次に、スタティックNATを使用した場合とダイナミックNATを使用した場合それぞれについて、ローカルNAT機能の設定例を示します。以下の各例では、各インターフェースのIPアドレスを次のように設定してあるものと仮定しています。
- eth0(プライベート側):192.168.10.1/24
- eth1(グローバル側):1.1.1.1/24
次に示すのは、192.168.10.2→1.1.1.2のスタティックNAT設定例です。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.2 GBLIP=1.1.1.2 ↓
ADD IP ROUTE=1.1.1.2 MASK=255.255.255.255 INT=eth0 NEXT=0.0.0.0 PREF=0 ↓
3行目の経路設定により、グローバル(eth1)側における1.1.1.2へのARP要求にルーターが代理で応答するようになります。
次に示すのは、192.168.10.0/24→1.1.1.16/28のダイナミックNAT設定例です。この設定では、192.168.10.0/24のネットワークからeth1側への通信時に、送信元IPアドレスが1.1.1.16〜1.1.1.31のいずれかのIPアドレスに変換されます。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLIP=1.1.1.16 GBLMASK=255.255.255.240 ↓
ADD IP ROUTE=1.1.1.16 MASK=255.255.255.240 INT=eth0 NEXT=0.0.0.0 PREF=0 ↓
3行目の経路設定により、グローバル(eth1)側における1.1.1.16〜1.1.1.31へのARP要求にルーターが代理で応答するようになります。
グローバル側インターフェースアドレスを使用したダイナミックENAT |
次の例のように、NATアドレスとしてグローバル側インターフェースに割り当てたIPアドレスを使用する場合は、ARPエントリーの登録は不要です。
ただし、インターフェースアドレスをNATアドレスとして使用する場合は、グローバル側ネットワークからルーターに対してPing等ができなくなります。
ENABLE IP NAT ↓
ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLINT=eth1 ↓
(C) 1997 - 2005 アライドテレシスホールディングス株式会社
PN: J613-M0274-00 Rev.K