16.10 не вдалося вирішити DNS


34

Після оновлення моєї інсталяції 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 для всіх локальних додатків, але, мабуть, там є щось інше, що виконує цю роботу.


У вас є проблема з DNS, якщо ви не використовуєте VPN?
Марк Стосберг

Ви спробували це рішення для проблем AnyConnect 16.04, яке може застосовуватися?
Марк Стосберг

3
Просто хотів зазначити, що я стикаюся з абсолютно тими ж проблемами з Anyconnect 16.10. Підключення до служби VPN кілька разів, схоже, тимчасово виправить це, але в якийсь момент dns більше не працює.
jmartinez

2
У мене є подібні проблеми вирішення проблем DNS, яких не було 16.04. Моя пропозиція - почати з видалення (резервного копіювання) /etc/resolv.conf; видалити пакет Resolconf; перезавантажити; і використовуйте копати, вирішувати систему з VPN і без нього, щоб побачити, що працює чи ні.
philcolbourn

1
Порівняйте цей звіт про помилку: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

Відповіді:


15

У мене виникли подібні проблеми, наприклад, із додаванням додаткового ключа Wi-Fi USB. Спочатку я відключив dnsmasq в networkmanager, як описано вище, і зупинив dnsmasq (зупинка служби dnsmasq)

Я помітив, що при вирішенні розриву під час мого підключення до VPN таблиця маршрутизації виглядає дещо інакше (вихід команди команди). Назва шлюзу - DD-WRT у тому випадку, якщо він не працює, а просто 'шлюз', коли він працює. Вихід цього не змінився:

nmcli device show wlp1s0 | grep IP4.DNS

Він постійно показував IP маршрутизатора. Вирішення проблеми, щоб змусити його працювати деякий час, - це перезапустити systemd-resolutionvd:

sudo service systemd-resolved restart

Оскільки dnsmasq знаходиться поза рівнянням, причиною проблеми є або systemd-резольд, або що-небудь зміна таблиці маршрутизації.

Тож це єдина різниця, яку я бачу:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

яка працює. І це, коли НЕ працює:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

І однакова різниця імен у рядку VPN:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

Хто знає, що може вплинути на таблицю маршрутизації? Було б чудово, якщо ми зможемо визначити це, щоб можна було подати звіт про помилку. Мені стає важко нудно і переслідувати всі ці помилки, але я хотів би їх виправити, щоб майбутні користувачі і ми були щасливі :).

[оновлення] Схоже, зупинення системного вирішення може виправити це, а не негативно вплинути на інші речі. Ви можете спробувати це і повідомити, чи не порушить це щось. Я бачив, коли запускався systemd-resolutionvd у налагодженні, коли він зламався:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

Щоб відключити:

sudo systemctl disable systemd-resolved.service

Я оновив звіт Ubuntu з пропозиціями. [/ update] Додати: Примітка: звіт про помилку: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 має виправлення на 17.04 для деяких проблем. Перевірте звіт про помилку та, якщо можливо, протестуйте виправлення. Дякую!

[оновлення]

Перевірте вищезгаданий звіт про помилку, здається, що проблема вирішена до 17.10, і за допомогою простої команди витік DNS також може бути відключений.

[/ update]


Дякуємо за ваш ретельний звіт! Я бачу різні зміни в таблиці маршрутизації, ніж ви - моє VPN, здається, додає багато маршрутів, динамічно, коли вони використовуються, я підозрюю. Однак відключення системного вирішення дуже добре працювало і для моєї проблеми!
aweibell

Я думаю, що врешті-решт ім'я в таблиці маршрутів не мало значення, це було вирішено систематично, замішавши DNS, вирішивши якось. Я також повинен був відключити службу dnsmasq, щоб запобігти її запуску, але все це працює зараз. Будемо сподіватися, що хтось виправить належний набір залежностей між пакунками, необхідними для того, щоб все працювало належним чином. З таким дратівливим клопом треба боротися.
Вінсент Герріс

Варто зазначити, що я цілий день боровся з цією проблемою, перезапуск системи, вирішеної системою, нічого не зробив для мене, але повністю відключив її і більше не виникало проблем!
fd8s0

Просто ще раз зазначу, що у мене виникли проблеми з мережею протягом декількох днів з моменту оновлення до 17.04 з 16.10. Я спробував тут більшість відповідей, більшість працював на деякий час, а потім питання повторюється знову, що, нарешті, спрацювало, було відключення системного вирішення за допомогою sudo systemctl disable systemd-resolved.service та встановлення dns до 8.8.8.8 в /etc/resolv.conf
Japheth Ongeri - inkalimeva

Цей простий для мене вирішений рядок: перезапуск сервісу sudo service, вирішено, спасибі!
Серхіо Абреу

36

Поведінка DNS під час підключення до OpenVPN покращилась одразу, коли я слідував за пропозицією щодо ubuntuforums:

  1. Відкрити /etc/NetworkManager/NetworkManager.confв редакторі з правами root.
  2. Видаліть (або прокоментуйте хеш #) рядок, який читаєтьсяdns=dnsmasq
  3. Перезавантажте NetworkManager через sudo service NetworkManager restart

Спасибі. Спробував це зараз, але це не вийшло. Власне, DNS працює нормально, за винятком випадків, коли я запускаю клієнт Cisco VPN, який замінює symlink /etc/resolve.conf простим текстовим файлом.
aweibell

1
Це виправлення працювало для мене, у мене виникли проблеми з DNS з OpenVPN. Після цієї зміни мій /etc/resolve.conf змінився. Це дуже дивно, оскільки я навіть не встановив dnsmasq.
постфутурист

Це може працювати для проблем з NM та openvpn, але принаймні це сповільнює з'єднання. Ніби тут здогадується .
BairDev

3

Побіг у тому ж випуску. Я якось повинен був встановити DNSmasq з якоюсь програмою. Просто видалення dnsmasq вирішило проблему для мене.

sudo apt-get remove dnsmasq 

З тих пір більше не відключалися або деякі сайти вже не змогли завантажити (у мене виникла проблема з завантаженням gmail, тобто раптом він не міг підключитися до gmail, хоча інші сайти працювали).


Під час спроби видалити пакет dnsmasq-base , здатність підказує мені, що він потрібен мережевому менеджеру та ubuntu-вентилятору , а його видалення призведе до видалення безлічі додаткових пакетів ..
aweibell

Який дистрибутив та версія? Я перебуваю на Ubuntu 16.10 і не мав проблем з його видаленням. Ще б я не розміщував це :)
Nitai

Я також на Ubuntu 16.10! Дивно. apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
aweibell

Те саме тут з 16.10. Він також хоче видалити всі інші пакунки.
Дейв Кінкейд

Я просто нещодавно знову відключився. Якось один додаток повинен був знову встановити dnsmasq знову. У будь-якому випадку, цього разу я просто відключив його з systemd. Поки що це більше не працює, і я не отримую жодних відключень.
Nitai

1

Відредагуйте /etc/nsswitch.confта змініть

hosts:          files mdns4_minimal [NOTFOUND=return] dns

до

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Редагувати:

У мене виникли ті самі проблеми досить довгий час. Я зміг вирішити доменні імена з vpn, але я не зміг їх ping або згортати або використовувати їх в інших програмах. Описана вище зміна вирішила це для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.