Reverse DNS lookup memperlambat operasi jaringan pada LAN

9

Lingkungan Hidup

Pengaturan LAN saya cukup mendasar:

  • Perute yang terhubung ke modem ISP dan internet
  • PC pengembangan saya terhubung langsung ke router

Router menyediakan DHCP tetapi tidak menjalankan server DNS sendiri. Bahkan, tidak ada server DNS yang di-host di mana saja di LAN saya (pengaturan jaringan rumah khas). Router dikonfigurasikan untuk mengirim server DNS ISP sebagai bagian dari informasi penyewaan DHCP.

Saya mengatur mesin VirtualBox pada PC pengembangan saya dan menginstal Debian Squeeze (6.0.4) di atasnya. Mode jaringan VirtualBox adalah Bridged Adapteruntuk mensimulasikan server mandiri di LAN saya. Menjadi server VirtualBox alih-alih server fisik tidak terlalu penting, tetapi saya menyebutkannya untuk kelengkapan.

Masalah

Setiap kali operasi jaringan mengeksekusi pencarian DNS terbalik dari sebuah LAN IP sebelum dieksekusi, server memiliki penundaan yang lama. Beberapa contoh operasi jaringan yang lambat:

  • Koneksi SSH ke server dari PC dev saya
  • Koneksi ke port admin server Glassfish
  • netstat -l( netstat -nlsangat cepat)
  • Starting MTA: exim4 saat boot membutuhkan waktu yang lama untuk diselesaikan

Beberapa di antaranya memiliki solusi seperti menambahkan Ip dev pc saya ke /etc/hostsatau menambahkan opsi spesifik perintah untuk menghindari melakukan pencarian balik DNS. Jelas, penggunaan /etc/hostshanya berjalan sejauh karena bertentangan dengan DHCP.

Namun, saya tidak dapat membantu tetapi berpikir bahwa saya kehilangan sesuatu. Apakah saya benar - benar perlu mengatur server DNS di suatu tempat di LAN saya? Itu tampak seperti upaya besar dan tidak berguna untuk kebutuhan saya dan saya tidak percaya tidak ada pilihan lain di lingkungan DHCP seperti milik saya.

Saya banyak mencari di internet dan mungkin saya tidak memiliki istilah pencarian yang tepat, tetapi saya tidak dapat menemukan solusinya ...

perbarui 1 mengikuti jawaban BillThor

Menggunakan host (gali memberikan hasil yang sama):

# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143  IN      PTR     stackoverflow.com.

Received 74 bytes from 192.168.1.1#53 in 15 ms

real    0m0.020s
user    0m0.008s
sys     0m0.000s

# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached

real    0m10.004s
user    0m0.004s
sys     0m0.000s

/Etc/resolv.conf saya (secara otomatis dibuat saat instalasi)

nameserver 192.168.1.1

Tuan rumah dan penggalian kembali dengan sangat cepat untuk ip publik tetapi membutuhkan waktu 10 detik untuk IP LAN. Saya kira 10 adalah nilai batas waktu saya saat ini.

pembaruan 2

Dengan dev-pcfile di / etc / hosts:

$ time getent hosts 192.168.1.50
192.168.1.50    dev-pc

real    0m0.001s
user    0m0.000s
sys     0m0.000s

Tanpa dev-pcfile / etc / hosts:

$ time getent hosts 192.168.1.50

real    0m10.012s
user    0m0.004s
sys     0m0.000s

Terlihat lebih dan lebih seperti saya harus menemukan opsi atau parameter program piecewise untuk masing-masing mencoba melakukan reverse DNS lookup! Tidak ada mesin (virtual atau tidak) yang dapat bertindak sebagai server DNS di LAN saya karena mereka tidak selalu menyala. Sayangnya, firmware router tidak termasuk server DNS.

bernie
sumber

Jawaban:

3

Apakah 192.168.1.1 alamat IP router Anda?

nameserver 192.168.1.1 menyarankan router Anda mengiklankan dirinya sebagai server DNS, daripada "mengirim server DNS ISP".

Merek dan model router apa yang Anda miliki? Apakah antarmuka web menampilkan pesan log?

Saya bertanya-tanya apakah router Anda meneruskan permintaan ke server nama ISP Anda, tetapi server nama ISP Anda menolak permintaan itu, karena mereka tidak ingin Anda tahu mesin apa yang 192.168.1.50disebut IP .

Saran:

  • Periksa pengaturan router Anda. Seharusnya menjawab permintaan untuk jaringan pribadi Anda sendiri . Mungkin Anda dapat menambahkan entri host statis di antarmuka web router Anda?
  • Coba instal Avahi di semua sistem di jaringan Anda.
  • Beri tahu router Anda untuk menggunakan Google Public DNS ( 8.8.8.8dan 8.8.4.4) atau OpenDNS
Mikel
sumber
Router saya adalah "NETGEAR Router WNR3500L" @ 192.168.1.1. Log hanya menunjukkan penyewaan dan login DHCP ke antarmuka admin. Anda benar, router mengirim 192.168.1.1 sebagai server dns saat menangani penyewaan DHCP (dikonfirmasi dengan Wireshark). Pada antarmuka admin router, saya menggunakan "Dapatkan Otomatis dari ISP" untuk alamat DNS. Opsi lainnya adalah menentukan secara langsung server DNS dengan IP. Saya kira ini berarti permintaan DNS sebenarnya diteruskan oleh router.
bernie
Ya, saya kira itu meneruskan permintaan DNS. Bagaimana jika Anda mengubahnya untuk menggunakan Google Public DNS ( 8.8.8.8dan 8.8.4.4) sebagai gantinya?
Mikel
Wow ini sebenarnya membuat perbedaan besar! Tampaknya server DNS ini (Google dan OpenDNS ') gagal dengan cepat ketika diberi alamat IP pribadi. Saya akan menjalankan beberapa tes lagi, tapi saya pikir ini menyelesaikan masalah saya!
bernie
Menandai ini sebagai jawaban yang diterima. 3 jawaban sangat membantu, tetapi mengubah server dns memecahkan masalah "pada umumnya".
bernie
4

Pencarian DNS yang gagal harus gagal dengan cepat. Namun, saya biasanya menjalankan dnsmasq yang akan membaca file host dan melayani entri tersebut untuk pencarian maju dan mundur. Itu juga bertindak sebagai server caching DNS untuk mengurangi beban pada server DNS hulu Anda.

Anda mungkin ingin menggunakan perintah hostatau diguntuk melihat pencarian mana yang lambat. Jika Anda dialihkan ke server DNS yang tidak menjalankan DNS, butuh beberapa saat untuk gagal. Anda dapat menyetel batas waktu dan coba lagi /etc/resolv.confuntuk mempercepat kegagalan.

EDIT: Untuk menguji respon resolver coba gunakan time getent hosts 192.168.1.50. Ini akan mengembalikan pencarian dari /etc/hostsfile Anda serta DNS. The hostdan digperintah hanya memeriksa DNS. Jika ini kembali tetapi membutuhkan beberapa detik, Anda mungkin ingin mengubah urutan hostsentri dalam /etc/nsswitch.confmemindahkan file ke bagian depan daftar.

Menyiapkan dnsmasqdan menggunakannya sebagai server nama DNS utama Anda /etc/resolve.confharus menyelesaikan masalah jika Anda memiliki program yang hanya mengandalkan DNS untuk pencarian nama. Exim harus menggunakan resolver untuk pencarian dasar. Anda akan memerlukan /etc/hostsfile, kecuali Anda dapat menonaktifkan server DHCP pada router Anda, Anda dapat menggunakannya dnsmasquntuk DHCP. dnsmasqakan secara otomatis mendaftarkan nama jika disediakan dalam permintaan DHCP yang ditangani.

EDIT2: Jika tidak ada komputer Anda selalu menyala, Anda mungkin ingin melihat menginstal samba dan menggunakan winsdalam konfigurasi nsswitch Anda. Itu harus cepat, jadi itu bisa berfungsi jika Anda menempatkannya di depan dnsdalam entri host.

Anda juga dapat melihat menginstal avahiutilitas yang akan memungkinkan penemuan otomatis pada jaringan tautan-lokal. Saya memilikinya bekerja di sisi IPv6, tetapi tidak mempublikasikan alamat IPv4. Domain default untuk host adalah '.local'. Ini mungkin tidak cocok dalam kasus Anda, tetapi dapat diganti. Tampaknya juga lebih lambat melakukan pencarian daripada winsmenempatkan di mdnsdepan dnsdalam konfigurasi nsswitch mungkin tidak cocok.

BillThor
sumber
Saya pikir dia mengatakan semua (dan hanya) LAN mencari lambat, dan dia mencoba untuk menghindari file host sama sekali.
ckhan
Karena ini hanya server uji (dan yang virtual juga!), Saya tidak bisa mengandalkannya sebagai server DHCP untuk seluruh LAN. Ada klien nirkabel sesekali lain juga yang membutuhkan IP bahkan ketika pc dev saya, dan karena itu server pengujian, tidak berjalan.
bernie
Memperbarui posting saya lagi. Terima kasih atas bantuan Anda sejauh ini.
bernie
3

Jika Anda tidak ingin melakukan pengaturan server DNS lokal (dan berpotensi DHCP) untuk jaringan rumah Anda, Anda dapat memberi tahu layanan jika memungkinkan untuk tidak melakukan pencarian DNS terbalik.

Misalnya, untuk menonaktifkan pencarian reverse dns untuk SSHD, tambahkan berikut ini ke sshd_configfile (atau serupa tergantung pada distro):

UseDNS no

Anda dapat menghapus baris ini dari konfigurasi Exim, meskipun saya tidak jelas apakah ini akan berdampak pada kecepatan startup, itu akan mencegah lookup reverse dns pada menghubungkan klien:

host_lookup = *

Sepertinya Anda dapat mengekspor variabel lingkungan ini untuk pengguna yang memulai proses Glassfish:

export AS_NO_REVERSE_DNS=true

George M.
sumber
Saya berharap saya bisa mengatur server DNS dengan peralatan aktual yang saya miliki, tetapi itu tidak benar-benar layak kecuali saya memuat firmware alternatif pada router. Terima kasih atas opsi konfigurasi; Saya belum tahu tentang AS_NO_REVERSE_DNSopsi untuk Glassfish jadi saya akan memeriksanya.
bernie
1

Punya masalah yang sama setelah berubah dari IP dinamis ke IP statis. My Network dikonfigurasi sekarang: STATIC - NO IPv6 dan tidak bermaksud menggunakan server surat.

Saya menyelesaikan masalah dengan melakukan:

1: jalankan dpkg-konfigurasikan exim4-config

2: Ketika Anda sampai ke pertanyaan pencarian DNS -> Atur pencarian DNS ke minimum (Dial up)

Ini memberi saya kesalahan bahwa pencarian semacam ini tidak akan bekerja dan saran untuk mengedit / etc / hosts - tetapi satu-satunya hal yang saya lakukan dengan / etc / hosts adalah mengomentari garis ip6-allnodes dan ip6-allrouters.

Reboot harus cepat sekarang (bagi saya itu setidaknya).

GERGAJI
sumber