PDA

Показать полную графическую версию : Не доступен вебсервер при обращение из локальной сети


masyaka
03-09-2012, 12:53
Доброго времени суток!
Есть маршрутизатор производителя D-link модель DFL-800 и в локальной сети есть вебсервер. На маршрутизаторе работает NAT (PAT). При обращение к вебсерверу из локальной сети по частному ip адресу допустим 192.168.0.5 вебсервер доступен. При обращении из локальной сети по доменному имени или даже по публичному адресу допустим 215.30.31.32 вебсервер не доступен. Не могу понять почему так происходит. Ниже в общих чертах представлен сценарий по которому происходит обращение к вебсерверу как это представляется мне. Согласно моему сценарию все должно работать :) но на практике то этого не происходит, значит я не правильно представляю себе сценарий.

1.С рабочей станции в локальной сети происходит обращение к вебсерверу по доменному имени example.ru.
2.DNS сервер находящийся у нас в локальной сети возвращает рабочей станции публичный ip адрес допустим 215.30.31.32.
3.С рабочей станции отправляется пакет 192.168.0.30:2560 => 215.30.31.32:80 на маршрутизатор.
4.Этот пакет приходит на маршрутизатор в котором работает NAT(PAT) и соответственно маршрутизатор изменяет заголовок пакета с 192.168.0.30:2560 => 215.30.31.32:80 на 215.30.31.32:2560 => 215.30.31.32:80
5.Т.к. в пакете адрес назначения публичный этот пакет моим маршрутизатором отправляется на шлюз(маршрутизатор) провайдера, а шлюз провайдера отправляет это пакет обратно на мой маршрутизатор и если настроен проброс портов то вебсервер должен быть доступен.
Помогите мне пожалуйста разобраться где я допускаю ошибку?

P.S.
Решение я уже нашел, решение называется nat loopback правда не пойму пока как его настроить, но вопрос мой заключается именно в том почему на мой взгляд все должно работать и без nat loopback а на практике не работает.

IT Shepherd
03-09-2012, 18:01
DNS сервер находящийся у нас в локальной сети возвращает рабочей станции публичный ip адрес допустим 215.30.31.32. »

У вас ДНС-сервер во внутренней сети обслуживает разрешение имен для внешних запросов или этим занимается другой ДНС-сервер?

Помогите мне пожалуйста разобраться где я допускаю ошибку? »

Да вроде уже обсуждалось (http://forum.oszone.net/showthread.php?t=240397&highlight=%EF%EE%F1%F2%F3%F7%E0%F2%FC).

masyaka
04-09-2012, 11:22
У вас ДНС-сервер во внутренней сети обслуживает разрешение имен для внешних запросов или этим занимается другой ДНС-сервер? »
А как определить обслуживает или нет DNS сервер во внутренней сети разрешение имен для внешних запросов?
Да вроде уже обсуждалось. »
Обсуждалось...но только решение ко мне не подходит или имелось в виду что мне надо было продолжить тут тему?
Помогите мне пожалуйста разобраться где я допускаю ошибку? »
Ну а где я допускаю ошибку я кажется разобрался. Это четвертый шаг моего сценария в первом посте.
4.После того как маршрутизаторе NAT(PAT) изменил заголовок пакета он определяет в какую сеть отправлять этот пакет. Так как этот пакет принадлежит той же сети(подсети) что и внешний интерфейс маршрутизатора, то этот пакет не надо отправлять на шлюз провайдера, а необходимо определить mac адрес сетевого адаптера вебсервера. Соответственно маршрутизатор должен разослать широковещательный arp запрос всем кроме себя, но ему на этот запрос никто не ответит, поэтому пакет будет отброшен и соответственно вебсервер будет не доступен для рабочей станции из внутренней сети при обращении к нему по внешнему ip адресу(доменному имени). Вроде так :)
А как тогда работает natloopback? Смотрит совпадает или нет ip адрес источника и ip адрес назначения?

IT Shepherd
04-09-2012, 12:08
А как определить обслуживает или нет DNS сервер во внутренней сети разрешение имен для внешних запросов? »

Например используя информацию с вот такого DNS Watch (http://www.whois-service.ru/dns/) сервиса для вашего доменного имени. Если в качестве авторизованного DNS-сервера указан ваш DNS в локальной сети, значит он обслуживает внешние запросы. Если нет - значит есть "внешний" DNS, который выполняет разрешение имен для внешних клиентов.

Я это спросил к тому, что если в случае, когда внешние запросы обслуживаются внешним DNS-сервером и необходимо, чтобы в локальной сети доступ к web-серверу был по доменному имени, то можно настроить, чтобы внутренний DNS-сервер возвращал локальный IP-адрес web-сервера, а не внешний.

или имелось в виду что мне надо было продолжить тут тему? »
Да нет же :) Я просто привел как пример невозможности стучать в свою дверь снаружи, но вы вроде уже и сами разобрались.




© OSzone.net 2001-2012