iredmail
Centos6.5システムにメールサーバーAが構築されています。メールサーバーにはパブリックIP aaaがあります。
ローカルネットワークには、Windowsオペレーティングシステムを使用するメールクライアントが約40〜50個あり、すべてパブリックネットワークip cccにNATされます(ルータCはLinuxシステムに構築されています)。一方、同じローカルネットワークでLinuxシステムを使用するシステムはほとんどありません。それらの一部は定期的にメールサーバーに接続できません。
たとえば、Fedora 19がインストールされているデスクトップを使用してメールサーバー443ポートを使用し、コマンドを使用してtelnet
メールサーバーからキャプチャします。tcpdump
15:16:55.144222 IP xxx.xxx.xxx.xxx.46989 > xxx.xxx.xxx.xxx.https: Flags [S], seq 939563650, win 29200, options [mss 1460,sackOK,TS val 23633360 ecr 0,nop,wscale 7], length 0
15:17:03.160282 IP xxx.xxx.xxx.xxx.46989 > xxx.xxx.xxx.xxx.https: Flags [S], seq 939563650, win 29200, options [mss 1460,sackOK,TS val 23641376 ecr 0,nop,wscale 7], length 0
ただし、Feodra 19と同じハブにあるWindows 7では、メールサーバー443ポートをTelnetに接続します。
15:20:54.484991 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [S], seq 31344922, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
15:20:54.485034 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [S.], seq 1361958840, ack 31344923, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
15:20:54.485558 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 1, win 4380, length 0
15:20:55.685554 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [S.], seq 1361958840, ack 31344923, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
15:20:55.686359 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 1, win 4380, options [nop,nop,sack 1 {0:1}], length 0
15:21:05.122927 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [F.], seq 1, ack 1, win 4380, length 0
15:21:05.123193 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [F.], seq 1, ack 2, win 115, length 0
15:21:05.123813 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 2, win 4380, length 0
Windows 7とFeodar 19はどちらも同じネットワーク環境にありますが、Windows 7は常に成功しますが、Feodar 19は時々失敗します。ただし、パブリックIP bbbを持つLinuxサーバーBをメールサーバーに使用すると、成功し、telnet
決して失敗しません。 Linuxが同じソースIPに接続するのに問題があるのではないかと思います。
Windowsローカルネットワークメールクライアントは通常、メールを確認するために3分間隔でメールサーバーに接続します。トラブルシューティングに役立つかもしれません。
答え1
ついにその理由を自分で見つけました。
この理由はすべて次のとおりです。
net.ipv4.tcp_tw_recycle=1
Windows用のSYNパケットには常にタイムスタンプオプションがなく、
Linux用のSYNパケットには常にタイムスタンプオプションがあるため、メールサーバーは無効なタイムスタンプを持つ新しいTCP / IP接続要求を生成しません。