У меня BIND DNS-сервер настроен с двумя представлениями. оба имеют различный набор данных зоны. когда конечный пользователь запрашивает DNS-сервер, мне нужно динамически маршрутизировать и изменять его запрос в соответствии с его потребностями. в качестве примера, если пользователь типа example.com, мне нужно, чтобы он дал ответ DNS 1.2.3.4, если пользователь хочет обратиться к другой службе, и я должен дать ему ответ DNS 4.3.2.1 для того же example.com.

Afaik единственный способ сделать это, используя сопоставление исходного IP-адреса пользователя и маршрутизацию трафика DNS в соответствии с этим. для настройки я установил два виртуальных интерфейса с частным IP-адресом и настроил представления привязки, чтобы они соответствовали этим внутренним IP-адресам, используя опцию match client

view "VIEW1" {
    match-clients { 192.168.10.20; };
    include "/etc/zones2.conf";
};

view "VIEW2" {
    match-clients { 192.168.10.30; };
    include "/etc/zones3.conf";
};

Мне нужно достичь таких результатов

scenario 1 --> example.com --> SNAT to 10.20 -->  response (1.2.3.4) --> send back to client 
scenario 2 --> example.com --> SNAT to 10.30 -->  response (4.3.2.1) --> send back to client 

Мне нужно изменить адрес источника входящего пакета на этот частный IP-адрес и запрос с использованием bind DNS в разных представлениях. и отправить результат DNS обратно клиенту. это можно сделать с ipsets, iptables и iproute? если да, как я могу этого добиться?

0