Решено: Что режет ESTABLISHED соединения? (tcp state = ESTABLISHED, RELATED)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Илуватар
Сообщения: 295
Статус: Antic1tizen 0ne
ОС: Debian Wheezy/Sid amd64

Решено: Что режет ESTABLISHED соединения?

Сообщение Илуватар »

В общем, если тема не соответствует разделу, прошу прощения, но, думается, логичней будет спросить здесь.

Итак, имеется некий сервер, на который правдами и неправдами мне удалось вклиниться по ssh и урвать кусок пирога - а именно, сделать

sysadm@ideco

sudo iptables -t nat -I POSTROUTING -s <My_IP> -o Eppp3 -j SNAT --to-source <DSL_IP> sudo iptables -I FORWARD -s <My_IP> -j ACCEPT sudo iptables -I FORWARD -d <My_IP> -j ACCEPT



На сервере 4 сетевых подключения
1) Leth0 - 192.168.4.1/16 - локальная сеть
2) Leth1 - 192.168.5.1/24 - коннект с DSL-модемом
3) Eppp3 - непосредственно интернет-соединение, белый айпи <DSL_IP>.
4) ppp0 - Сервер авторизации, пускает по биллинговым карточкам юзверей к VPN-сетке 10.x.x.x, откуда они уже по сгенеренным правилам NATятся за Eppp3

Возникла интересная проблема. Вот исходные условия:
1) Торрент работает на ура (странно).
2) Страницы HTTP не грузятся - ни через, к примеру wget google.ru, ни в браузерах, КРОМЕ страниц, принадлежащих домену yandex.ru (непостижимо). Статус соединения проходит через NEW, SYN_SENT и останавливается на ESTABLISHED. Дальше пакеты ко мне не попадают.
3) Если поднять на интерфейсе ppp0 прокси (squid, http, 8080) и разрешить маршрутизацию к нему из Leth0, где я и нахожусь, то странички грузятся.
4) Дело НЕ в iptables. Доходило даже до iptables -F && iptables -X и принудительной смене всех сгенеренных политик на дефолтные цепочки и акцепт - страницы всё равно не попадают ко мне на 192.168.x.х

В итоге я прикидываю такую картину - есть ещё какие-то процессы помимо iptables, которые не позволяют проключать не-p2p соединения напрямую из 192.168.0.0/16. Скорее всего, какого-то рода фаерволы или т.п...
Если кто-то знает, что это может быть за софт - буду весьма признателен за помощь.
† Obiit animus, natus est atomus †
Спасибо сказали:
Аватара пользователя
Илуватар
Сообщения: 295
Статус: Antic1tizen 0ne
ОС: Debian Wheezy/Sid amd64

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение Илуватар »

Решено.

Простите дурака, не слушавшего преподов на парах (:
Зубчатые колёса в башке с скрежетом повернулись и заставили залезть в Wireshark - "[TCP Previous segment lost]" - в голове начали всплывать смутные картины прошлых войн и побед. Призраки и демоны встали кругом и я понял.
Дело было в MTU!

Стоило лишь сделать

root@Adonai

ip link set mtu 1000 dev eth1

на компе-клиенте, как всё заработало.
† Obiit animus, natus est atomus †
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение rm_ »

1000 это сильный недолёт (эффективность, а значит скорость линка будет ниже), уже при 1400 не должно быть проблем в большинстве случаев.
А если поплотнее разобраться в чём дело, вероятно и до ~1460-1480 можно будет подобрать.
Спасибо сказали:
Аватара пользователя
Илуватар
Сообщения: 295
Статус: Antic1tizen 0ne
ОС: Debian Wheezy/Sid amd64

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение Илуватар »

У сервера выставлено 1480 на Eppp3, у меня на eth1 по умолчанию стояло 1500. Выставил 1400 - работает, спасибо. Нужды особой в точной подгонке пока не испытываю, но, думаю, теоретически, получается, и на eth1 можно поднять до 1480?

З.Ы. Странички Яндекса оказались умнее страничек Гугла, однако же ;)
† Obiit animus, natus est atomus †
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение KiWi »

Илуватар писал(а):
01.11.2010 21:14
З.Ы. Странички Яндекса оказались умнее страничек Гугла, однако же ;)

Нет, просто яндекс выдаёт наружу mss 1410(mtu 1450).

А касательно этой проблемы есть 2 решения:
- при разрешённом icmp должен срабывать mtu discovery (тут, кстати, появилась целая тема, посвящённая этому вопросу: Недоступны некоторые сайты. Вечное ожидание ответа.
- на роутере можно принудительно понижать mss: -j TCPMSS --clamp-mss-to-pmtu (http://doc.dvgu.ru/admin/iptables/x10386.htm например)
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение Alex2ndr »

Илуватар писал(а):
01.11.2010 21:14
У сервера выставлено 1480 на Eppp3, у меня на eth1 по умолчанию стояло 1500. Выставил 1400 - работает, спасибо. Нужды особой в точной подгонке пока не испытываю, но, думаю, теоретически, получается, и на eth1 можно поднять до 1480?

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

KiWi писал(а):
01.11.2010 22:09
Нет, просто яндекс выдаёт наружу mss 1410(mtu 1450).

Интересно! А вы случайно не знаете - это особенность внутренней сети Яндекса (инкапсуляция та или иная сделана) или это делается специально для бедных пользователей?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение KiWi »

Alex2ndr писал(а):
02.11.2010 13:46
KiWi писал(а):
01.11.2010 22:09
Нет, просто яндекс выдаёт наружу mss 1410(mtu 1450).

Интересно! А вы случайно не знаете - это особенность внутренней сети Яндекса (инкапсуляция та или иная сделана) или это делается специально для бедных пользователей?

Из-за внешних клиентов.

Если посмотреть на вопросы: http://company.yandex.ru/job/vacancies/network_engineer.xml -- внутри всё несколько сложнее.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Что режет ESTABLISHED соединения?

Сообщение Alex2ndr »

KiWi писал(а):
02.11.2010 18:13
Из-за внешних клиентов.

Спасибо за ответ!
Респект Яндексу за заботу о бедных, обиженных провайдерами, пользователях ! :)
Спасибо сказали: