Ich habe einen Mailserver A, der iredmail
auf einem Centos6.5-System erstellt wurde. Der Mailserver hat eine öffentliche IP-Adresse AAA.
Es gibt etwa 40 bis 50 Mailclients im lokalen Netzwerk, deren Betriebssystem Windows ist. Sie alle verwenden NAT als öffentliche IP-Adresse ccc (der Router C ist mit einem Linux-System ausgestattet). Andererseits gibt es im selben lokalen Netzwerk einige Rechner, die ein Linux-System verwenden. Und einige von ihnen können häufig keine Verbindung zum Mailserver herstellen.
Beispielsweise verwende ich einen Desktop mit Fedora 19 zum telnet
Mailserver-Port 443 und erfasse auf dem Mailserver mit tcpdump
dem Befehl
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
Aber mit einem Windows 7, die auf dem gleichen Hub mit Feodra 19 zu Telnet Mail-Server 443 Port
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
Alle Windows 7 und Feodra19 in derselben Netzwerkumgebung, aber Windows 7 läuft immer erfolgreich und Feodar 19 schlägt manchmal fehl. Aber wenn ich einen Linux-Server B verwende, der eine öffentliche IP-Adresse BBB zum telnet
Mailserver hat, läuft er erfolgreich und schlägt nie fehl. Ich überlege, ob es ein Problem mit der Linux-Verbindung zu derselben Quell-IP ist.
Die lokalen Netzwerk-Mailclients mit Windows stellen normalerweise alle 3 Minuten eine Verbindung zum Mailserver her, um die E-Mails abzurufen. Ich weiß nicht, ob das zur Lösung des Problems hilfreich ist oder nicht.
Antwort1
Den Grund dafür habe ich schließlich selbst gefunden.
Und zwar wegen:
net.ipv4.tcp_tw_recycle=1
Da Windows im SYN-Paket nicht immer eine Zeitstempeloption hat, Linux-Pakete jedoch immer
eine Zeitstempeloption, erstellte der Mailserver bei Anfragen mit falschem Zeitstempel keine neue TCP/IP-Verbindung.