Всем привет!
Столкнулся с небольшой проблемой, и в данный момент в небольшом замешательстве. Суть проблемы такова:
Имеется DNS сервер с двумя интерфейсами: 10.0.0.0 и 192.168.0.0.
И две сети, в которых соответственно находятся компьютеры 10.0.0.0 и 192.168.0.0.
На некоторые А записи соответственно есть два IP из 10-й и 192-й сети.
На DNS сервере включена опция netmask ordering, то есть DNS сервер смотрит из какой сети пришёл запрос, и выдает список А записей в нужном порядке, то есть если запрос пришёл из сети 192 - то первая запись 192. Если из сети 10 - то первая запись 10.
Пример:
> it
DNS: it.domain.local
Address: 192.168.0.241
DNS : it.domain.local
Addresses: 192.168.0.45
10.0.0.45
Но! В 192 сети компьютеры почему то выбирают первым 10-й IP шник при пинге.
Причем шары и сетевые приложения работают, если запрашивать вебсервис, который крутится на этих серверах, есть задержка секунд 30, потом сайт открывается. Если прописать в хостс - открывается моментально.
Чистить кэш DNS пробовал, даже больше- отключал службу DNS вообще (то есть без кэша).
Хочу понять - почему происходит такая фигня? Шары открываются, а пинги и обращение по имени к веб сервису тормозит.... Реально не понимаю даже куда копать..
Какая служба при ping выбирает нужный IP адрес из списка, отданного DNS?
P.S. Попробовал удалить из DNS запись 10-й сети - работает отлично. Добавляю 10-й адрес - клиентский компьютер выбирает его ((
Методом научного тыка выявлено - клиент почему то выбирает 10-е IP, хотя сам находится в 192-й подсети, и DNS выдает первыми 192-е IP. Что то тут нечисто...
Если DNS - bind и управляется вручную, то можно использовать в конфигах
view "net1"
{
match-clients { our_net1; };
...}
view "net2"
{
match-clients { our_net1; };
...}
DNS имя и так одно, IP разные. Маршрутизацию может и включу, в данный момент уже вопрос принципа. Методом научного тыка выявлено - клиент почему то выбирает 10-е IP, хотя сам находится в 192-й подсети, и DNS выдает первыми 192-е IP. Что то тут нечисто...
Сергей: Нет, SRV записи это понятно, они сделаны для другого. Есть механизм netmask ordering, и он работает. Мне непонятно почему клиент берет не первый IP из выданных DNS сервером, а второй.
Сергей: И опять же, даже если янастрою маршрутизацию, кому то, либо серверам либо пользователям, придётся ходить через чужую сеть. А мне нужно что бы сервера общались между собой по одним интерфейсам, а пользователи по другим.
Иван: Естественно, серверы будут в своей сети, клиенты в своей. В файрволе роутера Вы разрешите клиентам доступ только к нужным (на Ваш взгляд) службам серверов.
Иван: Не надо в целом. По Вашей задаче им нужен доступ к 53 порту UDP DNS-сервера, и к 80 порту TCP HTTP Веб-сервера. Больше они не смогут ничего сделать. Мне кажется, Вы путаете роутер и свич.
Сергей: В том то и дело, что у всех серверов два интерфейса - пользователи обращаются к нужным службам через 192-й, а сервера между собой, для бекапа, служебного трафика и прочего общаются через второй интерфейс - 10-й. Загвоздка только в разрешении имён. Можно конечно добавить на все сервера в хостс, да и удалить из DNS запись, благо серверов немного, но мне интересно с технической точки зрения. Клиенту одается список адресов, и клиент выбирает всегда не тот IP. Я попробовал создать на одну имя по три IP - 3 из 192 и 3 из 10-й. Так вот, DNS всегда возвращает список, в котором первые три 192-е. Но клиент перебирает только 10-е. Хотя у него все настройки - и IP и шлюз и DNS 192-е. Согласитесь, это странно.
Иван: для этого нужно использовать отдельные зоны DNS для подсетей. Даже если имена серверов в обеих зонах будут совпадать, по суффиксам DNS будут выбираться правильные IP-адреса.
Иван: Вы в вопросе написали, что два интерфейса у DNS-сервера, а не у всех серверов. Потом написали, что трафик одной подсети может гулять в другой. Поэтому я сказал про роутеры и свичи.
Иван: не понял. Вы делаете две зоны: clients.company.com (192.168.0.) и servers.company.com (10.0.0.0). Например, server1 с двумя интерфейсами будет иметь имена server1.clients.company.com в первой сети и server1.servers.company.com - во второй. Дальше никакой путаницы.
Сергей: Действительно, но тогда получатся громоздкие имена. И мы все-таки отдалились от цели. Я согласен, что есть много способов моделирования сети. Но самый простой это добавить в хостс серверов нужные IP, и удлить IP из DNS.
Меня же интересует механизм резолвинга DNS на уровне клиентской машины. Почему он выбирает не те IP. Вот в чем вопрос.
Сергей: Да задача вообщем не стоит, ибо как я написал, приложения которые работают с серверами, exchange, 1C, сетевые шары, всё работает. А вот пинг и обращение к веб интерфейсу сервера работают странно. Это то и интересно) А за помощь конечно спасибо))
Иван: Клиент может выбирать ту или иную запись или по собственной логике или как решит библиотека, с которой он собран.
Некоторые "тупые" клиентыт выбирают "первый" IP, который встретили. Причем "первый" из того, что им библиотека посунула.