Внутренняя сеть не имеет доступа к внешней сети кроме ping

Автор: slessv Дата: 08.04.2004 21:57 Подскажите что надо включить чтобы из локальной сети можно было получить доступ к HTTP (без прокси), SMTP, POP серверам внешней сети. Дело в следующем:
Если я на серваке делаю telnet pop.mail.ru - то ОК.
Если я из локалки делаю telnet pop.mail.ru - то завершается по таймауту.
ping во внешню юсеть - ОК.
DNS не причем. Везде использую IP адреса (пока налаживаю). Дистрибнтив ASP 9.2.

Схема сети:

Внутреняя сеть: 192.168.5.0/24
Внутренний IP сервера: 192.168.5.2
Внешний IP сервера: 192.168.0.2

адрес внешнего шлюза: 192.168.0.1 (def gat)


Мои конфиги:

---
cat /proc/sys/net/ipv4/ip_forward: 1

============================= ifconfig ===============================
eth0 Link encap:Ethernet HWaddr 00:05:5D:79:1E:21
inet addr:192.168.5.2 Bcast:192.168.5.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23036 errors:0 dropped:0 overruns:0 frame:0
TX packets:27078 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4647550 (4.4 Mb) TX bytes:24130987 (23.0 Mb)
Interrupt:11 Base address:0xd400

eth1 Link encap:Ethernet HWaddr 00:0E:A6:4A:13:FC
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38830 errors:0 dropped:0 overruns:0 frame:0
TX packets:2201 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23998637 (22.8 Mb) TX bytes:317872 (310.4 Kb)
Interrupt:5

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:459 errors:0 dropped:0 overruns:0 frame:0
TX packets:459 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:95663 (93.4 Kb) TX bytes:95663 (93.4 Kb)

======================== iptables -L: ================================
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

================== iptables -t nat -L: ==========================
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.5.0/24 anywhere to:192.168.0.2

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

================== iptables -t mangle -L: =====================
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

================ SYSCTL.CONF ====================
# Controls IP packet forwarding
net.ipv4.ip_forward = 1

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 1

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0

# Exec-shield is a security-enhancing modification to the Linux kernel
# that makes large parts of specially-marked programs -- including their
# stack -- not executable.
# This can reduce the potential damage of some security holes.
# Exec-shield is related to the older "non-exec stack patch" but has the
# potential to provide greater protection.
# 0 - always-disabled
# 1 - default disabled, except binaries that enable it (default)
# 2 - default enabled, except binaries that disable it (recomended)
# 3 - always-enabled
#kernel.exec-shield=2

================================ route -F ================================
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.5.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1

================================ route -C =================================
Kernel IP routing cache
Source Destination Gateway Flags Metric Ref Use Iface
virtual-246.man 192.168.0.2 192.168.0.2 l 0 0 34 lo
192.168.0.2 virtual-242.man 192.168.0.1 0 0 12 eth1
192.168.0.2 community.aspli 192.168.0.1 0 0 9 eth1
192.168.0.2 host26.rax.ru 192.168.0.1 0 0 8 eth1
192.168.0.2 virtual-246.man 192.168.0.1 0 0 3 eth1
virtual-242.man 192.168.0.2 192.168.0.2 l 0 0 64 lo
192.168.0.2 vipdosug5.maste 192.168.0.1 0 0 3 eth1
ns.comstar.ru 192.168.0.2 192.168.0.2 l 0 0 15 lo
search.rambler. 192.168.0.2 192.168.0.2 l 0 0 3 lo
192.168.0.2 217.16.31.72 192.168.0.1 0 0 3 eth1
arnold.expertme 192.168.5.4 192.168.5.4 0 2 79 eth0
192.168.0.2 217.16.31.72 192.168.0.1 0 0 3 eth1
192.168.0.2 ns.comstar.ru 192.168.0.1 0 0 15 eth1
192.168.0.1 192.168.0.2 192.168.0.2 il 0 0 0 lo
192.168.0.2 virtual-246.man 192.168.0.1 0 0 3 eth1
192.168.0.2 entropy.agava.r 192.168.0.1 0 0 0 eth1
192.168.0.33 192.168.0.255 192.168.0.255 ibl 0 0 66 lo
192.168.5.4 192.168.5.255 192.168.5.255 ibl 0 0 0 lo
192.168.0.2 community.aspli 192.168.0.1 0 0 6 eth1
192.168.0.2 virtual-242.man 192.168.0.1 0 0 12 eth1
192.168.0.2 entropy.agava.r 192.168.0.1 0 0 0 eth1
host26.rax.ru 192.168.0.2 192.168.0.2 l 0 0 44 lo
192.168.5.4 arnold.expertme arnold.expertme il 0 0 288 lo
192.168.0.2 vipdosug5.maste 192.168.0.1 0 0 3 eth1
217.16.31.72 192.168.0.2 192.168.0.2 l 0 0 25 lo
192.168.0.2 search.rambler. 192.168.0.1 0 0 0 eth1
vipdosug5.maste 192.168.0.2 192.168.0.2 l 0 0 53 lo
192.168.0.2 search.rambler. 192.168.0.1 0 0 0 eth1
community.aspli 192.168.0.2 192.168.0.2 l 0 0 115 lo
192.168.0.25 192.168.0.255 192.168.0.255 ibl 0 0 0 lo
192.168.0.2 host26.rax.ru 192.168.0.1 0 0 8 eth1
192.168.0.3 192.168.0.255 192.168.0.255 ibl 0 0 0 lo
192.168.0.2 ns.comstar.ru 192.168.0.1 0 0 17 eth1

================================ netstat -nr =================================
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1


========================= ЛОГ iptraf =======================
Thu Apr 8 15:01:23 2004; TCP; eth0; 48 bytes; from 192.168.5.8:1034 to 194.67.45.21:25; first packet (SYN)
Thu Apr 8 15:21:31 2004; TCP; Connection 194.67.57.102:110 to 192.168.5.8:1031 timed out, 0 packets, 0 bytes, avg flow rate 0.00 kbits/s; opposite direction 15 packets, 720 bytes, avg flow rate 0.00 kbits/s
---

HELP !!!
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 08.04.2004 22:10sergeil А PING большим пакетом из LAN наружу? Так хотя-бы на 1440?

А traceroute из LAN наружу? А большим пакетом?

А принудительно TTL для всех пакетов в одно значение?
Были случаи, когда очень "умные" провайдеры рубили сети
за рутером (iptables).

А принудительно уменьшить размер TCP сегмента (iptables)
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 08.04.2004 22:26slessv Машины в локальной сети все на XP. tracert в XP не дает изменять размер пакета:

---
C:\ping -w 10000 -l 1440 pop.mail.ru
Обмен пакетами с pop.mail.ru [194.67.57.102] по 1440 байт:
Ответ от 194.67.57.102: число байт=1440 время=512мс TTL=242
Ответ от 194.67.57.102: число байт=1440 время=321мс TTL=242

C:\ping -w **100000** -l 2048 pop.mail.ru
Обмен пакетами с pop.mail.ru [194.67.57.102] по 2048 байт:
Превышен интервал ожидания для запроса.

C:\tracert -dw100000 pop.mail.ru
Трассировка маршрута к pop.mail.ru [194.67.57.102]
с максимальным числом прыжков 30:

1 <1 мс <1 мс <1 мс 192.168.5.2
2 * * * Превышен интервал ожидания для запроса.
3 * * * Превышен интервал ожидания для запроса.
4 * * * Превышен интервал ожидания для запроса.
5 * * * Превышен интервал ожидания для запроса.
6 * * * Превышен интервал ожидания для запроса.
7 * * * Превышен интервал ожидания для запроса.
8 * * * Превышен интервал ожидания для запроса.
9 * * * Превышен интервал ожидания для запроса.
10 * * * Превышен интервал ожидания для запроса.
11 57 ms 58 ms 57 ms 194.67.57.102

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

Как принудительно установить TTL для всех пакетов в одно значение? И в какое?
Как уменьшить размер TCP сегмента (iptables)?

И в чем смысл этих изменений?
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 08.04.2004 22:49slessv С машины на LINUX вообще никакая трассировка недостает хост.
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 09.04.2004 13:47Scarab slessv писал(а):

> Как принудительно установить TTL для всех пакетов в одно
> значение? И в какое?
> Как уменьшить размер TCP сегмента (iptables)?
>
> И в чем смысл этих изменений?

Смысл изменений в том (упрощенно), что изначально пакету присваивается некое TTL по умолчанию (если я правильно помню, 255 - но зуб не дам Улыбка ), которое уменьшается на единицу на каждом промежуточном роутере. Как только TTL становится 0 - пакет дропается.
Легко можно себе представить механизм у провайдера, который будет резать пакеты с TTL меньшим, чем дефолтовый (то есть прошедшие твой хост как роутер, а не рожденные на нем). Я думаю, уважаемый sergeil имел в виду именно это.

Как менять - если я не ошибаюсь, в iptables такая возможность была. В принципе, весь вопрос изучается за 20 минут.
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 09.04.2004 15:48sergeil > C:\ping -w 10000 -l 1440 pop.mail.ru
> Ответ от 194.67.57.102: число байт=1440 время=512мс TTL=242

Маршрутизация работает.
Если pop.mail.ru не прописан в hosts, то DNS, как я понял, тоже работает.

> C:\ping -w **100000** -l 2048 pop.mail.ru
> Обмен пакетами с pop.mail.ru [194.67.57.102] по 2048 байт:

Размер пакета больше чем (MTU - 40) лучше не ставить.
Не всегда работает. Так что данный замер не показателен.

> C:\tracert -dw100000 pop.mail.ru
> Трассировка маршрута к pop.mail.ru [194.67.57.102]
> 1 <1 мс <1 мс <1 мс 192.168.5.2
> 2 * * * Превышен интервал ожидания
> ...
> 11 57 ms 58 ms 57 ms 194.67.57.102

Твой провайдер не возвращает ICMP сообщение "timeexceed".

Попробуй трассировку через ICMP. Под виндрй не знаю, а под линуксом
traceroute -I pop.mail.ru

> Как принудительно установить TTL для всех пакетов в одно
> значение? И в какое?

$ iptables --help
...
EXTRA EXTENSIONS
TTL
This target is used to modify the time to live field in the IP header. It
is only valid in the mangle table.
* --ttl-set ttl
Set the TTL to the given value.

> Как уменьшить размер TCP сегмента (iptables)?
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --set-mss 512

> И в чем смысл этих изменений?
Если твой провайдер плохо справляется с пересылкой больших пакетов, режет ICMP
запросы на фрагментацию, плохо фрагментирует-дефрагментирует пакеты, то это может быть панацеей. Обычно это используется если telnet работает хороше, а ftp плохо.
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 09.04.2004 19:04slessv СПАСИБО ВАМ ВСЕМ !!!
3 дня мучался с этой проблемой - не мог разобраться. Все думал что сам где-то неправ. Ну а когда уже стало переклинивать, то и написал в форум.
Не подумал что эта петрушка может и от провайдерских настроек случиться (хотя когда-то читал об этом).
Я писал:
> Как принудительно установить TTL для всех пакетов в одно
> значение? И в какое?
> И в чем смысл этих изменений?

С TTL - в чем смысл и как его изменить - разобрался. Прочитал внимательно в доках по iptables. И то что пишет Scarab:
---
> Легко можно себе представить механизм у провайдера, который будет резать пакеты с TTL меньшим, чем дефолтовый (то есть прошедшие твой хост как роутер, а не рожденные на нем). Я думаю, уважаемый sergeil имел в виду именно это.
---
там как раз и описывается. А вот:
> Как уменьшить размер TCP сегмента (iptables)?
> И в чем смысл этих изменений?
для меня пока что белое пятно. Спасибо за ответ. Буду еще разбираться.
Пока взял таймаут на работе. Потом попробую все это воплотить. Результаты обязуюсь сообщить.
Если у кого-то есть еще какие-либо идеи - с удовольствием прочитаю.
Re: Внутренняя сеть не имеет доступа к внешней сети кроме ping 16.04.2004 22:14slessv Наконец-то дошли руки написать чем все это закончилось. Да ничем! Все так же глючит интернет и не дает работать с почтой.
Подправил iptables согласно советам:
---
======================================= filter ==========================================
Сhain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags%)YN,RST/SYN TCPMSS set 512

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags%)YN,RST/SYN TCPMSS set 512

======================================= nat ==========================================
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.5.0/24 anywhere to:192.168.0.2

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 65

======================================= mangle ==========================================
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 64

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
---

И все также нет доступа к pop и smtp серверам ( проверяю на pop.mail.ru и smtp.mail.ru)
Самопроизвольно (еще до моих вот этих экспириментов) пропал доступ к www.yandex.ru с установленным в IE прокси. Все остальные пока работают. Только иногда бывает, что страничка открывается ну слишком долго.
Если работать без прокси, то не возможно законнектится с www.mail.ru, www.rambler.ru, www.yandex.ru, но с www.asplinux.ru (и многими другими) - можно нормально работать!!!
Провайдер comstar.
Звонил в техподдержку к ним, они сказали что ничего не закрывали и все должно работать.
Но по прежнему при проблемах - смотрю логи iptraf и наблюдаю там строчки, остающиеся без ответа:
---
======================================= врутренняя сеть ==========================================
Fri Apr 16 20:40:03 2004; TCP; eth0; 48 bytes; from 192.168.5.8:1033 to 194.67.57.102:110; first packet (SYN)

======================================= внешняя сеть ==========================================
Fri Apr 16 20:40:03 2004; TCP; eth1; 48 bytes; from 192.168.0.2:1033 to 194.67.57.102:110; first packet (SYN)
---

Может я чего где не так сделал?
RSS-материал