Знаю, чтоб проблема неграмотная и давно изученная. Но второй день борюсь не могу исправить. Как обычно, есть локальный домен domain.ru и сайт в интернете с таким же именем domain.ru.
Внутреннюю сеть обслуживает Windows 2008R2 DNS сервер.
Сотрудники локальной сети не могут зайти на сайт www.domain.ru, так как их переадресовывает на контролер домена.
Что пробовал:
1) Добавил A-запись www с IP-адресом сайта. Здесь ещё одна проблема. На этом айпишнике у провайдера много сайтов. Соответственно, по прямому ip сайт не открывается. После добавления А-записи ничего не меняется. Всё равно запросы идут на контроллер домена.
2) Пробовал делегировать запись www встроенными средствами DNS с указанием ns-серверов провайдера. Этот вариант вообще не сработал. Сайт не открывается, nslookup не показывал адрес сайта.
3) Пробовал поставить на контроллер домена IIS и сделать переадресацию на www.domain.ru, но после этого, при открытии сайта, все браузеры как сумасшедшие бесконечно редиректятся по адресу domain.ru, то есть в пустое место.
ipconfig /dnsflush перед каждой проверки делал.
Удалось добиться работы сайта, только если добавить ещё одну запись А (как папка верхнего уровня) - А - 89.111.177.122
(как папка верхнего уровня) - А - 192.168.0.1
(как папка верхнего уровня) - А - 192.168.0.2
www - A - 89.111.177.122
Чем это может грозить в работе домена? Сейчас пока внутренние адреса резолвятся верно и доступы есть куда надо. Можно ли так оставить? Ведь, насколько я понимаю, просмотр идёт по-порядку, и значит если он увидит каталог по адресу 192.168.0.1 - он дальше смотреть не будет и никогда не дойдёт до внешнего адреса.
Коллега, я бы Вам рекомендовал сделать так,
1. Чтобы ваш сайт полностью работал с www.
Т.е на сайте не должно быть ни одной ссылки на него же самого без www, например, ваш сайта www.site.ru, любая ссылка на его страницы должна быть вида www.site.ru/link
Если на сайт приходит запрос вида site.ru/link, сразу должно ссылаться на www.site.ru/link
2. Поставить на контроллеры iis и сделать редирект site.ru --->> www.site.ru
3. Во внутреннем DNS (скорее всего он у вас лежит на контроллера) прописать A запись www.site.ru --- ip сервера где сайт
4. На внешнем dns сделать A записи
www.site.ru --- ip сервера, где сайт
site.ru --- ip сервера, где сайт
Если не понятно, могу расписать вам, как это будет работать.
Да, оказалось что в коде страницы сайта установлена переадресация c www на non-www из соображений продвижения сайта. Поэтому все трюки с локальным DNS не помогут.
Будем делать зеркало сайта в локальной сети.
Все решения с DNS - половинчатые. Разворачивать полноценное зеркало сайта на DC - спорное решение.
Я попробовал сам и советую: развернуть на контроллерах домена IIS, создать там сайт domain.ru, настроить на нём перенаправление на www.domain.ru. Если на вашем сайте используется SSL, установить на контроллер домена сертификат для адресов domain.ru и www.domain.ru и указать его в привязках.
Jordan_H, на всех, к которым обращаются пользователи. Если в сети есть такие, которые пользователям не доступны, на них не обязательно :-)
Но за три года я получил новый опыт и теперь посоветую изменить внутреннее имя домена :-) Это сделать не сложно в современных версиях Windows Server.
Говорят, хорошая практика использовать для внутренних ресурсов домены третьего и более глубоких уровней, т.е. если у вас внешний - domain.ru, то внутренний сделайте internal.domain.ru. Я так делать не пробовал, но звучит здраво.
Редирект, который я советовал три года назад, тоже сработает, если на самом сайте не настроен редирект на domain.ru без www как у автора вопроса.