[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Delai IDLE trop grand conntrack



Benjamin RIOU a écrit :
Par curiosité, qu'est-ce que le masquerading vient faire là-dedans ? Les
délais sont les mêmes avec et sans NAT.

Hâ. je note.
Vu que c'etait dans netfilter et conntrack, je croyais -bêtement?- que
le parametre n'avait rapport qu'avec le masquerading.

Netfilter et conntrack ne servent pas seulement au NAT mais aussi au suivi des connexions normales, notamment pour le filtrage "stateful" (-m state ou -m conntrack).

> Avant, il y avait un délai de timeout de 5 jours !

Et quel est le problème ?

Je peux  pas avoir plus de 700 connexions ouvertes vers l'exterieur
(limitation d'un grand ami qui fournit le net, tu connais l'histoire -
l'internet Communiste, toussa).
Et donc, malgré que j'aie 150 connexions established, j'avais
facilement 750 connexions dans conntrack, ce qui bloquait toute
demande de nouvel accès exterieur... :-)

Dans quel état, les 600 autres connexions ?

Et le module connlimit, dont nous avions parlé et que des gentils (et
patients) usagers de la liste m'avaient aidé à installer, ce module
connlimit, ne se base que sur les connexions ESTABLISHED.

Si je comprends bien, ton upstream comptabilise des connexions qui sont considérées comme non ESTABLISHED par ta machine, et donc il arrive qu'il bloque les nouvelles connexions qui ont été autorisées par celle-ci ? Mais dans ce cas je ne vois pas trop en quoi réduire le délai d'expiration des connexions ESTABLISHED sur ta machine aiderait à résoudre le problème.

> Je l'ai doresénavant mis à ... 5 minutes :-D

Euh... Tu n'as peur de rien. J'ai déjà vu des connexions TCP établies
sans aucun trafic pendant plus longtemps que ça.

Comme quoi, par exemple ?
Je me suis posé la question, sans trouver.

Une session SSH (ou autre type de terminal à distance) qu'on laisse ouverte sans activité, par exemple. Ou bien une bonne grosse requête qui prend du temps avant que le serveur réponde. A une époque j'envoyais des commandes 'XPAT' (recherche de motif dans les en-têtes) sur un serveur NNTP qui mettait parfois 10 bonnes minutes à répondre lorsque le forum concernait contenait beaucoup d'articles et que la recherche portait sur un champ non présent dans l'overview.

Le FTP-COMMAND est souvent régi par un timeout issu du serveur.
A ce que je vois, MSN envoie un paquet a son serveur toutes les 2 secondes.

Si le protocole applicatif le prévoit ou le permet, il est effectivement préférable de maintenir une connexion inactive "vivante" avec un keepalive géré au niveau applicatif et non au niveau TCP. C'est plus souple dans le choix du délai (réglable par connexion et par application) et ne requiert pas le support du keepalive par la pile TCP/IP. Il y a une option pour ça dans SSH, d'ailleurs.

> Pourquoi un si grand délai avant ?

Parce que la durée d'inactivité d'une connexion TCP peut être énorme
sans que ce soit anormal. Il existe un mécanisme optionnel dit "TCP
keepalive" qui permet de maintenir une activité au niveau de la couche
réseau et de vérifier si la machine en face répond, dont la périodicité
par défaut est de 2 heures, soit bien plus que tes 5 minutes.

D'accord.
C'est ca que j'aurais du baisser en fait , plutot...

Non, parce que les paramètres de keepalive TCP ne concernent que les connexions établies par ta machine, pas aux connexions routées. D'autre part le TCP keepalive n'est utilisé que si l'application le demande.

vider /proc/net/ip_conntrack réinitialise toutes les connexions
NATées, ou cette affirmation est une immense connerie ?

On ne peut pas écrire dans /proc/net/ip_conntrack qui n'est qu'une vue en lecture seule du contenu de la table de suivi de connexion. Toutefois il existe des outils pour manipuler la table sur les noyaux >= 2.6.14, voir les projets 'conntrack' et 'libnetfilter_conntrack' sur le site de Netfilter.



Reply to: