pfSense overwrite DNS records on BIND DNS server.
Стала необхідність створити резервні - Secondary DNS zones інших DNS серверів котрі працюють у віртуальному середовищі. У випадку коли проводяться операції з віртуальним середовищами до DNS сервери не відповідають. Реалізував secondary DNS zones за допомогою BIND DNS server у pfSense.
Але для ефектного використання мережевих сервісів котрі працюють як на зовнішньому інтерфейсі так і у внутрішній мережі є необхідність перевизначати значення DNS записів для різних локальних підмереж.
Так наприклад запис era.lexxai.pp.ua має IP адресу xxx.231.86.xxx, з глобальних DNS серверів, а потрібно щоб в локальній мережі для клієнтів підмережі 172.16.0.0/24, DNS запис era.lexxai.pp.ua мав IP адресу 10.250.10.15.
Згідно з публікацією: Overriding DNS for fun and profit.
Додаємо зону “rpz” де додаємо всі DNS записи які треба перевизначити.

Зона DNS “rpz” визначення зони “net172”

Зона DNS “rpz”додавання записів

BIND DNS ACLs “net172” , 172.16.1.0/24

Загальні налаштування BIND DNS сервера

Розширенні налаштування BIND DNS сервера, в custom options визначаємо response-policy {zone “rpz”;};.

Або можемо не робити запис в розширених налаштування BIND DNS, а відмітити безпосередньо опцію “Response Policy Zone”в зоні “rpz”
Тестуємо з використанням локального DNS сервера в мережі - pfSense.
$ host -a era.lexxai.pp.ua
Trying "era.lexxai.pp.ua"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18328
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;era.lexxai.pp.ua. IN ANY
;; ANSWER SECTION:
era.lexxai.pp.ua. 5 IN A 10.250.10.15
;; AUTHORITY SECTION:
rpz. 43200 IN NS localhost.
Тестуємо з використанням віддаленого DNS сервера
$host era.lexxai.pp.ua 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:
era.lexxai.pp.ua has address xxx.231.86.xxx

