Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Закладки » Web Server за роутером

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Playcom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ситуация такая: Web Server стоит за роутером в локальной сети, его IP 192.168.0.100
Соответственно, когда набираешь адрес сайта www.domain.com, страница не открывается. Открывается только тогда, когда пишешь http://192.168.0.100
Не внутри сети, конечно же сайт открывается по адресу www.domain.com.
Вопрос, можно ли так сделать, чтобы сайт по локалке тоже открывался по адресу www.domain.com?
Спасибо!

Всего записей: 1 | Зарегистр. 24-03-2005 | Отправлено: 16:00 24-03-2005
aut

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
http://linuxportal.ru/forums/index.php/t/16127/
 
" Если теперь обратиться к WEB-серверу из Интернет, то все будет работать прекрасно. Но что же произойдет, если попробовать соединиться с ним из локальной сети? Соединение просто не установится. Давайте посмотрим как маршрутизируются пакеты, идущие из Интернет на наш WEB-сервер. Для простоты изложения примем адрес клиента в Интернет равным $EXT_BOX.  
1. Пакет покидает клиентский узел с адресом $EXT_BOX и направляется на $INET_IP  
 
2. Пакет приходит на наш брандмауэр.  
 
3. Брандмауэр, в соответствии с вышеприведенным правилом, подменяет адрес назначения и передает его дальше, в другие цепочки.  
 
4. Пакет передается на $HTTP_IP.  
 
5. Пакет поступает на HTTP сервер и сервер передает ответ через брандмауэр, если в таблице маршрутизации он обозначен как шлюз для $EXT_BOX. Как правило, он назначается шлюзом по-умолчанию для HTTP сервера.  
 
6. Брандмауэр производит обратную подстановку адреса в пакете, теперь все выглядит так, как будто бы пакет был сформирован на брандмауэре.  
 
7. Пакет передается клиенту $EXT_BOX.  
 
А теперь посмотрим, что произойдет, если запрос посылается с узла, расположенного в той же локальной сети. Для простоты изложения примем адрес клиента в локальной сети равным $LAN_BOX.  
 
1. Пакет покидает $LAN_BOX.  
 
2. Поступает на брандмауэр.  
 
3. Производится подстановка адреса назначения, однако адрес отправителя не подменяется, т.е. исходный адрес остается в пакете без изменения.  
 
4. Пакет покидает брандмауэр и отправляется на HTTP сервер.  
 
5. HTTP сервер, готовясь к отправке ответа, обнаруживает, что клиент находится в локальной сети (поскольку пакет запроса содержал оригинальный IP адрес, который теперь превратился в адрес назначения) и поэтому отправляет пакет непосредственно на $LAN_BOX.  
 
6. Пакет поступает на $LAN_BOX. Клиент "путается", поскольку ответ пришел не с того узла, на который отправлялся запрос. Поэтому клиент "сбрасывает" пакет ответа и продолжает ждать "настоящий" ответ.  
 
Проблема решается довольно просто с помощью SNAT. Ниже приводится правило, которое выполняет эту функцию. Это правило вынуждает HTTP сервер передавать ответы на наш брандмауэр, которые затем будут переданы клиенту.  
iptables -t nat -A POSTROUTING -p tcp --dst $HTTP_IP --dport 80 -j SNAT \
--to-source $LAN_IP  
 
Так как цепочка POSTROUTING обрабатывается самой последней и к этому моменту пакет уже прошел процедуру преобразования DNAT, поэтому критерий строится на базе адреса назначения $HTTP_IP. "

Всего записей: 265 | Зарегистр. 19-07-2004 | Отправлено: 16:11 24-03-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Закладки » Web Server за роутером


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru