NATテーブルの保持時間(タイムアウト時間)について説明します。
Cisco機器(Cisco-IOS)の場合、デフォルトのタイムアウト時間は下記の通りです。
プロトコル | タイムアウト時間 |
---|---|
ICMP | 1分(60000msec) |
TCP | 24時間(86400000msec) |
UDP | 5分(300000msec) |
ネットワーク構成
下記の構成で確認します。
各機器の設定内容は下記の通りです。
NATテーブルの確認
Router1(1.1.1.1)からRouter3(2.2.2.2)に通信を行い、Router2でNATテーブルを確認します。
ICMPの場合
Router1(1.1.1.1)からRouter3(2.2.2.2)にPingによるICMP通信を行います。
ping 2.2.2.2 source 1.1.1.1
Router1#ping 2.2.2.2 source 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/12 ms
Router2でNATテーブルを確認します。
show ip nat translations verbose
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
icmp 9.9.9.9:5 1.1.1.1:5 2.2.2.2:5 2.2.2.2:5
create 00:00:06, use 00:00:06 timeout:60000, left 00:00:53,
timeoutの値が、”60000(msec)”となっており、デフォルトのタイムアウト値が表示されています。
TCPの場合
Router1(1.1.1.1)からRouter3(2.2.2.2)にTelnetによるTCP通信を行います。
telnet 2.2.2.2 /source-interface loopback0
Router1#telnet 2.2.2.2 /source-interface loopback0
Trying 2.2.2.2 ... Open
User Access Verification
Password:
Router3>
Router2でNATテーブルを確認します。
show ip nat translations verbose
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
tcp 9.9.9.9:25021 1.1.1.1:25021 2.2.2.2:23 2.2.2.2:23
create 00:00:06, use 00:00:06 timeout:86400000, left 23:59:53,
timeoutの値が、”86400000(msec)”となっており、デフォルトのタイムアウト値が表示されています。
UDPの場合
Router1(1.1.1.1)からRouter3(2.2.2.2)にSyslogによるUDP通信を行います。※”conf t”でコンフィグレーションモードに入り、”end”で抜けることでSyslog通信を発生させます。
conf t
end
Router1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#
Router1(config)#end
Router1#
13:11:59.056: %SYS-5-CONFIG_I: Configured from console by console
Router1#
Router2でNATテーブルを確認します。
show ip nat translations verbose
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
udp 9.9.9.9:65335 1.1.1.1:65335 2.2.2.2:514 2.2.2.2:514
create 00:00:10, use 00:00:10 timeout:300000, left 00:04:49,
timeoutの値が、”300000(msec)”となっており、デフォルトのタイムアウト値が表示されています。
タイムアウト値の変更
下記のコマンドを実行することで、タイムアウト値を変更できます。
ip nat translation
Router2(config)#ip nat translation ?
arp-ping-timeout Specify timeout for WLAN-NAT ARP-Ping
dns-timeout Specify timeout for NAT DNS flows
finrst-timeout Specify timeout for NAT TCP flows after a FIN or RST
icmp-timeout Specify timeout for NAT ICMP flows
port-timeout Specify timeout for NAT TCP/UDP port specific flows
pptp-timeout Specify timeout for NAT PPTP flows
routemap-entry-timeout Specify timeout for routemap created half entry
syn-timeout Specify timeout for NAT TCP flows after a SYN and no further data
tcp-timeout Specify timeout for NAT TCP flows
timeout Specify timeout for dynamic NAT translations
udp-timeout Specify timeout for NAT UDP flows
TCP通信のタイムアウトを変更します。
ip nat translation tcp-timeout 300 ※"秒"で指定します。
下記の通り、タイムアウト値が変更されていることがわかります。※timeout:300000(msec)
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
tcp 9.9.9.9:51250 1.1.1.1:51250 2.2.2.2:23 2.2.2.2:23
create 00:00:02, use 00:00:02 timeout:300000, left 00:04:57,
TCPに関する注意点
FIN&FIN-ACK検出されてTCPセッションが終了した場合は、1分後にタイムアウトとなります。
Telnet接続中
接続中は、”left 23:59:57″と表示されています。
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
tcp 9.9.9.9:46416 1.1.1.1:46416 2.2.2.2:23 2.2.2.2:23
create 00:00:06, use 00:00:02 timeout:86400000, left 23:59:57,
Telnet切断後
切断後は、”left 00:00:56″と表示され、タイムアウトの残り時間が1分に短縮されていることがわかります。
Router2#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
tcp 9.9.9.9:46416 1.1.1.1:46416 2.2.2.2:23 2.2.2.2:23
create 00:01:03, use 00:00:03 timeout:86400000, left 00:00:56,
以上で、NATテーブルの保持時間(タイムアウト時間)の説明は完了です!