Sziasztok,
jelezte az ügyfél, hogy néha (napota, kétnaponta egyszer) connection timeoutot kap egy két kliensgép az egyik szerverünkről (Red Hat 7).
Az egyik kliensgép (legyen a neve A) a saját környezetünkben fut, ahol az érintett szerver (legyen a neve S) is van. Míg a másik kliensgép (legyen a neve B) egy külső szolgáltatónál fut, erről semmi infónk nincs és hozzáférésünk sincs.
A szerveren futtattam 3 napig tcpdumpot és a "mi" kliensünkön (A) is. 3 nap alatt egyszer fordult elő timeout e két gép között (3 nap dumpja 14 mega, 47 ezer csomag). Ping is ment 3 napig, nem volt packet loss, illetve az összes többi gép többi (tcp) kapcsolata rendben volt.
tcpdump szerint a szerverre bejött a syn csomag, és a szerver válaszolt is a kliensnek, megy ki az ack, de a kliensen nem látszik, hogy bejött volna a válaszcsomag.
A kliens vár, majd küld egy retransmission syn-t, de arra sem érkezik meg a válasz, majd megint megy ki egy rts syn és így tovább... végül 1 perc után timeoutol.
Szerver oldalon minden csomag beérkezik és mindre ki is megy a válasz.
B kliensen, ami nem a mi környezetünkben van, nem tudtam tcpdumpot futtatni, de a szerveroldali dump ugyan úgy néz ki, mint az A kliens esetében. Bejönnek az rts sny csomagok a szerverre, ő válaszol is rájuk, mégis timeout lesz, valószínűleg a B kliens sem kapja meg a csomagokat. Mindez naponta, kétnaponta 1x fordul elő egy tcp kapcsolatnál. Az összes többi kapcsolat a két gép között rendben van, azok is amik ugyan erre a portra (az ügyfélnek valami egyedi alkalmazása figyel rajta) jönnek.
Linux tűzfal kizárva, mert alaposan utánaolvastam és a tcpdump a bejövő csomagokat még az iptables előtt rögzíti. Van központi tűzfalunk is, de azon engedélyezve vannak a szükséges dolgok, illetve máskülönben egyáltalán nem menne a dolog és nem csak napi 5-10 csomag tűnne el. Alkalmazás hibát is kizárnám, hiszen megy ki válasz. Létezhet, hogy mégsem megy ki a csomag a hálózatra, hanem tcpdump után még eltűnik valamelyik bufferből vagy ilyesmi? Bár néztem a net.ip4.tcp_rmem és wmem paramétereket 6 mega a max, és a timeout időszakban (éjszaka) nem volt semmi extra hálózati vagy cpu terhelés a gépen, ami miatt a buffer tele lett volna...
Van ötletetek, hogy mit lehetne megnézni még OS vagy hálózati szinten?
Köszi előre is! Íme a tcpdump:
Szerveren:
Source Destination Protocol Length Info
A S TCP 74 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670891310 TSecr=0 WS=128
S A TCP 54 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670892312 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#1] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670894316 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#2] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670898320 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#3] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670906336 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#4] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670922368 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#5] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670954432 TSecr=0 WS=128
S A TCP 54 [TCP Dup ACK 31921#6] 10636 → 43832 [ACK] Seq=1 Ack=3370289340 Win=1355 Len=0
Kliensen:
Source Destination Protocol Length Info
A S TCP 74 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670891310 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670892312 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670894316 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670898320 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670906336 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670922368 TSecr=0 WS=128
A S TCP 74 [TCP Retransmission] 43832 → 10636 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=670954432 TSecr=0 WS=128