Після оновлення моєї інсталяції 16.04 до 16.10 у мене виникли проблеми з DNS.
Спочатку у мене виникли проблеми кілька разів під час підключення до WiFi, поки він працював на Ethernet. Тепер, здається, працює і WiFi. Не впевнений, чому, і якщо це якимось чином пов'язане з проблемою, з якою я стикаюся зараз:
Під час підключення до хоста VPN за допомогою VPN Cisco Anyconnect він додає рядок у '/etc/resolv.conf' . Я розумію, що Ubuntu зараз використовує системне рішення , і на сторінці man йдеться про те, що існують три різних режими роботи /etc/resolv.conf. Мій /etc/resolv.conf не є символьним посиланням і не перераховує 127.0.0.53 як DNS-сервер, так що, наскільки я розумію, система, що вирішена, повинна "читати його для даних конфігурації DNS". Однак, здається, це не хвилює.
копати
Дивна річ (для мене) полягає в тому dig host.customer.tld
, що повертає приємну відповідь з РОЗДІЛОМ ВІДПОВІДУ, що показує ip запитуваного хоста, і він посилається на dns-сервер, доданий до /etc/resolv.conf клієнтом vpn як СЕРВЕР. Коли vpn-з'єднання вимкнено, я не отримую відповіді. Тобто копати читає /etc/resolv.conf .
пінг
З іншого боку, браузер не отримує /etc/resolv.conf і не може вирішити ім'я хоста. До речі, ні ping / curl.
nmcli
Я знайшов пов’язаний пост і спробував запустити
nmcli device show <interfacename> | grep IP4.DNS
але в ньому не вказано днів для пристрою cscotun0. (Однак це не відбувається також 16.04.) Також nmcli перелічує мій сервер dhcp (мій маршрутизатор) як хост IP4.DNS для моїх підключень eth / wlan. Використання dig @192.168.0.1 xxx
для будь-якого загальнодоступного домену працює чудово.
конфігурація
У моїй /run/systemd/resolve/resolv.conf є деякі інші сервери DNS:
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844
Вони не обслуговуються моїм сервером DHCP. файл /etc/systemd/ разрешен.conf містить лише коментовані рядки, крім заголовка розділу:
[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Сторінка чоловіка для разрешенной.conf говорить про це
DNS = Список розділених пробілом IPv4 та IPv6 адрес, які використовуються як системні DNS-сервери. ... З причин сумісності, якщо цей параметр не вказаний, замість цього використовуються DNS-сервери, перелічені в /etc/resolv.conf, якщо цей файл існує і в ньому налаштовані будь-які сервери. Цей параметр за замовчуванням пустий список.
FallbackDNS = Список розділених пробілом IPv4 та IPv6 адрес для використання в якості резервних серверів DNS. Будь-які сервери DNS за посиланнями, отримані від systemd-networkd.service (8), мають перевагу над цим параметром, як і будь-які сервери, встановлені через DNS = вище або /etc/resolv.conf. Цей параметр, отже, використовується лише в тому випадку, якщо не відома інша інформація DNS-сервера. Якщо ця опція не задана, замість цього використовується компільований список серверів DNS.
Здається, що в моєму випадку резервний запас закінчується в /run/systemd/resolve/resolv.conf.
EDIT: Я не був певний, у чому проблема, і якщо чесно, я все ще не знаю, як саме це працює, але принаймні виявилося, що рішенням у моєму випадку було відключити systemd-resolved
послугу. Я вважав, що потрібна служба, що саме компонент надає послугу DNS для всіх локальних додатків, але, мабуть, там є щось інше, що виконує цю роботу.