Структура сети:
Комп1(Далее С1):
1. ОС:Linux Ubuntu 8.10
2. ПО:apache2, php5, mysql, joomla
3. Интерфейсы: eth1 192.198.1.2 (через него идет инет. АДСЛ модем 192.168.1.1), eth0 192.168.2.1 (интеренет уходит на Комп2. Адрес 192.168.2.3)
Веб сервер на С1 работает нормально.
Комп2(Далее С2):
1. ОС: "Не линукс"
2. Интерфейсы: eth1 192.168.2.3 (через него приходит инет с линукса), eth0 192.168.0.1 (интернет идет в локалку через свич)
Локалка:
1. Все компы "Не линукс"
Интернет есть везде. Проблема в том что веб сервер извне работает нормально. ФТП извне работает нормально. По SSH на Линукс сервер захожу. В локалке ни на С2 ни с любого другого компа не работает ФТП. При попытке зайти на внешний адрес веб сервера попадаем на АДСЛ модем (с любого компа кроме С1), то же самое происходит при попытке подключиться к ФТП.
Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.
Решено: Маршрутизация (Доступ к веб серверу локально)
Модераторы: SLEDopit, Модераторы разделов
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: Маршрутизация
Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.
как понятно - есть подозрение на hosts? по ай-пи работает, чтоли?
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Dzam
- Сообщения: 56
- ОС: Kubuntu 9.10, ArchLinux
Re: Решено: Маршрутизация
Ленивая Бестолочь писал(а): ↑18.03.2009 11:26Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.
как понятно - есть подозрение на hosts? по ай-пи работает, чтоли?
Если в локалке набрать 192.168.2.1 то попадаем на веб сервер, но не работают css, так как в настройках configuration.php Joomla в качестве переменной LiveSite стоит реальный внешний адрес, и все ссылки работают через этот адрес. Ну и соответсвенно не работают ссылки на странице.
-
danger08
- Сообщения: 715
- ОС: Linux (CentOS, Ubuntu)
Re: Решено: Маршрутизация
Dzam писал(а): ↑18.03.2009 11:22Интернет есть везде. Проблема в том что веб сервер извне работает нормально. ФТП извне работает нормально. По SSH на Линукс сервер захожу. В локалке ни на С2 ни с любого другого компа не работает ФТП. При попытке зайти на внешний адрес веб сервера попадаем на АДСЛ модем (с любого компа кроме С1), то же самое происходит при попытке подключиться к ФТП.
Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.
Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.
Вообще, приведенный в мануале способ решения мне не нравится по ряду причин (одна из которых - сокрытие реального адреса источника). Рекомендую для локалки завести отдельную DNS-зону, в которой вашим "внешним" доменным именам сопоставлены локальные IP-адреса. Т.е. к вашим ресурсам, находящимся в локальной сети, из локалки обращаться по локальным адресам (к модему и дальше не ходить
Тогда обращение по доменным именам у вас будет работать без проблем, и для локальных пользователей, и при доступе извне.
Блогосайт - http://www.fateyev.com
-
Dzam
- Сообщения: 56
- ОС: Kubuntu 9.10, ArchLinux
Re: Решено: Маршрутизация
danger08 писал(а): ↑18.03.2009 12:00Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.
Проброс портов на АДСЛ модеме прост. Внешние адреса с 0.0.0.0 по 255.255.255.255 портов с 80 (для HTTP, для FTP и для SSH тоже соответсвующие) по 80, на адрес 192.168.1.2 на порт 80.
Честно говоря до меня не совсем доходит как тоакое может происходить. Вводя внешний ИП адрес мы должны попадать во внешнюю сеть, т.е. на АДСЛ модем, а модем нас соответсвенно должен выкинуть в инет и вернуть ответ (хотя ответ находится в локалке). Просто не понятно как при такой структуре сети можно с Адреса 192.168.0.10 попасть на 192.168.1.1... Куда рыть даже не знаю.
-
danger08
- Сообщения: 715
- ОС: Linux (CentOS, Ubuntu)
Re: Решено: Маршрутизация
Dzam писал(а): ↑18.03.2009 12:19danger08 писал(а): ↑18.03.2009 12:00Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.
Проброс портов на АДСЛ модеме прост. Внешние адреса с 0.0.0.0 по 255.255.255.255 портов с 80 (для HTTP, для FTP и для SSH тоже соответсвующие) по 80, на адрес 192.168.1.2 на порт 80.
Честно говоря до меня не совсем доходит как тоакое может происходить. Вводя внешний ИП адрес мы должны попадать во внешнюю сеть, т.е. на АДСЛ модем, а модем нас соответсвенно должен выкинуть в инет и вернуть ответ (хотя ответ находится в локалке). Просто не понятно как при такой структуре сети можно с Адреса 192.168.0.10 попасть на 192.168.1.1...
Предполагаю, что ваш модем не может делать проброс с портов, при доступе с локального интерфейса (результирующий запрос идет снова через локальный интерфейс). Некоторые D-Link-и - вообще не отслеживают пробросы с локального на локальный интерфейс, и правила NAT там работают для пары локальный-глобальный (SNAT) и глобальный-локальный (DNAT).
Универсальное решение (работающее в любой ситуации) я вам предложил.
Блогосайт - http://www.fateyev.com
-
Dzam
- Сообщения: 56
- ОС: Kubuntu 9.10, ArchLinux
Re: Решено: Маршрутизация
Если честно, трудно представляю как работает DNAT
192.168.2.1 ВнешнийАдресСайта
Мы из локалки видим сайт, но все также как и при обращении из локалки по 192.168.1.2. И что можно прописать для DNATA? Чтобы все пакеты отправленные на внешний адрес шли на eth1 192.168.2.1? Тогда как с точки зрения Joomla будет выглядет LiveSite (Реальный адрес), относительно которого работают адреса всех страниц и CSS?
-
danger08
- Сообщения: 715
- ОС: Linux (CentOS, Ubuntu)
Re: Решено: Маршрутизация
А как вы тогда делали этот самый проброс на модеме, не представляя как он работает?
Можете у себя везде в hosts прописать "192.168.2.1 ВнешнийАдресСайта", а можно поднять DNS-сервер и сделать там зону "ВнешнийАдресСайта".
И все, локальные клиенты видят "ВнешнийАдресСайта" как локальный (не ходят за ним через модем и прочие дебри), а клиенты извне не используют ваш внутренний DNS-сервер - для них "ВнешнийАдресСайта" - это ваш модем, который перебрасывает их на HTTP-сервер в вашей локалке.
Если в вашей Joomla LiveSite (Реальный адрес) является "ВнешнийАдресСайта" (т.е. например yourcompany.ru), то проблем не возникнет, потому что в HTTP-заголовках везде будут присутствовать нужное имя хоста - yourcompany.ru, и при обращении с локалки, и при обращении извне.
Блогосайт - http://www.fateyev.com
-
Dzam
- Сообщения: 56
- ОС: Kubuntu 9.10, ArchLinux
Re: Решено: Маршрутизация
Можете у себя везде в hosts прописать "192.168.2.1 ВнешнийАдресСайта", а можно поднять DNS-сервер и сделать там зону "ВнешнийАдресСайта".
"Везде" это означает на всех компах локальной сети?
И где можно про DNS прочитать в разрезе моих задач? Или может вы подскажите как это организовать? если не трудно/ хотя бы в общих чертах/
-
danger08
- Сообщения: 715
- ОС: Linux (CentOS, Ubuntu)
Re: Решено: Маршрутизация
да, на всех компах, с которых хотите иметь доступ к "ВнешнийАдресСайта" как к внутреннему ресурсу 192.168.2.1.
а можете автоматизировать эту задачу с hosts, и поднять в локальной сети DNS-сервер с зоной "ВнешнийАдресСайта", и назначить его для клиентов локальной сети (при этом прописать для него родительскими серверами те, которые у вас сейчас назначены в DNS).
Да любой мануал на тему, "поднимаем свой DNS-сервер", и поиском по форуму.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
-
Dzam
- Сообщения: 56
- ОС: Kubuntu 9.10, ArchLinux
Re: Решено: Маршрутизация
Вообщем все решилось очень просто: 
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.3 -j MASQUERADE
Все кто идет с 192.168.2.3 (Наверно просят инет) попадают на eth1 (Как раз туда куда надо)
sudo iptables -t nat -A PREROUTING -i eth0 -d 90.151.61.181 -j DNAT --to 192.168.1.2
Все кто приходит с eth0 (локальная сеть) и пытаются попасть на 90.151.61.181 идут на.... на 192.168.1.2 (это локальный адрес сервера)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.3 -j MASQUERADE
Все кто идет с 192.168.2.3 (Наверно просят инет) попадают на eth1 (Как раз туда куда надо)
sudo iptables -t nat -A PREROUTING -i eth0 -d 90.151.61.181 -j DNAT --to 192.168.1.2
Все кто приходит с eth0 (локальная сеть) и пытаются попасть на 90.151.61.181 идут на.... на 192.168.1.2 (это локальный адрес сервера)