Windows Server DNS'nin belirli ana bilgisayar adlarını çözümlemek için hosts dosyasını kullanma


18

[NOT: Bu sorunun çözümü, başlığın gösterdiği şeyden uzak bir şeyle mükemmeldir.]

Küçük bir sorunla karşılaşıyorum Windows Server 2003 DNS service. Şirketimde, 172.16.0.12şirket intranetime ad çözümlemesi yapmak için Microsoft DNS sunucusu ( ) kullanıyorum (etki alanı adı dev.nlsIP 172.16 ile çözümleniyor . ) Ve ayrıca diğer etki alanı adlarını iletmek için bir DNS iletici olarak yapılandırıldı ( ör. * .google.com, * .sf.net) Internet real DNS servers. Bu dahili DNS sunucusu hiçbir zaman dış dünyadan kullanıcılara hizmet etme eğiliminde değildir.

Ayrıca, şirket güvenlik duvarında her iki şekilde de erişilebilen bir posta sunucusu çalıştırıyoruz ( gerçek bir İnternet etki alanı için gelen postayı sunar @nlscan.com):

  1. 172.16.0.10intranet içinden bağlanarak .
  2. İnternete bağlanarak mail.nlscan.com(çözüldü 202.101.116.9).

Unutmayın 172.16.0.10ve 202.101.116.9aynı fiziksel makine değildir. Bunlardan 202biri, portun 25ve 110intranet adresine port yönlendirme yapan bir güvenlik duvarı makinesidir 172.16.0.10.

Şimdi sorum: Kurumsal LAN içindeki kullanıcılar çözümlemek isterse mail.nlscan.com, bu sorunu çözer 202.101.116.9. Bu doğru ve uygulanabilir, AMA İYİ DEĞİL, çünkü posta trafiği güvenlik duvarı makinesine gider ve sonra seker 172.16.0.10. Umarım internal DNS serveradı yakalayabilir mail.nlscan.comve 172.16.0.10 olarak çözebiliriz. Umarım 172.16.0.12bunu yapmak için "hosts" dosyasına bir girdi yazabilirim . Ancak, Microsoft DNS serverbu "hosts" dosyasını nasıl tanıyabilirim?

Belki intranet kullanıcısının 172.16.0.10posta sunucuma erişmek için neden kullanılmadığını öneriyorsunuz ? Bu rahatsız edici olduğunu söylemek gerekir, bir kullanıcı (çalışan) onun laptop, ofiste gündüz ve evde gece çalışıyor varsayalım. Evdeyken kullanamaz 172.16.0.10.

Etki alanı için ad sunucusu ISS'mizde olduğundan ve nlscan.com altındaki diğer ana bilgisayar adlarını ve alt etki alanlarını çözümlemekten sorumlu olduğu için nlscan.com, şirketimizde bir bölge oluşturmak DNS serveruygun değildir nlscan.com.

[DÜZENLE]

Gibi WesleyDavidönerdi, ben çözümünü izleyin basitçe adında bir bölge yaratma mailserver.nlscan.comve bu bölgede isimsiz A kaydı yerleştirmek . Zaman bunun işe yaradığını kanıtlar.


+1 çünkü tam olarak yaptığım bu. Dahili DNS çözümleyicim mail.example.com'u 192.168'e işaret ediyor ... ancak birincil DNS'im mail.example.com'u herkes için internet IP'sine yönlendiriyor. Bunun olumsuz yanlarını duymak istiyorum.
Cory J

Selam Cory, korkarım gerçeği doğru anlamıyorsun. Joeqwerty'nin daha sonra bu konuda söylediği gibi: hosts dosyası DNS sunucusu bileşeni tarafından değil, DNS istemci çözümleyici bileşeni tarafından kullanılır. Bu nedenle, ana bilgisayarları 172.16.0.12'de düzenlemek Microsoft DNS hizmetine yardımcı olmaz.
Jimm Chen

Jun, başkalarının çözümün ne olduğunu bilmesi için bir cevabı kabul edilmiş olarak işaretleyebilirsiniz. Sevindim senin için çalıştı! =)
Wesley

Yanıtlar:


12

Bu yazının ikinci kısmı yanlış. Web üzerinde okuduğum bazı şeylere dayanarak izlenim altındaydım (web üzerinde ise doğru olmalı!) Windows DNS Sunucusu Hizmeti'nin önbelleğini oluşturma görevlerinin bir kısmının da ana bilgisayar dosyasını yüklemek önbellek ve yerel bölge verileri. Etrafı araştırdım ve bunun kanıtını bulamadım. Teoriyi kendi Server 2008 R2 makinemde test ettim ve hosts dosyasının DNS Sunucusunun Önbelleğini oluşturmak için kullanılmadığını buldum.

Ancak, Massimo'dan biraz daha zarif bir çözümüm olduğuna inanıyorum. Tüm nlscan.com bölgesi için yetkili bir bölge oluşturmak yerine, mailserver.nlscan.com adlı bir bölge oluşturun ve bu bölgeye adsız bir A kaydı yerleştirin. Adsız A kaydı bölgenin kendisiyle aynı ada sahip olur ve istediğiniz IP adresini verebilirsiniz. Nlscan.com ve diğer nlscan.com altındaki diğer tüm alanlar genel DNS tarafından çözümlenecektir.

Bunu kendi Server 2008 R2 DNS sunucumda test ettim ve arkadaşımın web sitesinin (nessus.nl) genel DNS sunucuları aracılığıyla çözülmesini sağladım, ancak belirli alt alan (blog.nessus.nl) bir Apple.com IP adresine çözümlendi . Dene ve bak eğer senin için çalışıyorsa.

Eski, yanlış gönderi başlıyor:

Anlayışım doğruysa (EDIT: ve değil), DNS önbelleği Server 2003 makinesinde oluşturulduğunda, ana bilgisayar dosyasından ve bölge verilerinden girişleri çeker. Yerleştirme 172.16.0.10 mailserver.nlscan.comsenin Server 2003 Makinenin ana dosyasında sorunu çözmek gerekir. Hosts dosyanızı değiştirdikten sonra DNS hizmetlerinizi yeniden başlatın.

Ana bilgisayar dosya girişlerinizi görmek için herhangi bir Windows makinesinde (özellikle, Server 2003 DNS makinenizde) ipconfig / displaydns kullanın. Ayrıca, olumsuz yanıtların istemcilerinizde önbelleğe alındığını unutmayın, bu nedenle her zaman denediğiniz istemcilerde ipconfig / flushdns komutunu çalıştırın. Aksi takdirde, istemcilerinizin neden bir bölge / ana bilgisayar dosyasına girdiğiniz adı çözemediğini merak ettiğinizde, çeşitli sert nesnelere karşı kendinizi kötüye kullanırsınız. =)

Bunu denedin ve başarısız oldun mu?


2
Windows Server 2003'ün DNS olacak değil kullanmak hostsçözmek adlarına dosyayı. Kendi verilerini, ileticileri veya özyinelemeli sorguları ancak kullanacak değil yerel hostsdosyası.
Massimo

@Massimo haklısın! Test ettim ve başarısız oldum. Ancak, önerinizi aldım ve biraz daha zarif olmasını daha da basitleştirdim. Bana ne düşündüğünü söyle.
Wesley

Downvote :-)
Massimo

@Massimo TY. Ve bunu kendim için test etmem için beni teşvik ettiğin için teşekkürler. Yeni bir şey öğrendim. Herzaman eğlenceli. =)
Wesley

1
Neden tekrar öldüğünüzü bilmiyorsanız, düzenli olarak karşılaştığım bir soruna düzgün bir çözüm gibi görünüyor ve tüm (genel) internet bölgesi için gölgelendirme kurmaktan çok daha basit.
Nisan'da Helvick

3

Dahili kullanıcıların kaynaklar için dahili IP alma isteği, harici kullanıcılar ise aynı kaynaklar için harici IP alma yaygındır. Bölünmüş beyin DNS olarak adlandırılır. İnternete bakan bir DNS sunucunuz ve yerel kullanıcılar için başka bir dahili DNS sunucunuz var. Dahili kullanıcılar ağınızda DHCP kullanır ve dahili DNS sunucusunun reklamını yaptığınız DHCP sunucunuzda. Kullanıcılarınız ofisten uzaktayken, DHCP sunucuları onları yalnızca harici bölge hakkında bilgi sahibi olacak bir DNS sunucusuna atayacaktır.

Bölgeyi dahili olarak barındırmadan bölünmüş beyin DNS'sini istiyor gibisiniz. Bölgeyi dahili olarak barındırmanın sorunlu olduğunu öneriyorsunuz çünkü kullanıcıların evden çalışırken dahili IP almasını istemiyorsunuz, ancak mantıklı değil çünkü evde olduklarında IP'lerini farklı bir DHCP sunucusundan alıyorlar dahili DNS sunucunuzun reklamını yapmayacak. Yalnızca harici bölgeniz hakkında bilgi sahibi olacak ve böylece yalnızca harici IP adresleri sağlayacak olan ISS'sinin DNS sunucusunun reklamını yapacak.

Son olarak, bir DNS sunucusundan DNS sunucusundaki hosts dosyasından kayıt sunmasını istemekte başarılı olamayacağınızı sanmıyorum. Bir DNS sunucusu bölge dosyalarından kayıtlar sunar. Bu DNS sunucusundaki yerel ana bilgisayarlar dosyası, girdileri yalnızca o makinedeki aramalar için geçerli olan yerel istemci çözümleme önbelleğine yayar. Bu girişler farklı bir mekanizma olan DNS sunucusu tarafından sunulmaz.

Bölünmüş beyin DNS'sini okuyun - bu durumu ele almanın normal yoludur.


"ama bu mantıklı değil" - üzgünüm, yanlış anladın. Şu anda, posta.nlscan.com'u 202.101.116.9'a doğru bir şekilde çözmek için şirket personelinin evlerinde olmasını istiyorum, ancak evde bir VPN sunucusu kurmadıkça bazıhomt.dev.nls dosyalarını çözmelerini beklemiyorum. Ve bölünmüş beyin DNS'sini işaret ettiğiniz için teşekkür ederiz. Şirket intranetimde mail.nlscan.com adı için sadece bir ayar yapmak istediğim için, bölünmüş beyin DNS'yi kurmak o kadar uygun olmayabilir.
Jimm Chen

2

Wes: Seni kimin öldürdüğünden emin değilim ama hosts dosyasının kullanımını açıklığa kavuşturmak istiyorum: hosts dosyası, DNS sunucusu bileşeni değil, DNS istemci çözümleyici bileşeni tarafından kullanılıyor. DNS sunucusundaki hosts dosyasındaki bir girdi, DNS istemcisi olarak hareket ederken DNS sunucusu tarafından kullanılacaktır. Örneğin, W2K8 DNS sunucumun hosts dosyasında şöyle bir girdi:

1.1.1.1 test.test.com

DNS sunucusunun DNS istemci önbelleğine yüklenir (sunucu önbelleğine değil). DNS sunucumdan test.test.com'a ping işlemi yaparsam, beklendiği gibi 1.1.1.1 değerini döndürür. Daha sonra DNS sunucusunda nslookup çalıştırıp sınama.test.com için sorarsam, DNS sunucusundaki DNS istemcisi bileşeni şimdi DNS sunucusu bileşeninden çözümlenmesini istediği için test.test.com için kaydedilen doğru genel IP adresini döndürür. (diğer DNS istemcilerinin yaptığı gibi). Kafanızı sarmak kafa karıştırıcı bir fikirdir, ancak DNS sunucusu aynı zamanda bir DNS istemcisidir ve DNS istemcisi bileşeni harekete geçirildiğinde, herhangi bir giriş de dahil olmak üzere kendi DNS istemci önbelleğine bakarak diğer DNS istemcilerinin yaptığı gibi davranır. - hosts dosyasından yüklendi. Yalnızca DNS istemci bileşeni DNS sunucusu bileşenini kullandığında (içinde yapılandırılmış DNS sunucularını sorgulayarak '

DNS sunucusunu sorgulayan herhangi bir DNS istemcisi, DNS sunucusunun DNS istemci önbelleği, DNS sunucusu bileşeni tarafından değil, sunucunun kendisi (DNS istemcisi olarak) tarafından kullanıldığından, ana bilgisayar girişini değil, her zaman "gerçek" yanıtı alır.


Testleriniz ve sonuçlarınız bu öğleden sonra görevimi tam olarak yansıttı. Nedense DNS sunucusu hizmetinin sadece çözümleyici değil, önbellek tohumlamak için hosts dosyasını kullandığını okudum düşündüm. Bize Savage ve Hyneman deyin! =)
Wesley

Savage ve Hyneman, bu harika! Ama kim kim? Lütfen bana bir mors bıyığı yetiştirmem ve bere takmaya başlamam gerektiğini söyleme. ;)
joeqwerty

1

Bildiğim kadarıyla, Windows DNS'nin hostsad çözümlemesi için dosyayı kullanmasını sağlamanın bir yolu yoktur ; ama buna gerek yok.

Dahili DNS sunucunuzda genel İnternet bölgesi ile aynı ada sahip bir bölge güvenle oluşturabilirsiniz; ne olacağı, sunucunuz bu istekleri söz konusu bölge için yetkili ad sunucularına iletmek yerine, kendi verilerini kullanarak o bölgedeki ad isteklerini işleyecektir; buna bazen "gölgeleme" denir, çünkü "gerçek" genel bölgeyi dahili istemciye erişilemez hale getirir, bunun yerine "sahte" verilerle yanıt verir.

Dikkat etmeniz gereken şey, bu iç bölgeyi ihtiyacınız olan tüm isimlerle doldurmanız, hatta gerektiğinde genel IP adreslerini kullanmanız; Aksi takdirde, dahili istemciler bu adları çözümleyemez.

Diyelim ki genel bölgeniz şöyle görünüyor:

www.nlscan.com    202.101.116.8
mail.nlscan.com   202.101.116.9

Dahili istemcilerin mail.nlscan.com'u 172.16.0.10; sorun değil, bu nedenle dahili DNS sunucunuzda bir "nlscan.com" bölgesi oluşturup içine "mail.nlscan.com -> 172.16.0.10" koyabilirsiniz.
Ancak şimdi dahili istemcileriniz "www.nlscan.com" u çözemez, çünkü sunucu bu bölge için yetkili olduğunu düşünür, bu nedenle sorguyu yanıtlamaz (çünkü bu ana bilgisayarı bilmediği için), aynı zamanda kimseye iletmeyecek.
Bunu çözmek için "www.nlscan.com" adresini kendi iç bölgenize de koymanız gerekir; istemcilerinizin bu şekilde erişmesini istiyorsanız veya "www" ise "mail.nlscan.com" için kullandığınız aynı yönlendirmeyi kullanabilirsiniz. güvenlik duvarınız tarafından bazı dahili sunuculara da iletiliyor.
Aynı ilke, bölgedeki herhangi bir isim için de geçerlidir.

Bu kurulum olacak değil iç "gölge" bölge internetten görünür asla, çünkü geçici dış ağ, ya da herhangi bir kullanıcı harici müşteriler üzerinde herhangi bir etkisi.


Tüm nlscan.com etki alanı için yetkili bir bölge yapmanız gerektiğini düşünmüyorum. Sanırım bir subdomain yapabilirsiniz: mailserver.nlscan.com ve sonra isimsiz bir A kaydı oluşturun. Daha fazla ayrıntı için yazıma bakın.
Wesley

Evet, bu işe yarar; ve aslında ... kolay olurdu eğer sadece tek bir ana yönlendirmesi gerekir; bazılarını yeniden yönlendirmeniz gerekirse, tam bir bölge daha iyi olur.
Massimo

DNS sunucusundaki koşullu iletici klasörünüze nlscan.com'u ekleyin

1

Ana makine dosyasını boş bırakın, DNS mail.domain.com adresine yeni bir bölge ekleyin ve bölgeye bir ana bilgisayar ekleyin. adı boş bırakın (otomatik olarak bölgenin adını kullanacaktır) ve yerel posta sunucusunun IP adresini girin ;-)

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.