Tomsk Sysadmins Forum
Unix => Администрирование => Topic started by: Barbarian on August 08, 2009, 13:11:08
-
Проблема в следующем.
Имеется локальная сеть, сервер который выполняет роль шлюза в интернет, сам серевер в интернет имеет выход через ADSL посредством соединения bridge, на сервере стоит FedoraCore. На сервере подняты сервисы:
- pptpd - для раздачи интернета по VPN клиентам локальной сети и некоторым сотрудникам предприятия которые находятся не в локальной сети
- httpd - для организации сайта предприятия
- DNS - первичный
- php, mysql и т.д. по вкусу
Так же на сервере организовано соединение по OpenVPN со статическим IP для получения дешевого внешнего Интернета на предприятие. Внешний канал на Webstream закрыт по причине экономии, собственно в связи с этим и был организован выход по OpenVPN.
eth0 - интерфейс связи с ADSL модемом
eth1 - интерфейс локальной сети
ppp0 - bridge (сервер-ADSL-Webstream)
tun0 - туннель OpenVPN до провайдера VPN
111.111.111.72 - статический IP выданный в Webstream
217.18.128.60 - IP ADSL на стороне Webstream
222.222.222.40 - статический IP выданный провайдером VPN (для соединения OpenVPN)
222.222.222.1 - IP адрес OpenVPN туннеля на стороне провайдера VPN
333.333.333.136 - IP адрес сервера провайдера VPN
Вся проблема заключается в том, что в принципе все работает кроме одного - сервер Web виден только в Томском Интернете, хотя по OpenVPN открыт канал со статическим IP адресом. С сервера нет выхода во внешний Интернет. Ниже выводы команд ifconfig, netstat и iproute-save:
eth0 Link encap:Ethernet HWaddr 00:E0:4C:15:71:B4
inet addr:192.168.1.90 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:4cff:fe15:71b4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3542 (3.4 KiB) TX bytes:3734 (3.6 KiB)
Interrupt:17 Base address:0x6000
eth1 Link encap:Ethernet HWaddr 00:11:95:5B:E6:5F
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fe5b:e65f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:69 errors:0 dropped:0 overruns:0 frame:0
TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6724 (6.5 KiB) TX bytes:9986 (9.7 KiB)
Interrupt:18 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217 (217.0 TX bytes:217 (217.0
ppp0 Link encap:Point-to-Point Protocol
inet addr:111.111.111.72 P-t-P:217.18.128.60 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2484 (2.4 KiB) TX bytes:1836 (1.7 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:222.222.222.40 P-t-P:222.222.222.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 TX bytes:0 (0.0
[root@region70 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
217.18.128.60 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
333.333.333.136 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
222.222.222.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.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
[root@xxxxxx ~]# traceroute tomsknet.ru
traceroute to tomsknet.ru (217.18.130.27), 30 hops max, 40 byte packets
1 * * *
2 po6-core520.bbn.tomsknet.ru (217.18.130.202) 8.742 ms 9.678 ms 10.651 ms
3 po1-core520-1.bbn.tomsknet.ru (217.18.129.145) 11.358 ms 11.831 ms 12.562 ms
4 www.tomsknet.ru (217.18.130.27) 13.279 ms 13.771 ms 15.010 ms
# Generated by iptables-save v1.3.5 on Sat Aug 8 11:18:55 2009
*filter
:INPUT ACCEPT [361:29356]
:FORWARD ACCEPT [381:241142]
:OUTPUT ACCEPT [363:50875]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sat Aug 8 11:18:55 2009
# Generated by iptables-save v1.3.5 on Sat Aug 8 11:18:55 2009
*nat
:PREROUTING ACCEPT [37:2317]
:POSTROUTING ACCEPT [26:1814]
:OUTPUT ACCEPT [26:1814]
-A POSTROUTING -s 192.168.11.0/255.255.255.0 -o ppp0 -j SNAT --to-source 111.111.111.72
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j SNAT --to-source 111.111.111.72
-A POSTROUTING -s 192.168.0.2 -o eth0 -j SNAT --to-source 111.111.111.72
-A POSTROUTING -s 192.168.11.0/255.255.255.0 -o tun0 -j SNAT --to-source 222.222.222.40
COMMIT
# Completed on Sat Aug 8 11:18:55 2009
Комментарии:
1. Маршрутизация с локальной сети работает (http, ftp, VPN)
2. С сервера виден только Томский Интернет, при этом трассировка маршрутов показывает, что запросы идут напрямую к запрашиваемым адресам
3. Сервер Web не виден из внешнего Интернета
Необходимо сделать видимость сервера с внешнего интернета и желательно выход во внешку с сервера.
-
Повеселил адрес 333.333.333.136 в IPv4.
http://webstream.tomsknet.ru/price-ws-corp (http://webstream.tomsknet.ru/price-ws-corp) Неужели 1500 р. в месяц на самый захудалый канал не найдется, чтобы не строить велосипед?
-
Повеселил адрес 333.333.333.136 в IPv4.
+1
по сабжу, копайте в сторону default router... станет понятно где проблема...
-
был бы очень полезен вывод "netstat -nptl"
-
Повеселил адрес 333.333.333.136 в IPv4.
http://webstream.tomsknet.ru/price-ws-corp (http://webstream.tomsknet.ru/price-ws-corp) Неужели 1500 р. в месяц на самый захудалый канал не найдется, чтобы не строить велосипед?
на самом деле ни чего веселого тут нет
по поводу 1500 р. в мес. - зачем их платить если есть возможность за 150 р. в месяц? я думаю 1350 р. в месяц оставшиеся от 1500 р. можно на пиво пустить спокойно...
-
был бы очень полезен вывод "netstat -nptl"
[root@xxxxx ~]# netstat -nptl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1834/mysqld
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 1728/xinetd
tcp 0 0 222.222.222.1:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 222.222.222.40:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1738/vsftpd
tcp 0 0 111.111.111.72:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 192.168.0.1:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 192.168.1.90:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1553/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1553/named
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 1865/pptpd
tcp 0 0 :::993 :::* LISTEN 1969/couriertcpd
tcp 0 0 :::995 :::* LISTEN 1955/couriertcpd
tcp 0 0 :::110 :::* LISTEN 1949/couriertcpd
tcp 0 0 :::143 :::* LISTEN 1962/couriertcpd
tcp 0 0 :::80 :::* LISTEN 1857/httpd
tcp 0 0 :::22 :::* LISTEN 1719/sshd
-
был бы очень полезен вывод "netstat -nptl"
мне кажется был бы полезен вывод трассировки до внешнего сайта
и вывод ip route.. на всяк случай
-
мне кажется был бы полезен вывод трассировки до внешнего сайта
и вывод ip route.. на всяк случай
[root@ххххх ~]# ip route
217.18.128.60 dev ppp0 proto kernel scope link src 111.111.111.72
333.333.333.136 dev ppp0 scope link
222.222.222.1 dev tun0 proto kernel scope link src 222.222.222.40
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.90
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1
169.254.0.0/16 dev eth1 scope link
192.168.1.90 - eth0
трассировка до внешнего сайта
[root@ххххх ~]# traceroute mail.ru
traceroute to mail.ru (217.69.128.41), 30 hops max, 40 byte packets
1 * * *
2 * * *
.
.
29 * * *
30 * * *
При этом VPN соединения с сервером с любого компа из локальной сети либо из Томского Интернета, работают нормально...
-
[root@ххххх ~]# ip route
217.18.128.60 dev ppp0 proto kernel scope link src 111.111.111.72
333.333.333.136 dev ppp0 scope link
222.222.222.1 dev tun0 proto kernel scope link src 222.222.222.40
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.90
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1
169.254.0.0/16 dev eth1 scope link
192.168.1.90 - eth0
При этом VPN соединения с сервером с любого компа из локальной сети либо из Томского Интернета, работают нормально...
шлюза по-умолчанию нет, который во внешку смотрит..
-
шлюза по-умолчанию нет, который во внешку смотрит..
ага, уже сам догадался, только вот шлюзом какой IP будет? тот который по OpenVPN на стороне провайдера внешки или который IP адрес сервера провайдера внешки?
-
шлюза по-умолчанию нет, который во внешку смотрит..
в общем шлюз по умолчанию добавил
/sbin/ip route add default via 222.222.222.1 src 222.222.222.40
вот вывод ip route
[root@ххххх ~]# ip route
217.18.128.60 dev ppp0 proto kernel scope link src 111.111.111.72
333.333.333.136 dev ppp0 scope link
222.222.222.1 dev tun0 proto kernel scope link src 222.222.222.40
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.90
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1
169.254.0.0/16 dev eth1 scope link
default via 222.222.222.1 dev tun0 src 222.222.222.40
Но результат не утешительный... сервер во внешний интернет ходит, но локальные компьютеры теперь даже в Томский Интернет не могут выйти...
куда рыть уже не знаю. Уже мысли в голову приходят, может взять и создать дополнительно клиентский VPN канал на сервере, только как это все будет выглядеть ужасно
-
По-моему вопрос можно решить так
1.В конфиге для ADSL ppp0 надо добавить опцию unit 50 (любой номер).Тогда интерфейс будет всегда ppp50 - чтоб не было проблем с маршрутизацией (путаницы,чтоб твои клиенты впн pptp не заняли этот интерфейс,что теоретически в некоторых случаях возможно).
2.Добавить в таблицу маршрутизации спсиок томских сетей - что-то типо
http://tomsknet.ru/netsplain?nohd=1&pa...%20ppp50\n (http://tomsknet.ru/netsplain?nohd=1&pattern=route%20add%20-net%20~base~%20netmask%20~mask~%20dev%20ppp50\n)
(может еще gw надо...)
3.Добавить дефолтный маршрут
route del default && route add default dev tun0
Будет ходить в Томск по ppp50 adsl,во внешку через tun0 OpenVPN. Web server должен быть виден откуда угодно (только не забудь про проблему с ДНС (т.к. у тебя к нему доступ по 2 ип - из Томска ип который по АДСЛ,со внешки который OpenVPN).
Также правь свои настройки нат,можно так: iptables -t nat -F && iptables -t nat -A POSTROUTING -o ppp50 -j MASQUERADE && iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE (если сеть очень большая лучше иначе)
----Вся проблема что ты не сказал как и куда ходить твоему серверу - через что в Томск и через что во внешку.Ну соответственно NAT тоже должен знать что и как натить.
-
По-моему вопрос можно решить так
1.В конфиге для ADSL ppp0 надо добавить опцию unit 50 (любой номер).Тогда интерфейс будет всегда ppp50 - чтоб не было проблем с маршрутизацией (путаницы,чтоб твои клиенты впн pptp не заняли этот интерфейс,что теоретически в некоторых случаях возможно).
2.Добавить в таблицу маршрутизации спсиок томских сетей - что-то типо
http://tomsknet.ru/netsplain?nohd=1&pa...%20ppp50\n (http://tomsknet.ru/netsplain?nohd=1&pattern=route%20add%20-net%20~base~%20netmask%20~mask~%20dev%20ppp50\n)
(может еще gw надо...)
3.Добавить дефолтный маршрут
route del default && route add default dev tun0
Будет ходить в Томск по ppp50 adsl,во внешку через tun0 OpenVPN. Web server должен быть виден откуда угодно (только не забудь про проблему с ДНС (т.к. у тебя к нему доступ по 2 ип - из Томска ип который по АДСЛ,со внешки который OpenVPN).
Также правь свои настройки нат,можно так: iptables -t nat -F && iptables -t nat -A POSTROUTING -o ppp50 -j MASQUERADE && iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE (если сеть очень большая лучше иначе)
----Вся проблема что ты не сказал как и куда ходить твоему серверу - через что в Томск и через что во внешку.Ну соответственно NAT тоже должен знать что и как натить.
Сервер в Томск ходит по ADSL во внеху должэн ходить через interphone.su
Если я правильно думаю, то ложить список Томских сетей лучше в автозагрузку в /etc/rc.d/ppp50 и сделать на него ссылку в /etc/rc.d/rc.local
Правильно?
-
Я бы на твоем месте саначала просто работоспособность опробовал и настроил, а уже потом автоматизировал!)))
По-поводу размещения - по-моему правильно. В таком случае при загрузке будет запускаться этот скрипт (так как он в rc.local то в конце,и соединения уже будут установлены).Но вот что если произойдет разрыв связи?!Об этом тоже надо подумать.
-
Я бы на твоем месте саначала просто работоспособность опробовал и настроил, а уже потом автоматизировал!)))
По-поводу размещения - по-моему правильно. В таком случае при загрузке будет запускаться этот скрипт (так как он в rc.local то в конце,и соединения уже будут установлены).Но вот что если произойдет разрыв связи?!Об этом тоже надо подумать.
имеешь в виду разрыв связи по OpenVPN ?
-
имеешь в виду разрыв связи по OpenVPN ?
Да,там у него в настройках должны быть опции по восстановлению соединения при разрыве и опция прописывающая его дефолтным маршрутом.
Кстати,как результаты?Решил проблему?
-
Да,там у него в настройках должны быть опции по восстановлению соединения при разрыве и опция прописывающая его дефолтным маршрутом.
Кстати,как результаты?Решил проблему?
да решил использовал таблицы iproute2 вот как тут: http://forum.gnu.kz/viewtopic.php?f=22&...0&view=next (http://forum.gnu.kz/viewtopic.php?f=22&t=90&view=next)
раньше сам их пользовал, но вот подзабыл
тему закрываем и открываем новую