Aracılığıyla paylaş


DNS atma ve DHCP kiralama süresi yapılandırmaları nedeniyle aynı IP adresine sahip birden çok kayıt

Bu makale, aynı IP adresiyle birden çok kaydın kaydedilmesi sorununu gidermenize yardımcı olur. Sorun, Etki Alanı Adı Sistemi (DNS) atma yapılandırmalarından ve Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP) kiralama süresinden kaynaklanır.

Senaryo

Aşağıdaki senaryoyu değerlendirin.

DHCP sunucusunda aşağıdaki yapılandırmalara sahipsiniz:

  • DHCP kapsamının kira süresi varsayılan sekiz gün olarak ayarlanmıştır.
  • DHCP kapsamının kullanılabilir IP adresleri az.
  • A istemcisi, IP adresi kiralamasını sekiz gün içinde yenilemez ve süresi dolar.
  • B istemcisi yeni bir IP adresi istemektedir.
  • DHCP sunucusu, istemci B'ye A istemcisine kiralanan adresi atar.

Bu senaryo tipiktir ve her şey düzgün çalışır.

DNS sunucusunda aşağıdaki yapılandırmalara sahipsiniz:

  • Active Directory (AD) tümleşik DNS bölgesi, eski kaynak kayıtlarını atacak şekilde ayarlanır.
  • DNS kaydı atma varsayılan ayarları kullanır: Yenileme yok aralığı = 7 gün, Yenileme aralığı = 7 gün ve Atma süresi = 7 gün.
  • İstemci A, DNS kaydını sekiz gün önce istemcinin DHCP kirası en son güncelleştirildiğinde yeniledi.
  • Varsayılan olarak, A istemcisi DNS kaydının sahibidir, bu nedenle kayıt DHCP sunucusu tarafından silinemez.
  • İstemci B, DNS kaydını DHCP sunucusundan alınan yeni IP adresiyle kaydeder ve bu, istemci A'ya kaydedilen kayıtla aynıdır.

Bu senaryoda, DNS sunucusu A istemcisinin DNS kaydını altı gün daha atamaz. Şimdi, A istemcisi ve B istemcisi DNS'de kayıtlı aynı IP adresine sahiptir.

A istemcisiyle B istemcisinin aynı DNS kayıtlarına sahip olduğunu gösteren ekran görüntüsü.

Sorun analizi

Farklı adlar için aynı DNS kaydı nedeniyle çeşitli sorunlar oluşur. Örneğin, Microsoft System Center Configuration Manager (SCCM) istemcileriyle ilgili yükleme sorunu.

İşte başka bir örnek. A istemcisinde bir paylaşıma eriştiğiniz zaman, A istemcisi açık olmasa bile aşağıdaki hata iletisini alırsınız.

A istemcisinde bir paylaşım klasörüne eriştiğinde alınan hata iletisinin ekran görüntüsü.

Bu hatanın nedeni, bir bilgisayara yönelik bir Kerberos anahtarının başka bir bilgisayara gönderilmesidir. Aşağıdaki bölümde tüm süreç boyunca yol gösterilir.

Oturum açma hatası sırasında ağ akışları

Bilgisayar (Infra-App1) için client-a.corp.contoso.combir DNS sorgusu yapar. DNS yanıtları 10.0.0.100 IP adresiyle geri döndürülmektedir.

DNS sorgusu sırasında ağ izlemesinin ekran görüntüsü.

DNS söz konusu olduğunda sonuç doğrudur. A istemcisinin IP adresi olarak listelenen 10.0.0.100 vardır, B istemcisi de öyle.

Ardından, Infra-App1 bilgisayarı bir Kerberos bileti istemektedir. DNS sorgusu A istemcisi içindir, bu nedenle Anahtar Verme Hizmeti (TGS) isteği de A istemcisi içindir.

TGS isteği:

A istemcisi için TGS isteğinin gönderildiğini gösteren ekran görüntüsü.

Etki alanı denetleyicisinin yanıtı:

Etki alanı toplayıcısının TGS isteğine verdiği yanıtı gösteren ekran görüntüsü.

Infra-App1 bilgisayarı bileti aldıktan sonra, bilgisayar A istemcisine bağlanmayı dener. Kerberos bileti bu çerçeveye dahil edilir.

Infrra-App1'in A istemcisine bağlanmaya çalıştığını gösteren ekran görüntüsü.

Son olarak, Infra-App1 bilgisayarı B istemcisine bağlandığından uzak istemci bir hata döndürür.

B istemcisinden döndürülen hata paketini gösteren ekran görüntüsü.

Kerberos'un çalışmasını sağlamak için doğru hesaba doğru bileti sunmanız gerektiğinden hata beklenir.

Not

Kerberos hakkında daha fazla bilgi için bkz . Meşgul Yöneticisi için Kerberos.

Kerberos kimlik doğrulaması yerine Yeni Teknoloji LAN Yöneticisi (NTLM) kimlik doğrulaması kullanıldığından, tam etki alanı adı (FQDN) yerine IP adresi kullanırsanız bu sorun oluşmaz. İstemciye bağlanmak için IP adresini kullandığınızda, hangi istemciye bağlanıldığı varsayımı yoktur. Bu nedenle, bilgisayarın önce NTLM ile anlaşması gerekir. Senaryo bölümündeki örnekte Kerberos geçerli bir yanıt döndürdüğünden bilgisayar NTLM kullanmak için yük devretme yapmaz.

Çözümlemeler

Bu sorun eski DNS kayıtlarıyla ilgili olduğundan, sorunun oluşmasını önlemek için farklı çözümler kullanabilirsiniz.

Not

Her çözünürlük için atma aralığını bir ile üç gün arasında azaltmanızı öneririz. Yedi günlük varsayılan değer, geçersiz kayıtların DNS'de kaldığı süreyi uzatır.

1\. Çözüm

YENILEME Yok + Yenileme aralıklarıyla eşleşecek şekilde DHCP kiralama süresini artırın. Senaryo bölümündeki örnek için DHCP kirasını 14 güne çıkarabilirsiniz.

Avantaj:

DHCP kiraları, DNS kaydı atana kadar kalır. Adresi DNS'e alan ve kaydeden başka bir istemci yok.

Dezavantaj:

DHCP kapsamının adresleri zaten azsa, IP adresleri tükenebilir.

Küçük zaman farkları nedeniyle kira süresi dolmadan önce kayıtların küçük bir yüzdesi atılamayabilir. Atma aralığının bir gün olarak ayarlanması, eski kayıtların bir sonraki gün kaldırılmasını sağlar.

2\. Çözüm

Yenileme yok + Yenileme aralıklarını DHCP kirası ile eşleşecek şekilde azaltın. Senaryo bölümündeki örnekte hem Yenileme Yok hem de Yenile'yi dört güne düşürebilirsiniz.

Avantaj:

Mevcut DNS kaydı, ilk çözümdekiyle aynı sonuçların daha çabuk etkili bir şekilde elde edilmesi için atılır.

Dezavantaj:

Bunlar AD ile tümleşik DNS bölgeleriyse, AD çoğaltma sıklığı artar. Bunun nedeni DNS kayıtlarının istemciler tarafından daha sık yenilenmesidir. Örneğin, yedi günde bir yerine dört günde bir.

Küçük zaman farkları nedeniyle kira süresi dolmadan önce kayıtların küçük bir yüzdesi atılamayabilir. Atma aralığının bir gün olarak ayarlanması, eski kayıtların bir sonraki gün kaldırılmasını sağlar.

Çözünürlük 3

DHCP sunucusunun istemcilerin adına adresleri kaydetmesine izin verin.

Avantaj:

DHCP sunucusu, kiranın süresi dolduğunda DNS kaydını kaldırabilir. Kurulum doğruysa, yinelenen kayıt bulunmamalıdır.

Dezavantaj:

Kurulum daha fazla söz konusudur.

DHCP hizmetini çalıştırmak için bir hizmet hesabının ayarlanması veya tüm DHCP sunucularının DNSUpdateProxy grubuna katılması gerekir (daha az güvenli). Yapılandırma karmaşıklık ekler.

Bunu yapmak için bkz . Windows'ta DNS dinamik güncelleştirmelerini yapılandırma.

DHCP kiralama süresi, Yenileme yok aralığı ve Yenileme aralığı ile denemeler yapın. Varsayılan değerlerden tamamen ayrılmanız gerekebilir. Düşük DHCP kira süreleri (saat cinsinden) bazen kablosuz alt ağlar için kullanılır. Ancak, özellikle de büyük DNS bölgelerinde birkaç saatte bir atılacak şekilde ayarlanmış bir DNS sunucunuz varsa sunucularınızın performansına dikkat edin.

Yinelenen IP'leri olan kayıtları tanımlama

Bu bölümde yinelenen kayıtları tanımlamak için PowerShell'in nasıl kullanılacağı anlatılmaktadır. Betik, DNS'de yinelenen IP adresleri içeren kayıtları bulmayı hedefler.

#Import the Active Directory Module
import-module activedirectory

#Define an empty array to store computers with duplicate IP address registrations in DNS
$duplicate_comp = @()

#Get all computers in the current Active Directory domain along with the IPv4 address
#The IPv4 address is not a property on the computer account so a DNS lookup is performed
#The list of computers is sorted based on IPv4 address and assigned to the variable $comp
$comp = get-adcomputer -filter * -properties ipv4address | sort-object -property ipv4address

#For each computer object returned, assign just a sorted list of all
#of the IPv4 addresses for each computer to $sorted_ipv4
$sorted_ipv4 = $comp | foreach {$_.ipv4address} | sort-object

#For each computer object returned, assign just a sorted, unique list
#of all of the IPv4 addresses for each computer to $unique_ipv4
$unique_ipv4 = $comp | foreach {$_.ipv4address} | sort-object | get-unique

#compare $unique_ipv4 to $sorted_ipv4 and assign just the additional
#IPv4 addresses in $sorted_ipv4 to $duplicate_ipv4
$duplicate_ipv4 = Compare-object -referenceobject $unique_ipv4 -differenceobject $sorted_ipv4 | foreach {$_.inputobject}

#For each instance in $duplicate_ipv4 and for each instance
#in $comp, compare $duplicate_ipv4 to $comp If they are equal, assign
#the computer object to array $duplicate_comp
foreach ($duplicate_inst in $duplicate_ipv4)
{
    foreach ($comp_inst in $comp)
    {
        if (!($duplicate_inst.compareto($comp_inst.ipv4address)))
        {
            $duplicate_comp = $duplicate_comp + $comp_inst
        }
    }
}

#Pipe all of the duplicate computers to a formatted table
$duplicate_comp | ft name,ipv4address -a

Çıktının bir örneği aşağıda verilmişti:

PowerShell betiğinin çıkışını gösteren ekran görüntüsü.

Bu PowerShell betiği basittir. Betiği örnek olarak düşünün. Bu betik yalnızca AD'deki gerçek bilgisayar hesaplarına kayıtlı yinelenen IP adreslerini döndürür. Betiğin bir AD etki alanındaki her bilgisayarı sorguladığını unutmayın. Ardından, IP adresini almak için bir DNS sorgusu yapar. Çok sayıda bilgisayarınız varsa, her seferinde döndürülen bilgisayar sayısını sınırlamak için ile get-adcomputer anahtarını kullanın-searchbase. Bilgisayar AD'ye katılmamışsa, bilgisayar komuttan get-adcomputer döndürülemez.