Jump to content

Recommended Posts

Posted

NAT сервер на linux.

 

Несколько десятков правил вида:

iptables -t nat -A POSTROUTING -o eth0.300 -s 192.168.200.0/27 -j SNAT --to-source ${white_ip_1}                                            
iptables -t nat -A POSTROUTING -o eth0.300 -s 192.168.200.32/27 -j SNAT --to-source ${white_ip_2}                                           
iptables -t nat -A POSTROUTING -o eth0.300 -s 192.168.200.64/27 -j SNAT --to-source ${white_ip_3}                                           
iptables -t nat -A POSTROUTING -o eth0.300 -s 192.168.200.96/27 -j SNAT --to-source ${white_ip_4}
...

 

Раньше не обращал внимания, но недавно заметил, что не внешнем интерфейсе периодически видны запросы с серыми src_ip из моего диапазона:

 

# tcpdump -nni eth0.300 net 192.168.200.0/24
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0.300, link-type EN10MB (Ethernet), capture size 96 bytes
14:23:22.220704 IP 192.168.200.236.2786 > 81.19.88.81.80: F 1380642332:1380642332(0) ack 1742972196 win 17084
14:23:23.081629 IP 192.168.200.114.59121 > 95.72.36.59.59275: F 2569647600:2569647600(0) ack 3804050925 win 92 <nop,nop,timestamp 23124665 307778>
14:23:28.113995 IP 192.168.200.140.59621 > 114.166.232.79.27694: R 3930089021:3930089021(0) ack 1431587174 win 0
14:23:28.475097 IP 192.168.200.140.59503 > 123.194.59.20.16440: R 915569888:915569888(0) ack 3963260584 win 0

 

Чем это можно объяснить? При этом в целом все работает без проблем. Из тюнинга коннтрака только:

 

net.ipv4.netfilter.ip_conntrack_max = 262144                                                                                                
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300                                                                               
net.ipv4.netfilter.ip_conntrack_generic_timeout = 300 
echo 32768 > /sys/module/ip_conntrack/parameters/hashsize

Posted

Чтобы не разлеталось:

/sbin/iptables -A FORWARD -m state --state INVALID -j DROP

 

А вообще - conntrack -S , такое получается при insert_failed != 0 я так понимаю. Возможно поможет увеличение ip_conntrack_max.

Posted

# conntrack -S
conntrack v1.0.0 (conntrack-tools): Can't open /proc interface

 

Cудя по исходникам тулза лезет за статистикой в /proc/net/stat/nf_conntrack, а у меня там более древний вариант: /proc/net/stat/ip_conntrack.

На всякий случаю даю cat:

 

entries  searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error  expect_new expect_create expect_delete
0000ce59  e5a7221a db2a074a 184d9844 037044a7 0005f7eb 18492a1d 0e75fb18 0e7d8cbf 00000007 00000000 00000000 01a56ae0  00000000 00000000 00000000 
0000ce59  e241644e da330ad9 18310967 036e734c 0005f5e5 1835515d 0e65ce63 0e5e3fca 00000009 00000000 00000000 01a5102b  00000000 00000000 00000000 
0000ce59  e48a68ad da9571aa 184a6793 036fc6ea 0005f1e8 18456580 0e7464a0 0e7c6804 00000006 00000000 00000000 01a5348d  00000000 00000000 00000000 
0000ce59  e14902b5 d9b2371e 182dc0ec 036df6a5 0005f8c4 18321ad7 0e642830 0e5cf017 00000007 00000000 00000000 01a4e617  00000000 00000000 00000000 

 

Инвалидов много ага... но ip_conntrack_max вряд ли виновен:

 

net.ipv4.netfilter.ip_conntrack_count = 54466
net.ipv4.netfilter.ip_conntrack_max = 262144

 

к тому же насколько я помню переполнение коннтрака логируется.

  • 1 month later...
Posted

Похоже дело в таймерах.. например приходит от клиента FIN на закрытие, а записи в коннтраке уже нет. Пакет помечается как invalid и летит себе минуя nat.

Может кто поделиться грамотными настройками коннтрака? (sysctl -a | grep 'conntrack')

Posted

Аккуратно попробуйте

 

sysctl -w net.netfilter.nf_conntrack_tcp_loose=0

Правда у вас может всё шмякнутся(т.е. прийдется ребутаться), все зависит от конфигурации, так что осторожно применяйте. Ну или почитайте, что оно делает.

Posted

Я так понял это приведет к тому, что оно не будет пытаться восстановить криво оборванные сессии, а вместо этого будет будет тихо дропать пакеты, не подходящие под текущее состояние соединения. А отрицательные последствия будут? )

Posted

Всякие асимметричные схемы могут себя нехорошо вести. Потому и говорю - осторожно.

У меня такое работает на обычных NAT, но на одном почему-то не взлетело (но там спутник, и соотв. асимметрия).

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.