Как можно выборочно переопределить некоторые записи A на Bind DNS-сервере?

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

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

То есть: мы хотим, чтобы "support.abcd.com" разрешался локально, но все остальное переходило на реальный сайт. Это позволило бы нам спроектировать / продемонстрировать полностью функционирующий сайт только с текущей работой на месте.

У нас есть внутренний DNS-сервер BIND (9.9.5.dfsg-3).

Что мой файл зоны должен искать для "abcd.com" на основе приведенного выше примера?

Изменить: это будет работать?

          IN ns1
abcd.com. IN NS ns1
support.abcd.com. IN A 192.168.1.1
faq.abcd.com.     IN A 192.168.1.1
*.abcd.com.       IN NS abcd.com     <- External?

2 ответа

Решение

Если все это связано с переопределением запросов hostname->ip, то, вероятно, проще всего настроить и управлять (особенно если у вас быстро меняющиеся требования) разработчикам просто переопределить обычное разрешение, добавив соответствующие имена в свои локальные имена. файлы хостов и оставить DNS в покое.

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

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

options {
  ...
  response-policy { zone "development-overrides"; };
};

...

zone "development-overrides" {type master; file "master/development-overrides"; allow-query {none;}; };

Ссылочный файл зоны имеет нормальный синтаксис основного файла, но семантика специфична для RPZ (ознакомьтесь с документацией по RPZ!):

$TTL 1H
@                       SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
                        NS  LOCALHOST.

support.example.com     A   192.168.1.1
faq.example.com         A   192.168.1.1

Либо измените файл hosts на компьютерах разработчиков (/etc/hosts в UNIX/Linux и C:\windows\system32\drivers\etc\hosts в окнах) или используйте настройки просмотра в DNS, вы определяете ACL с подсетями, которые должны быть "подделаны", и используете "match-клиентов" внутри представления, чтобы соответствовать только этим клиентам.

Что касается вашего примера, это поле CNAME, а не поле NS.

Другие вопросы по тегам