DNS panelini açtınız, alan adını yeni sunucuya bağladınız ve tarayıcı hâlâ ERR_NAME_NOT_RESOLVED veriyor. Ya da daha kötüsü: site açılıyor ama www üzerinde çalışıyor, www olmayan alan adında çalışmıyor. Bu belirtiyi gördüğüm on vakadan dokuzunda, biri CNAME kaydını alan adının köküne (zone apex) koymuş. Bu, RFC 1034 ve RFC 2181'e göre yasaktır ve bazı DNS sağlayıcıları kaydetmenize hiç izin vermez; bazıları kaydeder ve sonra resolve sırasında öngörülemez davranış sergiler.
CNAME neden alan adı kökünde çalışmaz
Her DNS bölgesinin kendi tepesinde SOA ve NS kayıtları olmalıdır. Aynı isme bir CNAME koyarsanız, "bu ismin sahip olduğu her şey aslında başka bir isimdir" demiş olursunuz — ve bu SOA'nın varlığıyla çelişir. Sonuç şu olur: resolver'lar uygulamaya bağlı olarak ya SOA'yı görmezden gelir ya da tüm bölgeyi bozuk görür.
Belirtisi her zaman aynı değildir. Bazen dig yanıt verir ama tarayıcı vermez. Bazen alan adının MX kaydı çalışmaz ve e-postalar sessizce geri döner, çünkü kökteki CNAME, MX'i de sorgular hale getirir. En kötü durum budur: site sağlıklı görünür ve işlemsel e-posta üç gün sonra ölür.
A kaydı ne zaman doğru cevaptır
Alan adı kökü için A kaydı (IPv6 için AAAA) varsayılan seçimdir. Sunucu IP'si sabitse, bunu koyun ve bitirin:
example.com. 3600 IN A 185.xxx.xxx.xxx
www.example.com. 3600 IN CNAME example.com.
3600 sayısı TTL'dir, saniye cinsinden. Her taşımadan önce bunu 300 saniyeye düşürün ve bir gün bekleyin. TTL'yi 86400'de tutar ve sonra IP'yi değiştirirseniz, tam bir gün boyunca kullanıcıların bir kısmı eski sunucuya, bir kısmı yenisine gider. Bu fark, "site bazıları için açılıyor bazıları için açılmıyor" durumunu yaratan şeydir.
IP sabit olmadığında: ALIAS ve ANAME
Gerçek sorun IP'niz olmadığında başlar. Bir CDN üzerinde, bulut load balancer üzerinde veya arkasındaki IP'nin birkaç haftada bir değiştiği servislerde. Burada sabit A koyamazsınız, çünkü her IP değiştiğinde DNS'i manuel düzenlemeniz gerekir.
Standartlaştırılmış çözüm ALIAS'tır (bazı sağlayıcılar buna ANAME der). Bu kayıt kullanıcının resolver seviyesinde değil, bölge seviyesinde resolve edilir. Yani sizin DNS sunucunuz kendisi gidip hedefi lookup eder ve nihai IP'yi A olarak döndürür. Kullanıcının gözünden, sıradan bir A kaydıdır.
| Kayıt | Kökte | Alt alan adında | Gizli maliyet |
|---|---|---|---|
A | Evet | Evet | IP değişirse manuel düzenleme gerektirir |
CNAME | Hayır | Evet | Resolve'da ekstra bir atlama |
ALIAS | Evet | Evet | DNS sağlayıcısına bağlı |
Alan adınızın DNS'inde ALIAS yoksa ve nameserver değiştirmek istemiyorsanız, üçüncü seçenek DNS'i her ikisinde de bu kayıt bulunan Cloudflare veya Route 53'e emanet etmektir. Burada benim tercihim net: sabit IP'niz varsa A koyun ve başka hiçbir şey düşünmeyin. Dinamik IP'niz varsa, ALIAS nameserver değiştirmeye değer.
Ekstra bir atlamanın gizli maliyeti
Her CNAME, resolve yoluna ekstra bir lookup adımı ekler. Tek bir alan adı için bu sayı önemsizdir, normal koşullarda yaklaşık 20 ila 50 milisaniye. Ama zincir oluşturursanız, fark eder:
a.example.com CNAME b.example.com
b.example.com CNAME c.example.com
c.example.com CNAME target.cdn.net
Burada resolver arka arkaya üç kez sormak zorundadır. Bazı resolver'lar 8 ila 10 atlamadan sonra zinciri keser ve SERVFAIL döndürür. Hem www üzerinde CNAME koyduysanız hem de CDN içinde başka bir CNAME tanımladıysanız, bu sınıra yaklaşabilirsiniz. Zinciri kısa tutun; bir atlama, üç değil.
Burada hata yapıyorlar: çoğu kişi CNAME "IP'yi otomatik takip eder" diye düşündüğü için her zaman A'dan daha güvenli bir seçenek olduğunu sanır. Sonra köke koyar ve üç saat sunucu güvenlik duvarında sorun arar. Belirtisi şudur: dig +short example.com sizin sisteminizde yanıt verir ama mobil internetteki telefonda vermez. Resolver'lar arasındaki fark, kökteki geçersiz kaydın imzasıdır.
Pratikte nasıl teşhis edilir
Herhangi bir değişiklikten önce mevcut durumu görün. Bu üç komut neredeyse her şeyi netleştirir:
dig +noall +answer example.com A
dig +noall +answer www.example.com CNAME
dig +trace example.com
İlk komut bir A kaydı döndürmelidir. Eğer CNAME döndürürse, sorun tam da söylediğimiz şeydir. Üçüncü komut, root server'lardan bölgenize kadar tam resolve yolunu gösterir ve zincir herhangi bir yerde kesilmişse, tam orada ortaya çıkar. Dünyanın farklı noktalarında DNS yayılımını kontrol etmek için de ServerNet'in ücretsiz araçlarını kullanabilirsiniz.
Bir pratik ipucu daha: TTL'yi değişiklikten sonra değil, önce kontrol edin. Mevcut TTL 86400 ise ve kaydı şimdi değiştirdiyseniz, önümüzdeki 24 saat boyunca yarı-taşınmış durumdasınız ve beklemekten başka yapacak bir şeyiniz yok. Bunu taşıma planınıza dahil edin, yoksa ilk gece yarım trafikle karşılaşırsınız.
Aynı isim üzerindeki diğer kayıtlar
Daha az söylenen bir kısıtlama: CNAME'i olan her isim başka hiçbir kayda sahip olamaz. Ne MX, ne TXT, ne SRV. mail.example.com üzerine hem CNAME hem MX koyarsanız, bazı e-posta sunucuları mesajı reddeder ve bazıları sessizce spam klasörüne gönderir. E-posta alt alan adları için her zaman A koyun.
Aynı kural alan adı doğrulama kayıtları için de geçerlidir. Google Workspace doğrulaması veya SSL sertifikası için TXT'yi CNAME'i olan bir isme koyarsanız, doğrulama başarısız olur ve hata mesajı da genellikle belirsizdir. Önce CNAME'i kaldırın, TXT'yi koyun, doğrulamayı alın, sonra gerekirse geri koyun.
WordPress siteleri için bu ayarlar genellikle bir kez yapılır ve sonra sunucu değişene kadar unutulur. Linux hosting üzerindeyseniz ve sunucu IP'si sabitse, aynı A kaydı yeterlidir ve daha fazla karmaşıklığa ihtiyacınız yoktur. ServerNet teknik dokümantasyonu da bilgi bankasında her servisin DNS ayar detaylarını içerir.
Sık sorulan sorular
Alan adı köküne CNAME koyabilir miyim?
Hayır, DNS standardına göre bu izin verilmez ve SOA ile NS kayıtlarıyla çakışmaya neden olur. Bazı paneller kaydetmesine izin verir ama resolver'ların buna karşı davranışı aynı değildir ve sonuç dağınık ve teşhisi zor hatalardır. Kök için A veya ALIAS kullanın.
ALIAS ile CNAME arasındaki fark nedir?
CNAME kullanıcının resolver tarafında resolve edilir ve başka bir isim döndürür; ALIAS sizin DNS sunucunuz tarafında resolve edilir ve nihai IP'yi A olarak teslim eder. Bu nedenle ALIAS alan adı kökünde izin verilir, CNAME ise verilmez. ALIAS desteği DNS sağlayıcınıza bağlıdır.
Site neden www üzerinde açılıyor ama ana alan adında açılmıyor?
Neredeyse her zaman www kaydının doğru ayarlandığı ama kök kaydın olmadığı veya yanlış olduğu anlamına gelir. dig +noall +answer example.com A ile kontrol edin; çıktı boşsa kök kaydı ekleyin. Eğer CNAME döndürürse, onu silin ve A ile değiştirin.
TTL'yi hangi sayıya koymalıyım?
Normal durumda 3600 saniye mantıklıdır. Taşımadan veya IP değişikliğinden önce bunu 300 saniyeye düşürün ve en az bir tam önceki TTL periyodu bekleyin. Stabil hale geldikten sonra tekrar yükseltebilirsiniz. Sürekli düşük TTL, DNS sorgu sayınızı artırır ve yüksek trafikli sitelerde kayda değerdir.
Şu anda bu sorunla uğraşıyorsanız, önce dig ile mevcut durumu görün ve sonra karar verin. Çoğu durumda cevap basit bir A kaydıdır; karmaşıklığı yalnızca IP'nin gerçekten sabit olmadığı yere ekleyin.
Yorumlar 0
Henüz yorum yok — ilk siz olun!