NET: DNS: İleticiler ve koşullu ileticiler çözümleme zaman aşımları

Bu makalede, bir veya daha fazla DNS Sunucusu IP'sinin bir DNS sunucusunda ileticiler veya koşullu ileticiler olarak yapılandırıldığında var olan geri dönüş ve zaman aşımı davranışı açıklanmaktadır.

Şunlar için geçerlidir: Windows Server 2012 R2
Özgün KB numarası: 2834250

Özet

DNS istemci çözümleme zaman aşımları hakkında daha fazla bilgi için NET: DNS: DNS istemci çözümleme zaman aşımlarını denetleyin.

DNS istemcilerine benzer şekilde, DNS sunucularını birden fazla İletici veya Koşullu İletici ile yapılandırmak, DNS altyapınıza ek hataya dayanıklılık ekler. birden çok DNS Sunucusunu İleticiler veya Koşullu İleticiler olarak eklemek, temel alınan ağ bağlantısının veya destekleyici ağ altyapısının tek yapılandırılmış Sunucunun hataları durumunda DNS adlarının çözüme kavuşturulmaya devam etmesini sağlar.

Ancak, sunucularda hataya dayanıklılık eklemek daha da kritiktir çünkü bazı sunucunun şu anda asılı olan istemcilerin çoğulluğu adına yaptığı geçişli bir işlem olabilir. Kaynaklar daha sonra artımlı olarak daha uzun süreler için kullanılır.

Varsayılan ayarlar bu yüksek miktarda sunucu için iyileştirilmeyebileceği için üç veya daha fazla iletici/koşullu iletici kullanmak istiyorsanız parametreleri doğru şekilde ayarladığınızdan emin olun.

İkiden fazla DNS sunucusu iletici olarak yapılandırıldığında dns sunucusunun varsayılan davranışı nedir?

Bunun nasıl çalıştığını anlamak için anahtar değişkenler şunlardır:

  • RecursionTimeout - Etki Alanı Adı Sistemi'nin (DNS) aramayı sonlandırmadan önce uzak sunucuların özyinelemeli bir istemci sorgusuna yanıt vermesini beklediği süre.

    kayıt defterine HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**RecursionTimeoutaltında kaydedilir ve yapılandırılabilir via dnscmd /config /RecursionTimeout <value>.

    Varsayılan değer:

    • Windows Server 2003'te 15 saniye

    • Windows Server 2008, 2008 R2 ve 2012'de 8 saniye

      RecursionTimeout, DNS sunucusu düzeyinde tanımlanır ve sorgulanan bölgeden bağımsızdır.

  • ForwardingTimeout - Etki Alanı Adı Sistemi'nin (DNS) İleticiler'deki listedeki her sunucunun bir sorguya yanıt vermesini beklediği süre.

    altındaki kayıt defterine HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**ForwardingTimeout kaydedilir ve aracılığıyla dnscmd /config /ForwardingTimeout <value>yapılandırılabilir.

    Varsayılan değer:

    • Windows Server 2003'te 5 saniye

    • Windows Server 2008, 2008R2 ve 2012'de 3 saniye

      ForwardingTimeout, DNS sunucusu düzeyinde tanımlanır ve sorgulanan belirli bir bölgeden bağımsızdır.

DNS sunucusu, yetkili olmadığı bir bölgedeki kayıt için sorgu aldığında ve iletici kullanması gerektiğinde varsayılan davranış aşağıdaki gibidir:

Süre (başlangıçtan bu yana saniye) Eylem
0 İstemci DNS sunucusunu sorgular. DNS sunucusu sorguyu hemen ilk ileticisine iletir
<forwarding_timeout> forwarding_timeout> saniye sonra<, ilk iletici yanıt vermezse DNS sunucusu ikinci ileticiyi sorgular.
2 * <forwarding_timeout> +1 +1 saniye daha forwarding_timeout> sonra<, ikinci iletici yanıt vermezse DNS sunucusu üçüncü ileticiyi sorgular.
... ...
N * <forwarding_timeout> +(N-1) forwarding_timeout> + 1 saniye daha geçtikten sonra<, N. iletici yanıt vermezse, DNS sunucusu (N+1) ileticisini sorgular.

Not

Yapılandırılan gecikmeye ek olarak, sistem yükü nedeniyle ek yarım saniyelik bir gecikme olabilir.

Algoritma, geçen süre RecursionTimeout değerini aştığında durur

RecursionTimeout'un süresi dolarsa, DNS sunucusu istemciye sunucu hatasıyla yanıt verir.

Not

Sunucu Hatasını RecursionTimeout süre sonundan hemen sonra değil, yalnızca bir sonraki ileticiyi deneme zamanı geldiğinde göndeririz.

Sunucu RecursionTimeout'un süresi dolmadan yanıt almadan tüm ileticilerle iletişim kurmayı başarırsa, ad çözümlemesi için kök ipuçlarını kullanmayı dener (özyineleme sunucu düzeyinde devre dışı bırakılmadığı sürece varsayılan ayar).

Bu, varsayılan ayarlarla bir 2008R2 sunucusunun en fazla 3 ileticiyi sorgulayabildiği anlamına gelir. Dördüncü ileticiyi kullanmak için yeterli zaman olmayacaktır. Aslında, 2008R2'deki varsayılan ayarlarla sunucu şunları yapacaktır:

  • 0 saniye sonra ilk ileticiyi sorgulama
  • 3,5 saniye sonra ikinci ileticiyi sorgulama
  • Üçüncü ileticiyi 3,5 + 4 = 7,5 saniye sonra sorgulama

Sekizinci saniyede RecursionTimeout'un süresi dolduğundan dördüncü ileticinin sorgulandığı noktaya ulaşmayacağız (3,5 + 4 + 4 = 11,5 saniye sonra olurdu).

Sunucu Hatası yanıtını 11,5 saniye sonra göndereceğiz.

Örneğin:

IP adresi 192.168.0.1 olan DNS sunucusu beş iletici (10.0.0.1-10.0.0.5) ile yapılandırılır.

İstemcinin IP adresi 10.0.0.31 ve sorgulayan Microsoft.com

Ağ yakalamada aşağıdaki Ağ İzleyicisi çıkışını görebiliriz (not 10.0.0.4 ve 10.0.0.5 hiçbir zaman sorgulanmamıştır):

Time Time Offset TimeDelta Kaynak Hedef Ayrıntıları
6:33:51.7507293 0.2731738 0.000000 10.0.0.31 192.168.0.1 DNS:QueryId = 0xF03, QUERY (Standart sorgu), İnternet sınıfında Konak Eklentisi türü için microsoft.com sorgu
6:33:51.7510021 0.2734466 0.0002728 192.168.0.1 10.0.0.1 DNS:QueryId = 0xBD57, QUERY (Standart sorgu), Internet'te Konak Eklentisi türü için microsoft.com sorgu
6:33:55.2997074 3.8221519 3.5487053 192.168.0.1 10.0.0.2 DNS:QueryId = 0xBD57, QUERY (Standart sorgu), İnternet sınıfında Konak Eklentisi türü için microsoft.com sorgu
6:33:59.2931644 7.8156089 3.9934570 192.168.0.1 10.0.0.3 DNS:QueryId = 0xBD57, QUERY (Standart sorgu), İnternet sınıfında Konak Eklentisi türü için microsoft.com sorgu
6:34:03.3112753 11.8337198 4.0181109 192.168.0.1 10.0.0.31 DNS:QueryId = 0xF03, QUERY (Standart sorgu), Yanıt - Sunucu hatası

koşullu ileticiler olarak ikiden fazla DNS sunucusu yapılandırıldığında dns sunucusunun varsayılan davranışı nedir?

İleticilere benzer şekilde, Koşullu İleticiler için de iki anahtar değişken vardır. RecursionTimeout (sunucu düzeyinde çalışıyor) var ancak bu senaryoda ForwardingTimeout yerine ForwarderTimeout kullanıyoruz. ForwarderTimeout'un bölge bazında çalıştığını ve farklı varsayılan değerlere sahip olduğunu özellikle unutmayın:

  • RecursionTimeout - Etki Alanı Adı Sistemi'nin (DNS) aramayı sonlandırmadan önce uzak sunucuların özyinelemeli bir istemci sorgusuna yanıt vermesini beklediği süre.

    Kayıt defterine HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\RecursionTimeout

    aracılığıyla dnscmd /config /RecursionTimeout <value>yapılandırılabilir.

    Varsayılan değer:

    • Windows Server 2003'te 15 saniye

    • Windows Server 2008 ve 2008R2'de 8 saniye

      RecursionTimeout DNS sunucusu düzeyinde tanımlanır ve sorgulanan bölgeden bağımsızdır

  • ForwarderTimeout - Etki Alanı Adı Sistemi'nin (DNS) Koşullu İleticiler listesindeki her sunucunun bir sorguya yanıt vermesini ne kadar süre beklediği.

    Koşullu İleticiler belirli bölgeler için yapılandırıldığından ForwarderTimeout da bölgeye bağımlıdır.

    kayıt defterine altında HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\ <zone_name>\ForwarderTimeoutkaydedilir.

    Windows Server 2003, 2008, 2008R2 ve 2012'de varsayılan değer 5 saniyedir.

    Bu aynı zamanda Koşullu İleticiler GUI'sinde görebileceğiniz ayardır.

DNS sunucusu, yetkili olmadığı bir bölgedeki bir kayıt için sorgu aldığında ve bunun için Koşullu İleticiler kullanacak şekilde yapılandırıldığında, varsayılan davranış aşağıdaki gibidir:

Süre (başlangıçtan bu yana saniye) Eylem
0 İstemci DNS sunucusunu sorgular. DNS sunucusu sorguyu hemen ilk koşullu ileticisine iletir
<forwarder_timeout> forwarder_timeout> saniye sonra<, ilk koşullu iletici yanıt vermediyse, DNS sunucusu ikinci koşullu ileticiyi sorgular
2 * <forwarder_timeout> +1 forwarder_timeout> +1 saniye daha geçtikten sonra<, ikinci koşullu iletici yanıt vermezse DNS sunucusu üçüncü koşullu ileticiyi sorgular
... ...
N * <forwarder_timeout> +(N-1) forwarder_timeout> +1 saniye daha geçtikten sonra<, N. koşullu iletici yanıt vermezse, DNS sunucusu (N+1) th koşullu ileticiyi sorgular

Not

Yapılandırılan gecikmeye ek olarak, sistem yükünden dolayı ek yarım saniyelik bir gecikme olabilir

Algoritma, geçen süre RecursionTimeout değerini aştığında durur

RecursionTimeout'un süresi dolarsa, DNS sunucusu istemciye sunucu hatasıyla yanıt verir.

Not

Sunucu Hatasını RecursionTimeout süre sonundan hemen sonra değil, yalnızca sonraki koşullu ileticiyi deneme zamanı geldiğinde göndeririz.

Bu, varsayılan ayarlarla bir 2008 R2 sunucusunun en fazla 2 koşullu ileticiyi sorgulayabildiği anlamına gelir. Üçüncü koşullu ileticiyi kullanmak için yeterli zaman olmayacaktır. Aslında, 2008R2'deki varsayılan ayarlarla sunucu şunları yapacaktır:

  • 0 saniye sonra ilk ileticiyi sorgulama
  • 5,5 saniye sonra ikinci ileticiyi sorgulama

Sekizinci saniyede RecursionTimeout'un süresi dolduğundan üçüncü koşullu ileticinin sorgulandığı noktaya ulaşmayacağız (5,5 + 6 = 11,5 saniye sonra olurdu).

Sunucu Hatası yanıtını 11,5 saniye sonra göndereceğiz.

Örneğin:

IP adresi 192.168.0.1 olan DNS sunucusu, bölge Microsoft.comiçin beş koşullu iletici (10.0.0.1-10.0.0.5) ile yapılandırılır.

İstemci 10.0.0.31 IP adresine sahiptir ve için Microsoft.comsorgular.

Ağ yakalamada aşağıdaki Ağ İzleyicisi çıkışını görebiliriz (not 10.0.0.3, 10.0.0.4 ve 10.0.0.5 hiçbir zaman sorgulanmamıştır):

Time Time Offset TimeDelta Kaynak Hedef Ayrıntıları
6:50:32.5481816 0.4306857 0.0000000 10.0.0.33 192.168.0.1 DNS:QueryId = 0x245A, QUERY (Standart sorgu), İnternet sınıfında Konak Eklentisi türü için microsoft.com sorgu
6:50:32.5484341 0,4309382 0,0002525 192.168.0.1 10.0.0.1 DNS:QueryId = 0x252B, QUERY (Standart sorgu), İnternet sınıfında Konak Eklentisi türü için microsoft.com sorgu
6:50:38.1695163 6.0520204 5.6210822 192.168.0.1 10.0.0.2 DNS:QueryId = 0x252B, QUERY (Standart sorgu), İnternet'te Konak Eklentisi türü için microsoft.com sorgu
6:50:44.1856567 12.0681608 6.0161404 192.168.0.1 10.0.0.33 DNS:QueryId = 0x245A, QUERY (Standart sorgu), Yanıt - Sunucu hatası

Başvurular