16.10 không giải quyết được DNS


34

Sau khi nâng cấp cài đặt 16.04 lên 16.10, tôi gặp sự cố với DNS.

Đầu tiên tôi gặp vấn đề một vài lần khi kết nối với WiFi, trong khi nó hoạt động trên ethernet. Bây giờ nó dường như cũng hoạt động trên WiFi. Không chắc chắn tại sao, và nếu nó liên quan đến vấn đề tôi gặp phải bây giờ:

Khi kết nối với máy chủ VPN bằng Cisco Anyconnect VPN , nó sẽ thêm một dòng trong '/etc/resolv.conf' . Tôi hiểu rằng Ubuntu hiện đang sử dụng phân giải systemd và trang man nói rằng có ba chế độ khác nhau để xử lý /etc/resolv.conf. /Etc/resolv.conf của tôi không phải là một liên kết tượng trưng và không liệt kê 127.0.0.53 dưới dạng máy chủ DNS, theo như tôi hiểu hệ thống đã phân giải nên "đọc nó cho dữ liệu cấu hình DNS". Tuy nhiên, nó dường như không quan tâm đến nó.

đào

Điều kỳ lạ (đối với tôi) là dig host.customer.tld, trả về một câu trả lời hay với PHẦN TRẢ LỜI hiển thị ip của máy chủ được yêu cầu và nó đề cập đến máy chủ dns được thêm vào /etc/resolv.conf bởi vpn client là SERVER. Khi kết nối vpn bị vô hiệu hóa tôi không nhận được câu trả lời. Tức là đọc /etc/resolv.conf .

ping

Mặt khác, trình duyệt không truy cập /etc/resolv.conf và không thể giải quyết tên máy chủ. Nhân tiện, không phải là ping / curl.

bước sóng

Tôi tìm thấy một bài viết liên quan , và đã thử chạy

nmcli device show <interfacename> | grep IP4.DNS

nhưng nó liệt kê không có dns cho thiết bị cscotun0. (Tuy nhiên, nó cũng không có trong 16.04.) Ngoài ra, nmcli liệt kê máy chủ dhcp của tôi (bộ định tuyến của tôi) dưới dạng máy chủ IP4.DNS cho các kết nối eth / wlan của tôi. Sử dụng dig @192.168.0.1 xxxcho bất kỳ miền công cộng hoạt động tốt.

cấu hình

Có một số máy chủ DNS khác được liệt kê trong /run/systemd/resolve/resolv.conf:

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

Chúng không được phục vụ bởi máy chủ DHCP của tôi. tệp /etc/systemd/resolve.conf chỉ chứa các dòng nhận xét, ngoại trừ phần tiêu đề:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Man page của resolved.conf nói rằng

DNS = Danh sách địa chỉ IPv4 và IPv6 được phân tách bằng dấu cách để sử dụng làm máy chủ DNS hệ thống. ... Vì lý do tương thích, nếu cài đặt này không được chỉ định, các máy chủ DNS được liệt kê trong /etc/resolv.conf được sử dụng thay thế, nếu tệp đó tồn tại và bất kỳ máy chủ nào được định cấu hình trong đó. Cài đặt này mặc định cho danh sách trống.

FallbackDNS = Danh sách các địa chỉ IPv4 và IPv6 được phân tách bằng dấu cách để sử dụng làm máy chủ DNS dự phòng. Bất kỳ máy chủ DNS trên mỗi liên kết nào có được từ systemd-networkd.service (8) đều được ưu tiên so với cài đặt này, cũng như bất kỳ máy chủ nào được đặt qua DNS = ở trên hoặc /etc/resolv.conf. Do đó, cài đặt này chỉ được sử dụng nếu không có thông tin máy chủ DNS nào khác được biết. Nếu tùy chọn này không được cung cấp, thay vào đó , một danh sách các máy chủ DNS được biên dịch sẽ được sử dụng.

Có vẻ như dự phòng kết thúc bằng /run/systemd/resolve/resolv.conf trong trường hợp của tôi.

EDIT: Tôi không chắc vấn đề là gì và thành thật mà nói tôi vẫn không biết chính xác nó hoạt động như thế nào, nhưng ít nhất hóa ra giải pháp trong trường hợp của tôi là vô hiệu hóa systemd-resolveddịch vụ. Tôi nghĩ rằng dịch vụ là bắt buộc, đó là thành phần cung cấp dịch vụ DNS cho tất cả các ứng dụng cục bộ, nhưng rõ ràng có một thứ khác trong đó thực hiện công việc đó.


Bạn có gặp vấn đề với DNS nếu bạn không sử dụng VPN không?
Mark Stosberg


3
Chỉ muốn lưu ý rằng tôi đang gặp vấn đề chính xác với Anyconnect vào ngày 16.10. Kết nối nhiều lần với dịch vụ VPN dường như khắc phục tạm thời, nhưng đến một lúc nào đó, dns không hoạt động trở lại.
jmartinez

2
Tôi có DNS giải quyết các vấn đề tương tự không có trong 16.04. Đề nghị của tôi là bắt đầu bằng cách xóa (sao lưu) /etc/resolv.conf; gỡ cài đặt gói giải quyết; khởi động lại; và sử dụng đào, giải quyết systemd có và không có VPN để xem những gì đang hoạt động hay không.
philcolbourn

Câu trả lời:


15

Tôi gặp vấn đề tương tự, ví dụ như có thêm một dongle wifi USB. Đầu tiên tôi đã tắt dnsmasq trong trình quản lý mạng như được mô tả ở trên và tôi đã dừng dnsmasq (dịch vụ dừng dnsmasq)

Tôi nhận thấy rằng khi giải quyết bị hỏng trong khi kết nối VPN của tôi, bảng định tuyến trông hơi khác (đầu ra của lệnh tuyến đường). Tên của Gateway là DD-WRT trong trường hợp nó không hoạt động và chỉ đơn giản là 'gateway' khi nó hoạt động. Đầu ra của điều này không thay đổi:

nmcli device show wlp1s0 | grep IP4.DNS

Nó tiếp tục hiển thị IP bộ định tuyến của tôi. Một cách giải quyết để làm cho nó hoạt động được một lúc là khởi động lại systemd-decvd:

sudo service systemd-resolved restart

Vì dnsmasq nằm ngoài phương trình, nên hệ thống phân giải hệ thống là nguyên nhân của vấn đề hoặc bất cứ điều gì thay đổi bảng định tuyến.

Vì vậy, đây là sự khác biệt duy nhất tôi thấy:

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 

mà hoạt động. Và điều này khi nó KHÔNG hoạt động:

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

Và sự khác biệt tên giống nhau trên dòng VPN:

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

Ai biết những gì có thể ảnh hưởng đến bảng định tuyến? Sẽ thật tuyệt nếu chúng ta có thể xác định điều này để báo cáo lỗi có thể được nộp. Tôi đang bị bệnh nặng và mệt mỏi khi phải theo đuổi tất cả các lỗi này, nhưng tôi muốn sửa chúng để người dùng trong tương lai và chúng tôi sẽ hạnh phúc :).

[cập nhật] Có vẻ như dừng giải quyết systemd có thể khắc phục điều này và không ảnh hưởng tiêu cực đến những thứ khác. Bạn có thể thử điều đó và cho nó biết nếu nó phá vỡ mọi thứ. Tôi đã thấy khi chạy systemd-decvd trong gỡ lỗi khi nó bị hỏng:

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 *

Để vô hiệu hóa:

sudo systemctl disable systemd-resolved.service

Tôi đã cập nhật báo cáo Ubuntu với các đề xuất. [/ update] Thêm: Lưu ý: báo cáo lỗi: https://bugs.launchpad.net/ubfox/+source/systemd/+orms/1624317 có bản vá cho 17.04 cho một số vấn đề. Vui lòng kiểm tra báo cáo lỗi và nếu có thể kiểm tra bản vá. Cảm ơn bạn!

[cập nhật]

Vui lòng kiểm tra báo cáo lỗi được đề cập ở trên, vấn đề dường như được giải quyết trong 17.10 và với một lệnh rò rỉ DNS đơn giản cũng có thể bị vô hiệu hóa.

[/ cập nhật]


Cảm ơn báo cáo kỹ lưỡng của bạn! Tôi thấy những thay đổi khác nhau trong bảng định tuyến so với bạn - VPN của tôi dường như thêm rất nhiều tuyến đường, một cách linh hoạt khi chúng đang được sử dụng, tôi nghi ngờ. Tuy nhiên, vô hiệu hóa giải quyết systemd cũng hoạt động rất tốt cho vấn đề của tôi!
aweibell

Tôi nghĩ rằng cuối cùng tên trong bảng định tuyến không thành vấn đề, nó đã được giải quyết theo hệ thống làm rối tung việc giải quyết DNS bằng cách nào đó. Tôi cũng đã phải vô hiệu hóa dịch vụ dnsmasq để ngăn chặn nó bắt đầu nhưng tất cả đều hoạt động. Chúng ta hãy hy vọng ai đó sẽ sửa tập hợp phụ thuộc thích hợp giữa các gói cần thiết để làm cho tất cả hoạt động đúng. Đó là một lỗi khó chịu để giải quyết.
Vincent Gerris

Đáng chú ý Tôi đã vật lộn cả ngày với vấn đề này, khởi động lại dịch vụ được giải quyết bằng hệ thống không làm gì cho tôi, nhưng vô hiệu hóa nó hoàn toàn và không còn vấn đề gì nữa!
fd8s0

Chỉ cần nhắc lại, tôi đã gặp sự cố mạng trong vài ngày kể từ khi nâng cấp lên 17.04 từ 16.10. Tôi đã thử hầu hết các câu trả lời ở đây, hầu hết mọi thứ đều hoạt động trở lại và cuối cùng, vấn đề đã được giải quyết là vô hiệu hóa hệ thống bằng cách sử dụng sudo systemctl disable systemd-resolved.service thiết lập dns đến 8.8.8.8 trong /etc/resolv.conf
Japheth Ongeri - inkalimeva

Dòng đơn giản này đã giải quyết cho tôi: sudo dịch vụ khởi động lại hệ thống đã giải quyết, cảm ơn!
Sergio Abreu

36

Hành vi DNS trong kết nối OpenVPN được cải thiện ngay lập tức khi tôi làm theo đề xuất trên ubuntuforums:

  1. Mở /etc/NetworkManager/NetworkManager.conftrong một trình soạn thảo với quyền root.
  2. Xóa (hoặc nhận xét bằng hàm băm #) dòng đọcdns=dnsmasq
  3. Khởi động lại Trình quản lý mạng qua sudo service NetworkManager restart

Cảm ơn. Đã thử điều này ngay bây giờ, nhưng nó không hoạt động. Trên thực tế, DNS đang hoạt động tốt, ngoại trừ khi tôi khởi động máy khách VPN của Cisco, nó thay thế symlink /etc/resolve.conf bằng một tệp văn bản thuần túy.
aweibell

1
Khắc phục sự cố này có hiệu quả với tôi, tôi gặp sự cố DNS với OpenVPN. Sau thay đổi này, /etc/resolve.conf của tôi đã thay đổi. Thật kỳ lạ vì tôi thậm chí không cài đặt dnsmasq.
postfuturist

Điều này có thể làm việc cho các vấn đề với NM và openvpn, nhưng ít nhất nó làm chậm các kết nối. Giống như nó được đoán ở đây .
BairDev

3

Ran vào cùng một vấn đề. Bằng cách nào đó tôi phải cài đặt DNSmasq với một số ứng dụng. Đơn giản chỉ cần loại bỏ dnsmasq đã giải quyết vấn đề cho tôi.

sudo apt-get remove dnsmasq 

Kể từ đó, không còn ngắt kết nối hoặc một số trang web không thể tải nữa (tôi đã gặp sự cố khi tải gmail, tức là tất cả đều bất ngờ không thể kết nối với gmail, mặc dù các trang web khác đã hoạt động).


Khi cố gắng loại bỏ gói cơ sở dnsmasq , aptitude cho tôi biết rằng nó được yêu cầu bởi người quản lý mạngngười hâm mộ Ubuntu , và việc gỡ bỏ nó sẽ dẫn đến rất nhiều gói bổ sung bị xóa ..
aweibell

Bản phân phối và phiên bản nào? Tôi đang dùng Ubuntu 16.10 và không gặp vấn đề gì khi gỡ bỏ nó. Khác tôi sẽ không đăng nó :)
Nitai

Tôi cũng đang dùng Ubuntu 16.10! Lạ thật. 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

Tương tự ở đây với 16.10. Nó muốn loại bỏ tất cả các gói khác quá.
Dave Kincaid

Tôi vừa bị ngắt kết nối vào một ngày khác. Bằng cách nào đó, một ứng dụng phải cài đặt lại dnsmasq. Trong mọi trường hợp, lần này tôi chỉ đơn giản là vô hiệu hóa nó với systemd. Cho đến nay nó không chạy nữa và tôi cũng không bị ngắt kết nối.
Nitai

1

Chỉnh sửa /etc/nsswitch.confvà thay đổi

hosts:          files mdns4_minimal [NOTFOUND=return] dns

đến

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Chỉnh sửa:

Tôi đã có những vấn đề tương tự trong một thời gian khá lâu. Tôi đã có thể giải quyết các tên miền từ vpn nhưng tôi không thể ping hoặc cuộn chúng hoặc sử dụng chúng trong các ứng dụng khác. Sự thay đổi được mô tả ở trên đã giải quyết nó cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.