Bölüm 4: DNS Kayıtları
Ağlar'a “Sen”i Katmak kitabının bir bölümü: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine inip karşı taraftan geri dönen uzun bir teknik yolculuk.
Kısım 1: Yola Çıkmadan Önce (Bölüm 1-5)
Tüm bölümler
- Giriş
- Adres Çubuğundan İsteğe
- Paket Anahtarlamalı Yol
- İsimden Adrese
- DNS Kayıtları
- Önbellek, Tazelik ve Güven
- Port Numarası ve Soket
- Bağlantısız Taşıma: UDP
- Üç Adımlı El Sıkışma
- Simetrik Şifreleme
- Açık Anahtarlı Kriptografi
- TLS El Sıkışması
- Sertifika Zinciri
- HTTP Mesajının Anatomisi
- Durum, Çerez ve Oturum
- HTTP/2'den HTTP/3'e
- İçerik Dağıtım Ağları
- Diğer Uygulama Protokolleri
- Katmanlı Mimari
- Hizmet ve Protokol
- Encapsulation ve Başlıklar
- Paket Yakalama ve Çözümleme
- Ağ Interface Kartı
- Fiziksel Adresleme
- Hata Sezme ve CRC
- Adres Çözümleme: ARP
- Ortam Erişimi: CSMA/CD
- Switch'ler
- Ağ Topolojileri
- Sanal Yerel Ağlar
- Kablosuz Erişim: 802.11
- Radyo Kanalı ve Kapasite
- Kablosuz Ağ Güvenliği
- Hücresel Ağlar
- Spektrum ve Kuşaklar
- Hareketlilik ve Aktarma
- Adres Kiralama: DHCP
- Adresin Anatomisi
- Adres Tükenmesi ve IPv6
- Router Mimarisi
- Kuyruk Yönetimi
- Cihaz Yapılandırma
- Routing Protokolleri
- Kontrol Düzlemi ve SDN
- Ağ İzleme ve Yönetimi
- Alanlar Arası Routing
- Adres Çevirisi
- Ara Kutular
- Tünelleme ve IPsec
- Firewall'lar
- Ağ Saldırıları
- Operatör ve Metro Ağları
- Bitten Sinyale
- Sembol Hızı ve Kanal Kapasitesi
- Multiplexing Teknikleri
- İletim Ortamları
- Bakır Kablo Sonlandırma
- Fiber Sonlandırma
- Fiber Optik İletim
- Bakır Erişim Ağı: DSL
- DSL'de Hız ve Mesafe
- Pasif Optik Ağlar
- Kablo Erişim Ağları
- Kablo Modem ve CMTS
- Denizaltı Kabloları
- Veri Merkezi Ağları
- Encapsulation Çözme
- Güvenilir Aktarım
- Tıkanıklık Denetimi
- Trafik Çözümleme
- Gecikme Bütçesi
- Soket Programlama
- Eşten Eşe ve Protokol Tasarımı
- Uyarlanır Video Akışı
- Gerçek Zamanlı Ses ve Görüntü
- Kablosuz Sensör Ağlarının Mimarisi
- Sensör Ağlarında Ortam Erişimi
- Sensör Ağlarında Yönlendirme ve IP
- Zaman Eşitleme ve Konum Bulma
- Sensör Ağı Uygulamaları
- Mobil Kablosuz Sensör Ağları
- Son Söz
Resolver’ın getirdiği şey çıplak bir sayı değildi, bir satırdı. O satırın bir türü vardı ve adres, türlerden yalnızca biri.
Aynı ada posta sunucusu da yazılıyor, takma ad da, port numarası da, hatta kimin sertifika verebileceği de. Peki bir ada kaç çeşit cevap asılabiliyor ve her biri kime ne söylüyor?
Cevap tek çeşit değil
Zincir boyunca dönen her satır aynı kalıptadır. Dört alan var: adın kendisi, karşılığı olan değer, kaydın türü ve ne kadar süre geçerli sayılacağı. Bu satırlara kaynak kaydı diyoruz.
Satırlar gerçekte şöyle görünüyor:
ornek.com. 300 IN A 203.0.113.9
ornek.com. 3600 IN NS ns1.ornek.com.
ornek.com. 3600 IN MX 10 posta.ornek.com.
www.ornek.com. 300 IN CNAME ornek.com.Soldan sağa: ad, yaşam süresi (TTL, saniye cinsinden), sınıf, tür, değer. Adın sonundaki nokta önceki bölümde anlattığım gizli kök; burada gizlenmiyor. Sınıf alanı bugün pratikte hep IN çıkıyor: sistem başka ağ aileleri için de tasarlanmıştı ama internetten başkası kalmadı. Kalıntısı hâlâ duruyor: 1970’lerin Chaosnet ağından kalan CH sınıfı bugün yalnızca bir sunucuya hangi yazılımı çalıştırdığını sormak için kullanılıyor (dig CH TXT version.bind). Posta satırındaki baştaki sayı ise öncelik: birden fazla sunucu varsa küçük olan önce deneniyor.
Kendi makinende görmek istersen dig ornek.com NS ya da Windows’ta nslookup -type=MX ornek.com bu satırların türe göre süzülmüş hâlini döküyor. Eskiden hepsini tek seferde getiren ANY sorgusunu çoğu sunucu artık cevaplamıyor; RFC 8482 onu fiilen emekliye ayırdı, çünkü küçük bir soruya kocaman bir cevap döndürmek yükseltme saldırısının en sevdiği şeydi.
Türü bilmek işe yarıyor, çünkü aynı ada farklı türlerde farklı cevaplar durabiliyor. Tür alanı 16 bit ve yüzlerce değer tanımlı; gündelik hayatta karşına çıkanlar bir sayfaya sığıyor:
| tür | no | ne söylüyor |
|---|---|---|
A | 1 | adın IPv4 karşılığı |
AAAA | 28 | adın IPv6 karşılığı |
NS | 2 | bu alanın yetkili sunucusu; zincirin halkalarını bu tür kuruyor |
CNAME | 5 | bu ad aslında şu addır (kanonik ad) |
SOA | 6 | alanın künyesi: sahibi, seri numarası, zamanlayıcıları |
PTR | 12 | adresten ada, yani ters yön |
MX | 15 | bu alana gelen postanın teslim edileceği makine ve önceliği |
TXT | 16 | serbest metin; posta doğrulama kayıtları burada durur |
SRV | 33 | bir hizmetin hangi makinede ve hangi portta olduğu |
CAA | 257 | bu alana kimin sertifika verebileceği |
HTTPS | 65 | bağlantı daha kurulmadan hizmet parametreleri |
Son üçü ötekilere göre genç ve üçü de kitabın başka bölümlerine bağlanıyor.
SRV kaydı DNS’in tek başına yapamadığı bir şeyi yapıyor: port numarasını da söylüyor. A kaydı sana yalnızca makineyi verir, portu uygulamanın bilmesi gerekir; 6. bölümde iyi bilinen port numaralarının niçin ezberlendiğini göreceğiz. SRV bu ezberi kaldırıyor ve adı _hizmet._protokol.alan biçiminde yazıyor: _sip._tcp.ornek.com.
CAA kaydı bir yasak listesi. Sitenin kimliğini kanıtlayan sertifikaları sertifika makamları basıyor; zincirin nasıl işlediğini 12. bölümde göreceğiz. Her makam teknik olarak her ad için sertifika üretebiliyor; CAA alan sahibine “benim adıma yalnızca şu makam sertifika verebilir” deme imkânı veriyor. Makamlar sertifikayı basmadan önce bu kaydı sorgulamak zorunda.
HTTPS kaydı ise tarayıcıya bağlantıyı kurmadan önce yol gösteriyor: hangi protokol sürümleri destekleniyor, hangi port kullanılıyor, varsa şifreli istemci merhabası için hangi açık anahtar gerekiyor. 15. bölümde HTTP/3’e geçişin bir gidiş-dönüşü nasıl kısalttığını konuşurken bu kayda geri döneceğiz.
Adres kaydının iki ayrı türü olması da tesadüf değil: internette iki ayrı adres ailesi kullanılıyor ve çoğu makine ikisini birden istiyor. Farkı ve neden hâlâ ikisinin birden yaşadığını 38. bölümde açacağız.
Ters yön ayrı bir ağaçta yürüyor
Elinde bir adres var ve hangi ada ait olduğunu öğrenmek istiyorsun. DNS bu soruyu doğrudan cevaplayamaz, çünkü ağaç adlara göre bölünmüş; adresleri arayacak bir dizin yok.
Çözüm zarif: adres bir ada çevriliyor. IPv4 adresinin dört sayısı ters sırada dizilip in-addr.arpa alanının altına asılıyor.
203.0.113.9 → 9.113.0.203.in-addr.arpa. PTR sunucu.ornek.com.Ters sıralamanın sebebi hiyerarşi. Alan adlarında en genel parça sağdadır (com), adreslerde ise soldadır (203). Sırayı çevirince adresin de en genel parçası sağa geçiyor ve DNS’in olağan yetki devri mekanizması hiç değiştirilmeden çalışıyor: bir kuruluşa 203.0.113.0/24 bloğu tahsis edildiğinde ona 113.0.203.in-addr.arpa alanının yetkisi devrediliyor. Sondaki /24, adresin ilk 24 bitinin, yani ilk üç sayısının sabit olduğunu söylüyor; blok, son sayısı 0 ile 255 arasında değişen 256 adresten oluşuyor. Bu yazımı 37. bölümde açacağız.
IPv6’da aynı numara dörtlük bit gruplarıyla yapılıyor ve ağaç ip6.arpa altında duruyor; adres 32 basamağa açıldığı için ters kayıt adı da 32 etiketten oluşuyor.
Kritik ayrıntı şu: iki yön birbirini doğrulamak zorunda değil. A kaydı bir adı bir adrese bağlarken PTR kaydı adresi bambaşka bir ada bağlayabilir, çünkü ikisinin sahibi farklıdır: ileri yön alan adının sahibine, ters yön adres bloğunun sahibine aittir. Posta sunucuları bu yüzden ikisinin uyuşmasını ayrıca kontrol eder; uyuşmayan bir göndericiye şüpheyle bakılır ve postası çoğu zaman spam klasörüne düşer.
Aynı ada birden çok adres kaydı da konabiliyor. Cevapta birden fazla sayı döndüğünde istemciler farklı makinelere dağılıyor ve yük paylaşılıyor. Tek bir ad, tek bir makine demek değil.
DerinleşmeBir yetkili sunucu kayıtları nereden alıyor, ikinci sunucu onları nasıl öğreniyor?
Yetkiyi taşıyan birim ada değil, bölgeye (zone) ait. Bölge, ağacın bir sunucunun gerçekten elinde tuttuğu parçasıdır ve yetki devredilen her yerde kesilir. ornek.com bölgesi www ve posta kayıtlarını içerir; ama ar-ge.ornek.com ayrı bir ekibe devredilmişse orada biter. Alan ağacın tamamını, bölge yalnızca bir sunucunun sorumlu olduğu kesiti anlatıyor; ikisi eşanlamlı değil.
Her bölgenin en başında tek bir SOA kaydı durur ve o kayıt bölgenin künyesidir:
ornek.com. 3600 IN SOA ns1.ornek.com. yonetici.ornek.com. (
2026082201 ; seri numarası
7200 ; yenileme (refresh)
900 ; yeniden deneme (retry)
1209600 ; süre bitimi (expire)
3600 ) ; asgari, negatif önbellek süresiİkinci alan sorumlunun e-posta adresi ve @ işareti noktaya çevrilmiştir, çünkü DNS adlarında @ yeri yok. Geri kalan beş sayı bir kopyalama düzeneğini işletiyor.
Bir bölgenin birincil sunucusu kayıtların yazıldığı yerdir; ikincil sunucular kopyayı ondan çeker. İkincil sunucu her refresh süresinde birincile yalnızca SOA kaydını sorar ve tek bir şeye bakar: seri numarası büyüdü mü? Büyümediyse hiçbir şey yapmaz. Büyüdüyse bölgeyi çeker: tamamını çekmenin adı AXFR, yalnızca değişenleri çekmenin adı IXFR. Bekleyecek hâli yoksa birincil NOTIFY mesajıyla ikincilleri dürter ve kopyalama saniyeler içinde başlar.
retry, başarısız bir denemeden sonra ne kadar bekleneceğini söylüyor. expire ise en ilginci: ikincil sunucu birincile bu süre boyunca hiç ulaşamazsa cevap vermeyi bırakıyor. Sebep sağlık değil dürüstlük: iki hafta önceki kayıtlarla cevap vermek, cevap vermemekten daha zararlı.
Son sayı bir kez yeniden tanımlandı. Başlangıçta bölgedeki kayıtların varsayılan yaşam süresiydi; RFC 2308 onu negatif önbellek süresine çevirdi. Yani “bu ad yok” cevabının ne kadar hatırlanacağını bu sayı belirliyor. Var olmayan bir adı sorup sorup aynı cevabı almak da yük; o yükün de bir zamanlayıcısı olması gerekiyordu.
Bir uyarı da düşeyim. AXFR bir bölgenin tamamını döker; yani yanlış yapılandırılmış bir sunucu, kurumun bütün iç makine adlarını isteyen herkese verir. Sızma testlerinin ilk adımlarından biri budur; doğru yapılandırma, transferi yalnızca bilinen ikincil sunuculara açmaktır.
Özet
- Her cevap bir kaynak kaydıdır: adı, yaşam süresi, türü ve değeri olan bir satır; sınıf alanı bugün pratikte hep
IN.- Cevap tek çeşit değil. Adres, sunucu, posta ve takma ad kayıtlarının yanında
SRVportu,CAAsertifika iznini,HTTPSise bağlantı parametrelerini taşıyor.- Ters yön ayrı bir ağaçta yürüyor: adres ters çevrilip
in-addr.arpaaltına asılıyor; iki yönün uyuşması zorunlu değil, çünkü sahipleri farklı.- Yetki bölgeye aittir: bölgenin künyesi
SOAkaydıdır ve ikincil sunucular kopyayı ancak seri numarası büyüdüğünde çeker.
Elinde artık bir sayı var ve soket açılabilir. Ama o sayıyı sana bir yabancı söyledi ve sen sorgulamadan kabul ettin. Sana bir sayı söylediler; peki söyleyenin doğruyu söylediğini nereden biliyorsun?
5. bölüme devam et: Önbellek, Tazelik ve Güven