Klinik farmakolojide ve acil ilaç uygulamalarında ondalık noktasının (decimal point) yeri, yaşam ile ölüm arasındaki en keskin çizgidir. Yoğun bakımdaki bir bebeğe veya kardiyak şoktaki bir hastaya 0.1 miligram adrenalin vermeniz gerekirken reçeteye o noktayı koymayı unutup ya da silik yazıp "10 mg" yazarsanız, hastaya gereken dozun tam 100 katını verir ve dakikalar içinde ventriküler fibrilasyonla hastayı kaybedersiniz. Tıpta buna "ondalık nokta cinayeti" denir; tek bir noktanın yokluğu tüm formülü ölümcül bir zehre dönüştürür.

İnternet altyapısının temel omurgası olan BIND (Berkeley Internet Name Domain) ve DNS bölge dosyalarında (Zone Files) da durum farksızdır. Sistem yöneticisinin veya web geliştiricisinin DNS kaydı girerken alan adının sonuna koymayı unuttuğu o tek bir nokta (.); trafiği hedefine ulaştırmak yerine alan adının kendi içine kıvrılmasına, iç içe geçmiş bir Frankenstein URL yapısına ve tüm e-posta trafiğinin günlerce karadelikte kaybolmasına yol açar.


FQDN ve Göreli Alan Adı Ayrımı: DNS'in Gizli Grameri

İnternetin ilk günlerinde (RFC 1035) DNS standartları belirlenirken, bölge dosyalarını yazan yöneticilere kolaylık olsun diye bir sözdizimi kuralı getirildi: FQDN (Fully Qualified Domain Name - Tam Nitelikli Alan Adı) ve Göreli (Relative) Alan Adı ayrımı.

Kural son derece basittir:

  • Eğer bir alan adının sonu nokta (.) ile bitiyorsa, bu bir mutlak ve nihai kök adresidir. DNS sunucusu bu adrese dokunmaz, kök DNS sunucusuna (.) kadar uzanan mutlak adres olduğunu anlar.
  • Eğer bir alan adının sonu nokta ile BİTMİYORSA, DNS sunucusu (BIND/Named) şöyle düşünür: "Bu eksik bir adrestir, yönetici tembellik etmiş. Ben bunun sonuna bu bölgenin kök alan adını ($ORIGIN) otomatik olarak eklemeliyim."
$ORIGIN example.com.
 
# SENARYO 1: Nokta VAR (FQDN - Mutlak Adres)
mail.example.com.   IN   CNAME   ghs.googlehosted.com.
--> DNS Sunucusu: "ghs.googlehosted.com." adresine dokunmaz. Mükemmel!
 
# SENARYO 2: Nokta UNUTULDU! (Göreli Adres Felaketi)
mail.example.com    IN   CNAME   ghs.googlehosted.com
--> DNS Sunucusu: "Aha! Sonunda nokta yok. O zaman $ORIGIN ekliyorum!"
--> Ortaya çıkan canavar:
    mail.example.com.example.com.  IN  CNAME  ghs.googlehosted.com.example.com.

Evet; DNS sunucusu sizin ne kastettiğinizi tahmin etmeye çalışmaz. RFC standartlarına sadık bir robot gibi, sonuna nokta koymadığınız her string'in ucuna @ (yani example.com.) etiketini zımbalar!


Patolojinin Gelişimi: İçe Geçen Domain'ler ve Çöken İletişim

Şirketin yeni sistem yöneticisi veya ajans geliştiricisi, kurumsal e-postaları Google Workspace'e veya Microsoft 365'e bağlamak üzere cPanel / DirectAdmin / BIND Zone Editor'ü açar.

Müşterinin alan adı: sirket.com.tr

Yazılması gereken CNAME kaydı:
autodiscover.sirket.com.tr. IN CNAME autodiscover.outlook.com.

Ancak geliştirici şöyle yazar:
autodiscover IN CNAME autodiscover.outlook.com (Sonunda nokta yok!)

1. Ne Olduğunu Anlayamayan İstemciler

Outlook veya kurumsal mail istemcisi autodiscover.sirket.com.tr adresini çözümlemek için DNS sorgusu atar. DNS sunucusu yanıt verir:
CNAME -> autodiscover.outlook.com.sirket.com.tr.

Dünyada autodiscover.outlook.com.sirket.com.tr diye bir adres yoktur! İstemci NXDOMAIN (Non-Existent Domain) hatası alır. Outlook kurulum ekranı döner durur, sunucuya bağlanamaz ve "E-posta sunucusu bulunamadı" uyarısı verir.

2. MX Kayıtlarında Nokta Unutmak: E-Posta Karadeliği

Daha da korkuncu MX (Mail Exchanger) kayıtlarında yaşanır:

# Hatalı Giriş:
sirket.com.tr.   IN   MX   10   mail.sirket.com.tr

DNS sunucusu bunu derhal şu hale getirir:
10 mail.sirket.com.tr.sirket.com.tr.

Dünyadaki diğer mail sunucuları (Gmail, Hotmail, Yandex) bu şirkete e-posta göndermek istediğinde DNS'e sorar: "sirket.com.tr'nin posta sunucusu neresi?"
DNS sunucusu gururla yanıtlar: "mail.sirket.com.tr.sirket.com.tr!"

Karşı sunucu bu adresi çözemez ve e-postayı reddeder:
550 5.1.2 Host unknown; Name service error for name=mail.sirket.com.tr.sirket.com.tr type=A: Host not found

Şirketin tüm gelen e-postaları 48 saat boyunca buharlaşır; müşterilere hata raporları (bounce message) yağar.


cPanel ve Modern Web Panellerinin İki Yüzü

Birçok modern web paneli (cPanel Zone Editor, Plesk, Cloudflare) kullanıcı dostu olmaya çalışırken bu kafa karışıklığını daha da derinleştirir.

  • Cloudflare DNS: Oldukça moderndir; kutucuğa nokta koysanız da koymasanız da bunu anlar ve arkada normalize eder. Kullanıcıyı bu hatadan korur.
  • cPanel / WHM Zone Editor: Eski BIND altyapısını çalıştırır. Eğer arayüzde bir CNAME veya MX hedefi girerken tam alan adı yazıyorsanız ve sonuna nokta koymazsanız, cPanel bunu sessizce kaydeder ve arka plandaki /var/named/sirket.com.tr.db dosyasına doğrudan göreli kayıt olarak işler!

Geliştirici ekranda autodiscover.outlook.com yazdığını görür ve her şeyin doğru olduğunu zanneder. Oysa arka planda DNS zone dosyası zehirlenmiştir.


Tanı ve Teşhis: Terminalde Dedektiflik

Bu patolojiyle karşılaşıldığında yapılacak ilk iş tarayıcıdan çıkıp terminale geçmek ve DNS sorgusunu doğrudan sorgulamaktır.

# Alan adının CNAME kaydını doğrudan yetkili sunucudan sorgulayın:
dig CNAME autodiscover.sirket.com.tr @ns1.sirket.com.tr +short
 
# Dönen Yanıt Şoke Edicidir:
# autodiscover.outlook.com.sirket.com.tr.

Eğer dönen yanıtta alan adınızın ikinci kez kendi kuyruğunu ısırdığını (Ouroboros gibi) görüyorsanız; teşhis kesindir: Trailing Dot (Sondaki Nokta) Unutkanlığı.

                           ┌────────────────────────┐
                           │   DNS Bölge Dosyası    │
                           └───────────┬────────────┘
                                       │
                         Sonunda '.' Var mı?
                                       │
                     ┌─────────────────┴─────────────────┐
                     ▼                                   ▼
                   [EVET]                              [HAYIR]
             autodiscover.com.                   autodiscover.com
                     │                                   │
                     ▼                                   ▼
          Nihai FQDN Kabul Edildi              $ORIGIN Otomatik Eklendi!
          (Hedefe Başarıyla Ulaşır)            autodiscover.com.sirket.com.tr
                                               (Kollaps & NXDOMAIN) ❌

Cerrahi Düzeltme ve Önleyici Protokol

Bu arızayı düzeltmek saniyeler sürer; ancak DNS önbellekleri (TTL) yüzünden etkilerinin silinmesi saatler alabilir.

1. Zone Dosyasında Noktayı Yerine Koyun:

# Yanlış:
mail.sirket.com.tr    IN   CNAME   ghs.googlehosted.com
 
# Doğru (Ya sol tarafı kısaltın ya da her iki tarafın sonuna nokta koyun):
mail                  IN   CNAME   ghs.googlehosted.com.
# Veya tam FQDN ile:
mail.sirket.com.tr.   IN   CNAME   ghs.googlehosted.com.

2. Serial Numarasını Artırın (ÇOK ÖNEMLİ!):

Eğer BIND dosyasını elle düzenliyorsanız (/var/named/...), SOA (Start of Authority) kaydındaki Serial Number değerini 1 artırmayı unutmayın:

2026012301 ; Serial (YYYYMMDDNN)

Serial numarasını artırmazsanız, ikincil DNS sunucuları (Slave/Secondary DNS) zone dosyasının değiştiğini fark etmez ve eski hatalı zone dosyasını dünyaya sunmaya devam eder!

3. Named Servisini Yeniden Yükleyin ve Kontrol Edin:

named-checkzone sirket.com.tr /var/named/sirket.com.tr.db
# OK yanıtını görünce:
rndc reload sirket.com.tr

Sonuç

DNS, internetin en eski, en katı ve en affetmez protokollerinden biridir. Orada yapay zekanın "kullanıcı ne demek istedi acaba" tahminlerine yer yoktur; kurallar 1987 yılında RFC 1035 ile mermere kazınmıştır.

Reçetedeki tek bir noktanın hastayı öldürebileceği gibi; DNS kaydındaki tek bir noktanın yokluğu da milyon dolarlık bir e-ticaret veya kurumsal operasyonun iletişim damarlarını tıkayabilir. Zone editörünü her açtığınızda o minik noktaya bir neşter hassasiyetiyle bakın; çünkü sistem mühendisliği, büyük sunucuları yönetmekten çok bu milimetrik ayrıntılara sadık kalma sanatıdır.