podsumowanie problemu
jesteśmy o konfiguracji którym dużo (800 do 2400 na sekundę (z połączeń przychodzących do skrzynki Linux i mamy NAT urządzenia pomiędzy klientem a serwerem. więc w systemie pozostało tyle gniazd TIME_WAIT Aby przezwyciężyć to, ustawiliśmy tcp_tw_recycle na 1, ale to doprowadziło do spadku liczby połączeń przychodzących po przejrzeniu sieci znaleźliśmy referencje dla przyczyn upuszczenia Ramki z tcp_tw_recycle i urządzeniem NAT się zdarzająspada połączeń z tcp_tw_recycle
Rozwiązanie wypróbowane
próbowaliśmy przez ustawienie tcp_tw_reuse na 1 działało bez problemów z tą samą konfiguracją i konfiguracją.
Jednak dokumentacja mówi, że tcp_tw_recycle i tcp_tw_reuse nie powinny być używane, gdy połączenia przechodzące przez węzły świadome stanu TCP, takie jak zapory ogniowe, urządzenia NAT lub równoważenia obciążenia, mogą widzieć upuszczone ramki. Im więcej połączeń, tym bardziej prawdopodobne, że zobaczysz ten problem.
Zapytania
1) mogą być stosowane w tcp_tw_reuse tego typu scenariuszy? 2) jeśli nie, która część kodu linuksowego uniemożliwia użycie tcp_tw_reuse w takim scenariuszu? 3) ogólnie jaka jest różnica między tcp_tw_recycle i tcp_tw_reuse?
Łącze na dole złamane – nhed
Wielkie dzięki. Napotkałem właśnie ten przypadek - hosty za NATem będą losowo niezdolne do połączenia, a wyłączenie net.ipv4.timestamps właśnie dostanie wszystko dobrze (tcp_tw_recycle i tcp_tw_reuse są włączone na obu komputerach). – Yurii
Wierzę, że powinno to być 'tcp_fin_timeout', a nie' tcp_timewait_len'. Ale może zmieniło się to w wersjach jądra? – Trendfischer