NATを設定するコマンド

ここでは、NATを設定するコマンドを紹介します。

 YAMAHAルータでは、IPアドレスの変換だけを行うことをNATと呼び、TCP/UDPのポート番号の変換を伴うものをIPマスカレードと呼んでいます。

 また、アドレス変換規則を表す記述をNATディスクリプタと呼び、それぞれのNATディスクリプタにアドレス変換の対象となるアドレス空間が定義してゆきます。

 アドレス空間の記述には、「nat descriptor address inner」、「nat descriptor address outer」コマンドを用います。

 「nat descriptor address inner」コマンドは、 NAT処理の内側 (INNER) のアドレス空間を定義し、「nat descriptor address outer」コマンドは NAT 処理の外側 (OUTER) のアドレス空間を定義するコマンドです。

この2つのコマンドを対で設定することで、変換前のアドレスと変換後のアドレスが対応付けられます。

インターフェイスへのNATディスクリプタ適用の設定

 インターフェイスを通過するパケットに対して、リストに定義した順番で処理するように設定します。具体的には、NATディスクリプタで定義したNAT変換をインターフェイスに適用します。コマンドは下記の通りです。

# ip interface nat descriptor nat_descriptor_list [reverse nat_descriptor_list]

 reverseの後ろで記述したNATディスクリプタでは、通常処理されるIPアドレス、ポート番号とは逆向きのIPアドレス、ポート番号に対してNAT変換が施されます。

【設定値及び初期値】

●interface
設定値 : LAN インターフェイス名

●nat_descriptor_list
設定値 : 空白で区切られた NAT ディスクリプタ番号 (1..2147483647) の並び (16個以内)

NATディスクリプタの動作タイプの設定

NAT変換の動作タイプを指定します。

# nat descriptor type< nat_descriptor> <type>

[設定値及び初期値]

●nat_descriptor
設定値 : NAT ディスクリプタ番号 (1..2147483647)

●type
設定値 :

設定値説明
noneNAT変換機能を利用しない
nat動的NAT変換と静的NAT 変換を利用
masquerade静的NAT変換とIPマスカレード変換
nat-masquerade動的NAT変換と静的NAT変換とIPマスカレード変換

初期値 : none

静的NATエントリの設定

 NAT変換で固定割り付けするIPアドレスの組み合せを指定するコマンドは、以下の通りです。個数を同時に指定すると指定したアドレスを始点とした範囲指定となります。

# nat descriptor static nat_descriptorid [outer_ip=inner_ip [count]]

※必ずしも外側アドレスがNAT処理対象として設定されているアドレスである必要はありません。

 静的NATを使用する場合には、「nat descriptor address outer」コマンドと「nat descriptor address inner」コマンドの設定に注意する必要があります。初期値が、それぞれ「ipcp」と「auto」なので、意図しないNAT変換が行われる原因となるからです。

【設定値及び初期値】

●nat_descriptor
設定値 : NATディスクリプタ番号 (1..2147483647)

●id
設定値 : 静的NATエントリの識別情報 (1..2147483647)

●outer_ip
設定値 : 外側IPアドレス(1個)

●inner_ip
設定値 : 内側IPアドレス(1個)

●count
設定値 : 連続設定する個数。省略時は1

NAT処理の内側・外側の指定

 NATを設定する際には、NAT変換の対象となるインターフェイスに対して、内側なのか外側なのかを指定します。アドレス空間の記述には、内側(INNER)のアドレス空間、外側(OUTER)のアドレス空間を以下のコマンドで定義します。

# nat descriptor address inner

# nat descriptor address outer

 これら2つのコマンドを対で設定することで、変換前のアドレスと変換後のアドレスとの対応付けが定義されます。

NAT処理の内側IPアドレスの設定

NAT、IPマスカレード処理の対象である内側のIPアドレスの範囲を指定します。

# nat descriptor address inner nat_descriptorinner_ipaddress_list

【設定値及び初期値】

●nat_descriptor
設定値 : NAT ディスクリプタ番号 (1..2147483647)

●inner_ipaddress_list : NAT対象の内側IPアドレス範囲のリストまたはニーモニック

設定値 :

設定値説明
IPアドレス1個のIP アドレス、または、間に「 – 」をはさんだIPアドレス(範囲指定)、およびこれらを任意に並べたもの
auto全て

初期値 : auto

NAT処理の外側IPアドレスの設定

 動的NAT処理の対象である外側のIPアドレスの範囲を指定します。IPマスカレードでは、先頭の1個の外側のIPアドレスが使用されます。

# nat descriptor address outer nat_descriptorouter_ipaddress_list

【設定値及び初期値】

●nat_descriptor
設定値 : NAT ディスクリプタ番号 (1..2147483647)

●outer_ipaddress_list : NAT対象の外側IP アドレス範囲のリストまたはニーモニック
設定値 :

設定値説明
IPアドレス1個のIPアドレス、または、間に「 – 」をはさんだIPアドレス(範囲指定)、およびこれらを任意に並べたもの
ipcpPPPのIPCPのIP-Addressオプションにより、接続先から通知されるIPアドレス
primaryip interface address コマンドで設定されているIPアドレス
secondaryip interface secondary address コマンドで設定されているIPアドレス

初期値 : ipcp

外側から受信したパケットに該当する変換テーブルが存在しないときの動作の設定

# nat descriptor masquerade incoming nat_descriptor action [ip_address]

【設定値及び初期値】

●nat_descriptor
設定値: NAT ディスクリプタ番号(1..2147483647)

●action
[設定値] :

設定値説明
through変換せずに通す。
reject破棄して、TCPの場合はRSTを返す。
discard破棄して、何も返さない。
forward指定されたホストに転送する。

初期値: reject

●ip_address
設定値: 転送先のIPアドレス

【説明】
 IPマスカレードで外側から受信したパケットに該当する変換テーブルが存在しないときの動作を設定する。action が forward のときにはip_addressを設定する必要がある。