WEB / WEB-03.01
DNS namespace ve resolution
DNS tek bir “domain → IP” listesi değildir: bir namespace, dağıtılmış authority ve farklı resolver rolleridir. notes.example.org. sorusunu hangi actor’ın cevapladığını izle.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
Cold A · iterative referrals
- Absolute question hazır
Name/type/class açık. Application→local stub call ayrı ağ hop’u değildir; sahne stub’ın recursive service isteğiyle başlar.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Selected cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Stub sorusu recursive’a ulaştı
Recursive resolver isteği aldı. RD recursion desire’dır, cryptographic validation değildir.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- notes.example.org. / A / IN · RD=1 alındı
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Cache miss local karar
Bu cold fixture iterative work gerektirir. Root hints/server addresses/delegation selection sağlanmıştır; QNAME minimization çizilmez.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- notes.example.org. / A / IN · local cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. Root sonraki authority’ye proxy forward yapmaz.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- notes.example.org. / A / IN · local cache miss
- Root · .
- notes.example.org. / A / IN · RD=0 query alındı
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- TLD query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. TLD sonraki authority’ye proxy forward yapmaz.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- notes.example.org. / A / IN · RD=0 query alındı
- Authority · example.org.
- Query henüz yok
- TLD referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Zone authoritative query aldı
Example.org zone role’ü kendi data’sından sonucu belirleyebilir. Bu current example.org records iddiası değil.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- notes.example.org. / A / IN · query alındı
- Authoritative local result
Zone lookup local işlemdir. Pozitif A record selected fixture data’sıdır.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR · A 198.51.100.200 · TTL 120 · AA=1
- Authority response recursive’a ulaştı
Result şimdi recursive context’inde. NODATA NOERROR ile infer edilir; NXDOMAIN ayrı name-error RCODE’dur.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Authority result alındı · NOERROR · A 198.51.100.200 · TTL 120
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR · A 198.51.100.200 · TTL 120 · AA=1
- Final result local hazırlanır
Selected caching positive TTL 120 ile özetlenir; full resolver policies veya DNSSEC yok.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Final result hazır · NOERROR · A 198.51.100.200 · TTL 120
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR · A 198.51.100.200 · TTL 120 · AA=1
- Recursive result stub’a ulaştı
Result delivery tamamlandı. Address/type/name sonucu application reachability veya user permission verdict’i değildir.
- Stub / client
- Final result alındı · NOERROR · A 198.51.100.200 · TTL 120
- Recursive resolver
- Final result hazır · NOERROR · A 198.51.100.200 · TTL 120
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR · A 198.51.100.200 · TTL 120 · AA=1
Warm A · cache hit
- Absolute question hazır
Name/type/class açık. Application→local stub call ayrı ağ hop’u değildir; sahne stub’ın recursive service isteğiyle başlar.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Selected cache hazır
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Stub sorusu recursive’a ulaştı
Recursive resolver isteği aldı. RD recursion desire’dır, cryptographic validation değildir.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- notes.example.org. / A / IN · RD=1 alındı
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Positive cache local lookup
Seçilmiş entry kullanılabilir. Root/TLD/auth packet exchange’i yok; TTL live timer olarak çalıştırılmaz.
- Stub / client
- notes.example.org. / A / IN · sonuç yok
- Recursive resolver
- Cache hit · A 198.51.100.200 · TTL 120−30=90
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Cached answer stub’a ulaştı
Sonuç stub’a ulaştı. Address elde edilmesi HTTP başarısını veya doğrulanmış service identity’sini göstermez.
- Stub / client
- Cached A 198.51.100.200 · TTL 90 alındı
- Recursive resolver
- Cache hit · A 198.51.100.200 · TTL 120−30=90
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
NXDOMAIN · name absent
- Absolute question hazır
Name/type/class açık. Application→local stub call ayrı ağ hop’u değildir; sahne stub’ın recursive service isteğiyle başlar.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Selected cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Stub sorusu recursive’a ulaştı
Recursive resolver isteği aldı. RD recursion desire’dır, cryptographic validation değildir.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- missing.example.org. / A / IN · RD=1 alındı
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Cache miss local karar
Bu cold fixture iterative work gerektirir. Root hints/server addresses/delegation selection sağlanmıştır; QNAME minimization çizilmez.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- missing.example.org. / A / IN · local cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. Root sonraki authority’ye proxy forward yapmaz.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- missing.example.org. / A / IN · local cache miss
- Root · .
- missing.example.org. / A / IN · RD=0 query alındı
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- TLD query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. TLD sonraki authority’ye proxy forward yapmaz.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- missing.example.org. / A / IN · RD=0 query alındı
- Authority · example.org.
- Query henüz yok
- TLD referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Zone authoritative query aldı
Example.org zone role’ü kendi data’sından sonucu belirleyebilir. Bu current example.org records iddiası değil.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- missing.example.org. / A / IN · query alındı
- Authoritative local result
Zone lookup local işlemdir. Alias yok; negative result SOA summary taşır.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NXDOMAIN · name absent · AA=1
- Authority response recursive’a ulaştı
Result şimdi recursive context’inde. NODATA NOERROR ile infer edilir; NXDOMAIN ayrı name-error RCODE’dur.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Authority result alındı · NXDOMAIN · name absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NXDOMAIN · name absent · AA=1
- Final result local hazırlanır
Selected caching min(300,60)=60 negative seconds ile özetlenir; full resolver policies veya DNSSEC yok.
- Stub / client
- missing.example.org. / A / IN · sonuç yok
- Recursive resolver
- Final result hazır · NXDOMAIN · name absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NXDOMAIN · name absent · AA=1
- Recursive result stub’a ulaştı
Result delivery tamamlandı. Address/type/name sonucu application reachability veya user permission verdict’i değildir.
- Stub / client
- Final result alındı · NXDOMAIN · name absent
- Recursive resolver
- Final result hazır · NXDOMAIN · name absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NXDOMAIN · name absent · AA=1
NODATA · AAAA
- Absolute question hazır
Name/type/class açık. Application→local stub call ayrı ağ hop’u değildir; sahne stub’ın recursive service isteğiyle başlar.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Selected cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Stub sorusu recursive’a ulaştı
Recursive resolver isteği aldı. RD recursion desire’dır, cryptographic validation değildir.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- v4only.example.org. / AAAA / IN · RD=1 alındı
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Cache miss local karar
Bu cold fixture iterative work gerektirir. Root hints/server addresses/delegation selection sağlanmıştır; QNAME minimization çizilmez.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- v4only.example.org. / AAAA / IN · local cache miss
- Root · .
- Query henüz yok
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. Root sonraki authority’ye proxy forward yapmaz.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- v4only.example.org. / AAAA / IN · local cache miss
- Root · .
- v4only.example.org. / AAAA / IN · RD=0 query alındı
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Root referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Query henüz yok
- Authority · example.org.
- Query henüz yok
- TLD query’yi aldı
Recursive resolver’ın ayrı query’si ulaştı. TLD sonraki authority’ye proxy forward yapmaz.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- v4only.example.org. / AAAA / IN · RD=0 query alındı
- Authority · example.org.
- Query henüz yok
- TLD referral’ı recursive’a ulaştı
Authority section referral’ı next zone’u gösterir; final address answer değildir. AA=0 role summary; server addresses ayrıca sağlanmıştır.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Referral alındı · zone example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Referral follow-up local seçimi
Yeni query’nin receiver’ı recursive resolver tarafından seçilir. Bu lookup bir network message değildir.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- Query henüz yok
- Zone authoritative query aldı
Example.org zone role’ü kendi data’sından sonucu belirleyebilir. Bu current example.org records iddiası değil.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- v4only.example.org. / AAAA / IN · query alındı
- Authoritative local result
Zone lookup local işlemdir. Alias yok; negative result SOA summary taşır.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Local next authority seçildi · example.org.
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR / NODATA · AAAA absent · AA=1
- Authority response recursive’a ulaştı
Result şimdi recursive context’inde. NODATA NOERROR ile infer edilir; NXDOMAIN ayrı name-error RCODE’dur.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Authority result alındı · NOERROR / NODATA · AAAA absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR / NODATA · AAAA absent · AA=1
- Final result local hazırlanır
Selected caching min(300,60)=60 negative seconds ile özetlenir; full resolver policies veya DNSSEC yok.
- Stub / client
- v4only.example.org. / AAAA / IN · sonuç yok
- Recursive resolver
- Final result hazır · NOERROR / NODATA · AAAA absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR / NODATA · AAAA absent · AA=1
- Recursive result stub’a ulaştı
Result delivery tamamlandı. Address/type/name sonucu application reachability veya user permission verdict’i değildir.
- Stub / client
- Final result alındı · NOERROR / NODATA · AAAA absent
- Recursive resolver
- Final result hazır · NOERROR / NODATA · AAAA absent
- Root · .
- Referral hazırlandı · org.
- TLD · org.
- Referral hazırlandı · example.org.
- Authority · example.org.
- NOERROR / NODATA · AAAA absent · AA=1
ROLLER · STATE · VERİ AKIŞI
İsim neden address’ten ayrılır?
Bir application’ı sayısal address’e kalıcı olarak bağlamak adres değişimlerini kullanıcıya ve configuration’a taşır. DNS, resources için shared hierarchical namespace ve typed data sunar; her sorunun QNAME, QTYPE ve QCLASS bağlamı vardır. A sorusu address isteyebilir; başka type mail veya naming authority hakkında data verir. DNS network route veya application permission veritabanı değildir.
Sentetik sorumuz notes.example.org. / A / IN’dir. Sonuç 198.51.100.200 seçilirse application bundan sonra connectivity ve service identity işlemlerine geçebilir. Cevap elde etmek o address’in ulaşılabilir, beklenen TLS identity’sine ait veya belirli user’a yetkili olduğunu göstermediği için bu katmanları ayrı tutarız.
Label, domain, subdomain ve FQDN
notes.example.org. presentation form’unda soldan sağa notes, example, org ve root’un empty label’ı vardır. Ağacın hierarchy’si root → org → example → notes diye okunur. notes.example.org, example.org’un subdomain’idir; bu ilişki string içinde rastgele “example” geçmesine değil label sınırlarına dayanır. Domain adı host adı olarak kullanılabilir, ama her DNS node’u bir web host olmak zorunda değildir.
Final dot strict presentation form’da root label’ını açık eder. Web arayüzünde notes.example.org yazılması yaygındır ve FQDN terimi bu gösterim için de kullanılır; dot’un görünmemesi otomatik relative name kanıtı değildir. “notes” gibi kısa name ise search/origin context’iyle tamamlanabilir. Ders bu context’i uydurmak yerine absolute question’ı açık verir.
Namespace ile zone aynı scope değil
Domain subtree ilişkisidir; zone authoritative data’nın yönetim scope’udur. Bir subdomain başka authoritative zone’a delegate edilmeden aynı parent zone’un içinde kalabilir. Bu yüzden her dot yeni server ya da ayrı security tenant demek değildir. Example.org zone’u bu fixture’da notes.example.org’u doğrudan barındırır.
Root zone bütün host address’lerini tutan merkezi katalog değildir; hierarchy’de daha yakındaki authority’ye ulaşmayı sağlayan delegations içerir. .org TLD role’ü example.org zone authority’sine yöneltir. Authoritative server kendi zone bilgisinden cevap verir; recursive resolver aynı soruyu başka rollerden data edinerek veya cache’ten tamamlar.
Stub ve recursive resolver’ın işi ayrılır
Stub resolver genellikle bütün referral yolunu kendisi yürütemez; configuration’daki recursive resolver’dan final result ister. Application ile local resolver arasında mutlaka DNS packet yoktur; OS veya library interface’i kullanılabilir. Browser’ın ayrıca resolver ve cache tercihi bulunabilir. Buradaki tek stub→recursive yolunu bütün browser davranışlarının değişmez akışı gibi düşünme.
Recursive request RD=1 ister; resolver’ın recursion desteği RA ile ayrı gösterilebilir. RD/RA kendileri answer’ın TLS veya DNSSEC ile doğrulandığını söylemez. Authoritative server’ın recursive service sunması gerekmez; “DNS server” etiketi role’ü tek başına açıklamadığı için actor isimlerinde görevleri açık yazarız.
Recursive sonuç, iterative exchanges
Cold cache durumunda stub sorusu recursive resolver’a gelir. Resolver root’a query gönderir ve root referral’ı resolver’a döner. Ardından resolver TLD’ye ayrı query gönderir; TLD referral’ı yine resolver’a döner. Son query authoritative server’a gider ve answer resolver’a gelir. Root, query’yi TLD’ye ileten proxy değildir. Resolver topladığı sonuçla stub’a final result döndürür.
Bu path full question summaries kullanır; QNAME minimization, forwarder, retry, priming, glue address lookup, anycast ve DNS transport ayrıntıları çizilmez. Delegation/server address selection sağlanmış koşuldur. Warm cache branch’inde root/TLD/auth exchange’i hiç oluşmayabilir; her page request’e aynı cold path’i zorunlu sayma.
Result: answer, name error veya type yokluğu
Positive cache örneği TTL 120 ile alınıp 30 seconds sonra değerlendirilir: selected remaining TTL 90’dır. Bu cache lookup local işlemidir ve DNS record TTL, IP packet TTL’den farklıdır. TTL burada source’a tekrar danışmadan data’nın cache’te kullanılabileceği üst sınırı anlatır; uygulama ve resolver politikaları cache’i daha erken bırakabilir.
missing.example.org. için NXDOMAIN name error’dur. v4only.example.org. var olduğu halde AAAA yoksa fixture NOERROR + empty relevant answer + zone SOA ile NODATA gösterir; NODATA ayrı wire RCODE değildir. SERVFAIL veya timeout’u NXDOMAIN ile eşitleme: sonuç üretme başarısızlığı name’in yokluğu değildir. Alias varsa negative sonucun hangi name’e ait olduğu ayrıca değerlendirilir; bu derste negative cases alias içermez.
2. Red · Güven ve etki
Hareket olmadan bütün senaryoları oku
Authority sınırı
- Question’ın kapsamı belirlendi
notes.example.org. A/IN absolute question’dır. notes label’ı kendi başına yeni delegated zone veya application tenant sınırı değildir.
- Question evidence
- A / notes / example.org.
- Result interpretation
- Trust sonucu yok
- Application gate
- Application grant yok
- Result sınıfı ayrı okunur
Authoritative answer’da AA işaretlidir. Recursive reply’de AA işaretli değildir, RA ise recursion desteğini belirtir. Bu fark cevap veren role’ü açıklar; AA bir cryptographic authenticity sonucu değildir.
- Question evidence
- A / notes / example.org.
- Result interpretation
- AA = authority role, not proof
- Application gate
- Application grant yok
- Yanlış yükseltme durduruldu
Adres cevabını verified service identity veya resource permission yerine koymak üst katman gate’lerini atlar. Name resolution yalnız hedef seçimine bilgi verir.
- Question evidence
- A / notes / example.org.
- Result interpretation
- AA = authority role, not proof
- Application gate
- Service identity ayrı gerekli
- Referral sonucu final answer değildir
Root org. ve TLD example.org. referral’ları aa=false olarak verilmiştir. Resolver başka authority’ye devam eder; root’un application adresini bizzat doğruladığı sonucu çıkarılmaz.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- AA = authority role, not proof
- Application gate
- Service identity ayrı gerekli
- Control source ve scope’u korudu
Application result classification ile resolver source/cache context’ini ayrı saklar. HTTPS/TLS veya object policy kararları bu plain DNS role diagram’ından tamamlanmış sayılmaz.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- Question / result / source ayrı
- Application gate
- Service identity ayrı gerekli
- Desteklenen conclusion seçildi
notes A cevabı 198.51.100.200 adresini verir. Bu inert answer service identity veya browser origin enforcement testi değildir.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- Question / result / source ayrı
- Application gate
- Address sonucu var; identity bilinmiyor
Type sınırı
- Question’ın kapsamı belirlendi
v4only.example.org. için AAAA/IN sorulur; artifact existingA=198.51.100.201 verir. İstenen type’ın bulunmaması name’in bütün verisini yok etmez.
- Question evidence
- AAAA / v4only
- Result interpretation
- Trust sonucu yok
- Application gate
- Application grant yok
- Result sınıfı ayrı okunur
NOERROR ve boş answers, NODATA requested-type-absent sınıfını verir. NXDOMAIN name-absent sınıfından farklıdır; empty answers tek başına aynı verdict değildir.
- Question evidence
- AAAA / v4only
- Result interpretation
- NODATA / AAAA only
- Application gate
- Application grant yok
- Yanlış yükseltme durduruldu
AAAA yokluğunu name yokluğu diye application’a aktarmak mevcut A yolunu yanlış kapatır. Policy yalnız question tuple’ının desteklediği yokluğu kullanmalıdır.
- Question evidence
- AAAA / v4only
- Result interpretation
- NODATA / AAAA only
- Application gate
- Name-wide deny desteklenmiyor
- Referral sonucu final answer değildir
Root org. ve TLD example.org. referral’ları aa=false olarak verilmiştir. Resolver başka authority’ye devam eder; root’un application adresini bizzat doğruladığı sonucu çıkarılmaz.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- NODATA / AAAA only
- Application gate
- Name-wide deny desteklenmiyor
- Control source ve scope’u korudu
Application result classification ile resolver source/cache context’ini ayrı saklar. HTTPS/TLS veya object policy kararları bu plain DNS role diagram’ından tamamlanmış sayılmaz.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- Question / result / source ayrı
- Application gate
- Name-wide deny desteklenmiyor
- Desteklenen conclusion seçildi
AAAA data yokluğu bu verilmiş case’te bilinir; A verisi mevcut kalır. Resource availability veya authorization denial iddiası eklenmez.
- Question evidence
- Referral ≠ application answer
- Result interpretation
- Question / result / source ayrı
- Application gate
- AAAA yok; name mevcut
VARSAYIM · SINIR · KONTROL
Bozulan varsayım: yazılan name trusted identity’dir
Name bir resource seçme girdisidir; güven kararı role ve doğrulanan evidence ister. notes.example.org görünümü routing, authentication veya object access’in yerine geçmez. Recursive resolver’ın data’yı nereden aldığı ve seçilen resolver policy’si trust boundary’nin parçasıdır.
Necessary condition’ı doğru adlandır: bir uygulama beklenen name için uygun sonucu almalıdır, ardından kendi service identity ve authorization koşullarını doğrulamalıdır. Bu örnek answer’ın değiştirilmesi veya dış domain probing yöntemi sunmaz; yanlış conclusion’ın nerede doğduğunu gösterir.
Bozulan varsayım: her subdomain bağımsız authority
Name tree’ye bakıp zone cut, deployment ve application tenant boundary’sini aynı saymak yanlış scope yaratır. notes label’ı yeni delegated zone değildir; fixture example.org authority’sinde kalır. Subdomain relationship için label suffix gerekir, görünür benzer text yetmez.
Control etkisi configuration review’de ortaya çıkar: authority ve application scope’u eşleşiyor mu, beklenen name hangi yönetim sınırındadır? Bu soruları inert namespace üzerinden yanıtla; domain enumeration veya ownership takeover reproduction tasarlama.
Bozulan varsayım: boş answer name yokluğudur
Referral, NOERROR/NODATA ve NXDOMAIN birbirinden farklıdır. Empty answer ile NS referral gelirse resolver’ın işi bitmemiş olabilir; SOA ve RCODE bağlamı result yorumunu değiştirir. Authoritative answer flag’i de cryptographic authenticity flag’i değildir.
Negative fixture condition yalnız ilgili question scope’unu destekler. A alınamaması bütün AAAA data’sını; AAAA yokluğu name’in tamamını veya application’ın kapalı olduğunu ispatlamaz. Sonraki kontrol için hangi type/result evidence gerektiğini söyle; gerçek domain queries yürütme.
3. Blue · Güvenli geliştirme ve savunma
Hareket olmadan bütün senaryoları oku
Negative types
- Observer’ın gördüğü yol seçildi
NXDOMAIN missing.example.org. A/IN ile NODATA v4only.example.org. AAAA/IN farklı question/result tuples taşır.
- Resolution evidence
- NXDOMAIN / NODATA tuples
- Result classification
- Classification yok
- Coverage review
- Review yok
- Source rolü işaretlendi
Stub recursive resolver’dan cevap alır; authoritative answer başka observation noktasıdır. rd/ra/aa alanları aynı aktörün bütün upstream işlemleri gördüğünü göstermez.
- Resolution evidence
- NXDOMAIN / NODATA tuples
- Result classification
- Stub reply ≠ upstream capture
- Coverage review
- Review yok
- Negative SOA bağlamı korundu
İki negative summary’de SOA, example.org. zone’una aittir. SOA TTL 300 ve MINIMUM 60 olduğu için seçilmiş negative lifetime 60 saniye olur. Empty answers tek başına bu hesabı veya result sınıfını açıklamaz.
- Resolution evidence
- NXDOMAIN / NODATA tuples
- Result classification
- min(300,60)=60
- Coverage review
- Review yok
- Benign yokluk alarm yapılmadı
Cache’den cevap geldiğinde coldTrace root/TLD adımları gözlenmeyebilir. NODATA AAAA yokluğu da existingA’yı silmez; beklenen baseline’a aykırılık aynı scope içinde değerlendirilir.
- Resolution evidence
- NXDOMAIN / NODATA tuples
- Result classification
- min(300,60)=60
- Coverage review
- Cache / type absence normal olabilir
- Eksik coverage ayrı yazıldı
Bu artifact transport, DNSSEC veya HTTP outcome sağlamaz. Plain role trace’inde o kanıtların bulunmaması bu katmanların gerçek deployment’ta devre dışı olduğu anlamına gelmez.
- Resolution evidence
- UNKNOWN: transport/validation
- Result classification
- min(300,60)=60
- Coverage review
- Cache / type absence normal olabilir
- Resolution regression sınırlandı
Cold referrals, warm TTL ve NXDOMAIN/NODATA classification ayrı kontroller olarak tutulur. DNS answer’ın sağlanması certificate veya user permission regression’ının geçtiğini söylemez.
- Resolution evidence
- UNKNOWN: transport/validation
- Result classification
- min(300,60)=60
- Coverage review
- Name/type sonuçları ayrı; üst katman bilinmiyor
Warm cache
- Observer’ın gördüğü yol seçildi
Cache kaydı 120 saniyelik TTL ile alınmış, üzerinden 30 saniye geçmiştir. Remaining TTL 90 saniyedir. Bu yüzden upstream root query’sinin görünmemesi normal cache reuse ile uyumludur.
- Resolution evidence
- Cache 120−30=90
- Result classification
- Classification yok
- Coverage review
- Review yok
- Cache kaydı soruyla eşleşti
warmCache kaydının name=notes.example.org., type=A ve class=IN alanları stub sorusuyla aynıdır. Recursive resolver bu kaydı yerel olarak okur; authoritative server’dan yeni answer aldığı gösterilmez. Cache kaydının varlığı source bilgisidir, TLS veya DNSSEC doğrulama sonucu değildir.
- Resolution evidence
- Cache 120−30=90
- Result classification
- name/type/class eşleşti
- Coverage review
- Review yok
- Positive TTL ömrü hesaplandı
Bu positive entry receivedTtl=120 ve elapsedSeconds=30 alanlarını taşır; remainingTtl=90 olur. Negative SOA TTL 300 ve MINIMUM 60 hesabı başka case’e aittir; bu A answer’ın ömrü onun yerine 60 saniye yapılmaz.
- Resolution evidence
- Cache 120−30=90
- Result classification
- Positive remainingTtl=90
- Coverage review
- Review yok
- Upstream query adımları atlandı
Seçilen fresh cache entry aynı soruyu karşılar; root, TLD ve authoritative query adımları bu dalda yoktur. Stub’ın yalnız cached reply görmesi resolver’ın önceki öğrenme yolunu gözlediği anlamına gelmez. Yeni upstream kayıt bulunmaması burada normal baseline’dır.
- Resolution evidence
- Cache 120−30=90
- Result classification
- Positive remainingTtl=90
- Coverage review
- Fresh cache / yeni upstream query yok
- Eksik coverage ayrı yazıldı
Bu artifact transport, DNSSEC veya HTTP outcome sağlamaz. Plain role trace’inde o kanıtların bulunmaması bu katmanların gerçek deployment’ta devre dışı olduğu anlamına gelmez.
- Resolution evidence
- UNKNOWN: transport/validation
- Result classification
- Positive remainingTtl=90
- Coverage review
- Fresh cache / yeni upstream query yok
- Resolution regression sınırlandı
Name/type/class eşleşmesi ve kalan TTL, bu dalda cache kullanımı beklentisini destekler. Bu sonuç o anda authoritative server’a ulaşıldığını, certificate’in kabul edildiğini veya kullanıcı yetkisinin doğrulandığını göstermez. Gerçek cache cevabını değerlendirmek için resolver, zaman ve source bilgisi aynı işlemle ilişkilendirilir.
- Resolution evidence
- UNKNOWN: transport/validation
- Result classification
- Positive remainingTtl=90
- Coverage review
- Cache beklentisi uyumlu; üst katman bilinmiyor
UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA
Resolution trace role ve result taşır
Artifact query sender/receiver, QNAME/QTYPE, referral zone ve final result özetlerini ayrı tutar. Recursive resolver’ın stub’a cevabı ile authoritative’ın resolver’a cevabı aynı role değildir. Trace fields özgün eğitim şemasıdır; DNS log ürünü veya hex packet capture gibi sunulmaz.
Gerçek gözlemde resolver identity, cache source, timestamp, question tuple ve response context’i birleştir. Tek observer upstream exchanges’i görmeyebilir. Encrypted transport ayrıntılarını bu plain role diagram’dan infer etme; transport ve validation kanıtı ayrı kaydedilir.
Cold/warm ve negative baseline
Normal cold path root ve TLD referral’larını followed eder; warm branch selected cache entry’den cevap verir. Root’a query görünmemesi cache veya delegation cache reuse nedeniyle olağan olabilir. Bu yokluk kendi başına DNS kullanılmadığını kanıtlamaz.
NXDOMAIN case missing name’i; NODATA case existing v4only name için missing AAAA type’ı gösterir. Negative authority summary SOA taşır ve selected cache lifetime min(SOA TTL 300, MINIMUM 60)=60’dır. Bu temel sınırdır; full negative-cache policy ve DNSSEC validation sonraki derslerin ayrı kapsamıdır.
İyi review tek bir hostname sonucu değildir
Namespace incelemesinde absolute name ve label sınırlarını; authority incelemesinde zone kapsamını; resolver incelemesinde recursion ve cache kaynağını birlikte koru. Cold trace’te root referral’ı recursive resolver’a döner. TLD’ye yeni query’yi resolver gönderir; root bir application proxy gibi bu query’yi iletmez. Warm dalda ise fresh entry bulunduğu için bu upstream adımlar atlanır.
Bir DNS sonucu yalnız kendi question ve response kapsamını destekler. RCODE, ilgili answers ve authority bölümü name yokluğu ile requested type yokluğunu ayırır. Bu sonucun certificate, browser origin, outbound policy veya user authorization hakkında hüküm vermesi için o katmanların ayrıca gözlenmesi gerekir. Resolver cevabı ile authoritative cevabı aynı gözlem noktası gibi kaydetme.
DNS sonucunu kullanan application, name/type/class bilgisini sonuçla birlikte taşımalıdır. v4only.example.org. için AAAA NODATA, bu name’in A kaydının da bulunmadığı anlamına gelmez; missing.example.org. için NXDOMAIN ise name yokluğunu bildirir. İkisini aynı kalıcı ‘hostname geçersiz’ state’ine çevirmek normal bir IPv4 yolunu yanlışlıkla kapatabilir. Bu iki sonucu ayrı beklenen durumlarla doğrula; cache’teki negatif sonucun süresi dolduğunda onu hâlâ geçerli bir karar gibi kullanma.
ŞİMDİ VAKAYA UYGULA
Authority rolü ve negative answer scope’u nasıl ayrılır?
notes.example.org., example.org. authority’sinde çözülür. v4only.example.org. için AAAA kaydının bulunmaması, mevcut A kaydını ortadan kaldırmaz. Resolver’ın cevabı adres seçimine bilgi verir; application identity kararı değildir.
Bir DNS cevabı, vakadaki doğru kitap sonucunu tek başına kanıtlar mı? Name resolution bilgisinin nerede bittiğini, HTTP ve application gözlemlerinin nerede başladığını ayır.
Bağlı vaka dosyasını aç ↗ÖRNEĞİ BİRLİKTE OKUYALIM
Namespace + resolution decision trace
Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.
Ham kaydı ve alan açıklamalarını oku
{
"question": {
"name": "notes.example.org.",
"type": "A",
"class": "IN",
"stubRd": true
},
"labels": [
"notes",
"example",
"org",
""
],
"authoritativeZone": "example.org.",
"coldTrace": [
{
"from": "stub",
"to": "recursive",
"kind": "query",
"rd": true
},
{
"from": "recursive",
"to": "root",
"kind": "query",
"rd": false
},
{
"from": "root",
"to": "recursive",
"kind": "referral",
"zone": "org.",
"aa": false
},
{
"from": "recursive",
"to": "tld",
"kind": "query",
"rd": false
},
{
"from": "tld",
"to": "recursive",
"kind": "referral",
"zone": "example.org.",
"aa": false
},
{
"from": "recursive",
"to": "authoritative",
"kind": "query",
"rd": false
},
{
"from": "authoritative",
"to": "recursive",
"kind": "answer",
"aa": true,
"rcode": "NOERROR",
"records": [
{
"owner": "notes.example.org.",
"type": "A",
"class": "IN",
"ttl": 120,
"rdata": "198.51.100.200"
}
]
},
{
"from": "recursive",
"to": "stub",
"kind": "answer",
"aa": false,
"rd": true,
"ra": true,
"rcode": "NOERROR"
}
],
"warmCache": {
"name": "notes.example.org.",
"type": "A",
"class": "IN",
"receivedTtl": 120,
"elapsedSeconds": 30,
"remainingTtl": 90,
"source": "selected-positive-cache-entry"
},
"negativeCases": [
{
"id": "NXDOMAIN",
"question": {
"name": "missing.example.org.",
"type": "A",
"class": "IN"
},
"rcode": "NXDOMAIN",
"answers": [],
"soaSummary": {
"owner": "example.org.",
"ttl": 300,
"minimum": 60
},
"classification": "name-absent",
"selectedNegativeTtl": 60
},
{
"id": "NODATA",
"question": {
"name": "v4only.example.org.",
"type": "AAAA",
"class": "IN"
},
"rcode": "NOERROR",
"answers": [],
"soaSummary": {
"owner": "example.org.",
"ttl": 300,
"minimum": 60
},
"classification": "requested-type-absent",
"existingA": "198.51.100.201",
"selectedNegativeTtl": 60
}
],
"limits": [
"synthetic authority/delegation summaries; not current example.org DNS",
"server-address selection supplied",
"no alias in negative cases",
"no transport, DNSSEC or HTTP outcome"
]
}- labels / authoritativeZone
- Name tree ile managed zone scope’unu ayrı gösterir.
- coldTrace.from / to / kind
- Query veya response’un hangi role’dan hangisine ulaştığını gösterir.
- rd / ra / aa
- Recursion request/availability ve authoritative-answer context’i; validation kanıtı değil.
- warmCache.remainingTtl
- Seçilmiş positive cache arithmetic’i; canlı clock veya OS cache değil.
- negativeCases
- NXDOMAIN ile NOERROR/NODATA için farklı name/type conditions.
Inert role trace ve selected results. Gerçek DNS message bytes, gerçek example.org records, QNAME minimization, glue/priming, full caching, DNSSEC ve application outcome yok.
İki yanlış kanı
Recursive resolver her soruda root→TLD→authoritative yolunu tekrar eder.
Usable answer/delegation cache veya başka resolver path’i upstream işini değiştirebilir; cold path yalnız bir seçilmiş koşuldur.
AAAA answer boşsa domain yoktur.
NOERROR/NODATA existing name’de requested type yokluğunu gösterebilir; NXDOMAIN name error’dur, timeout/SERVFAIL ise farklı sonuçlardır.
SIRA SENDE
Bu hikâyeyi sen çöz.
Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.
v4only.example.org AAAA yanıtı NOERROR ve answers boş. Bu ad bulunmuyor mu?
- Hayır. Sonuç NODATA; A kaydı var.
- Evet. Boş answers her zaman NXDOMAIN.
Gerekçeli cevabı oku
Hayır. Sonuç NODATA; A kaydı var. — Bu örnekte NOERROR ve boş AAAA, yalnız istenen type’ın bulunmadığını gösterir. Adın yokluğu değildir.
Root referral ile authoritative answer aynı işi mi yapıyor?
Dersten seçilen artifact alanları; öğretim örneği
- coldTrace[2]
- {"from":"root","to":"recursive","kind":"referral","zone":"org.","aa":false}
- coldTrace[6]
- {"from":"authoritative","to":"recursive","kind":"answer","aa":true,"rcode":"NOERROR","records":[{"owner":"notes.example.org.","type":"A","class":"IN","ttl":120,"rdata":"198.51.100.200"}]}
- Referral sonraki authority’yi gösterir; authoritative answer record verir.
- Root referral kitap server’ının nihai IP cevabıdır.
Gerekçeli cevabı oku
Referral sonraki authority’yi gösterir; authoritative answer record verir. — Root’un org. referral’ında AA=false. Authority notes için A cevabını AA=true ile oluşturur.
Warm cache remainingTtl=90. Recursive resolver neden root’a yeniden gitmek zorunda değil?
Gerekçeli cevabı oku
Resolver aynı question için fresh positive entry’den cevap verebilir. Bu cache cevabı authority’ye yeni sorgu gönderildiğini göstermez. Örnek DNSSEC, transport veya HTTP server çalışmasını ölçmez. Address öğrenmek application başarısı değildir.
□ Cache hit ile yeni authority sorgusunu ayırdım.
□ DNS sonucunu HTTP başarısı saymadım.
Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç
Kaynaklar ve kapsam
- RFC 1034 — DNS concepts2.2 DNS design goals · 3.1 Namespace specifications and terminology · 3.6.2 Aliases and canonical names · 4.2 How the database is divided into zones · 4.3.1 Queries and responses · 4.3.2 Algorithm · 5.3.1 Stub resolvers
- RFC 9499 — DNS terminology2 Names: FQDN and labels · 5 Resource Records: TTL · 6 DNS Servers and Clients: stub, recursive, iterative, authoritative · 7 Zones
- RFC 1035 — DNS specification3.3.1 CNAME · 3.3.9 MX · 3.3.11 NS · 3.3.12 PTR · 3.3.13 SOA · 3.3.14 TXT · 3.4.1 A · 3.5 IN-ADDR.ARPA · 4.1.1 Header · 4.1.2 Question · 4.1.3 Resource record
- RFC 2308 — DNS negative caching2.1 Name Error · 2.2 No Data · 3 Negative Answers from Authoritative Servers · 4 SOA Minimum Field · 5 Caching Negative Answers
- RFC 2181 — DNS clarifications5.1 RRsets · 8 Time to Live · 10.1 CNAME resource records · 10.2 PTR records · 10.3 MX and NS records
- RFC 2606 — Reserved example domains3 Reserved Example Second Level Domain Names
- RFC 5737 — Documentation IPv43 Documentation Address Blocks