Почему тормозит интернет через Linux-шлюз?

Суть такова: есть коробка с линуксом (Debian 7), которая терминирует vlan’ы, поднимает pppoe и запускает эти vlan’ы в интернет через pppoe. С помощью iptables настроен файрвол и NAT, поднимающиеся во время загрузки одним скриптом. (pastebin.com/7ShyK22N)

Пустил домашнюю сеть (14 машин) через этот шлюз. Через какое-то время (5-7 дней) начал тормозить интернет: то Chrome загружает страницу по минуте с постоянным «Ожидание…» внизу, то отваливаются торренты. С помощью
/sbin/sysctl net.netfilter.nf_conntrack_count
посмотрел, сколько активных NAT-трансляций, их оказалось очень много. Уменьшил тайм-ауты и увеличил размер таблицы, старался придерживаться RFC5382:

<code class="hljs bash"><span class="hljs-built_in">echo</span> <span class="hljs-number">65536</span> &gt; /sys/module/nf_conntrack/parameters/hashsize
<span class="hljs-built_in">echo</span> <span class="hljs-number">524288</span> &gt; /proc/sys/net/netfilter/nf_conntrack_max
<span class="hljs-built_in">echo</span> <span class="hljs-number">120</span> &gt; /proc/sys/net/netfilter/nf_conntrack_generic_timeout
<span class="hljs-built_in">echo</span> <span class="hljs-number">7440</span> &gt; /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established</code>

но даже с одним компьютером в сети все равно

net.netfilter.nf_conntrack_count = 294

и тормоза пускай и уменьшились, но все равно сохраняются.
Что я делаю не так? Есть какие-то развернутые инструкции по поднятию интернет-шлюза на Linux’е для абсолютных новичков?
P. S. pastebin.com/VQ6T19Xp — список NAT-трансляций при условии, что в сети только я и мой телефон.

Евгений Ферапонтов @e1ferapontov

Админю всякую виртуализацию

left;»>Виноват оказался PMTU Discovery blackhole. У провайдера где-то перекрыт ICMP трафик, а мое правило iptables для сжимания mtu на внешнем интерфейсе не работало.
Оказывается, TCP MSS правила можно и нужно записывать исключительно в таблицу mangle, чего я как раз и не понял в первый раз ввиду отсутствия документации. После этого все заработало:

iptables -t mangle -A FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —set-mss 1300

Истиочник

Запись опубликована в рубрике *Lan&Wan, *Unix,*Linux, *Сети. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91