Можно ли использовать разные DNS-серверы на основе ip или запрошенного имени хоста?

Например:

  • для www.example.com должен использоваться DNS-сервер 8.8.8.8
  • для любого другого запроса DNS-сервер 192.168.1.1

Спасибо! :)

1 ответ1

2

Вы можете настроить свой Mac как локальный сервер пересылки DNS. Вы должны установить bind, настроить как локальный DNS и настроить named.conf (/etc/named.conf).

forward only;
forwarders{
  192.168.1.1;
};
zone "example.com" IN {
type forward;
    forwarders {8.8.8.8;};
};

Другой хакерский способ, который я не проверял:

Если у вас есть два DNS-сервера в вашем /etc/resolve.conf, Mac должен решить, какой DNS лучше для вас использовать, основываясь на маршрутизации (я думаю).

Вы должны назначить свой Mac на две разные сети. Лучше всего иметь два соединения (LAN+WiFi) или два LAN-соединения, или как минимум два шлюза, но вы можете попробовать использовать одно (которое будет более сложным).

Этот пример основан на одном. В основном создайте две сети, такие как:

sudo ifconfig eth0 host 192.168.1.2 netmask 255.255.255.0
sudo ifconfig eth0:0 alias host 192.168.2.2 netmask 255.255.255.0

а затем попробуйте перенаправить DNS-серверы и домены на указанные интерфейсы.

route add -host 192.168.1.1 dev eth0:0
route add -host www.example.com dev eth0:0
route add -host 8.8.8.8 dev eth0:0

Я не знаю, будет ли этот хакерский способ работать на одном интерфейсе, но должен работать на двух.

Если у вас есть два шлюза (даже если это одно и то же устройство), скорее всего, это сработает.

Если этот метод не работает, извините (дайте мне знать). Это должно быть улучшено на основе некоторого практического прохождения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .