Ubuntu 18.04 - Как я могу игнорировать автономные DNS-серверы? - PullRequest
1 голос
/ 26 января 2020

Мой случай таков:

Находясь в офисе, я использую VPN типа «сеть-сеть», и мои DNS-серверы являются частью офисного домена, доступ к которому возможен только через VPN.

Находясь дома, я могу подключиться к VPN типа «точка-точка», и DNS работает нормально.

Проблема возникает при отсутствии подключения к VPN. Я использую systemd-resolved, и мои первые 2 DNS-сервера являются серверами доменов, в то время как остальные DNS-серверы доступны без VPN.

Каждый запрос отправляется на первые 2 сервера, ожидая их ответ и поскольку они недоступны, каждому запросу потребуется несколько секунд, чтобы добраться до работающего DNS-сервера.

Мой вопрос заключается в том, могу ли я настроить систему на игнорирование недоступных DNS-серверов в течение определенного времени, прежде чем пытаться выполнить их снова

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Ваши настройки DNS также должны быть динамически настроены. Если (по какой-то странной причине) это невозможно, у вас есть два варианта:

  1. Вы можете внести некоторые изменения в свой /etc/resolv.conf, добавив строку

    options timeout:1

    Это заставит внутренний распознаватель ждать макс. 1 секунда для ответа перед попыткой следующего сервера имен (значение по умолчанию 5)

  2. Установить локальный DNS-сервер, предпочтительно облегченный, такой как dnsmasq или unbound . Сконфигурируйте его так, чтобы пересылать запросы для «example.com» на ваши внутренние DNS-серверы, а все остальные запросы на DNS-серверы по умолчанию (publi c). Настройте распознаватель ОС на использование локального DNS-сервера.

0 голосов
/ 28 января 2020

Вы можете использовать обходной путь с самым простым сценарием. Если ваш VPN отключен, просто измените DNS. например, так.

status=$(systemctl is-active --quiet service "your vpn site-to-site.service" && echo "running" );

if [ "$status" != "running" ]
then
     "put your command here to change DNS when VPN is OFF"
else
     "put your command here to change DNS when VPN is ON"
fi

Конечно, вы также можете проверить текущие настройки DNS, чтобы предотвратить ненужные изменения в файле, например, если вы будете использовать cron.

Я могу вам помочь с этим сценарием, но мне нужно сначала увидеть ваш /etc/systemd/resolved.conf. Конечно без оригинального IP

...