iredmail
Centos6.5 시스템에 메일 서버 A가 구축되어 있습니다 . 메일 서버에는 공개 IP aaa가 있습니다.
로컬 네트워크에는 운영 체제가 Windows인 약 40~50개의 메일 클라이언트가 있으며 모두 공용 IP CCC로 NAT를 사용합니다(라우터 C는 Linux 시스템에서 구축됨). 반면, 동일한 로컬 네트워크에서 Linux 시스템을 사용하는 시스템은 거의 없습니다. 그리고 그 중 일부는 메일 서버에 자주 연결되지 않습니다.
예를 들어 Fedora 19가 설치된 데스크톱을 사용하여 telnet
메일 서버 443 포트를 사용하고 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
그러나 Windows 7에서는 Feodra 19와 동일한 허브에 텔넷 메일 서버 443 포트가 있습니다.
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과 Feodra19는 동일한 네트워크 환경에 있지만 Windows 7은 항상 성공하고 Feodar 19는 때때로 실패합니다. 그러나 메일 서버에 대한 공용 IP bbb가 있는 Linux 서버 B를 사용하면 telnet
성공적이며 결코 실패하지 않습니다. Linux가 동일한 소스 IP에 연결하는 데 문제가 있는지 고려합니다.
Windows가 있는 로컬 네트워크 메일 클라이언트는 일반적으로 메일 서버에 연결하여 3분 간격으로 메일을 확인합니다. 문제를 해결하는 데 도움이 되는지, 아닌지 모르겠습니다.
답변1
드디어 스스로 그 이유를 찾았습니다.
그 이유는 다음과 같습니다.
net.ipv4.tcp_tw_recycle=1
Windows에는 항상 SYN 패키지에 타임스탬프 옵션이 없지만 Linux 패키지에는 항상
타임스탬프 옵션이 있으므로 메일 서버는 타임스탬프가 잘못된 요청으로 새 TCP/IP 연결을 생성하지 않았습니다.