iptablesでのコネクション確立要求を破棄
iptablesを起動させておいて下記コマンドを実行
$ iptables -A INPUT -p tcp -d 127.0.0.1 --dport 12345 -j DROP # firewalldを使うなら以下のような感じ(未検証) $ firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -p tcp --dport 11111 -j DROP
telnetなりでportへ接続を試みると繋ごうとしてosの設定値であるtimeoutまでリトライを繰り返す
$ telnet 127.0.0.1 12345 Trying 127.0.0.1...
影響するパラメータ
net.ipv4.tcp_syn_retries = 3 # tcpのSYNを送信するリトライ回数 net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_retries1 = 3 # TCP 接続要求に対する応答の再送を試みる回数 net.ipv4.tcp_retries2 = 15 # TCP パケットの再送を試みる回数
ブラウザでタイムアウトが発生するケースのうち主な原因としてはブラウザのsyn要求についてサーバ側及びにその前段のFWによるsynパケットのdropが考えられる。
TCP SYNの再送間隔
再送間隔時間はLinuxでは下記で定義されている