Суть в том, что есть два сетевых сегмента, контроллеры домена сидят в обоих, и на DNS для контроллеров про две записи, а маршрутизация из сегмента в сегмент типа только для избранных.
Но допустим, все это абстрагировано от AD и винды, есть просто два сегмента (подсети условные):
и с вероятностью 50% получаю адрес из чужой сетки, в которую у меня маршрутизации нет (либо у меня нет туда маршрута, либо есть, но ходить туда мне запрещает роутер).
Я читал, что для сайтов так можно делать (две A-записи), и браузер будет брать ту, которую первую достучится, а если не достучится, то тупить до попытки достать следующую в течение некоего таймаута, но это подход на уровне браузера. А как вообще произвольная программа должна обрабатывать такую ситуацию? Наверное, есть какой-то RFC на эту тему?
для сайтов так можно делать (две A-записи), и браузер будет брать ту, которую первую достучится
Можно и не только для сайтов, и больше двух. Честно говоря, не помню стандарты в этой части, но BIND по умолчанию отдает IP в случайном порядке, а клиенты идут на первый по списку (если он недоступен, то все зависит от программы). Можно объяснить BIND'у, что порядок результатов должен быть фиксированным, причем (возвращаясь к твоему случаю) для каждой сети свой. В AD, увы, используется не BIND, но, кажется, MS DNS'у тоже можно соответствующим образом дать по мозгам.
2) Применительно к BIND раздача разных результатов разным клиентам в зависимости от того, откуда клиент пришел, называется «split horizon». У MS название другое (не помню его), суть та же.
Я читал, что для сайтов так можно делать (две A-записи), и браузер будет брать ту, которую первую достучится
Браузер будет брать с вероятностью 50% ту или иную А-запись, и если один из IP ляжет, то с вероятностью 50% страница будет недоступна. Это поведение bind9 по-умолчанию.
Я не большой спец в этом аспекте работы bind9, не было таких задач, но, как я уже писал выше, это алгоритм работы по-умолчанию. Учитывая, что изменения, сделанные в мастер-зоне расходятся по миру до двух суток, то вероятно, при несанкционированном падении одного IP, яндекс должен лежать в 12.5% случаев. Скорее всего за пару дней до проведения профилактических работ они убирают А-запись ноды, которая будет снята с эксплуатации.
Короче, по сабжу: «по уму» - это настраивать какой бы то ни было днс так, чтобы ни одна машина не видела адреса, на который она не сможет перейти. Так?
У сервиса DNS большие таймауты между обновлениями записей между клиентом и сервером (Хотя можно поидее TTL подкрутить). Лучше CARP заюзать, я вот UCARP пробовал в свое время в связке с HAST получался файловый кластер :)
Просто тогда это точно все придется поддерживать тому, чья инициатива.. Сейчас я написал админу AD письмо со ссылкой на статью про subnet prioritization на сайте MS, предложил включить у нас эту фичу.