Содержание

Настройка DNS в различных операционных системах

Для корректного разрешения в системе доменных имен, необходимо прописать в ней адреса DNS-серверов. В различных ОС это делается по-разному. Ниже приведены примеры с указанием публичных серверов ALFIS.

Системы c systemd-resolved

Этот способ подойдет для Ubuntu 15.10+, Mint 18.0+ и других дистрибутивов на базе Debian версии 8 и выше, а так же, дистрибутивов, в которых systemd установлен по-умолчанию (RHEL 7+, CentOS 7+, Fedora 15+ и др.).

В файл /etc/systemd/resolved.conf нужно прописать следующее:

[Resolve]
DNS=302:db60::53 300:6223::53 302:7991::53 300:170::53
Domains=~.

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

в отдельных случаях можно отключить директиву

DNSStubListener=no

Далее нужно выполнить перезапуск службы systemd-resolved:

sudo systemctl restart systemd-resolved

Системы без systemd

Способ подойдет для систем, где для конфигурирования основного системного резолвера используется файл /etc/resolv.conf (Slackware, Debian и др.).

В файл /etc/resolv.conf нужно прописать следующее:

/etc/resolv.conf
nameserver 302:db60::53  
nameserver 300:6223::53 
nameserver 302:7991::53
nameserver 300:170::53

Выборка DNS осуществляется с верхнего в списке.
На случай отключения пира Yggdrasil, можно добавить аварийный CloudFlare и переключаться на него по тайм-ауту 5 секунд:

/etc/resolv.conf
nameserver 301:5eb5:f061:678e::53
nameserver 1.1.1.1
options timeout:5

Дополнительные опции resolv.conf описаны в документации.

Примечание: в некоторых случаях может потребоваться отключить для NetworkManager управление резолвером (если NetworkManager присутствует в системе):
В файле /etc/NetworkManager/NetworkManager.conf, в секции [main] добавляется строка:

dns=none

После этого внесенные изменения в /etc/resolv.conf не будут перезаписываться при перезагрузке (перезапуске NetworkManager).

dhcp/resolvconf

Если в системе используется динамическая конфигурация dhcp/resolvconf, следует обратить внимание на файл /etc/dhcp/dhclient.conf и закомментировать строки:

# domain-name, domain-name-servers, domain-search, host-name,
# dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,

Затем, добавить соответствующие nameserver в /etc/resolvconf/resolv.conf.d/base и перезагрузить настройки:

resolvconf -u

Проверить результат можно командой dig, в результирующем файле /etc/resolv.conf необходимый сервер должен быть расположен в начале списка.

Windows

Щёлкаем ПКМ по иконке «Сеть» в системном трее, выбираем «Центр управления сетями и общим доступом». В открывшемся окне нажимаем «Изменение параметров адаптера», щёлкаем ПКМ на адаптере Yggdrasil, выбираем «Свойства», в открывшемся окне выделяем «Протокол Интернета версии 6», нажимаем кнопку «Свойства», в поле «Предпочитаемый DNS-сервер» прописываем: 302:db60::53, в поле «Альтернативный DNS-сервер» прописываем 300:6223::53, нажимаем ОК во всех окнах, где есть эта кнопка.

Так же, в Windows настроить DNS можно из командной строки:

netsh interface ip set dns name="Имя подключения" static 302:db60::53
netsh interface ip set dns name="Имя подключения" 300:6223::53 index=2

Можно использовать такой VB-скрипт:

Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "netsh.exe", "interface ip set dns name=""Подключение по локальной сети"" static 302:db60::53", "", "runas", 0
oShell.ShellExecute "netsh.exe", "interface ip add dns name=""Подключение по локальной сети"" 300:6223::53 index=2", "", "runas", 0

'возврат к значениям, устанавливаемым DHCP
'oShell.ShellExecute "netsh.exe", "interface ip set dnsservers name=""Подключение по локальной сети"" source=dhcp", "", "runas", 0

Пример PowerShell-скрипта:

Set-DnsClientServerAddress -InterfaceAlias "Yggdrasil" -ServerAddresses ("302:7991::53", "302:db60::53", "300:6223::53", "324:71e:281a:9ed3::53")

Если Yggdrasil запускается, как системная служба, и вы хотите прописать DNS на адаптер Yggdrasil, то с помощью планировщика Windows можно создать задание, из которого будет запускаться нужный скрипт при активации нужного сетевого подключения. Пример можно посмотреть здесь: How to launch a command on network connection/disconnection?

Очистка кэша DNS

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

Linux c systemd-resolved:

sudo systemd-resolve --flush-caches

Windows:

ipconfig /flushdns

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

Подробнее об этом можно почитать здесь или здесь.