Назад | Перейти на главную страницу

Есть ли способ использовать определенный DNS для определенного домена?

На работе мы используем OpenDNS, и он ошибочно заблокировал irc.freenode.net для вредоносных программ. Как я могу убедиться, что любой запрос для * .freenode.net поступает на 8.8.8.8 и 8.8.4.4 (DNS Google).

Я пробовал делать это, возясь с resolv.conf в Ubuntu, но не смог зайти слишком далеко. Кроме того, есть ли простой способ сделать это для систем Mac и Windows (у меня есть несколько коллег, использующих эти ОС, и они также хотели бы использовать IRC).

Это невозможно сделать с помощью стандартного разрешения DNS, предоставляемого * nix (и Windows AFAIK), для этого вам понадобится собственный DNS-сервер. На * nix dnsmasq - лучший выбор для этого, и вы можете запустить его на каждой рабочей станции или запустить на сервере и настроить все рабочие станции для его использования.

/etc/resolv.conf:

nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/dnsmasq.conf:

server=/freenode.net/8.8.8.8
server=/freenode.net/8.8.4.4

Linux не поддерживает использование доменных DNS-серверов через resolv.conf. Вы можете потенциально обойти это, запустив кеширующий сервер имен (например, BIND или dnsmasq) локально, а затем настроить явные серверы пересылки для каждого домена.

В OS X этот тип настройки относительно прост, используя scutil команда. Обычно эта конфигурация используется для пересылки DNS-запросов для VPN-подключения на DNS-серверы, специфичные для VPN, поэтому вы часто найдете это обсуждение вместе, например, с OpenVPN. Этот документ говорит о scutil команда как делает этоти поиск в Google для openvpn и scutil даст больше результатов.

Насчет винды не уверен. Предположительно, вы могли бы использовать решение локального DNS-сервера для всех трех платформ, если вам это нужно.

В OS X вы можете использовать файлы типа /etc/resolver/example.com с содержимым:

nameserver 172.16.5.5

для пересылки DNS-запросов для * .example.com на 172.16.5.5

http://hints.macworld.com/article.php?story=2004062902195410

Я сделал это в Fedora, установив локальный DNS-сервер.

первая установка привязки:

sudo dnf install bind

шаг 1: добавьте строку в /etc/named.conf (как root):

include "/etc/named/freenode.net.conf";

шаг 2: создайте файл зоны /etc/named/freenode.net.conf (как root):

zone "freenode.net" {
    type forward;
    forwarders { 8.8.8.8; };
};

теперь перезапустите с именем:

sudo service named restart

теперь перенастройте настройки вашей локальной сети, чтобы использовать 127.0.0.1 в качестве DNS-сервера, а не хосты, выделенные DCHP.

Можно использовать пожарная тюрьма Опция --dns для этого. Например:

firejail --dns=8.8.8.8 firefox

Таким образом, DNS-сервер может быть установлен для каждого приложения, а не для домена. Так что при некоторых обстоятельствах это может быть лучшим решением.

Вы можете сделать это в Windows с помощью PowerShell:

Add-DnsClientNrptRule -Namespace "pqr.com" -NameServers "10.0.0.1"

Ссылка: https://docs.microsoft.com/en-us/powershell/module/dnsclient/add-dnsclientnrptrule?view=win10-ps