Назад | Перейти на главную страницу

В ip_conntrack установленные, но «застрявшие» TCP-соединения с огромным временем жизни

Я пытаюсь понять причину / что делать с некоторыми странными записями, которые я вижу в / proc / net / ip_conntrack на моем (виртуальном) сервере. Похоже, что существует ряд подобных подключений к / от моего веб-сервера в состоянии УСТАНОВЛЕННЫЙ, но с явно огромным временем жизни, равным нескольким дням (W = IP моего сервера, X = IP другой стороны):

tcp      6 431997 ESTABLISHED src=X dst=W sport=52177 dport=80 packets=2 bytes=92 src=W dst=X sport=80 dport=52177 packets=1 bytes=48 [ASSURED] mark=0 secmark=0 use=1
tcp      6 22299 ESTABLISHED src=X dst=W sport=10975 dport=80 packets=2 bytes=92 src=W dst=X sport=80 dport=10975 packets=1 bytes=48 [ASSURED] mark=0 secmark=0 use=1

tcp      6 330236 ESTABLISHED src=W dst=X sport=80 dport=4555 packets=1 bytes=1420 [UNREPLIED] src=X dst=X sport=W dport=80 packets=0 bytes=0 mark=0 secmark=0 use=1
tcp      6 374668 ESTABLISHED src=W dst=X sport=80 dport=55957 packets=1 bytes=1420 [UNREPLIED] src=X dst=W sport=55957 dport=80 packets=0 bytes=0 mark=0 secmark=0 use=1

Я не думаю, что это злонамеренно, и, возможно, это просто причуда ip_conntrack, поскольку (а) при случайной выборке эти соединения не отображаются в netstat, и (б) я вижу некоторые похожие записи из моих собственный клиентский IP. Так что это больше похоже на странность того, как работает ip_conntrack.

Но я был обеспокоен тем, что эти соединения могут занимать ресурсы, и их присутствие делает ip_conntrack ненадежным. Кто-нибудь может пролить свет?

Это связано со значениями по умолчанию в коде conntrack. Из источника:

linux-source-2.6.38/net/netfilter/nf_conntrack_proto_tcp.c:
  73 static unsigned int tcp_timeouts[TCP_CONNTRACK_MAX] __read_mostly = {
  74         [TCP_CONNTRACK_SYN_SENT]        = 2 MINS,
  75         [TCP_CONNTRACK_SYN_RECV]        = 60 SECS,
  76         [TCP_CONNTRACK_ESTABLISHED]     = 5 DAYS,
  77         [TCP_CONNTRACK_FIN_WAIT]        = 2 MINS,
  78         [TCP_CONNTRACK_CLOSE_WAIT]      = 60 SECS,
  79         [TCP_CONNTRACK_LAST_ACK]        = 30 SECS,
  80         [TCP_CONNTRACK_TIME_WAIT]       = 2 MINS,
  81         [TCP_CONNTRACK_CLOSE]           = 10 SECS,
  82         [TCP_CONNTRACK_SYN_SENT2]       = 2 MINS,
  83 };

Обратите внимание на то, что по умолчанию для ESTABLISHED установлено значение 5 дней. Поскольку они УСТАНОВЛЕНЫ, меня не беспокоит использование ресурсов в базе данных conntrack, они, вероятно, используют намного больше ресурсов в другом месте. Судя по вашему выходу, они выглядят как веб-трафик, и в этом случае, если вы столкнетесь с проблемами с ресурсами, вы, вероятно, захотите понизить настройку поддержки активности.