DNS Yanıtı Neden Farklı Ağlarda Farklı Görünebilir? Yetkili Sunucu ve Önbellek Ayrımı
DNS değişikliği sonrasında farklı ağlarda görülen farklı yanıtlar, yetkili bilgi ile sorgunun ulaştığı DNS hizmetindeki saklanmış bilgi arasındaki ayrımdan kaynaklanabilir.

DNS kaydını değiştirdiniz, kendi bağlantınızda yeni hedef açılıyor; ancak başka bir bağlantıda eski hedef görülüyor. Bu gözlem, alan adınız için birden fazla yetkili gerçek olduğu anlamına gelmez. Sorgunun hangi DNS hizmetine ulaştığı ve bu hizmetin daha önce edindiği bilgiyi saklayıp saklamadığı sonucu etkileyebilir. DNS yanıtı neden farklı görünür sorusunu incelerken üç kavramı ayırmak gerekir: Yetkili ad sunucusu alan adınızın ilgili bölgesi için kaynak bilgiyi taşır. Resolver, istemci isteğine karşılık ad sunucularından bilgi alan programdır. RFC’de önbellekleme yeteneği ad sunucuları için anlatılır; bu nedenle günlük dilde “önbellekli çözücü” denilen hizmeti, resolver terimiyle otomatik olarak aynı şey saymamak daha doğru olur. Bir sorgunun ulaştığı DNS hizmeti, yetkili yanıttan önce saklanmış bir kopyayı kullanıyor olabilir.

Kısa özet
- Yetkili ad sunucusu, alan adı uzayının belirli bir bölümü için tam bilgiye sahip sunucudur.
- Resolver, istemci isteği üzerine ad sunucularından bilgi alan programdır; bu terim önbellek tutan ad sunucusuyla aynı rolü zorunlu olarak ifade etmez.
- DNS, tüm kopyaların eşzamanlı güncellenmesini garanti etmek yerine güncellemelerin zaman içinde yayılmasına izin verir.
- Negatif yanıtların da TTL’si vardır; NXDOMAIN ile NODATA farklı sonuçları anlatır.
Önce yetkili sunucu, resolver ve önbelleği ayırın
Yetkili ad sunucusu, alan adı uzayının belirli bir alt kümesi için tam bilgi sahibi olan sunucudur. Bu nedenle o bölüm için yetkili kabul edilir. Yetkili bilgi, zone yani bölge adı verilen birimler hâlinde düzenlenir. Aynı bölgenin verisi, yedekli hizmet sağlayan birden fazla ad sunucusuna dağıtılabilir.
Resolver ise istemcinin isteği üzerine ad sunucularından bilgi alan programdır. En az bir ad sunucusuna erişir; o sunucunun bilgisiyle soruyu doğrudan yanıtlayabilir veya yönlendirmeleri izleyerek diğer ad sunucularına başvurabilir. Bu tanım resolver’ın her durumda önbellek tuttuğu anlamına gelmez.
RFC 1034, bir ad sunucusunun alan adı ağacının herhangi bir bölümüyle ilgili yapı veya bilgi kümesini önbelleğe alabileceğini belirtir. Bu yüzden bir ağda gördüğünüz yanıtın, o anda yetkili sunucudan yeniden alınmış olması gerekmez. Teşhis sırasında “hangi resolver kullanıldı?” sorusunun yanında, “sorgunun ulaştığı DNS hizmeti hangi bilgiyi yanıt olarak verdi?” sorusunu da ayrı değerlendirin.
- Yetkili sunucu: Alan adının ilgili bölgesi için tam bilgi taşır.
- Zone: Yetkili bilginin düzenlendiği bölgedir.
- Resolver: İstemci isteği için ad sunucularından bilgi alan programdır.
- Önbellek: Bir ad sunucusunun daha önce edindiği bilgiyi saklayabildiği yerdir.
Kaynak: [1]
Neden iki ağ aynı anda aynı yanıtı göstermeyebilir?
DNS, bütün kopyaların aynı anda güncellenmesini garanti etmek yerine güncellemelerin kullanıcılar arasında zaman içinde yayılmasına izin veren bir model kullanır. Dağıtılmış kopyalar yenileme için zaman aşımlarıyla çalışır. Ağ veya sunucu arızası nedeniyle güncelleme alınamıyorsa eski bilginin kullanılmaya devam edilmesi de bu modelin parçasıdır.
Bu nedenle bir DNS değişikliğinden sonra iki farklı ağın farklı sonuç göstermesi, tek başına yetkili bilginin çeliştiğini kanıtlamaz. Farklı ağlardaki sorgular farklı DNS hizmetlerine ulaşabilir. Bu hizmetlerden biri yeni bilgiyi edinmişken, diğeri daha önce edindiği bilgiyi yenileme zamanı gelene kadar kullanıyor olabilir.
Örnek senaryo: example.com için bir kayıt güncellenir. Bir ofis ağındaki sorgu, değişiklikten sonra bilgi edinmiş bir DNS hizmetinden yeni yanıt alabilir. Ev bağlantısındaki sorgu ise aynı kayıtla ilgili önceki bilgiyi saklayan başka bir ad sunucusundan eski yanıt alabilir. Bu örnek, belirli bir sağlayıcının davranışını değil, DNS’in zaman aşımıyla çalışan dağıtım modelini anlatır.
- Farklı ağlardaki sorgular farklı DNS hizmetlerine ulaşabilir.
- Bu hizmetler bilgiyi farklı zamanlarda edinmiş olabilir.
- Eski bir yanıtın görülmesi, önbelleğe alınmış bir kopyayla uyumlu olabilir.
Kaynak: [1]
Yetkili yanıtı ve saklanmış yanıtı ayrı inceleyin
Sorunu sakin biçimde ayırmak için önce değişikliğin alan adınızın yetkili bölgesindeki bilgiyle uyumlu olup olmadığını doğrulayın. Ardından farklı ağlardan veya farklı DNS hizmetleri üzerinden alınan yanıtların ayrışıp ayrışmadığını not edin. Amaç, tek bir ekrandaki sonucu genel durumun kesin kanıtı saymamaktır.
Yetkili sunucuların bir bölge için yedekli hizmet verebileceğini de hesaba katın. Alan adınız için tanımlı yetkili ad sunucularını ve bunların bölge bilgisini birlikte değerlendirin. Birden fazla yetkili sunucu varsa yalnızca birinin sonucuna bakarak geniş bir sonuca varmayın.
Kayıt türlerinin ne anlama geldiğinden emin değilseniz DNS kayıtları: A, CNAME, MX ve TXT ne işe yarar? başlıklı rehber, hangi kaydın hangi amaçla kullanıldığını ayırmanıza yardımcı olabilir. Ancak bu yazıdaki asıl soru, kayıt türünden önce yanıtın yetkili bölge bilgisinden mi yoksa bir ad sunucusunun sakladığı kopyadan mı geldiğidir.
- Yetkili bölgedeki bilgiyi kontrol edin.
- Farklı DNS hizmetlerinden gelen yanıtları ayrı kaydedin.
- Yedekli yetkili sunucular varsa onları birlikte değerlendirin.
Kaynak: [1]
Negatif yanıtlar da eski görünüme neden olabilir
Önbellek yalnızca bulunan kayıtlarla ilgili değildir. Negatif, yani olumsuz DNS yanıtlarının da TTL’si vardır. TTL, bir yanıtın önbellekte kullanılabilmesi için kalan süreyi ifade eder. Yetkili sunucu olumsuz yanıt oluşturduğunda bu süre, SOA kaydındaki SOA.MINIMUM alanı ile SOA kaydının TTL değerinden küçük olanına göre belirlenir. Süre azalarak ilerler; sıfıra ulaştığında önbellekteki olumsuz yanıt yeniden kullanılamaz.
Yanıt türünü doğru adlandırmak gerekir. NXDOMAIN, sorgulanan alan adının mevcut olmadığını belirten Name Error yanıtının diğer adıdır. NODATA ise adın verilen DNS sınıfı için geçerli olduğu, ancak istenen türde kayıt bulunmadığı durumu ifade eder. Bir adın var olması, o ad için her kayıt türünün bulunduğu anlamına gelmez.
Bu ayrım, “kayıt ekledim ama bazı yerlerde hâlâ yok görünüyor” gözleminde önem taşır. Görülen sonucun adın hiç bulunmadığını mı, yoksa verilen DNS sınıfında o ad için istenen kayıt türünün bulunmadığını mı söylediğini ayırın. Ardından bunun yetkili bilgiyle mi yoksa kullanılabilir süresi henüz bitmemiş olumsuz önbellek yanıtıyla mı ilişkili olabileceğini değerlendirin.
- Negatif yanıtlar da TTL ile önbellekte tutulabilir.
- TTL sıfıra indiğinde önbellekteki negatif yanıt tekrar kullanılamaz.
- NXDOMAIN adın bulunmadığını; NODATA, verilen DNS sınıfında istenen kayıt türünün bulunmadığını ifade eder.
Kaynak: [2]
Değişiklik sonrası uygulanabilir inceleme sırası
DNS değişikliği sırasında en yararlı yaklaşım, gözlemi kaynağından ayırmaktır. Bir ağdaki sonuç, yalnızca o sorgunun ulaştığı DNS hizmetinin durumunu gösterebilir. Sonuçları tarih ve kullanılan ağla birlikte kaydetmek, farklı yanıtları rastgele bir çelişki olarak görmek yerine yetkili bilgi ve saklanmış bilgi ayrımında ele almanıza yardımcı olur.
Erişim veya e-posta gibi önemli bir hizmet etkileniyorsa, alan adını yöneten ekip ya da DNS sağlayıcınızla görüşürken hangi adın, hangi kayıt türünün ve hangi ağdaki DNS sonucu üzerinden inceleme yapıldığını açıkça paylaşın. Böylece konuşma “çalışıyor” veya “çalışmıyor” düzeyinde kalmaz; yetkili bölge bilgisi ile farklı DNS hizmetlerinin döndürdüğü yanıtlar ayrı ayrı değerlendirilebilir.
- Değiştirdiğiniz alan adını ve kayıt türünü yazın.
- Yetkili bölgedeki beklenen bilgiyi doğrulayın.
- Farklı ağlarda görülen sonuçları ayrı kaydedin.
- NXDOMAIN ile NODATA ayrımını kontrol edin.
- Olumlu veya olumsuz saklanmış yanıtın kalan kullanım süresini hesaba katın.
Uygulama kontrol listesi
- Değişen alan adını ve kayıt türünü belirleyin.
- Yetkili bölgedeki beklenen yanıtı doğrulayın.
- Farklı ağlardaki sorguların farklı DNS hizmetlerine ulaşabileceğini göz önünde bulundurun.
- Her gözlemde kullanılan ağı ve görülen yanıtı kaydedin.
- Olumsuz yanıt görürseniz NXDOMAIN mi NODATA mı olduğunu ayırın.
- NODATA değerlendirmesinde verilen DNS sınıfı koşulunu koruyun.
- Olumsuz önbellek yanıtlarının TTL süresi sıfıra ulaşana kadar kullanılabileceğini hesaba katın.
Farklı ağlarda farklı DNS yanıtı görmek, çoğu zaman yetkili sunucu ile sorgunun ulaştığı DNS hizmetindeki saklanmış bilginin aynı işi yapmamasından kaynaklanır. Yetkili sunucu bölge için kaynak bilgiyi taşır; resolver ise istemci isteği için ad sunucularından bilgi alır. Ad sunucularının saklayabildiği kopyalar ve zaman aşımı modeli nedeniyle gözlemleri yetkili bilgiyle karşılaştırmak gerekir. Negatif yanıtların da saklanabildiğini, NXDOMAIN ile NODATA’nın ise farklı olduğunu dikkate alın.
Sık sorulan sorular
Yetkili DNS sunucusu nedir?
Yetkili DNS sunucusu, alan adı uzayının belirli bir bölümü için tam bilgiye sahip sunucudur. Yetkili bilgi zone adı verilen birimler hâlinde düzenlenir ve yedekli hizmet için birden çok ad sunucusuna dağıtılabilir.
Resolver ile önbellek tutan ad sunucusu aynı şey midir?
Hayır, bu terimleri otomatik olarak eş anlamlı saymamak gerekir. Resolver, istemci isteği için ad sunucularından bilgi alan programdır. RFC 1034 ise önbellekleme yeteneğini ad sunucuları için açıklar. Bir sorgunun ulaştığı DNS hizmeti saklanmış bilgi kullanabilir; resolver tanımı tek başına bunun zorunlu olduğunu söylemez.
NXDOMAIN ile NODATA arasındaki fark nedir?
NXDOMAIN, sorgulanan alan adının mevcut olmadığını belirten Name Error yanıtıdır. NODATA ise adın verilen DNS sınıfı için geçerli olduğu, ancak istenen türde kayıt bulunmadığı durumu ifade eder.
Negatif DNS yanıtı önbellekte kalabilir mi?
Evet. Negatif yanıtların TTL’si vardır. Bu süre sıfıra ulaştığında önbellekteki negatif yanıt yeniden kullanılamaz.
Kaynaklar
[1] rfc1034.txt
[2] rfc2308.txt

