Việc tìm kiếm DNS được phân giải hệ thống Ubuntu 17.04 không thành công ngẫu nhiên


38

Tôi đã nâng cấp lên Ubuntu 17.04 và dường như bây giờ có cơ chế phân giải DNS mới được giới thiệu lần đầu tiên trong Ubuntu 16.10.

Tôi hiện đang bị lỗi tra cứu DNS 50%. Mọi cuộc gọi khác đến nslookup đều thất bại, với một nửa số cuộc gọi giải quyết tốt và một nửa đưa ra điều này:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

Theo những gì tôi hiểu, địa chỉ IP của máy chủ DNS hiện được sử dụng để thể hiện phân giải systemd, một loại tìm kiếm meta để tránh các truy vấn DNS chậm hơn (hoặc một cái gì đó ...). Tôi đang thấy hành vi tương tự chính xác trên hai máy tôi đã nâng cấp lên 17.04 trong tuần qua.

Bất kỳ ý tưởng vấn đề là gì ở đây, và cách chính xác để giải quyết nó?

Mọi thứ đã hoạt động tốt trước khi nâng cấp (từ 16.04 hoặc 16.10, tôi không nhớ điều đó, xin lỗi). Tôi nghĩ rằng 17.04 là một bản phát hành LTS nhưng bây giờ tôi thấy rằng tôi đã nhảy súng và nó sẽ không được coi là ổn định cho đến tháng Tư. Vậy ... tôi đây.

Cũng cần lưu ý ... các trình duyệt dường như không có vấn đề gì, nhưng nslookup, ping, git, v.v.


2
Mẹo cho tương lai: Các phiên bản Ubuntu là năm nó sẽ ra mắt .vào tháng nó sẽ được phát hành. (Vì vậy, trong trường hợp của bạn, nó sẽ ở 04/ 17)
timotree

Âm thanh như được giải quyết bằng systemd khi bị chặn trong các bản phân phối cũng gây ra rắc rối cho những người khác .
psychboom

Câu trả lời:


46

Ubuntu 17.04 không thể giải quyết các máy chủ DNS có hỗ trợ DNSSEC kể từ 2017-04-18. Vô hiệu hóa DNSSEC với trình nền này:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Tùy chọn cấu hình lại độ phân giải nếu bạn gặp rắc rối với nó (nói có với "chuẩn bị /etc/resolve.conf để cập nhật động?"):

sudo dpkg-reconfigure resolvconf

Khởi động lại hệ thống đã giải quyết:

sudo systemctl restart systemd-resolved

DNS của bạn sẽ bắt đầu hoạt động. Bạn có thể kiểm tra bằng cách thử systemd-resolve www.google.comvà xem phản hồi.


Cảm ơn bạn đã trả lời- bạn có thể giải thích những gì nó làm?
bertieb

Ubuntu 17.04 không thể (đến đây) giải quyết máy chủ DNS có hỗ trợ DNSSEC. Tôi vô hiệu hóa DNSSEC với daemon này.
Sajad Bahmani

Cảm ơn, bạn có thể chỉnh sửa lời giải thích đó vào câu trả lời của bạn? :)
bertieb

Giải pháp này không hiệu quả với tôi - sau khi cài đặt nó, vẫn bất cứ khi nào tôi thực hiện tra cứu lần đầu tiên, tôi gặp lỗi SERVFAIL, sau một vài lần thử nó thành công và sau đó kết quả được lưu vào bộ nhớ cache.
Guss

1
@SamuelL. liên quan đến tee, đó chỉ là một cách ưa thích để in một cái gì đó và gửi nó vào một tệp cùng một lúc. Thông thường, bạn có thể chuyển hướng đầu ra đến một tệp có> [ký tự lớn hơn], nhưng sau đó bạn sẽ không thấy đầu ra. Tee cho phép nó đi đến cả hai nơi. Resolvconf "cấu hình giải quyết".
psychboom

12

Tôi đã chuyển đổi qua lại giữa quản lý phân giải systemd và thủ công /etc/resolv.conf và chưa tìm thấy cơ chế phân giải DNS systemd nào ổn định.

Rõ ràng có ít nhất một lỗi libnss trong Ubuntu 16.10 và dường như vẫn còn trong 17.04. Có nhiều người gặp sự cố DNS kể từ khi Ubuntu 16.10 bật hệ thống được giải quyết, đây là một phân tích và đây là cách giải quyết của người khác. Không ai trong số họ làm việc cho tôi cho đến khi tôi ghi đè thủ công /etc/resolv.conf bằng máy chủ DNS của google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Đây là một giải pháp hoàn toàn hợp lệ , nếu bạn không cần cấu hình DNS động. Chỉ cần đảm bảo rằng bạn dừng và vô hiệu hóa hệ thống được giải quyết:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Thay đổi thành decveconf không giúp ích gì cho vấn đề của tôi, làm cách nào để quay lại sử dụng giải quyết systemd? (Cảm ơn)
Edward Moffett

1
Hãy thử:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
psychboom

1
Dude, bạn vừa lưu hệ thống ma !! BRAVO
cách mạng

Làm việc tốt trong 18.04
André M. Faria

4

Ubuntu 17.04 và các bản phân phối khác đang bao trùm systemd, bao gồm phân giải systemd, khiến người dùng phải chịu độ phân giải DNS khá nặng tay.

  • Như đã đề cập trong câu trả lời của SjB, hỗ trợ DNSSEC có thể gây ra sự cố.
  • ping phân giải systemd tất cả các trình phân giải DNS để nó có thể sử dụng nhanh nhất. Điều này có thể gây ra vấn đề với VPN, vv trong các môi trường phức tạp hơn.
  • Chứng chỉ máy chủ DNS được xác minh, tôi đã gặp lỗi nếu đồng hồ của tôi bị lệch.

Tôi không nghĩ rằng nó nhất thiết phải là một thay đổi BAD, nó chỉ là RẤT NHIỀU thay đổi. Tôi sẽ cố gắng cập nhật và mở rộng câu trả lời này khi tôi tìm hiểu thêm.


4

Nói một cách đơn giản, bạn chỉ cần có dòng "DNSSEC = no" trong phần [Giải quyết] của /etc/systemd/resolve.conf.

https://bugs.launchpad.net/ubfox/+source/systemd/+orms/1682499/


Cảm ơn các liên kết lỗi. Mặc định sẽ được thay đổi trở lại thành DNSSEC = không trong các bản phát hành cập nhật sắp tới, điều này sẽ khiến vấn đề cụ thể đó biến mất.
psychboom

1

chỉ cần thêm máy chủ tên /etc/systemd/resolve.conf DNS = 194.109.xxx.xxx (trên bộ định tuyến của bạn, máy chủ tên bên ngoài)

systemctl khởi động lại systemd-giải quyết

không cần thay đổi rand từ 3 thành 2, không cần thay đổi cài đặt dnssec thành tắt


Thật không may, điều này một mình không giải quyết được vấn đề "mọi yêu cầu khác không thành công" đối với tôi.
psychboom

Đồng ý với @moodboom, điều này cũng không giải quyết được với tôi.
André M. Faria
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.