Connection tracking в Linux и не работающие хелперы [SOLVED]

Внезапно, после ребута в новое ядро, возникла проблема на пограничном маршрутизаторе – перестали устанавливаться соединения по PPTP и FTP. Для PPTP tcpdump показывает, что трафик по TCP1723 ходит в обе стороны, а GRE трафик с обоих сторон доходит до маршрутизатора и пропадает.

В настройках есть правило

iptables -A FORWARD -p ALL  -m conntrack --ctstate ESTABLISHED,RELATED  -j ACCEPT

Но, вполне очевидно, что оно для GRE не отрабатывает. (Хотя до ребута всё было хорошо и GRE трафик принимался именно на этом правиле!)

Если гуглить проблему, то выдаётся 100500 ссылок с указанием загрузить модули ядра nf_conntrack_pptp, nf_nat_proto_gre и т.п. Но в моём случае эти модули точно были загружены, да и проверялось это несколько раз.

Как временное решение, были прописаны правила, насильно цепляющие нужные хелперы на соединения.

iptables -t raw     -A PREROUTING      -d ${SPSL_VPN}  -p tcp          --dport 1723    -j CT --helper pptp
iptables -t raw     -A PREROUTING                      -p tcp          --dport ftp     -j CT --helper ftp

Такое решение работает, хотя и напрягает, т.к. «раньшебылохорошо»

После пары дней мучений была таки найдена ссылка, с внятным описанием происходящего.

Ну и прописывание

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper

принесло мне успокоение.


net/connection_tracking_в_linux_и_не_работающие_хелперы.txt · Последние изменения: 2016-11-02 00:26 — Andrew A. Sabitov