LINUX.ORG.RU
решено ФорумAdmin

Обрывается отправка файлов больше сотни килобайт

 ,


0

2

Привет. Достался в наследство общественный убунту-роутер в виде x86-системника. И с ним проблема: на приём всё нормально, а отправить ничего нельзя. Файл в 20кб уходит, а в 200кб обрывается. Если это почта, то возвращается «timeout error» от почтового сервера. Проверял и с подключенных компов, и с самого роутера.

Интернет не супер, им пользуемся не только мы, и за роутером есть ещё какая-то инфраструктура. Однако ж другие абоненты проблем не имеют. Что делал:

- отключил шейпер, настроенный предыдущим владельцем: sudo service htb stop. Приём стал лучше, отправка не заработала.

- уменьшил MTU на клиентской машине (Win7), перезагрузил - не помогло. Это было бы похоже на MTU Black Hole, но я подключался ночью, когда никого нет, и смог отправить 10 мегабайт с первого раза без всякого шаманства с MTU.

Куда ещё посмотреть?



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

Ответ на: комментарий от Postscripter

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

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

Бог с вами, в нашем ауле таких не водится. И тут не настройка, тут траблшутинг, не путайте.

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

покажи правила файрвола. Особенно цепочку mangle

iptables -t mangle -vn -L FORWARD

Если она пуста, добавь туда вот такое правило:

iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Подожди пока все соединения с клиентской машины закроются(для чистоты эксперимента). И попробуй еще раз выйти в интернет.

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

Да, в mangle пусто. Думаете, это всё-таки Path MTU Discovery Black Hole? Ок, сейчас попробую. А разве тупо уменьшение MTU не должно было решить эту проблему?

iptables формируется так:

	/bin/date > /tmp/hello
	/sbin/iptables -F

	/sbin/iptables -A INPUT --in-interface lo -j ACCEPT
	/sbin/iptables -A INPUT -i eth1 --source 123.123.1.0/255.255.255.0 -j ACCEPT 
	/sbin/iptables -A FORWARD -i eth1 --source 123.123.1.0/255.255.255.0 -j ACCEPT
	/sbin/iptables -A FORWARD --match state --state RELATED,ESTABLISHED -j ACCEPT
	/sbin/iptables -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT

	/sbin/iptables -P INPUT DROP
	/sbin/iptables -P FORWARD DROP 
	/sbin/iptables -P OUTPUT ACCEPT

	/sbin/iptables -A POSTROUTING -t nat -o eth0 -j SNAT --to-source XX.23.146.201 >> /tmp/hello
Postscripter
() автор топика
Ответ на: комментарий от Pinkbyte
sudo iptables -t mangle -vn -L FORWARD

Chain FORWARD (policy ACCEPT 5725K packets, 3183M bytes)
 pkts bytes target     prot opt in     out     source               destination
 315K   16M TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
Postscripter
() автор топика
Ответ на: комментарий от Pinkbyte

Черт, я же через iptables -F чищу только таблицу фильтров. Аррр... Так что да, правило --clamp-mss-to-pmtu в таблице mangle БЫЛО. Звиняюсь. На всякий случай очистил и добавил снова, как сказал pinkbyte, - не помогло. Заменил на --set-mss 500, НЕ ПОМОГЛО.

Ещё подскажите, в etc лежат два файлика: iptables.conf и самописный скрипт «nat». В обоих прописано это правило для mangle. Как понять, запускается ли этот скрипт при старте системы, и откуда именно? И что за iptables.conf - нужен ли он для работы фаервола, или кто-то просто для себя сделал?

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

Solved! Всё заработало, когда очистил таблицу mangle.

Правило, призванное решать проблему, как раз создавало её, зашибись!

Теперь нужен совет, как найти откуда запускается скрипт /etc/nat, и нужен ли файл /etc/iptables.conf

Спасибо

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

Нет. На следующий день проблема вернулась. Независимо от наличия правила в mangle, файлы не отправляются...

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