Setelah memutakhirkan instalasi 16,04 saya ke 16,10, saya mengalami masalah dengan DNS.
Pertama, saya mendapat masalah beberapa kali ketika terhubung ke WiFi, sementara itu bekerja pada ethernet. Sekarang sepertinya berfungsi pada WiFi juga. Tidak yakin mengapa, dan jika itu terkait dengan masalah yang saya hadapi sekarang:
Saat menghubungkan ke host VPN dengan Cisco Anyconnect VPN , ia menambahkan baris di '/etc/resolv.conf' . Saya mengerti bahwa Ubuntu sekarang menggunakan systemd-resol , dan halaman manual mengatakan bahwa ada tiga mode berbeda untuk menangani /etc/resolv.conf. /Etc/resolv.conf saya bukan symlink, dan tidak mencantumkan 127.0.0.53 sebagai server DNS, jadi sejauh yang saya mengerti systemd-resolved harus "membacanya untuk data konfigurasi DNS". Namun, sepertinya tidak peduli.
menggali
Yang aneh (bagi saya) adalah bahwa dig host.customer.tld
, mengembalikan jawaban yang bagus dengan BAGIAN JAWABAN yang menunjukkan ip dari host yang diminta, dan mengacu pada server dns yang ditambahkan ke /etc/resolv.conf oleh vpn client sebagai SERVER. Ketika koneksi vpn dinonaktifkan, saya tidak mendapat jawaban. Yaitu menggali membaca /etc/resolv.conf .
ping
Browser, di sisi lain, tidak bisa ke /etc/resolv.conf, dan tidak dapat menyelesaikan nama host. Omong-omong, tidak juga ping / curl.
nmcli
Saya menemukan pos terkait , dan mencoba berjalan
nmcli device show <interfacename> | grep IP4.DNS
tetapi tidak mencantumkan dns untuk perangkat cscotun0. (Tidak juga di 16.04.) Juga, nmcli mendaftar server dhcp saya (router saya) sebagai host IP4.DNS untuk koneksi eth / wlan saya. Penggunaan dig @192.168.0.1 xxx
untuk domain publik apa pun berfungsi dengan baik.
konfigurasi
Ada beberapa server DNS lain yang terdaftar di /run/systemd/resolve/resolv.conf saya:
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
Ini tidak dilayani oleh server DHCP saya. file /etc/systemd/resolved.conf hanya berisi baris yang dikomentari, kecuali header bagian:
[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Halaman manual untuk resolved.conf mengatakan itu
DNS = Daftar alamat IPv4 dan IPv6 yang dipisahkan oleh ruang untuk digunakan sebagai server DNS sistem. ... Untuk alasan kompatibilitas, jika pengaturan ini tidak ditentukan, server DNS yang terdaftar di /etc/resolv.conf digunakan sebagai gantinya, jika file itu ada dan server mana pun yang dikonfigurasi di dalamnya. Pengaturan ini default ke daftar kosong.
FallbackDNS = Daftar alamat IPv4 dan IPv6 yang dipisahkan oleh ruang untuk digunakan sebagai server DNS cadangan. Server DNS per-tautan apa pun yang diperoleh dari systemd-networkd.service (8) lebih diutamakan daripada pengaturan ini, seperti halnya server mana pun yang diatur melalui DNS = di atas atau /etc/resolv.conf. Pengaturan ini karenanya hanya digunakan jika tidak ada informasi server DNS lainnya yang diketahui. Jika opsi ini tidak diberikan, daftar server DNS yang dikompilasi digunakan sebagai gantinya.
Sepertinya fallback berakhir di / run/systemd/resolve/resolv.conf dalam kasus saya.
EDIT: Saya tidak yakin apa masalahnya, dan sejujurnya saya masih tidak tahu persis bagaimana ini bekerja, tetapi setidaknya ternyata solusi dalam kasus saya adalah menonaktifkan systemd-resolved
layanan. Saya pikir layanan diperlukan, bahwa itu adalah komponen yang menyediakan layanan DNS untuk semua aplikasi lokal, tetapi ternyata ada sesuatu yang lain di sana melakukan pekerjaan itu.