【NAT】生存タイムアウト時間(Ciscoルータ)について

 NATテーブルのエントリーには生存時間(タイムアウト値)を持ちます。これは、ICMPやTCPなどにより値が異なります。前回のスタティックNATの構成を元に、プロトコルによりタイムアウト値がどのように変化するか検証します。

スポンサーリンク

ICMP通信のタイムアウト値

 ICMP通信エントリーのタイムアウト値は60秒です。 R2からR4へPingを実行し、R3のNATテーブルをshow ip nat translations で確認します。

R2#ping 192.168.34.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.34.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/26/40 ms
R3#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 192.168.34.3:6    192.168.23.2:6     192.168.34.4:6     192.168.34.4:6
--- 192.168.34.3       192.168.23.2       ---                —

 プロトコルicmpとしてエントリーが登録されました。sh ip nat translations verboseで、このエントリーのタイムアウト値を確認できます。

R3#sh ip nat translations verbose 
Pro Inside global      Inside local       Outside local      Outside global
icmp 192.168.34.3:6    192.168.23.2:6     192.168.34.4:6     192.168.34.4:6
    create 00:00:08, use 00:00:00 timeout:60000, left 00:00:59, 
    flags: 
extended, use_count: 0, entry-id: 10, lc_entries: 0
--- 192.168.34.3       192.168.23.2       ---                ---
    create 00:49:58, use 00:00:08 timeout:0, 
    flags: 
static, use_count: 1, entry-id: 1, lc_entries: 0

 timeout:60000 の単位は、マイクロ秒です。left 00:00:59は残り時間を表し、単位は秒です。残り59秒後にこのエントリーは削除されます。

スポンサーリンク

TCP通信のタイムアウト値

 TCP通信エントリーのタイムアウト値は60秒です。ただし、3 ウェイ ハンドシェイクが完了すると、24時間に変更されます。 TCP リセット(RST)やセッション終了後(FIN)は、タイムアウト値が60秒に変更されます。

TCP 3 ウェイ ハンドシェイク完了時

 R2からR4へTelnetしてみます。

R2#telnet 192.168.34.4
Trying 192.168.34.4 ... Open

User Access Verification

Password:

 正常にパスワードが要求されており、 3 ウェイ ハンドシェイクが完了しています。 R3のNATテーブルを確認します。

R3#sh ip nat translations         
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:44717 192.168.23.2:44717 192.168.34.4:23    192.168.34.4:23
--- 192.168.34.3       192.168.23.2       ---                —
R3#sh ip nat translations verbose 
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:44717 192.168.23.2:44717 192.168.34.4:23    192.168.34.4:23
    create 00:00:10, use 00:00:10 timeout:86400000, left 23:59:49, 
    flags: 
extended, use_count: 0, entry-id: 15, lc_entries: 0
--- 192.168.34.3       192.168.23.2       ---                ---
    create 02:16:44, use 00:00:10 timeout:0, 
    flags: 
static, use_count: 1, entry-id: 1, lc_entries: 0

 タイムアウト時間が24時間であることが確認できます。

TCPセッション完了時

 R2からR4へTelnetで、パスワードを3回失敗します。これで、セッションが完了します。 すると、R4からTCP FINパケットが送信されます。

 R3のNATテーブルを確認します。

R3#sh ip nat translations         
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:40543 192.168.23.2:40543 192.168.34.4:23    192.168.34.4:23
--- 192.168.34.3       192.168.23.2       —
R3#sh ip nat translations verbose 
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:40543 192.168.23.2:40543 192.168.34.4:23    192.168.34.4:23
    create 00:00:09, use 00:00:01 timeout:86400000, left 00:00:58, 
    flags: 
extended, timing-out, use_count: 0, entry-id: 18, lc_entries: 0
--- 192.168.34.3       192.168.23.2       ---                ---
    create 02:28:45, use 00:00:09 timeout:0, 
    flags: 
static, use_count: 1, entry-id: 1, lc_entries: 0

 timeout:86400000 は24時間のまま変更なく、 残り時間が58秒(left 00:00:58)になっています。 TCPセッションが完了すると、タイムアウトの残り時間が60秒に変更されます。

TCPセッションリセット時

 TCPセッション完了時と同様に、TCPセッションがリセットされた際も、残り時間が60秒に変更されます。 R2からR4へTelnetで80番ポートを指定します。R4はTCP80番を受け付ける設定はしていないので、TCPセッションはリセットされます。

R2#telnet 192.168.34.4 80
Trying 192.168.34.4, 80 ... 
% Connection refused by remote host

 パケットキャプチャを見ると、R4からTCP RSTが送信されています。

 R3のNATテーブルを確認します。

R3#sh ip nat translations         
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:46791 192.168.23.2:46791 192.168.34.4:80    192.168.34.4:80
--- 192.168.34.3       192.168.23.2       ---                ---
R3#sh ip nat translations verbose 
Pro Inside global      Inside local       Outside local      Outside global
tcp 192.168.34.3:46791 192.168.23.2:46791 192.168.34.4:80    192.168.34.4:80
    create 00:00:01, use 00:00:01 timeout:86400000, left 00:00:58, 
    flags: 
extended, timing-out, use_count: 0, entry-id: 22, lc_entries: 0
--- 192.168.34.3       192.168.23.2       ---                ---
    create 02:47:03, use 00:00:01 timeout:0, 
    flags: 
static, use_count: 1, entry-id: 1, lc_entries: 0

 残り時間が58秒(left 00:00:58)になっています。 TCPセッションがリセットされると、タイムアウト値の残り時間が60秒になります。

コメント