Saya sedang menyiapkan intranet rumah untuk saya dan teman sekamar saya. Ide saya adalah bahwa kita akan dapat menyimpan hal-hal seperti tagihan utilitas masa lalu di tempat yang lebih mudah diakses daripada laci di dapur dll. Pokoknya, saya memiliki Apache 2 berjalan pada Raspberry Pi, pada LAN saya, dan jika saya menggunakan alamat IP-nya, saya bisa mengakses halaman yang dilayani di Pi. Karena saya melakukan proyek ini lebih banyak untuk belajar tentang jaringan untuk memberikan layanan ke apartemen saya, saya pikir itu akan keren jika jaringan saya dapat memberikan resolusi nama host untuk LAN saya. Jadi, alih-alih mengarahkan browser saya ke 192.168.1.151
, alamat IP Pi, saya bisa mengarahkannya ke oberon
(nama hostnya) dan melihat halaman web yang dilayani oleh Pi.
Sekarang saya tahu saya bukan orang pertama yang ingin melakukan ini, jadi saya mulai dengan Googling. Pertanyaan ini, juga di Unix & Linux, telah sangat membantu saya: Cara membuat mesin dapat diakses dari LAN menggunakan nama hostnya . Pada titik ini, saya sudah mencoba segalanya dalam jawaban yang diverifikasi. Saya berpikir tentang menggunakan hosts
file, tetapi itu berarti saya harus memberitahu teman sekamar saya untuk mengkonfigurasi mesin mereka, yang saya tidak ingin mereka lakukan. Saya mencoba untuk memesan sewa DHCP untuk Pi pada router saya (NETGEAR WNR1000v2 (alias N150)), dan sementara reservasi berhasil, resolusi nama host tidak. Jenis ini membuat saya frustasi karena saya memberi tahu router saya IP dari Pi dan nama hostnya, namun masih tidak memberikan informasi ini kepada klien di LAN saya.
Dengan kedua metode ini tidak berfungsi, saya memutuskan untuk menginstal dnsmasq
pada Pi. Tampaknya mudah dikonfigurasikan dan saya akan senang mempelajari alat baru. Saya menginstal dan menjalankannya dengan baik (tampaknya). Saya bisa dig
atau nslookup
nama panggilan Pi (yang saya tetapkan /etc/hosts
untuk oberon
dan homenet
) dan mendapatkan hasil yang benar. Saya dapat melakukan hal yang sama untuk nama internet seperti yahoo.com
dan mendapatkan jawaban yang benar karena saya mengatur Google 8.8.8.8
dan 8.8.4.4
sebagai server cadangan di /etc/dnsmasq.conf
. Lihat ini:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
Perhatikan bahwa SERVER
is 127.0.0.1
: oberon
sedang mencari alamat IP-nya sendiri. Ini yang saya harapkan. Outputnya sama jika saya lakukan dig oberon @localhost
. Karena hasil ini, saya berpikir itu dnsmasq
berfungsi dengan baik. Jadi untuk membawanya ke tingkat berikutnya, saya ingin semua klien di LAN saya dapat dapat mengetikkan oberon
browser mereka dan dibawa ke oberon
halaman indeks. Untuk ini saya tahu saya perlu mengkonfigurasi router saya (permintaan maaf jika ini jauh dari wilayah Unix & Linux).
Saya memiliki Netgear WNR1000v2 yang cukup saya kenal. Saya telah mengkonfigurasi port forwarding sehingga saya dapat SSH ke dalam Pi, dan saya telah melihat-lihat pengaturan lainnya juga. Saya tahu bahwa sebelum saya memulai proyek ini, saya mendapatkan server DNS dari ISP saya, tetapi sekarang saya ingin menggunakan server DNS tersebut tetapi juga digunakan 192.168.1.151
sebagai cek terakhir. Jadi saya mengubah konfigurasi DNS router saya menjadi sebagai berikut:
Jadi dengan konfigurasi ini, saya diharapkan dapat melakukannya nslookup oberon
di desktop (Windows) saya dan mendapatkan hasilnya 192.168.1.151
. Tetapi ini tidak terjadi. Inilah yang terjadi:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
Menyetel ulang atau dnsflushing
adaptor jaringan pada mesin Windows saya tidak mengubah apa pun.
Sekarang inilah mengapa saya agak merobek rambut saya di sini:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
Jelas, dnsmasq
bekerja dengan baik. Jika saya memberi tahu kotak Windows saya untuk menggunakan 192.168.1.151
untuk menyelesaikan nama oberon
, semuanya baik-baik saja ( .lan
domain adalah bagian dari konfigurasi dnsmasq
, jadi saya berharap melihatnya di sana). Jika saya bisa mendapatkan router saya untuk memberitahu mesin Windows saya untuk digunakan 192.168.1.151
ketika membuat permintaan DNS, saya harus baik!
Jadi sepertinya bagi saya bahwa masalahnya ada di router saya, tapi saya tidak tahu apa yang harus dilakukan selain mengubah server DNS untuk dimasukkan 192.168.1.151
seperti yang sudah saya miliki. Adakah yang bisa membantu saya di sini? Saya akan mencoba memberikan informasi lebih lanjut yang diinginkan.
sumber
Jawaban:
Masalah Anda terletak pada kesalahpahaman Anda tentang cara server DNS tersebut digunakan, saya tidak tahu detail yang tepat dari metode yang digunakan windows untuk memilih server DNS mana yang akan dicari, tetapi saya bertaruh primernya> sekunder> tersier / selalu /. Dan bahkan jika itu bukan dan round-robin, Anda masih akan meminta server 2 yang tidak membantu dari 3 kali.
Apa yang akan terjadi adalah server utama akan ditanyai. Jika itu habis, yang mungkin satu atau dua detik, server berikutnya akan ditanyai. DNS bukanlah sistem "konsensus", jika salah satu server jarak jauh dipertanyakan, pada akhirnya ia akan menemukan hasil bahwa nama host Anda secara resmi TIDAK ada, dari perspektifnya sebagai server DNS internet.
Anda memerlukan LAN dns Anda sendiri sebagai server DNS utama. Yang lain akan membuat server cadangan yang cocok tapi saya akan mempertimbangkan untuk menjatuhkan itu sepenuhnya.
Sebagai catatan, reverse dns (IP to name lookup) Anda memutuskan untuk "hostname.lan" tetapi tes resolusi maju Anda hanya dengan nama host saja. Anda juga harus memiliki resolusi maju untuk hostname.lan yang diatur di suatu tempat. Meskipun ada banyak "nama untuk alamat" pencarian maju untuk host, ada harapan bahwa ada pencarian terbalik IP ke nama, yang pada gilirannya memiliki nama yang cocok dengan catatan IP. Ini tidak selalu penting dan kadang-kadang membuat file log merengek, tetapi beberapa hal lebih sensitif terhadap hal ini daripada hal lain.
Juga, jangan lupa untuk menghapus semua file host host yang telah Anda tempatkan setelah Anda mendapatkan semuanya berfungsi (saya tidak tahu apakah itu relevan dengan dnsmasq, tidak pernah menggunakannya, saya memiliki konfigurasi yang serupa tetapi lebih rumit di tempat menggunakan nama ISC-BIND server, yang dapat Anda konfigurasikan penerusan ke server lain seperti yang Anda gunakan, atau cukup gunakan sebagai server DNS non-penerusan yang melakukan resolusi nama lengkap sendiri - yang mana telah saya atur).
Tidak perlu dikatakan, ketika Anda pertama kali berspekulasi Anda sangat jauh dari sendirian dalam membuat pengaturan ini, hampir setiap LAN perusahaan yang cukup berkembang dan banyak LAN rumah yang lebih maju akan memiliki pengaturan seperti ini.
sumber
nslookup oberon
tetap tidak berfungsi. Satu hal yang tidak saya sebutkan dalam teks posting asli saya adalah ketikanslookup
gagal, dikatakan bahwa server yang digunakan adalahfe80
alamat IPv6 - yang saya tahu adalah alamat tautan-lokal yang dipesan. Tapi saya tidak tahu apa artinya itu untuk DNS. Apakah kotak Windows saya menanyakan sendiri?dnsflush
tidak mengubah perilaku ini..lan
domain, saya mengonfigurasidnsmasq
untuk secara otomatis memperluas nama host sederhana untuk ditambahkan.lan
. Runningnslookup oberon.lan 192.168.1.151
mengembalikan hasil yang diharapkan dariName: oberon.lan Address: 192.168.1.151
ipconfig /all
apakah server dns yang benar sedang digunakan, jika benar Anda mungkin perlu flushdns. Tetapi saya tidak dapat memikirkan hal lain, itu harus bekerja.Mungkin agak terlambat, tetapi menonaktifkan ipv6 pada adaptor nirkabel saya berhasil.
sumber