GNU/Linux >> Belajar Linux >  >> Linux

Mengapa /etc/resolv.conf menunjuk ke 127.0.0.53?

Anda mungkin menjalankan systemd-resolved sebagai layanan.

systemd-resolved menghasilkan dua file konfigurasi dengan cepat, untuk penggunaan opsional oleh pustaka klien DNS (seperti pustaka klien BIND DNS di pustaka C):

  • /run/systemd/resolve/stub-resolv.conf memberi tahu pustaka klien DNS untuk mengirim kueri mereka ke 127.0.0.53. Di sinilah systemd-resolved process mendengarkan kueri DNS, yang kemudian diteruskan.
  • /run/systemd/resolve/resolv.conf memberi tahu pustaka klien DNS untuk mengirim kueri mereka ke alamat IP yang systemd-resolved telah memperoleh dengan cepat dari file konfigurasinya dan informasi server DNS yang terkandung dalam penyewaan DHCP. Secara efektif, ini melewati systemd-resolved langkah penerusan, dengan mengorbankan semua systemd-resolved logika untuk membuat keputusan kompleks tentang tujuan penerusan sebenarnya, untuk setiap transaksi tertentu.

Dalam kedua kasus, systemd-resolved mengonfigurasi daftar pencarian sufiks nama domain, sekali lagi diperoleh dengan cepat dari file konfigurasinya dan sewa DHCP (yang diceritakan melalui mekanisme yang berada di luar cakupan jawaban ini).

/etc/resolv.conf secara opsional dapat berupa:

  • tautan simbolis ke salah satu dari ini;
  • tautan simbolis ke statis yang disediakan paket file di /usr/lib/systemd/resolv.conf , yang juga menentukan 127.0.0.53 tetapi tidak ada domain penelusuran yang dihitung dengan cepat;
  • sepenuhnya beberapa file lain.

Kemungkinan Anda memiliki tautan simbolis. Dalam hal ini, hal yang diketahui tentang pengaturan 192.168.1.1, yang (mungkin) diberikan dalam penyewaan DHCP oleh server DHCP di LAN Anda, adalah systemd-resolved , yang meneruskan lalu lintas kueri ke sana seperti yang telah Anda amati. Pustaka klien DNS Anda, dalam program aplikasi Anda, hanya berkomunikasi dengan systemd-resolved .

Ironisnya, meskipun bisa karena Anda belum menangkap lalu lintas antarmuka loopback ke/dari 127.0.0.53 dengan benar, kemungkinan besar Anda tidak melihatnya karena systemd-resolved juga (opsional) melewati Klien DNS BIND di pustaka C Anda dan tidak menghasilkan lalu lintas seperti itu untuk direkam.

Ada modul NSS yang dilengkapi dengan systemd-resolved , bernama nss-resolve , itu adalah plugin untuk pustaka C Anda. Sebelumnya, pustaka C Anda akan menggunakan plugin lain bernama nss-dns yang menggunakan Klien DNS BIND untuk membuat kueri menggunakan protokol DNS ke server yang tercantum dalam /etc/resolv.conf , menerapkan sufiks domain yang tercantum di dalamnya.

nss-resolve terdaftar di depan dari nss-dns di /etc/nsswitch.conf Anda file, menyebabkan pustaka C Anda tidak menggunakan Klien DNS BIND, atau protokol DNS, untuk melakukan pencarian nama → alamat sama sekali. Sebagai gantinya, nss-resolve berbicara protokol non-standar dan istimewa melalui Bus Desktop (seluruh sistem) ke systemd-resolved , yang lagi-lagi membuat kueri backend 192.168.1.1 atau apa pun yang dikatakan oleh file konfigurasi dan sewa DHCP Anda.

Untuk mencegat itu Anda harus memantau lalu lintas Bus Desktop dengan dbus-monitor atau alat semacam itu. Ini bahkan bukan lalu lintas IP, apalagi lalu lintas IP melalui antarmuka jaringan loopback. karena Bus Desktop dicapai melalui AF_LOCAL soket.

Jika Anda ingin menggunakan server DNS proksi penyelesaian pihak ketiga di 1.1.1.1, atau beberapa alamat IP lainnya, Anda memiliki tiga pilihan:

  • Konfigurasi server DHCP Anda untuk membagikannya alih-alih membagikan 192.168.1.1. systemd-resolved akan mempelajarinya melalui penyewaan DHCP dan menggunakannya.
  • Konfigurasi systemd-resolved melalui mekanisme konfigurasinya sendiri untuk menggunakannya alih-alih apa yang dilihatnya dalam penyewaan DHCP.
  • Buat /etc/resolv.conf Anda sendiri file, file reguler yang sebenarnya alih-alih tautan simbolik, daftarkan 1.1.1.1 di sana dan ingat untuk mematikan nss-resolve sehingga Anda kembali menggunakan nss-dns dan Klien DNS BIND.

systemd-resolved file konfigurasi adalah sejumlah besar file di berbagai direktori yang digabungkan, dan cara mengonfigurasinya untuk pilihan kedua yang disebutkan di atas berada di luar cakupan jawaban ini. Baca resolved.conf (5) halaman manual untuk itu.


Seluruh 127.0.0.0/8 Blok CIDR digunakan untuk perutean loopack. Host Anda tampaknya (atau setidaknya mengira demikian) menjalankan server DNS-nya sendiri pada alamat loopback tertentu.

Karena lalu lintas loopback (umumnya) tidak pernah tersambung, tidak mengherankan jika Anda tidak melihat lalu lintas TCP/53 di alat snipping seperti Wireshark, karena mereka mungkin tidak memantau lalu lintas loopback dengan pengaturan default. Menggunakan alat seperti ss (misalnya ss -plnt | grep ':53' akan menunjukkan kepada Anda proses mana, jika ada, yang mendengarkan pada port TCP tersebut untuk diselidiki lebih lanjut.

Mungkin dirilis adalah bahwa Ubuntu tampaknya menggunakan penyelesai loopback, systemd-resolved dalam rilis yang lebih baru, seperti yang dibahas dalam jawaban ini di AskUbuntu.


Linux
  1. Bagaimana /etc/motd Diperbarui?

  2. Klien OpenVPN Tidak Mendapatkan Informasi Dns?

  3. Mengapa find -exec mv {} ./target/ + tidak berfungsi?

  1. host:penguraian /etc/resolv.conf gagal

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  1. Ke paket Debian mana /etc/nsswitch.conf termasuk?

  2. Mengapa direktori /home, /usr, /var, dll. Semuanya memiliki nomor inode yang sama (2)?

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp