Есть шлюз на PC (Slackware-12.1)
eth0 (aa.bb.cc.dd) - смотрит в инет
eth1 (10.10.0.2) - смотрит в частную сеть (10.0.0.0/24) через криптошлюз (10.10.0.1)
eth2 (192.168.1.2) - в локалку офиса 1
eth3 (192.168.2.2) - в локалку офиса 2
для сети 10.0.0.0 прописан роут:
route add -net 10.0.0.0/24 gw 10.10.0.1 eth1
так как криптошлюз не знает о существовании сетей 192.168.1.0 и 192.168.2.0, траффик из них в сеть 10.0.0.0 маскарадится.
iptables -A -t nat POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source aa.bb.cc.dd
iptables -A -t nat POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source aa.bb.cc.dd
iptables -A -t nat POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 10.10.0.2
iptables -A -t nat POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to-source 10.10.0.2
С клиентских машин из локалок прекрасно гуляется в интернет и 10.0.0.0 (через NAT). Проблема, в том, что нет возможности зайти на http-сервер находящийся в сети 10.0.0.0 с самого шлюза. Т.е. links 10.0.0.1, lynx 10.0.0.1, попытка зайти мозиллой, оперой - не проходит. Тупо висит и ждет ответа от сервера. При этом, по tcpdump, ответ приходит. Squid тоже не добирается до этих ресурсов, собственно из-за него-то вся петрушка. В чем может быть проблема? Кривые руки не исключаю.
проблема с доступом в подсеть со шлюза
Модераторы: SLEDopit, Модераторы разделов
-
Max_Sys
- Сообщения: 169
- ОС: openSUSE 11.2
Re: проблема с доступом в подсеть со шлюза
А может ли быть 10.10.0.1 гейтвеем в 10.0.0.0/24? 
-
viper76
- Сообщения: 9
- ОС: Slackware-12
-
Max_Sys
- Сообщения: 169
- ОС: openSUSE 11.2
Re: проблема с доступом в подсеть со шлюза
С гейтвеем я ступил, конечно 
Если пинги ходят, то рутинг настроен правильно.
А не хотят ли браузеры лезть через proxy, например? Что будет если написать telnet 10.0.0.1 80 на PC шлюзе?
Если пинги ходят, то рутинг настроен правильно.
А не хотят ли браузеры лезть через proxy, например? Что будет если написать telnet 10.0.0.1 80 на PC шлюзе?
-
viper76
- Сообщения: 9
- ОС: Slackware-12
Re: проблема с доступом в подсеть со шлюза
не..не хотят. но есть момент: traceroute на 10.0.0.1 работает только если указать явно интерефес -i eth1. Если этого не сделать он пытается идти от 127.0.0.1 и никуда не попадает.
-
Max_Sys
- Сообщения: 169
- ОС: openSUSE 11.2
Re: проблема с доступом в подсеть со шлюза
То есть ping 10.0.0.1 работает, а traceroute 10.0.0.1 нет?
А покажите табличку маршрутизации...
А покажите табличку маршрутизации...
-
Sleeping Daemon
- Сообщения: 1450
Re: проблема с доступом в подсеть со шлюза
viper76 писал(а): ↑04.01.2009 16:14Есть шлюз на PC (Slackware-12.1)
eth0 (aa.bb.cc.dd) - смотрит в инет
eth1 (10.10.0.2) - смотрит в частную сеть (10.0.0.0/24) через криптошлюз (10.10.0.1)
eth2 (192.168.1.2) - в локалку офиса 1
eth3 (192.168.2.2) - в локалку офиса 2
для сети 10.0.0.0 прописан роут:
route add -net 10.0.0.0/24 gw 10.10.0.1 eth1
так как криптошлюз не знает о существовании сетей 192.168.1.0 и 192.168.2.0, траффик из них в сеть 10.0.0.0 маскарадится.
iptables -A -t nat POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source aa.bb.cc.dd
iptables -A -t nat POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source aa.bb.cc.dd
iptables -A -t nat POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 10.10.0.2
iptables -A -t nat POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to-source 10.10.0.2
С клиентских машин из локалок прекрасно гуляется в интернет и 10.0.0.0 (через NAT). Проблема, в том, что нет возможности зайти на http-сервер находящийся в сети 10.0.0.0 с самого шлюза. Т.е. links 10.0.0.1, lynx 10.0.0.1, попытка зайти мозиллой, оперой - не проходит. Тупо висит и ждет ответа от сервера. При этом, по tcpdump, ответ приходит. Squid тоже не добирается до этих ресурсов, собственно из-за него-то вся петрушка. В чем может быть проблема? Кривые руки не исключаю.
Попробуйте netcat -v 10.0.0.1 80 вместо links.
Может получите необходимое направление копания.
И ip r list в студию на шлюзе.
-
viper76
- Сообщения: 9
- ОС: Slackware-12
Re: проблема с доступом в подсеть со шлюза
Sleeping Daemon писал(а): ↑05.01.2009 01:45Попробуйте netcat -v 10.0.0.1 80 вместо links.
Может получите необходимое направление копания. :rolleyes:
И ip r list в студию на шлюзе.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
xx.xx.xx.xx 0.0.0.0 255.255.255.248 U 0 0 0 eth0
10.0.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 10.10.0.1 255.255.255.0 UG 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 xx.xx.xx.xx 0.0.0.0 UG 1 0 0 eth0
вывод netcat -v 10.0.0.1 80
10.0.0.1 80 (http) open
и все...висит до Ctrl-C
а вот вывод tcpdump -ni eth1 при links 10.0.0.1
Код: Выделить всё
16:35:25.216735 IP 10.10.0.2.50066 > 10.0.0.1.80: S 2124744962:2124744962(0) win 5840 <mss 1460,sackOK,timestamp 6051184 0,nop,wscale 7>
16:35:25.243116 IP 10.0.0.1.80 > 10.10.0.2.50066: S 3742329487:3742329487(0) ack 2124744963 win 5792 <mss 1460,sackOK,timestamp 146227900 6051184,nop,wscale 7>
16:35:25.243158 IP 10.10.0.2.50066 > 10.0.0.1.80: . ack 1 win 46 <nop,nop,timestamp 6051190 146227900>
16:35:25.244039 IP 10.10.0.2.50066 > 10.0.0.1.80: P 1:595(594) ack 1 win 46 <nop,nop,timestamp 6051190 146227900>
16:35:25.264702 IP 10.0.0.1.80 > 10.10.0.2.50066: R 3742329488:3742329488(0) win 0
16:35:25.264892 IP 10.10.0.2.50067 > 10.0.0.1.80: S 2126973838:2126973838(0) win 5840 <mss 1460,sackOK,timestamp 6051196 0,nop,wscale 7>
16:35:25.268538 IP 10.0.0.1.80 > 10.10.0.2.50066: R 3742329488:3742329488(0) win 0
16:35:25.284591 IP 10.0.0.1.80 > 10.10.0.2.50067: S 3757775759:3757775759(0) ack 2126973839 win 5792 <mss 1460,sackOK,timestamp 146227912 6051196,nop,wscale 7>
16:35:25.284622 IP 10.10.0.2.50067 > 10.0.0.1.80: . ack 1 win 46 <nop,nop,timestamp 6051201 146227912>
16:35:25.284874 IP 10.10.0.2.50067 > 10.0.0.1.80: P 1:595(594) ack 1 win 46 <nop,nop,timestamp 6051201 146227912>
16:35:25.308497 IP 10.0.0.1.80 > 10.10.0.2.50067: . ack 595 win 55 <nop,nop,timestamp 146227918 6051201>и после этого висит.
-
Max_Sys
- Сообщения: 169
- ОС: openSUSE 11.2
Re: проблема с доступом в подсеть со шлюза
Поправьте меня, если я не прав, но по-моему рутинг у Вас работает!
Я бы копал на серваке 10.0.0.1 или что-то на 10.10.0.2 (на тему даже не знаю чего...)
ping'и ходят нормально? а traceroute нет? traceroute вроде хочет имена разрешать... (или не хочет?)
Я бы копал на серваке 10.0.0.1 или что-то на 10.10.0.2 (на тему даже не знаю чего...)
ping'и ходят нормально? а traceroute нет? traceroute вроде хочет имена разрешать... (или не хочет?)
-
viper76
- Сообщения: 9
- ОС: Slackware-12
Re: проблема с доступом в подсеть со шлюза
Проблема разрешилась. Дело видимо в кривоватом криптошлюзе на который смотрит eth1
в старых линуксах /proc/sys/net/ipv4/tcp_window_scaling стояло в 0. в новых - 1. Поставил 0 и все заработало.
-
Max_Sys
- Сообщения: 169
- ОС: openSUSE 11.2
Re: проблема с доступом в подсеть со шлюза
А что такое вообще tcp_window_scaling? Погуглив, понял, что у многих там "1" и это проблема. Все ставят "0".
-
viper76
- Сообщения: 9
- ОС: Slackware-12
Re: проблема с доступом в подсеть со шлюза
Вроде как разрешение изменения размера окна TCP. Если маршрутизатор не поддерживает, а у клиента стоит 1 - будут проблемы со связью. В новых линухах и в висте стоит 1. Кстати я еще удивлялся, что это у меня страничка за этим криптошлюзом из под слаки на рабочей тачке не открывается, при этом под ХР у всех в той же локалке - работает.