Yerel Ana Bilgisayar Adı Çözümlemesi için DNSMasq kullanma


9

Ben ve oda arkadaşlarım için bir ev intraneti oluşturmaya çalışıyorum. Benim fikrim, geçmişte faturalar gibi şeyleri mutfaktaki bir çekmeceden daha erişilebilir bir yerde saklayabileceğimizdir. Her neyse, Apache 2, bir Ahududu Pi üzerinde, LAN'ımda çalışıyor ve eğer kullanırsam IP adresi olarak, Pi'de sunulan sayfalara erişebilirim. Bu projeyi, daireme hizmet sunmak için ağ iletişimi hakkında daha fazla bilgi edinmek için daha fazla yaptığım için, ağımın LAN'ım için ana bilgisayar adı çözümlemesi sağlamanın harika olacağını düşündüm. Bu yüzden 192.168.1.151, tarayıcımı Pi'nin IP adresine yönlendirmek yerine, onu oberon(ana bilgisayar adı) işaret edebilir ve Pi tarafından sunulan web sayfalarını görüntüleyebilirim.

Şimdi bunu yapmak isteyen ilk kişi olmadığımı biliyordum, bu yüzden Google'a başladım. Unix ve Linux'ta da bu soru bana çok yardımcı oldu: Bir makineyi ana bilgisayar adını kullanarak LAN'dan erişilebilir hale getirme . Bu noktada, doğrulanmış cevaptaki her şeyi denedim. hostsDosyayı kullanmayı düşündüm , ancak bu, oda arkadaşlarıma makinelerini yapılandırmasını söylemem gerektiği anlamına geliyordu, ki yapmak istemiyorum. Yönlendiricimdeki Pi için bir DHCP kirası ayırmaya çalıştım (NETGEAR WNR1000v2 (N150 olarak da bilinir)) ve rezervasyon çalışırken, ana bilgisayar adı çözümlemesi yapmıyor. Bu tür beni sinirlendiriyor çünkü yönlendiricime Pi'nin IP'sini ve ana bilgisayar adını söyledim , ancak yine de bu bilgileri LAN'ımdaki istemcilere sunmuyor.

Bu iki yöntem çalışmadığında dnsmasqPi'ye yüklemeye karar verdim . Yapılandırması basit görünüyordu ve yeni bir araç öğrenmekten memnuniyet duyarım. Yükledim ve iyi çalışıyor (görünüyor). Ben can digveya nslookup(I belirlenen Pi'nin takma /etc/hostsiçin oberonve homenetdoğru sonuçları) ve olsun. yahoo.comGoogle'ın 8.8.8.8ve 8.8.4.4yedek sunucuların kurulumunu yaptığım için aynen internet adları için de aynısını yapabilir ve doğru yanıtları alabilirim /etc/dnsmasq.conf. Bunu gör:

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

Not : SERVERis 127.0.0.1: oberonkendi IP adresini kendisi arıyor. Görmeyi umduğum bu. Çıkarsam aynı olur dig oberon @localhost. Bu çıktı nedeniyle, bunun dnsmasqiyi çalıştığını düşünüyorum . Bir sonraki seviyeye getirmek için, LAN'ımdaki tüm istemcilerin oberontarayıcılarına yazabilmelerini ve oberondizin sayfasına yönlendirilmesini istiyorum. Bunun için yönlendiricimi yapılandırmam gerektiğini biliyorum (bu kesinlikle Unix ve Linux bölgesinden uzaklaşıyorsa özür dilerim).

Oldukça aşina olduğum bir Netgear WNR1000v2 ürünüm var. Bağlantı noktası iletmeyi Pi'ye SSH yapabilmem için yapılandırdım ve diğer ayarlarda da dolaştım. Bu projeye başlamadan önce, DNS sunucularımı ISS'imden alıyordum biliyorum, ancak şimdi bu DNS sunucularını öncelikle kullanmak ama 192.168.1.151son bir kontrol olarak kullanmak istiyorum . Bu yüzden yönlendiricimin DNS yapılandırmasını şu şekilde değiştirdim:

Yönlendiricimin yeni DNS yapılandırması.  İlk iki girişin İSS tarafından sağlandığını söylediğimde bana güven

Bu yapılandırma ile, nslookup oberon(Windows) masaüstümde bir sonuç alabilmeyi bekledim 192.168.1.151. Ancak bu gerçekleşmez. Olan şey budur:

C:\Users\me>nslookup oberon
Server:  UnKnown
Address:  fe80::226:f2ff:fefa:bea

*** UnKnown can't find oberon: Non-existent domain

Sıfırlama veya dnsflushingWindows makinemdeki ağ bağdaştırıcısı hiçbir şeyi değiştirmez.

İşte bu yüzden saçımı burada yırtıyorum:

C:\Users\me>nslookup oberon 192.168.1.151
Server:  oberon.lan
Address:  192.168.1.151

Name:    oberon
Address:  192.168.1.151

Açıkçası, dnsmasqgayet iyi çalışıyor. Windows kutumu 192.168.1.151adı çözmek için kullanmamı söylersem oberon, her şey yolunda (alan .lanadı yapılandırmasının bir parçasıydı dnsmasq, bu yüzden orada görmeyi bekledim). Yönlendiricimin Windows 192.168.1.151makineme DNS sorguları yaparken kullanmasını söyleyebilseydim , iyi olmalıyım!

Bana öyle geliyor ki, sorun yönlendiricimde, ancak 192.168.1.151zaten sahip olduğum gibi dahil etmek için DNS sunucularını değiştirmenin ötesinde ne yapacağımı anlayamıyorum . Burada bana kimse yardım edebilir mi? İstenen diğer bilgileri sağlamaya çalışacağım.


Pi'yi ilk DNS sunucusu olarak koymayı deneyin, sonra çalışır mı?
terdon

1
Yönlendirici bunu yapmak için doğru yerdir. Herhangi bir nedenden dolayı yönlendiricinizin Pi için bir ad sunmasını sağlayamazsanız, Pi'de dnsmasq çalıştırmak ve yönlendiricinin Pi'yi DNS sunucusu olarak çalıştırmasını sağlamak. Görünüşe göre sorununuz yönlendiricinizi doğru şekilde yapılandırıyor.
Gilles 'SO- kötü olmayı kes

Yönlendiricideki DNS ayarlarını güncelledikten sonra istemcideki DHCP kirasını yeniden mı yeniliyorsunuz? DNS yapılandırması DHCP kirasında gönderilir, bu nedenle yeni ayarları almak için yeni bir kiralama almak zorundadır. Alternatif bir çözüm olarak, mDNS / zeroconf / avahi'yi de inceleyebilirsiniz.
Patrick

Yanıtlar:


2

Sorununuz bu DNS sunucularının kullanım şeklini yanlış anlamanızda yatıyor, hangi DNS sunucusunun sorgulanacağını seçmek için pencerelerin kullandığı yöntemin ayrıntılarını bilmiyorum ama birincil> ikincil> üçüncül / her zaman /. Ve olmasaydı ve round-robin olsa bile, yine de 3 kez yararsız bir sunucuyu sorgulayacaksınız.

Ne olacak birincil sunucu sorgulanacak. Bu zaman aşımına uğrarsa, bu bir veya iki saniye olabilir, sonraki sunucu sorgulanır. DNS bir "konsensüs" sistemi değildir, eğer uzak sunuculardan biri sorgulanıyorsa, sonuç olarak ana bilgisayar adınızın yetkili bir şekilde OLMADIĞINI, internet DNS sunucusu bakış açısıyla keşfedecektir.

Birincil DNS sunucusu olarak kendi LAN DNS'inize ihtiyacınız vardır. Diğerleri uygun yedekleme sunucuları yapacaktı ama ben sadece bunu tamamen bırakmayı düşünürdüm.

Ayrıca, ters dns'iniz (IP'den adama arama) "hostname.lan" olarak çözümlenir, ancak ileri çözümleme testleriniz yalnızca hostname ile yapılır. Ayrıca bir yerde kurulmuş olan hostname.lan için ileri çözünürlüğe sahip olmalısınız. Bir ana bilgisayar için birçok "adreslenecek ad" ileriye doğru araması olabilse de, IP'nin bir adla geriye doğru araması beklenir, bu da o IP kaydıyla eşleşen bir ada sahiptir. Her zaman kritik değildir ve sadece günlük dosyalarını bazen sızlar, ancak bazı şeyler buna diğer şeylerden daha duyarlıdır.

Ayrıca, tüm çalışmalarını aldıktan sonra yerine koyduğunuz herhangi bir host dosyası bodrumunu kaldırmayı unutmayın (dnsmasq ile alakalı olup olmadığını bilmiyorum, hiç kullanmadım, ISC-BIND adını kullanarak benzer ama daha karmaşık bir yapılandırmaya sahibim kullandığınız diğer sunuculara yönlendirmeyi yapılandırabileceğiniz veya basitçe tam ad çözümlemesini kendi kendine yapan bir DNS sunucusu olarak kullanabilirsiniz - ayarladığım şey budur).

Söylemeye gerek yok, ilk kez söylediğiniz gibi, bu kurulumu yaparken çok yalnızsınız, hemen hemen her makul derecede gelişmiş kurumsal LAN ve çok fazla gelişmiş ev LAN'ları bu tür bir kuruluma sahip olacak.


1
Yardımınız için teşekkürler iain! DNS'nin nasıl bir konsensüs sistemi olmadığı hakkında söylediklerinizi anlıyorum, bu yüzden Pi'yi yönlendiricimdeki birincil DNS sunucusuna ayarladım. Daha sonra Windows makinemdeki DHCP kirasını yeniledim. Ancak, nslookup oberonhala çalışmıyor. Orijinal yazımın metninde bahsetmediğim bir şey, nslookupbaşarısız olduğunda, kullanılan sunucunun bir fe80IPv6 adresi olduğunu söyledi - ki bu, ayrılmış bir bağlantı yerel adresi. Ama bunun DNS için ne anlama geldiğini bilmiyorum. Windows kutum kendisini sorguluyor mu? dnsflushbu davranışı değiştirmez.
c.anna

Ve ne kadar değerli olursa olsun, LAN ana bilgisayar adı çözünürlüğü iOS aygıtlarımda da çalışmıyor. Onlardan henüz bahsetmedim, çünkü Windows ile çok daha içgözlü bir güce sahibim, ancak sorunlarım kesinlikle Windows'tan kaynaklanıyorsa, bu cihazların aynı soruna sahip olmasını beklemezdim.
c.anna

Ayrıca, .lanalanla ilgili endişelerinizi gidermek için dnsmasqbasit ana bilgisayar adlarını otomatik olarak genişletecek şekilde yapılandırdım .lan. Koşunslookup oberon.lan 192.168.1.151Name: oberon.lan Address: 192.168.1.151
c.anna

Acaba işte bir "pencerecilik" olup olmadığını merak ediyorum, ana bilgisayarlarınızı doğrudan üst düzey alan adı ('oberon.') Olarak adlandırmak biraz garip, oberon.lan çok daha mantıklı. Dikkat edilmesi gereken bir şey, alan adı soneklerinin ve 'arama alan adlarının' genellikle onu çözmek için bir ada eklenmesidir, örneğin lan arama alan adlarındaysa "oberon" çözülebilir ve "oberon.lan" olarak bulunabilir. Ancak yukarıdaki sorgular bunun böyle olduğunu göstermiyor gibi görünüyor, kazı özellikle ana bilgisayar adlarında sonlandırma dönemine sahip, ancak test ederken bunun çok farkında olun!
Iain

Birincil dns'i ipconfig /alldüzelttikten sonra, pencereleri yeniden dhcp yapmanız gerekir (bağdaştırıcının sıfırlanması bunu yapmalıdır), daha sonra doğru dns sunucusunun kullanıldığını kontrol edin , eğer doğruysa, temizlemeniz gerekebilir. Ama başka bir şey düşünemiyorum, işe yaramalı.
sourcejedi

1

Belki biraz geç, ancak kablosuz adaptörümde ipv6'yı devre dışı bırakmak hile yaptı.


Olumlu oy: Her zaman iyi bir fikir. Sistem dışarıda çıplak olmadığı ve gerektirmediği sürece. Ve şimdiye kadar (Eylül 2017), varsa, bu kategoriyi karşılayan çok az ev kullanıcısı ekipmanı var.
SDsolar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.