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 Adapter
untuk 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 -nl
sangat 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/hosts
atau menambahkan opsi spesifik perintah untuk menghindari melakukan pencarian balik DNS. Jelas, penggunaan /etc/hosts
hanya 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-pc
file 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-pc
file / 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.
sumber
8.8.8.8
dan8.8.4.4
) sebagai gantinya?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
host
ataudig
untuk 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.conf
untuk mempercepat kegagalan.EDIT: Untuk menguji respon resolver coba gunakan
time getent hosts 192.168.1.50
. Ini akan mengembalikan pencarian dari/etc/hosts
file Anda serta DNS. Thehost
dandig
perintah hanya memeriksa DNS. Jika ini kembali tetapi membutuhkan beberapa detik, Anda mungkin ingin mengubah urutanhosts
entri dalam/etc/nsswitch.conf
memindahkan file ke bagian depan daftar.Menyiapkan
dnsmasq
dan menggunakannya sebagai server nama DNS utama Anda/etc/resolve.conf
harus menyelesaikan masalah jika Anda memiliki program yang hanya mengandalkan DNS untuk pencarian nama. Exim harus menggunakan resolver untuk pencarian dasar. Anda akan memerlukan/etc/hosts
file, kecuali Anda dapat menonaktifkan server DHCP pada router Anda, Anda dapat menggunakannyadnsmasq
untuk DHCP.dnsmasq
akan 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
wins
dalam konfigurasi nsswitch Anda. Itu harus cepat, jadi itu bisa berfungsi jika Anda menempatkannya di depandns
dalam entri host.Anda juga dapat melihat menginstal
avahi
utilitas 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 daripadawins
menempatkan dimdns
depandns
dalam konfigurasi nsswitch mungkin tidak cocok.sumber
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_config
file (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
sumber
AS_NO_REVERSE_DNS
opsi untuk Glassfish jadi saya akan memeriksanya.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).
sumber