The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Не работают некоторые сайты за NAT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 20:47 
Не работают некоторые сайты за NAT, например:www.google.com, www.microsoft.com (но тот же mail.ru отлично работает.)

Система: Ubuntu 11.04

Причем с самого шлюза все прекрасно работает.

Конфигурация iptables выглядит приблизительно следующим образом:

###########################################
#Инпут цепочка
$IPTABLES -A INPUT -j log_debug_in
$IPTABLES -A INPUT -j ACCEPT

##########################################
#Транзит
$IPTABLES -A FORWARD -j log_debug_fw
$IPTABLES -A FORWARD -j ACCEPT

##########################################
#Выход из хоста
$IPTABLES -A OUTPUT -j log_debug_out
$IPTABLES -A OUTPUT -p all -j ACCEPT

##########################################
#Транстляция адресов
#$IPTABLES -t nat -A POSTROUTING -p all -o $IFACE_INET_0 -j MASQUERADE


Пинги www.google.com проходят замечательно. В логе вижу движение по FORWARD цепочке.

Если пробую www.google.com из браузера, в логе вижу вялое движение по FORWARD цепочке, т.е. ответы от google.com вроде как и есть, но с задержками. В итоге клиент видит, например половину загруженного сайта google.com, если повезет, или же просто ничего не видит.

Лог выглядит приблизительно вот так:
Aug  1 17:26:49 home-server kernel: [630871.537337] IPT_DEBUG_FORWARD: IN=eth1 OUT=ppp0 SRC=192.168.0.30 DST=173.194.32.23 LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=6272 DF PROTO=TCP SPT=1518 DPT=443 WINDOW=65398 RES=0x00 ACK URGP=0

Aug  1 17:26:49 home-server kernel: [630871.538331] IPT_DEBUG_FORWARD: IN=eth1 OUT=ppp0 SRC=192.168.0.30 DST=173.194.32.23 LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=6273 DF PROTO=TCP SPT=1518 DPT=443 WINDOW=65398 RES=0x00 ACK FIN URGP=0

Aug  1 17:26:49 home-server kernel: [630871.596065] IPT_DEBUG_FORWARD: IN=ppp0 OUT=eth1 SRC=173.194.32.23 DST=192.168.0.30 LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=62080 PROTO=TCP SPT=443 DPT=1518 WINDOW=438 RES=0x00 ACK URGP=0


192.168.0.30 - компутер за шлюзом.
173.194.32.23 - google.com

Гугление на эту тему показало возможную проблему с DNS, но думаю у меня другое, т.к. пробовал и через DNS имя, и напрямую по IP адресу, эффект один и тот же.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Не работают некоторые сайты за NAT"  +1 +/
Сообщение от VolanD (ok) on 01-Авг-12, 20:58 
Большие пакеты наверно не проходят?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 21:10 
> Большие пакеты наверно не проходят?

Как это определить? :)
в input цепочке все же работает :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 21:44 
> Большие пакеты наверно не проходят?

На шлюзе:
nicola@home-server:/etc/nicola$ ping google.ru -s 22000
PING google.ru (173.194.32.255) 22000(22028) bytes of data.
22008 bytes from 173.194.32.255: icmp_req=1 ttl=57 time=34.0 ms
22008 bytes from 173.194.32.255: icmp_req=2 ttl=57 time=34.0 ms
22008 bytes from 173.194.32.255: icmp_req=3 ttl=57 time=34.1 ms
22008 bytes from 173.194.32.255: icmp_req=5 ttl=57 time=34.0 ms
22008 bytes from 173.194.32.255: icmp_req=6 ttl=57 time=34.3 ms
22008 bytes from 173.194.32.255: icmp_req=7 ttl=57 time=34.8 ms
22008 bytes from 173.194.32.255: icmp_req=8 ttl=57 time=34.3 ms
22008 bytes from 173.194.32.255: icmp_req=9 ttl=57 time=33.9 ms
22008 bytes from 173.194.32.255: icmp_req=10 ttl=57 time=34.4 ms
From 173.194.32.255 icmp_seq=4 Frag reassembly time exceeded
22008 bytes from 173.194.32.255: icmp_req=11 ttl=57 time=37.2 ms
22008 bytes from 173.194.32.255: icmp_req=12 ttl=57 time=34.3 ms
22008 bytes from 173.194.32.255: icmp_req=13 ttl=57 time=33.9 ms
22008 bytes from 173.194.32.255: icmp_req=15 ttl=57 time=34.0 ms
22008 bytes from 173.194.32.255: icmp_req=17 ttl=57 time=34.2 ms
22008 bytes from 173.194.32.255: icmp_req=19 ttl=57 time=34.0 ms
22008 bytes from 173.194.32.255: icmp_req=20 ttl=57 time=36.1 ms
22008 bytes from 173.194.32.255: icmp_req=21 ttl=57 time=34.4 ms
22008 bytes from 173.194.32.255: icmp_req=22 ttl=57 time=34.1 ms


На клиенте:
C:\Users\nicola>ping google.ru -t -l 22000

Обмен пакетами с google.ru [173.194.32.248] с 22000 байтами данных:
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=34мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=37мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=36мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=34мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=36мс TTL=56
Превышен интервал ожидания для запроса.
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=34мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=38мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=34мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=34мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=38мс TTL=56
Превышен интервал ожидания для запроса.
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=39мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Ответ от 173.194.32.248: число байт=22000 время=35мс TTL=56
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.

Статистика Ping для 173.194.32.248:
    Пакетов: отправлено = 29, получено = 24, потеряно = 5
    (17% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 34мсек, Максимальное = 39 мсек, Среднее = 35 мсек

Отсюда можно сделать вывод что проблема в размере пакетов?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Не работают некоторые сайты за NAT"  +/
Сообщение от bill (ok) on 01-Авг-12, 22:01 
Сравните пути прохождения пакетов до проблемного и нормально работающего ip. Может провайдер по разным каналам их пропускает?


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 22:17 
> Сравните пути прохождения пакетов до проблемного и нормально работающего ip. Может провайдер
> по разным каналам их пропускает?

На шлюзе:

nicola@home-server:/etc/network$ traceroute www.google.ru
traceroute to www.google.ru (173.194.32.248), 30 hops max, 60 byte packets
1  85.175.1.66 (85.175.1.66)  3.379 ms  3.589 ms  3.610 ms
2  85.175.1.75 (85.175.1.75)  2.634 ms  2.607 ms  2.587 ms
3  85.175.1.207 (85.175.1.207)  2.844 ms  2.893 ms 85.175.1.111 (85.175.1.111)  3.031 ms
4  87.226.227.1 (87.226.227.1)  2.590 ms  2.572 ms  2.575 ms
5  ae-0.m7-ar4.msk.ip.rostelecom.ru (87.226.139.102)  30.983 ms  31.008 ms  30.990 ms
6  79.133.94.86 (79.133.94.86)  30.927 ms  30.772 ms  30.774 ms
7  209.85.243.239 (209.85.243.239)  31.603 ms  31.660 ms  31.819 ms
8  173.194.32.248 (173.194.32.248)  31.458 ms  31.424 ms  31.421 ms

На клиенте:

C:\Users\nicola>tracert www.google.com

Трассировка маршрута к www.l.google.com [173.194.32.240]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  HOME-SERVER [192.168.0.10]
  2     4 ms     3 ms     3 ms  85.175.1.66
  3     5 ms     3 ms     3 ms  85.175.1.75
  4     3 ms     2 ms     3 ms  85.175.1.113
  5     3 ms     3 ms     3 ms  87.226.227.1
  6    32 ms    32 ms    38 ms  ae-0.m7-ar4.msk.ip.rostelecom.ru [87.226.139.102]
  7    31 ms    29 ms    30 ms  79.133.94.86
  8    30 ms    30 ms    30 ms  209.85.243.239
  9    29 ms    30 ms    31 ms  173.194.32.240

Трассировка завершена.

Немного отличается, это может быть причиной?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 22:24 
> Сравните пути прохождения пакетов до проблемного и нормально работающего ip. Может провайдер
> по разным каналам их пропускает?

Вот для чистоты эксперемента:

на шлюзе:
nicola@home-server:/etc/network$ traceroute 173.194.32.248
traceroute to 173.194.32.248 (173.194.32.248), 30 hops max, 60 byte packets
1  85.175.1.66 (85.175.1.66)  3.367 ms  3.535 ms  3.642 ms
2  85.175.1.75 (85.175.1.75)  2.445 ms  2.472 ms  2.473 ms
3  85.175.1.111 (85.175.1.111)  205.913 ms 85.175.1.113 (85.175.1.113)  205.981 ms 85.175.1.205 (85.175.1.205)  206.086 ms
4  87.226.227.1 (87.226.227.1)  69.071 ms  69.135 ms  69.060 ms
5  ae-0.m7-ar4.msk.ip.rostelecom.ru (87.226.139.102)  30.280 ms  30.280 ms  30.269 ms
6  79.133.94.86 (79.133.94.86)  30.262 ms  30.216 ms  70.835 ms
7  209.85.243.239 (209.85.243.239)  30.818 ms  31.295 ms  30.923 ms
8  173.194.32.248 (173.194.32.248)  30.707 ms  30.689 ms  30.665 ms


на клиенте:
C:\Users\nicola>tracert 173.194.32.248

Трассировка маршрута к 173.194.32.248 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  HOME-SERVER [192.168.0.10]
  2     4 ms     4 ms     9 ms  85.175.1.66
  3     2 ms     2 ms     3 ms  85.175.1.75
  4     2 ms     4 ms     *     85.175.1.207
  5    18 ms     3 ms     3 ms  87.226.227.1
  6    43 ms    29 ms    29 ms  ae-0.m7-ar4.msk.ip.rostelecom.ru [87.226.139.102]
  7    29 ms    30 ms    30 ms  79.133.94.86
  8    30 ms    31 ms    30 ms  209.85.243.239
  9    32 ms    31 ms    30 ms  173.194.32.248

Трассировка завершена.

в браузере ввожу ип адрес:
1) на шлюзе - вижу гугл, все ок
2) на клиенте за шлюзом вижу половину гугла.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Не работают некоторые сайты за NAT"  +1 +/
Сообщение от hizel (ok) on 01-Авг-12, 23:08 
>OUT=ppp0

$IPTABLES -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 01-Авг-12, 23:17 
>>OUT=ppp0
> $IPTABLES -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS
> --clamp-mss-to-pmtu

О чудо!!!! заработало, не очень понял что тут происходит, но это работает!!!
Спасибо большое!!!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 02-Авг-12, 00:07 
>>OUT=ppp0
> $IPTABLES -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS
> --clamp-mss-to-pmtu

Проблема как я понял в следующем:
Где-то по пути пакет не проходит по размеру, должен включится механизм Path MTU discovery, который отправляет ICMP сообщение типа Destination is unreachable (Точка назначения недоступна). К сообщению об ошибке прилагается значение MTU узла. Хост-отправитель уменьшает размер пакета и отсылает его заново. Такая операция происходит до тех пор, пока пакет не будет достаточно мал, чтобы дойти до хоста-получателя без фрагментации.
Где-то по пути назад блокируется ICMP Fragmentation Needed пакет. И в итоге наш пакет теряется.
Решение - установить максимальный размер фрагмента, передаваемый при установлении соединения.
После установлении MSS (максимальный размер сегмента) шлюз получается фрагментирует пакеты.
Как-то так.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Не работают некоторые сайты за NAT"  +/
Сообщение от XoRe (ok) on 02-Авг-12, 01:02 
> После установлении MSS (максимальный размер сегмента) шлюз получается фрагментирует пакеты.

Необязательно.
Он может послать icmp пакет вашему компу, чтобы тот уменьшал размер фрагмента.
Между роутером и компом этот пакет уже не потеряется)
А вообще да.
Вы не упомянули, что у роутера выход в инет через ppp.
ppp добавляет служебные заголовки к пакету (инкапсулирует пакет и добавляет заголовки).
Чтобы все умещалось в 1500 байт, может потребоваться уменьшать MTU примерно на длинну этих заголовков.
Иначе пакет может фрагментироваться/резаться, а icmp о фрагментации может фильтроваться.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 02-Авг-12, 10:44 
>> После установлении MSS (максимальный размер сегмента) шлюз получается фрагментирует пакеты.
> Необязательно.
> Он может послать icmp пакет вашему компу, чтобы тот уменьшал размер фрагмента.
> Между роутером и компом этот пакет уже не потеряется)
> А вообще да.
> Вы не упомянули, что у роутера выход в инет через ppp.
> ppp добавляет служебные заголовки к пакету (инкапсулирует пакет и добавляет заголовки).
> Чтобы все умещалось в 1500 байт, может потребоваться уменьшать MTU примерно на
> длинну этих заголовков.
> Иначе пакет может фрагментироваться/резаться, а icmp о фрагментации может фильтроваться.

Единственно что я не понял, почему эта проблема актуальна только для транзитного трафика?
Трафик с самого хоста шлюза работает нормально.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Не работают некоторые сайты за NAT"  +/
Сообщение от hizel (ok) on 02-Авг-12, 11:42 
> Единственно что я не понял, почему эта проблема актуальна только для транзитного
> трафика?
> Трафик с самого хоста шлюза работает нормально.

шлюз знает какое у него mtu в отличии от узлов за шлюзом

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Не работают некоторые сайты за NAT"  +/
Сообщение от nicolayr email(ok) on 02-Авг-12, 14:21 
>> Единственно что я не понял, почему эта проблема актуальна только для транзитного
>> трафика?
>> Трафик с самого хоста шлюза работает нормально.
> шлюз знает какое у него mtu в отличии от узлов за шлюзом

Все понятно, теперь я прозрел и просветлел.
Всем большое спасибо!

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру