Я предполагаю, что должен быть разумный способ решить мою проблему, но я пытаюсь получить совет о том, что лучше всего реализовать.
Я недавно перешел в компанию, занимающуюся веб-дизайном, и нам нужно иметь возможность подделывать записи 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?
Если все это связано только с переопределением поиска по имени хоста-> ip, то, что, вероятно, проще всего настроить и управлять (особенно если у вас быстро меняющиеся требования), чтобы разработчики просто переопределили нормальное разрешение, добавив соответствующие имена в свои локальные хозяева файлы и оставить DNS в покое.
Однако, если вы хотите сделать это с помощью DNS, используя BIND в качестве сервера распознавания, и вам нужно переопределить только определенные имена (а не целые зоны), я считаю, что вам нужно будет использовать Зона политики реагирования (RPZ) функциональность. Возможно, это можно сделать вместе с использованием Просмотры чтобы эти изменения коснулись только определенных клиентов.
Я включил пример, который будет делать то, о чем вы конкретно просите, но просмотрите связанную документацию выше, чтобы узнать все другие варианты того, как вы можете переопределить вещи, и более полные примеры.
options {
...
response-policy { zone "development-overrides"; };
};
...
zone "development-overrides" {type master; file "master/development-overrides"; allow-query {none;}; };
Указанный файл зоны имеет обычный синтаксис главного файла, но семантика специфична для 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
в Windows) или используйте настройки представления в DNS, вы определяете ACL с подсетями, которые должны быть «подделаны», и используете «match-clients» внутри представления для сопоставления только этих клиентов.
В вашем примере это поле CNAME, а не поле NS.