LINUX.ORG.RU
ФорумAdmin

iptables, непонятная блокировка подсети


0

1

Доброй ночи. Столкнулся с проблемой, которую без вашей помощи не разрешить. Есть сервак с Debian squeeze. На нем стоит ProFTPd. У сервака два интерфейса: eth0 смотрит в 192.168.0.0, eth1 смотрит в 192.168.1.0.

eth1 - 192.168.0.1
wlan0 - 192.168.1.1

Клиент из первой сети коннектится с фтп и начинает качать много мелких файлов. Через некоторое время (порядка 1-5 мин) коннект с фтп рвется и до сервака вообще невозможно достучаться (фтп, ssh, ping - толку 0). Но при этом коннекты из второй сети проходят на ура. Создается впечатление, что что-то блокирует первую сетку из-за множественных коннектов. Только вот как разрулить эту ситуацию я не представляю. Надеюсь на вашу помощь...



Последнее исправление: mrSmith (всего исправлений: 1)

-L не нужно, лучше сразу давай iptables-save

anonymous
()
Ответ на: комментарий от TERRANZ

Ситуация следующая. Блокировку сети снял, сделав reset серваку... Выкладываю текущие:

iptables -L

 sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

iptables-save

Правил почти нет, прописывал их в /etc/rc.local...

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

mrSmith
() автор топика

посмотри dmesg, может сетевуха или дрова глючить.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Всем привет, отписываюсь о текущих результах. Что выяснилось:

1. Если качать много разных (небольших) файлов через eth1 - связь рвется. Причем в оба конца, т.е. ни клиенты не могут достучаться до сервера, ни сервер до клиентов.

Состояние служб сервера на момент блокировки:

netstat -alnp

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1228/lighttpd   
tcp        0      0 127.0.0.1:7634          0.0.0.0:*               LISTEN      1164/hddtemp    
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1220/proftpd: (acce
tcp        0      0 192.168.0.1:21          192.168.0.2:2652        SYN_RECV    -               
tcp        0      0 192.168.0.1:21          192.168.0.2:2651        SYN_RECV    -               
tcp        0      0 192.168.0.1:21          192.168.0.2:2653        SYN_RECV    -               
tcp        0      0 192.168.0.1:21          192.168.0.2:2655        SYN_RECV    -               
tcp        0      0 192.168.0.1:21          192.168.0.2:2654        SYN_RECV    -               
tcp        0      0 192.168.0.1:21          192.168.0.2:2656        SYN_RECV    -               
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1089/dnsmasq    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1477/sshd       
tcp        0      0 10.97.58.105:35770      89.179.17.128:1723      ESTABLISHED 1309/pptp       
tcp        0      0 192.168.1.1:22          192.168.1.2:49380       ESTABLISHED 1861/sshd: [pri
tcp        1      1 192.168.0.1:21          192.168.0.2:1969        LAST_ACK    -               
tcp6       0      0 :::80                   :::*                    LISTEN      1228/lighttpd   
tcp6       0      0 :::53                   :::*                    LISTEN      1089/dnsmasq    
tcp6       0      0 :::22                   :::*                    LISTEN      1477/sshd       
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1089/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1194/dhclient   
udp6       0      0 :::53                   :::*                                1089/dnsmasq    
raw        0      0 10.97.58.105:47         89.179.17.128:*         1           1281/pptp       
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     4247     1234/php5-cgi       /tmp/php.socket-0
unix  2      [ ACC ]     STREAM     LISTENING     4258     1240/php5-cgi       /tmp/php.socket-1
unix  9      [ ]         DGRAM                    3872     1035/rsyslogd       /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     3932     1078/dbus-daemon    /var/run/dbus/system_bus_socket
unix  2      [ ]         DGRAM                    2175     320/udevd           @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     LISTENING     3910     1067/acpid          /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     4392     1309/pptp           /var/run/pptp/255.255.255.255:89.179.17.128
unix  2      [ ]         DGRAM                    9378     1887/sudo           
unix  3      [ ]         STREAM     CONNECTED     9013     1861/sshd:[pri 
unix  3      [ ]         STREAM     CONNECTED     9012     1863/1              
unix  2      [ ]         DGRAM                    9011     1861/sshd:  [pri 
unix  2      [ ]         DGRAM                    6051     1491/mount.ntfs     
unix  3      [ ]         STREAM     CONNECTED     4395     1309/pptp           /var/run/pptp/255.255.255.255:89.179.17.128
unix  3      [ ]         STREAM     CONNECTED     4386     1281/pptp           
unix  2      [ ]         DGRAM                    4384     1281/pptp           
unix  2      [ ]         DGRAM                    4343     1278/pppd           
unix  2      [ ]         DGRAM                    4076     1194/dhclient       
unix  2      [ ]         DGRAM                    3967     1089/dnsmasq        
unix  3      [ ]         STREAM     CONNECTED     3936     1078/dbus-daemon    
unix  3      [ ]         STREAM     CONNECTED     3935     1078/dbus-daemon    
unix  2      [ ]         DGRAM                    3907     1067/acpid          
unix  3      [ ]         DGRAM                    2180     320/udevd           
unix  3      [ ]         DGRAM                    2179     320/udevd

iptables-save

sudo iptables-save
# Generated by iptables-save v1.4.8 on Tue Feb 15 08:47:48 2011
*filter
:INPUT ACCEPT [1142885:142384045]
:FORWARD ACCEPT [172488:83839529]
:OUTPUT ACCEPT [1402380:1913263363]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
COMMIT
# Completed on Tue Feb 15 08:47:48 2011
# Generated by iptables-save v1.4.8 on Tue Feb 15 08:47:48 2011
*nat
:PREROUTING ACCEPT [33456:4224781]
:POSTROUTING ACCEPT [1:119]
:OUTPUT ACCEPT [2269:144551]
-A POSTROUTING -o ppp0 -j MASQUERADE 
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT
# Completed on Tue Feb 15 08:47:48 2011

2. Снять «блокировку» помогает передергивание интерфейса eth1 через ifdown\ifup.

3. Если тянуть через eth1 один большой файл, «блокировки» не происходит.

4. В выводе dmesg ничего подозрительного не нашел.

mrSmith
() автор топика
Ответ на: комментарий от true_admin

а покажи-ка dmesg целиком. И посмотри не кончились ли динамические правила в iptables(что-то типа sysctl -a | grep conn или conntrack).

true_admin ★★★★★
()

пробовал дистр обновлять?

Да. С debian lenny до squeeze. Также пробовал ставить другое ядро. Проблема осталась.

1. Нормальная работа:

sysctl -a | grep conn

error: "Success" reading key "dev.parport.parport0.autoprobe"
error: "Success" reading key "dev.parport.parport0.autoprobe0"
error: "Success" reading key "dev.parport.parport0.autoprobe1"
error: "Success" reading key "dev.parport.parport0.autoprobe2"
error: "Success" reading key "dev.parport.parport0.autoprobe3"
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_acct = 1
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_max = 32168
net.netfilter.nf_conntrack_count = 81
net.netfilter.nf_conntrack_buckets = 8192
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 128
net.core.somaxconn = 128
error: permission denied on key 'net.ipv4.route.flush'
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_max = 32168
net.ipv4.netfilter.ip_conntrack_count = 81
net.ipv4.netfilter.ip_conntrack_buckets = 8192
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
error: permission denied on key 'net.ipv6.route.flush'
net.nf_conntrack_max = 32168

dmesg

http://pastebin.com/gKb81Wqc

mrSmith
() автор топика

2. При «блокировке»:

sysctl -a | grep conn

sysctl -a |grep conn
error: "Success" reading key "dev.parport.parport0.autoprobe"
error: "Success" reading key "dev.parport.parport0.autoprobe0"
error: "Success" reading key "dev.parport.parport0.autoprobe1"
error: "Success" reading key "dev.parport.parport0.autoprobe2"
error: "Success" reading key "dev.parport.parport0.autoprobe3"
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_acct = 1
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_max = 32168
net.netfilter.nf_conntrack_count = 82
net.netfilter.nf_conntrack_buckets = 8192
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 128
net.core.somaxconn = 128
error: permission denied on key 'net.ipv4.route.flush'
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_max = 32168
net.ipv4.netfilter.ip_conntrack_count = 82
net.ipv4.netfilter.ip_conntrack_buckets = 8192
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
error: permission denied on key 'net.ipv6.route.flush'
net.nf_conntrack_max = 32168

dmesg

http://pastebin.com/h4MKcvxg

mrSmith
() автор топика
Ответ на: комментарий от mrSmith

Вот это означает, что от клиента до сервера пакеты (tcp_syn) доходят.
А вот отвечает ли сервер или не может ответить это вопрос. В любом случае пакет (tcp_syn_ack) от сервера клиенту скорее всего не доходит.

tcp 0 0 192.168.0.1:21 192.168.0.2:2652 SYN_RECV -
tcp 0 0 192.168.0.1:21 192.168.0.2:2651 SYN_RECV -
tcp 0 0 192.168.0.1:21 192.168.0.2:2653 SYN_RECV -
tcp 0 0 192.168.0.1:21 192.168.0.2:2655 SYN_RECV -
tcp 0 0 192.168.0.1:21 192.168.0.2:2654 SYN_RECV -
tcp 0 0 192.168.0.1:21 192.168.0.2:2656 SYN_RECV -

Посмотри «arp -an» до и во время блокировки. Может быть arp перестает работать.
Ну и вообще, пора tcpdump запускать запускать на клиенте и сервере.
Да, и не получает ли твой сервер какого-либо левого маршрута к хостам 192.168.0.*?

ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.