Рейтинг:0

Внутренний DNS с BIND, как по-разному разрешить один IP-адрес?

флаг ye
raj

У меня есть внутренний DNS (он полностью внутренний, т.е. сеть не подключена к Интернету) для группы сетей. Они устроены следующим образом:

  • Каждая сеть имеет свой диапазон адресов 10.x.0.0/16 и собственный домен доменx (это домен верхнего уровня) - например network 10.1.0.0/16 имеет домен1 (все хосты в этой сети имеют DNS-имена какой-то хост.домен1)

  • Для каждой сети/домена хост ns.domainx (10.x.1.1) — это DNS-сервер, который обрабатывает обе зоны пересылки доменx и обратная зона x.10.in-addr.arpa

  • Эти сети не связаны между собой, за исключением специального многосетевого сервера, который имеет подключение ко всем этим сетям (и мой вопрос именно об этом сервере), но он не маршрутизирует пакеты между этими сетями, он может общаться только с каждой из них. их. это по дизайну, каждая сеть предназначена для работы отдельно и автономно.

  • Поэтому DNS-сервер в каждой сети знает только о своем домене; он не знает (и не должен знать) ничего о доменах из других сетей.

  • Однако многосетевой сервер, о котором я упоминал ранее, должен иметь рабочее разрешение DNS для адресов во всех этих сетях. По требованию я ничего не могу трогать ни в одной из сетей, в частности их DNS-серверов. Я могу только изменить конфигурацию многосетевого сервера.

  • Поэтому я настроил BIND на многосетевом сервере, который просто определяет зону. . как «мастер», а файл зоны содержит следующие записи:

    1.10.in-addr.arpa. В NS ns.domain1.
    домен1. В NS ns.domain1.
    нс.домен1. В А 10.1.1.1
    
    2.10.in-addr.arpa. В NS ns.domain2.
    домен2. В NS ns.domain2.
    ns.домен2. В А 10.2.1.1
    
    3.10.in-addr.arpa. В NS ns.domain3.
    домен3. В NS ns.domain3.
    нс.домен3. В А 10.3.1.1
    

    и так далее для всех сетей.

Все работает нормально, но есть одна маленькая проблема.

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

Но в сети 1 есть один конкретный IP-адрес (скажем, 10.1.10.10), что я хочу всегда для разрешения доменного имени - даже если DNS для сети 1 не работает. Поэтому он должен быть разрешен локальным сервером, а не делегирован серверу для сети 1. На самом деле также допустимо, что NXDOMAIN будет возвращен в качестве ответа на запрос для этого адреса (если это проще настроить), но ответ должен быть возвращен немедленно, без попыток связаться с DNS-сервером для сети 1 — задержка, когда этот сервер не работает, — это именно то, чего мы хотим избежать.

И я не знаю, как это сделать.

Добавление записи PTR для 10.10.1.10.in-addr.arpa. к . файл зоны не работает - он вроде бы просто игнорируется, а когда DNS для сети 1 не работает, 10.1.10.10 не решен.

Как сделать, чтобы этот адрес разрешался локально?

vidarlo avatar
флаг ar
Это звучит как проблема XY для меня. Обычный способ справиться с отключением DNS-сервера — использовать несколько DNS-серверов. Кроме того, нет никаких причин, по которым один сервер не может иметь несколько представлений, поэтому изоляцию можно поддерживать только с одним DNS-сервером, обслуживающим несколько сетей.
raj avatar
флаг ye
raj
@vidarlo Я упростил настройку ради этого вопроса - на самом деле обычно для каждой сети есть 3 DNS-сервера. Но **ожидается**, что **все** они могут выйти из строя. Так работает сеть. Единственный адрес, который меня интересует, является «особым» (извините, я не могу раскрывать детали) и, следовательно, должен обрабатываться на уровне многосетевого сервера, даже если все «подчиненные» DNS-серверы не работают.
raj avatar
флаг ye
raj
@vidarlo Кроме того, как я уже писал, ** по замыслу ** каждая сеть независима, поэтому не может быть одного DNS-сервера, обслуживающего несколько сетей. Сети **должны** ничего не знать друг о друге. Многосетевой сервер — это дополнительный уровень, который мы добавили. Его не существует «в поле». Вы можете представить, что целые сети (включая их DNS-серверы) являются сторонними продуктами, которые вы не контролируете и не можете ничего там трогать. Вы управляете только многосетевым сервером.
Рейтинг:0
флаг ye
raj

Я нашел решение. Это было на самом деле просто. Достаточно было добавить 10.10.1.10.in-addr.arpa как еще одна «мастерская» зона для моего named.conf файл, при этом файл зоны названный.пустой т.е. файл по умолчанию, включенный в конфигурацию BIND для обслуживания зоны 0.in-addr.arpa.

Теперь запрос на 10.1.10.10 дает ответ, что адрес не имеет записи PTR, независимо от того, DNS-сервер для 10.1.0.0/16 находится вверху или внизу. Что исключает задержку при разрешении адреса, чего мне достаточно. Конечно, я мог бы определить отдельный файл зоны для этой зоны вместо названный.пустой и добавить в этот файл зоны PTR-запись для @ чтобы IP-адрес действительно разрешался в какое-то доменное имя, но сейчас мне это не нужно.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.