URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88674
[ Назад ]

Исходное сообщение
"иногда SNAT/iptables пропускает пакеты"

Отправлено Ygrex , 09-Апр-10 17:17 
Здравствуйте,

Обнаружил некоторое малое количество пакетов, проходящих NAT без изменений SRC-адреса.

Другими словами, я настраиваю NAT:

iptables -A POSTROUTING -s 192.168.1.0/24 \! -d 192.168.0.0/16 -j SNAT --to-source 22.33.44.55

где:
eth0 ( 22.33.44.55 ) - Интернет
eth1 ( 192.168.1.254 ) - Локалка

затем просматриваю, что получилось:

tcpdump -i eth0 -ne 'net 192.168.1.0/24'

В общем-то всё работает, локалка получает интернет... в основном; однако иногда наблюдаю по непонятным причинам незаначеные пакеты, где SRC из 192.168.1.0/24, а DST где-то в интернете. При чём эти пакеты можно наблюдать и с другой стороны кабеля на следующем роутере (пусть он будет 22.33.44.54 для определённости).

Заранее благодарен за любую помощь,

Игорь


Содержание

Сообщения в этом обсуждении
"иногда SNAT/iptables пропускает пакеты"
Отправлено reader , 09-Апр-10 17:56 
>[оверквотинг удален]
>
>В общем-то всё работает, локалка получает интернет... в основном; однако иногда наблюдаю
>по непонятным причинам незаначеные пакеты, где SRC из 192.168.1.0/24, а DST
>где-то в интернете. При чём эти пакеты можно наблюдать и с
>другой стороны кабеля на следующем роутере (пусть он будет 22.33.44.54 для
>определённости).
>
>Заранее благодарен за любую помощь,
>
>Игорь

iptables-save


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 18:13 
как-то так

:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.0.0/16 -j SNAT --to-source 22.33.44.55
COMMIT
# Completed on Fri Apr  9 18:02:38 2010
# Generated by iptables-save v1.4.5 on Fri Apr  9 18:02:38 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -m limit --limit 1000/sec -j ACCEPT
-A INPUT -p icmp -j DROP
-A FORWARD -d 192.168.0.0/16 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.0.0/16 -j REJECT --reject-with icmp-host-unreachable
-A FORWARD -s 192.168.0.0/16 -j ACCEPT
-A FORWARD -j DROP
COMMIT
# Completed on Fri Apr  9 18:02:38 2010
# Generated by iptables-save v1.4.5 on Fri Apr  9 18:02:38 2010
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Fri Apr  9 18:02:38 2010
# Generated by iptables-save v1.4.5 on Fri Apr  9 18:02:38 2010
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Fri Apr  9 18:02:38 2010


"иногда SNAT/iptables пропускает пакеты"
Отправлено reader , 09-Апр-10 20:26 
>[оверквотинг удален]
>:POSTROUTING ACCEPT [0:0]
>COMMIT
># Completed on Fri Apr  9 18:02:38 2010
># Generated by iptables-save v1.4.5 on Fri Apr  9 18:02:38 2010
>
>*raw
>:PREROUTING ACCEPT [0:0]
>:OUTPUT ACCEPT [0:0]
>COMMIT
># Completed on Fri Apr  9 18:02:38 2010

а если попробовать именить на
iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 22.33.44.55

какие еще подсети кроме 192.168.1.0/24 есть?


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 20:44 
>а если попробовать именить на
>iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 22.33.44.55

внутрисетевой обмен всё же необходимо оставить

>какие еще подсети кроме 192.168.1.0/24 есть?

за этим роутером только одна эта


"иногда SNAT/iptables пропускает пакеты"
Отправлено reader , 09-Апр-10 21:00 
>>а если попробовать именить на
>>iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 22.33.44.55
>
>внутрисетевой обмен всё же необходимо оставить
>
>>какие еще подсети кроме 192.168.1.0/24 есть?
>
>за этим роутером только одна эта

за eth0 есть кто-то из 192.168.0.0/16 ?
то что будет уходить с eth1 не будет затронуто.

во всяком случае попробуйте изменить и проверьте, потом вернете.
если все равно будут пакеты без нат, покажите вывод tcpdump


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 21:28 
>за eth0 есть кто-то из 192.168.0.0/16 ?
>то что будет уходить с eth1 не будет затронуто.

разумеется, 192.168.2.0, 192.168.3.0 и т.д.

>во всяком случае попробуйте изменить и проверьте, потом вернете.
>если все равно будут пакеты без нат, покажите вывод tcpdump

этих "проскакивающих" пакетов где-нить 0.01% всего потока, не хотелось бы приостанавливать работу роутера из-за такой мелочи, которую никто кроме меня не замечает

[quote]# tcpdump -i eth0 -tnc1 'net 192.168.0.0/16'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
IP 192.168.1.161.1102 > 92.6.208.230.49967: FP 439989288:439989356(68) ack 3783218881 win 65535[/quote]


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 21:53 
>если все равно будут пакеты без нат, покажите вывод tcpdump

кажется наиболее показательный дамп:

IP 192.168.141.4.50226 > 74.125.77.19.443: F 253979169:253979169(0) ack 3081852170 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
IP 192.168.141.4.50226 > 74.125.77.19.443: R 1:1(0) ack 1 win 0

только сейчас заметил одну закономерность, что в TCP всегда установлен флажок FIN или RST, как в этом дампе; может какой специальный фокус от conntrack?
UDP пока не видно, но сейчас пятница вечер и трафик слабоват


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 22:21 
>только сейчас заметил одну закономерность, что в TCP всегда установлен флажок FIN
>или RST, как в этом дампе; может какой специальный фокус от
>conntrack?

сделал 'conntrack -F', и такие вот "с флагом FIN" сразу поползли кучей


"иногда SNAT/iptables пропускает пакеты"
Отправлено reader , 09-Апр-10 23:46 
>[оверквотинг удален]
>IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
>IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
>IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
>IP 192.168.141.4.50226 > 74.125.77.19.443: F 0:0(0) ack 1 win 16445
>IP 192.168.141.4.50226 > 74.125.77.19.443: R 1:1(0) ack 1 win 0
>
>только сейчас заметил одну закономерность, что в TCP всегда установлен флажок FIN
>или RST, как в этом дампе; может какой специальный фокус от
>conntrack?
>UDP пока не видно, но сейчас пятница вечер и трафик слабоват

подсеть под правило не попадает, и вообще откуда эти пакеты на вашем интерфейсе


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 09-Апр-10 23:57 
>подсеть под правило не попадает, и вообще откуда эти пакеты на вашем
>интерфейсе

подсеть за вторым роутером, это с него; такую подозрительную работу ната наблюдаю не на единственном роутере


"иногда SNAT/iptables пропускает пакеты"
Отправлено reader , 10-Апр-10 00:35 
>>подсеть под правило не попадает, и вообще откуда эти пакеты на вашем
>>интерфейсе
>
>подсеть за вторым роутером, это с него; такую подозрительную работу ната наблюдаю
>не на единственном роутере

где то встречал что если у пакета статус INVALID, то через таблицу nat он не проходил


"иногда SNAT/iptables пропускает пакеты"
Отправлено Ygrex , 12-Апр-10 13:32 
>где то встречал что если у пакета статус INVALID, то через таблицу
>nat он не проходил

я встречал, что такие отбрасываются в PREROUTING в -t nat, однако...

-s 192.168.0.0/16 -m state --state INVALID -j DROP

полностью решило проблему, спасибо