LINUX.ORG.RU
ФорумAdmin

Что-то странное с сетью


0

0

Недавно (около 2х недель назад) стало вот что происходить. Запускаю radmin под wine и пытаюсь залить файлик на удаленную тачку. Он не заливает. Начал разбираться. tcpdump на роутере и wireshark на локальной. Получается вот что

радмин шлет пакет, получает ACK, затем шлет. Первые 3 пакета есть в логах на роутере и локально. ACK на второй пакет не приходит. Радмин начинает слать 4, 5... потом он просит retransmission.

Оказалось, что еще несколько прог перестали работать, наверно, по той же причине. Подскажите куда копать.

роутер - Debian GNU/Linux (2 инет канала)

iptables

скрипт раз

#!/bin/bash IPT=/sbin/iptables LOCAL=10.0.0.0/8

$IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -F -t raw

$IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP

sysctl -q -w net.ipv4.ip_forward=1

#LOOPBACK $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT

#SQUID TRANSPARENT $IPT -t nat -A PREROUTING -i eth0 -p tcp -d ! $LOCAL --dport 80 -j REDIRECT --to-port 3128 $IPT -t nat -A PREROUTING -i eth0 -p tcp -d ! $LOCAL --dport 8080 -j REDIRECT --to-port 3128

#LOCALNET $IPT -A INPUT -i eth0 --source $LOCAL -j ACCEPT $IPT -A OUTPUT -o eth0 --destination $LOCAL -j ACCEPT

$IPT -A FORWARD -i eth0 --source $LOCAL -j ACCEPT

$IPT -A INPUT -p tcp -d 10.0.0.1 --dport 22 -j ACCEPT

такой скрипт для каждого соединения

#!/bin/bash IPT=/sbin/iptables

EXTIP=$1 PPP=$2

$IPT -t nat -A POSTROUTING -o $PPP -j MASQUERADE

#FTP $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 21 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 20 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 80 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 8000 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 9999 -j ACCEPT

#OUTPUT $IPT -A OUTPUT -o $PPP -j ACCEPT $IPT -A INPUT -i $PPP -d $EXTIP --match state --state ESTABLISHED,RELATED -j ACCEPT

#FORWARD $IPT -A FORWARD -i $PPP --match state --state ESTABLISHED,RELATED -j ACCEPT

маршруты делю через ip rule

две таблицы, где дефолтами стоят маршруту через 1го прова и 2го

ip rule add to <подсеть первого> table T1 ip rule add to <подсеть второго> table T2

оба прова PPPoE

Все здорово работает, кроме нескольких прог...

режутся icmp-пакеты с требованием уменьшить размер пакета?

Разреши все icmp-пакеты на клиенте и на сервере и фрагментированные тоже.

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

RELATED должен нормально пропускать все необходимые ICMP-пакеты.

Топикстартеру: напиши свои скрипты в нормальном форматировании (режим LORCODE, теги [code]...[/code]). Так же читать невозможно.

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

Пасиб, мужики...

скрипт раз, он запускается при старте системы [code] #!/bin/bash IPT=/sbin/iptables

LOCAL=10.0.0.0/8 VPN=10.1.0.0/16

$IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -F -t raw

$IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP

sysctl -q -w net.ipv4.ip_forward=1

#LOOPBACK $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT

#SQUID TRANSPARENT $IPT -t nat -A PREROUTING -i eth0 -p tcp -d ! $LOCAL --dport 80 -j REDIRECT --to-port 3128 $IPT -t nat -A PREROUTING -i eth0 -p tcp -d ! $LOCAL --dport 8080 -j REDIRECT --to-port 3128

#LOCALNET $IPT -A INPUT -i eth0 --source $LOCAL -j ACCEPT $IPT -A OUTPUT -o eth0 --destination $LOCAL -j ACCEPT

$IPT -A FORWARD -i eth0 --source $LOCAL -j ACCEPT

$IPT -A INPUT -p tcp -d 10.0.0.1 --dport 22 -j ACCEPT [/code]

скрипт 2, для каждого интерфейса [code] #!/bin/bash IPT=/sbin/iptables

EXTIP=$1 PPP=$2

$IPT -t nat -A POSTROUTING -o $PPP -j MASQUERADE

#FTP $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 21 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 20 -j ACCEPT $IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 80 -j ACCEPT

#OUTPUT $IPT -A OUTPUT -o $PPP -j ACCEPT $IPT -A INPUT -i $PPP -d $EXTIP --match state --state ESTABLISHED,RELATED -j ACCEPT

#FORWARD $IPT -A FORWARD -i $PPP --match state --state ESTABLISHED,RELATED -j ACCEPT

[/code]

сеть огранизована так:

eth0 - внутрення сеть

ppp0 - пров. 1

ppp1 - пров. 2

для маршрутов создал в iproute2 2 таблицы, затем правилами говорю, что маршруты внутр сети прова 1 через T1, маршруты прова 2 через T2

ну и дефолтом говорю использовать пров 1

Значит несколько прог не работают. Если добавляю правило

ip rule add to <нужный хост> table T2 (т.е. через другого прова), то работает без проблем!!!

Затем, выдергиваю шнурок прова 1 и тыкаю его в свой ноут. pon mycoolprovider. Опять все проги работают нормально. Даже и не знаю что думать...

alabalaev ()
Ответ на: комментарий от alabalaev
#!/bin/bash
IPT=/sbin/iptables

LOCAL=10.0.0.0/8
VPN=10.1.0.0/16

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -F -t raw

$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

sysctl -q -w net.ipv4.ip_forward=1

#LOOPBACK
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#SQUID TRANSPARENT
$IPT -t nat -A PREROUTING -i eth0 -p tcp -d ! $LOCAL --dport 80 -j REDIRECT --to-port 3128
#LOCALNET
$IPT -A INPUT -i eth0 --source $LOCAL -j ACCEPT
$IPT -A OUTPUT -o eth0 --destination $LOCAL -j ACCEPT

$IPT -A FORWARD -i eth0 --source $LOCAL -j ACCEPT

$IPT -A INPUT -p tcp -d 10.0.0.1 --dport 22 -j ACCEPT

#!/bin/bash
IPT=/sbin/iptables

EXTIP=$1
PPP=$2
MARK=$3

$IPT -t nat -A POSTROUTING -o $PPP -j MASQUERADE

$IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 21 -j ACCEPT
$IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 20 -j ACCEPT
$IPT -A INPUT -i $PPP -p tcp -d $EXTIP --dport 80 -j ACCEPT

#OUTPUT
$IPT -A OUTPUT -o $PPP -j ACCEPT
$IPT -A INPUT -i $PPP -d $EXTIP --match state --state ESTABLISHED,RELATED -j ACCEPT

#FORWARD
$IPT -A FORWARD -i $PPP --match state --state ESTABLISHED,RELATED -j ACCEPT

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

Вот что я выяснил!!! Глючат те проги, которые в процессе работы открывают доп. tcp соединение (для какой-то операции, в радмине для передачи файлов).

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

А можно поподробнее диспозицию: откуда идет подключение и куда (в смысле адресов), и каким боком там участвует сервер?

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

мой промах... видимо, случайно удалил при внесении изменений в скрипты

iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

и все работает... неделю не мог понять что случилось.

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