Как можно выборочно переопределить некоторые записи 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.