PDA

Показать полную графическую версию : Как сопоставить произвольный IP имени


Той Серью
12-05-2018, 15:17
Я знаю, что можно пользоваться DynDNS, а также пользоваться файлами hosts, но хочу разобраться с "нормальным" способом - с помощью корпоративного DNS.


Между удаленными компьютерами создана виртуальная сеть типа Hamachi (192.168.194.0/24). На сервере 2012 (c IP внутри VPN 192.168.194.1) поднята роль DNS-сервера.
Есть также хост (192.168.194.7), к которому я хочу обращаться по доменному имени с других хостов виртуальной сети.
Среди хостов прямой зоны на сервере прописан узел А, скажем, usel1 в domain1s.local , и ему сопоставлен имеющийся IP из диапазона Hamachi-VPN (192.168.194.7). Не знаю, правильно ли так делать. На всякий случай назначен и в зоне обратного просмотра.

На самом сервере узел по имени usel1, и по полному имени usel1.domain1s.local пингуется, и по nslookup определяется. С других хостов сети - нет.

У третьего хоста-клиента (неважно, но пусть 192.168.194.14) в свойствах соединения указан DNS - адрес сервера в пространстве того же Hamachi (192.168.194.1), в качестве второго - 8.8.8.8.

Так вот, если первичным указывать гуглю, а вторичным - адрес в VPN сервера, то нужный нам узел тот самый usel1, впрочем, как и доменное имя сервера domain1s.local) , на этом третьем компьютере не обнаруживаются. Т.е. хост туда не обращается за разрешением имени "usel1.domain1s.local", не обращается к серверу, который про него "знает".
Если же указать первичным DNS адрес сервера в пространстве Hamachi, то интернет вообще пропадает (хотя второй-то, гуглевский DNS указан!).

Я не понимаю такого поведения. Объясните, плиз? Где я не догоняю?

Jula0071
12-05-2018, 16:43
domain1s.local »
не используйте TLD .local, сто раз говорено. Впрочем, это просто замечание, к вашей проблеме не относящееся.
Так вот, если первичным указывать гуглю, а вторичным - адрес в VPN сервера, то нужный нам узел тот самый usel1, впрочем, как и доменное имя сервера domain1s.local) , на этом третьем компьютере не обнаруживаются. »
Естественно, ведь гугль и прочие ничего не знают про ваш локальный днс и отвечает "такого не знаю". А днс сервер используется всегда один, запасные на то и запасные, чтоб ответить, когда основной вообще не отвечает.

Нужно чтобы локальный днс умел не только резольвить локальные имена, но и кэшировать запросы вовне. Я не работаю с виндой, потому дам пример на бинде, где есть чудесная штука view:

acl "lan_hosts" {
192.168.0.0/24;
127.0.0.1;
};

view "internal" {
match-clients { lan_hosts; };
recursion yes;
};

zone "mydomain.tld" {
type master;
file "/etc/bind/mydomain.tld";
};
};

Здесь клиенты, обращающися к зоне mydomain.tld из локалки 192.168.0.0/24, получат записи из этой локальной зоны.
Запросы к другим зонам будут перенаправляться к вышестоящим серверам, в мир.

Желательно иметь как минимум два таких сервера синхронизированных, чтобы в случае падения одного из них работа не встала.

Туториал https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html

Той Серью
12-05-2018, 17:59
А днс сервер используется всегда один, запасные на то и запасные, чтоб ответить, когда основной вообще не отвечает. »Хеть! Спасибо. Я как-то упустил из соображения, что ко второму он вообще не станет обращаться. Думал, что гугля ответит "не знаю" и запрос пойдет ко второму.

Jula0071
12-05-2018, 18:05
Той Серью, наверняка магию с view можно сделать и на виндовом днс, я просто не знаю как.

Той Серью
12-05-2018, 18:15
Форвардинг добавил на сервере, на хосте, откуда стучусь до целевого хоста, nslookup "знает" , где разрешать имя, но пинг до целевого хоста так и не идет. Почему-то DNS-сервер у себя имя разрешает, а вот другим хостам, которые к нему обращаются, не отдает. Чето наверное в DNS-сервере не так настроил, тут надо знатока windows-серверов.

Jula0071
12-05-2018, 18:49
Той Серью, возможно поможет https://blogs.technet.microsoft.com/networking/2015/05/12/split-brain-dns-deployment-using-windows-dns-server-policies/




© OSzone.net 2001-2012