Решено: Недоступны некоторые сайты из локальной сети

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

Модератор: SLEDopit

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 06.08.2010 13:33

Собственно проблема в заголовке. Теперь описание всего, что знаю.

Периодически сталкивался с тем, что некоторые сайты с моего компа (раздающего интернет) доступны, а с локальных компов нет. Но сейчас нашелся один админу которого я могу задать нужные вопросы.

Что знаю об сервер с целевым сайтом:
Установлен ngnix на 80 порту + apache на 81. апач слушает только локалхост.

у меня.
Мой комп Debian. соединение VPN ppp0 через eth1
eth1 соединяется с ADSL модемом (но он работает как простой хаб и вайфай точка. фаервол в нем выключен, передача пакетов разорешена во всех направлениях)
В моих iptables я для эксперимента убрал все drop'ы
Маскарадинг настроен.

Код: Выделить всё

        $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A FORWARD -i $LOCL_IFACE -j ACCEPT
        $IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
        $IPT -t nat -A POSTROUTING -o $VPN_IFACE -j MASQUERADE
        $IPT -t nat -A POSTROUTING -o $LOCL_IFACE -j MASQUERADE


Прочие компы: есть и Linux и windows (XP и 7), разные браузеры (ie, Opera, FF, safari...), соединение и WiFi и по кабелю. Есть и в virtualBox. Результат при всех компбинациях один и тот же.

Запрашиваю нужный url. Браузер стоит "ожидание ответа"
Данный url (домен 3го уровня) пингуется со всех компов нормально

Прописал в iptables протоколирование всех пактов с этим адресом:

Код: Выделить всё

$IPT -A FORWARD -s xxx.xxx.xxx.xxx -j LOG --log-prefix "Test f: "
$IPT -A FORWARD -d xxx.xxx.xxx.xxx -j LOG --log-prefix "Test f: "
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j LOG --log-prefix "Test: "
$IPT -A OUTPUT -d xxx.xxx.xxx.xxx -j LOG --log-prefix "Test: "

запрашиваю с локальной сети этот сайт и смотрю dmesg

Код: Выделить всё

[104597.468861] Test f: IN=eth0 OUT=ppp0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=26936 DF PROTO=TCP SPT=53452 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
[104597.496073] Test f: IN=ppp0 OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=0 DF PROTO=TCP SPT=80 DPT=53452 WINDOW=5792 RES=0x00 ACK SYN URGP=0
[104597.496308] Test f: IN=eth0 OUT=ppp0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=26937 DF PROTO=TCP SPT=53452 DPT=80 WINDOW=365 RES=0x00 ACK URGP=0
[104597.496511] Test f: IN=eth0 OUT=ppp0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=453 TOS=0x00 PREC=0x00 TTL=63 ID=26938 DF PROTO=TCP SPT=53452 DPT=80 WINDOW=365 RES=0x00 ACK PSH URGP=0
[104597.512025] Test f: IN=ppp0 OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=52 TOS=0x00 PREC=0x00 TTL=57 ID=29461 DF PROTO=TCP SPT=80 DPT=53452 WINDOW=54 RES=0x00 ACK URGP=0

и все... больше ни чего


Подскажите куда копать?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 7907
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение serzh-z » 06.08.2010 13:38

Так все пакеты маскируются правилом "$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE" и уходят через интерфейс $INET_IFACE.
Scio me nihil scire.
Спасибо сказали:

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 06.08.2010 13:50

Соединил второй комп с моим основным напрямую через кросс. Ситуация не изменилась
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 7907
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение serzh-z » 06.08.2010 13:52

А, пардон. Не правильно правило понял.
Scio me nihil scire.
Спасибо сказали:

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 06.08.2010 13:55

ок
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение rm_ » 06.08.2010 14:11

MTU на ppp0 чему равен? Выставить для теста 1400.
Спасибо сказали:

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 06.08.2010 14:22

rm_ писал(а):
06.08.2010 14:11
MTU на ppp0 чему равен? Выставить для теста 1400.

1488.
сейчас попробую.
Вот что пишет в логи про обзщение с нужным адресом iptables на другом компе (в локалке который)

Код: Выделить всё

[ 8084.351143] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=59590 DF PROTO=TCP SPT=48057 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
[ 8084.352948] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53965 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
[ 8084.366929] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=0 DF PROTO=TCP SPT=80 DPT=48057 WINDOW=5792 RES=0x00 ACK SYN URGP=0
[ 8084.367058] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=59591 DF PROTO=TCP SPT=48057 DPT=80 WINDOW=365 RES=0x00 ACK URGP=0

[ 8084.367301] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=504 TOS=0x00 PREC=0x00 TTL=64 ID=59592 DF PROTO=TCP SPT=48057 DPT=80 WINDOW=365 RES=0x00 ACK PSH URGP=0
[ 8084.382922] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=52 TOS=0x00 PREC=0x00 TTL=57 ID=29262 DF PROTO=TCP SPT=80 DPT=48057 WINDOW=54 RES=0x00 ACK URGP=0
[ 8084.382994] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=747 TOS=0x00 PREC=0x00 TTL=57 ID=29263 DF PROTO=TCP SPT=80 DPT=48057 WINDOW=54 RES=0x00 ACK PSH URGP=0
[ 8084.383036] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=59593 DF PROTO=TCP SPT=48057 DPT=80 WINDOW=452 RES=0x00 ACK URGP=0

[ 8084.383079] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=52 TOS=0x00 PREC=0x00 TTL=57 ID=29264 DF PROTO=TCP SPT=80 DPT=48057 WINDOW=54 RES=0x00 ACK FIN URGP=0
[ 8084.386105] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=59594 DF PROTO=TCP SPT=48057 DPT=80 WINDOW=452 RES=0x00 ACK FIN URGP=0
[ 8084.402896] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=52 TOS=0x00 PREC=0x00 TTL=57 ID=29265 DF PROTO=TCP SPT=80 DPT=48057 WINDOW=54 RES=0x00 ACK URGP=0
[ 8084.568106] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53966 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0

[ 8085.000296] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53967 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
[ 8085.864065] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53968 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
[ 8087.327436] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=24298 DF PROTO=TCP SPT=48058 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
[ 8087.346658] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=0 DF PROTO=TCP SPT=80 DPT=48058 WINDOW=5792 RES=0x00 ACK SYN URGP=0

[ 8087.346745] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=24299 DF PROTO=TCP SPT=48058 DPT=80 WINDOW=365 RES=0x00 ACK URGP=0
[ 8087.348219] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=523 TOS=0x00 PREC=0x00 TTL=64 ID=24300 DF PROTO=TCP SPT=48058 DPT=80 WINDOW=365 RES=0x00 ACK PSH URGP=0
[ 8087.366417] test2 IN=eth0 OUT= MAC=00:24:22:c7:fc:85:00:1e:c6:32:43:0f:08:04 SRC=xxx.xxx.xxx.xxx DST=192.168.1.4 LEN=52 TOS=0x00 PREC=0x00 TTL=57 ID=36810 DF PROTO=TCP SPT=80 DPT=48058 WINDOW=54 RES=0x00 ACK URGP=0
[ 8087.592110] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53969 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
[ 8091.048097] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53970 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
[ 8097.960078] test2 IN= OUT=eth0 SRC=192.168.1.4 DST=xxx.xxx.xxx.xxx LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=53971 DF PROTO=TCP SPT=48055 DPT=80 WINDOW=546 RES=0x00 ACK FIN URGP=0
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 06.08.2010 14:27

ни чего не изменилось
заметил что значение mtu выдаваемое ifconfig ниже чем в настройках ppp


кстати. А почему пакетов больше на компе в локалке в протокол идет?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Voral » 16.08.2010 12:32

Решение проблемы найдено. Подсказали на дружественном форуме.
Очень похожая проблема и её решение — http://www.opennet.ru/base/net/pppoe_mtu.txt.html

Для проверки запустите в консоли указанную ниже команду, если проблема решится, добавьте соответствующее правило

Код: Выделить всё

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

То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение sash-kan » 16.08.2010 16:51

да уж сколько раз здесь это советовали — и не счесть. http://www.google.com/cse?cx=0098610806452...tk&q=tcpmss
imho, надо бы этот совет прикрепить в faq к разделу «администрирование для начинающих».

основная тема для размышлений; https://blue-labs.org/howto/mtu-mss.php
«добавка» от меня. на (тяжёлый) случай, если clamp всё-таки не помогает: http://sash-kan.blogspot.com/search/label/iproute
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение Alex2ndr » 17.08.2010 14:22

sash-kan писал(а):
16.08.2010 16:51
imho, надо бы этот совет прикрепить в faq к разделу «администрирование для начинающих».

У меня есть желание написать статью на эту тему. С примерами и картинками. Только вот жара... :) Возможно через недельку другую соберусь...

sash-kan писал(а):
16.08.2010 16:51
основная тема для размышлений; https://blue-labs.org/howto/mtu-mss.php

На самом деле первоисточник это RFC2923

sash-kan писал(а):
16.08.2010 16:51
«добавка» от меня. на (тяжёлый) случай, если clamp всё-таки не помогает: http://sash-kan.blogspot.com/search/label/iproute

Хмм... Я там ответить не могу, поэтому отвечу тут. Можно конечно поизвращаться с таблицами маршрутизации, но достаточно открыть всего лишь man iptables:

Код: Выделить всё

...
   TCPMSS
      ...
       --set-mss value
              Explicitly set MSS option to specified value.

       --clamp-mss-to-pmtu
              Automatically clamp MSS value to (path_MTU - 40 for IPv4; -60 for IPv6).
...

и увидеть, что --clamp-mss-to-pmtu довольно тупая штука, всего лишь убавляющая pmtu на 40. А если надо меньше/больше, то можно воспользоваться --set-mss.
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Недоступны некоторые сайты из локальной сети

Сообщение sash-kan » 17.08.2010 20:19

Alex2ndr писал(а):
17.08.2010 14:22
У меня есть желание написать статью на эту тему
в добрый путь.

Alex2ndr писал(а):
17.08.2010 14:22
и увидеть, что --clamp-mss-to-pmtu довольно тупая штука, всего лишь убавляющая pmtu на 40. А если надо меньше/больше, то можно воспользоваться --set-mss.
давненько дело было, сейчас у меня уже другой провайдер, поэтому перепроверить нет возможности, но всё-таки помню довольно отчётливо, что исправление окна и на 1452 и на 1460 байт давало один и тот же положительный эффект (на меньшей цифре я остановился для пущей надёжности), в то время как clamp-mss-to-pmtu эффекта, увы, не давал.
насколько я понимаю своим дилетанстким разумением, объяснить это можно тем фактом, что mss и window size — сущности всё-таки несколько… эээ… разные по своей природе.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: