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秒になります。
コメント