Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

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.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Cold A · iterative referrals

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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ı
  11. 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
  12. 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
  13. 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
  14. 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

  1. 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
  2. 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
  3. 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
  4. 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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ı
  11. 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
  12. 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
  13. 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
  14. 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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ı
  11. 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
  12. 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
  13. 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
  14. 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ı

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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ı

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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?

  1. Hayır. Sonuç NODATA; A kaydı var.
  2. 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"}]}
  1. Referral sonraki authority’yi gösterir; authoritative answer record verir.
  2. 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