CNAME Kaydı Nedir? Ne Zaman Kullanılır?
Takma ad mantığı, www yönlendirmesi ve kök alan adında neden kullanılamadığı.
CNAME kaydı, bir alan adını başka bir alan adına bağlayan takma
ad kaydı. "Bu adın adresini soruyorsan şu öbür ada bak" diyor.
www.ornek.com için CNAME ornek.com
gösteriyorsa, kökün adresi ne ise www'nin adresi de o.
A kaydı yazısında kayıt türlerini ve CNAME'in kökte kullanılamadığını kısaca söyledik. Bu yazı CNAME'in kurallarını, neden öyle olduklarını ve en sık karşılaşılan hataları anlatıyor.
Nasıl çözülüyor?
CNAME bir adrese değil bir ada işaret ettiği için çözümleme bir adım uzuyor:
- Tarayıcı
magaza.ornek.comadresini soruyor. - Cevap: bu bir CNAME, hedefi
magaza.saglayici.net. - Çözümleyici bu kez
magaza.saglayici.netadresini soruyor. - Cevap: A kaydı,
203.0.113.50.
Pratikte çözümleyiciler iki cevabı çoğu zaman tek seferde veriyor ve ek süre küçük. Ama zincir uzarsa — CNAME'in hedefi başka bir CNAME, onun da hedefi bir başkası — her halka bir sorgu ve bir hata ihtimali ekliyor. Bir ya da iki halka sorun değil; daha uzun zincirden kaçının.
Bunu kendiniz görebilirsiniz: DNS sorgulama aracına bir alt alan adı yazın ya da komut satırını kullanın:
- Windows:
nslookup -type=CNAME www.ornek.com - macOS ve Linux:
dig www.ornek.com CNAME
Ne zaman kullanılır?
| Durum | Örnek |
|---|---|
| www ile kökü eşlemek | www.ornek.com → ornek.com |
| Dışarıdan alınan hizmete alt alan adı bağlamak | magaza.ornek.com → platformun verdiği ad |
| CDN | static.ornek.com → CDN'in verdiği ad |
| Sahiplik doğrulama | Bazı hizmetler alan adını rastgele adlı bir CNAME ile doğruluyor |
İkinci ve üçüncü satır CNAME'in asıl gücü. Mağaza platformu ya da CDN sunucularının adresini değiştirdiğinde siz hiçbir şey yapmıyorsunuz: sizin kaydınız bir ada işaret ediyor, o adın adresini onlar güncelliyor. A kaydı kullansaydınız her değişiklikte sizin de kaydınızı güncellemeniz gerekirdi — ve haberiniz olmadan site kapanırdı.
Kural 1: CNAME yalnız durur
Bir ad için CNAME tanımlandıysa aynı ad için başka hiçbir kayıt olamaz. Ne A, ne MX, ne TXT. Sebep mantıklı: CNAME "bu adın bütün bilgisi şu öbür adda" demek. Yanında başka bir kayıt olursa çözümleyici hangisine inanacağını bilemiyor.
Kökte CNAME kullanılamamasının nedeni tam olarak bu. Alan adının kökünde iki kayıt zorunlu: yetkili ad sunucularını gösteren NS ve alan adının yönetim bilgisini tutan SOA. Kökte CNAME olsaydı bu zorunlu kayıtlarla aynı adda durmak zorunda kalırdı. Üstelik kökte genellikle e-posta için MX ve doğrulama için TXT kayıtları da var.
Paneliniz kökte CNAME eklemenize izin veriyorsa büyük ihtimalle arkada başka bir şey yapıyor — bir sonraki bölüm tam onu anlatıyor.
Kökü bir ada bağlamak
Mağaza platformu ya da CDN "kökü de bize bağlayın" diyorsa ve elinizde yalnızca bir ad varsa iki yol var:
- Hizmetin verdiği sabit adresler. Birçok platform kök alan adı için A kaydına yazılacak adresleri ayrıca yayımlıyor. Belgelerinde "kök alan adı" ya da "apex" bölümüne bakın.
- ALIAS, ANAME ya da CNAME düzleştirme. Bazı DNS sağlayıcıları kökte bir adı hedef gösterip, sorgu geldiğinde o adın adresini kendileri çözerek A kaydı gibi cevap veriyor. Dışarıdan bakan yalnızca A kaydı görüyor; kural çiğnenmiyor. Adı sağlayıcıya göre değişiyor ve standart bir kayıt türü değil.
Kural 2: MX ve NS bir CNAME'i göstermemeli
E-posta sunucusunu gösteren MX kaydı ve ad sunucusunu gösteren NS kaydı, doğrudan adres kaydı olan bir ada işaret etmeli; hedefi bir CNAME olmamalı. Birçok sistem bunu yine de çözüyor ama bazıları reddediyor. Sonuç, e-posta teslimatında aralıklı sorunlar — teşhisi en zor türden, çünkü gönderenin sunucusuna göre değişiyor.
CNAME yönlendirme değildir
En sık yanlış anlama bu. CNAME yalnızca adresi değiştiriyor; tarayıcının adres çubuğu ve sunucudan istenen ad aynen kalıyor.
Tarayıcı magaza.ornek.com için CNAME'i izleyip sağlayıcının
sunucusuna bağlanıyor, ama isteğin içinde hâlâ "magaza.ornek.com
istiyorum" yazıyor. Sağlayıcının sunucusu bu adı tanımıyorsa iki şey
oluyor:
- Hata sayfası ya da başka bir site. Sunucu adı tanımadığı için varsayılan sayfasını gösteriyor. Çözüm: alan adını hizmetin kendi panelinde de tanımlamak. CNAME tek başına yetmiyor.
- Sertifika uyuşmazlığı. Sunucunun sertifikası sağlayıcının kendi adı için, sizin adınız için değil. Tarayıcı "bağlantınız gizli değil" uyarısı veriyor ve bu, sağlayıcı sizin adınıza sertifika çıkarana kadar sürüyor. SSL kontrol aracıyla sertifikanın hangi adları kapsadığını görebilirsiniz.
Ziyaretçiyi bir adresten başka bir adrese taşımak istiyorsanız, yani adres çubuğu da değişsin istiyorsanız, bu DNS'in değil sunucunun işi: HTTP yönlendirmesi. HTTP başlık aracında bir adresin yönlendirme yapıp yapmadığını ve zinciri görebilirsiniz.
Sahipsiz CNAME: alt alan adı ele geçirme
Bir hizmeti bıraktığınızda CNAME kaydını silmeyi unutursanız kayıt artık var olmayan bir hedefi gösteriyor. Hedef bir bulut hizmetindeki ad ise — statik site barındırma ya da uygulama platformu gibi — o adı başka biri alabiliyor. Sonuç: sizin alt alan adınızda onun içeriği yayınlanıyor.
Bu, oltalama sayfaları için değerli bir hedef, çünkü adres gerçekten sizin alan adınız ve ziyaretçinin şüphelenmesi için bir sebep yok. Önlem basit: hizmeti kapatırken önce DNS kaydını silin, sonra hizmeti. Yılda bir kez bütün CNAME kayıtlarınızı gözden geçirip her hedefin hâlâ size ait olduğunu kontrol edin.
Değişiklik görünmüyorsa
CNAME'i değiştirdiniz ama eski hedef görünmeye devam ediyorsa sebep TTL: önbellekler kaydı süresi dolana kadar tutuyor. Zincirde iki kayıt varsa iki ayrı TTL var ve ikisinin de dolması gerekiyor. TTL'in mantığını A kaydı yazısında anlattık; kendi bilgisayarınızdaki kopyayı DNS önbelleğini temizleyerek hemen yenileyebilirsiniz. DNS'in genel işleyişi için DNS nasıl çalışır yazısına bakabilirsiniz.
Sıkça sorulan sorular
CNAME kaydı nedir?
Bir alan adını başka bir alan adına bağlayan takma ad kaydıdır. Doğrudan bir IP adresi değil, başka bir ad gösterir; o adın adresi ne ise CNAME’li adın adresi de odur.
Kök alan adında neden CNAME kullanılamaz?
CNAME aynı adda başka hiçbir kayıtla birlikte duramaz. Kökte ise NS ve SOA kayıtları zorunludur. Bu yüzden kökte A kaydı ya da sağlayıcının sunduğu ALIAS benzeri bir çözüm kullanılır.
CNAME ile yönlendirme aynı şey mi?
Hayır. CNAME yalnızca adresi değiştirir; adres çubuğu ve istenen ad aynı kalır. Ziyaretçiyi başka bir adrese taşımak için sunucu tarafında HTTP yönlendirmesi gerekir.
CNAME ekledim ama site açılmıyor, neden?
Hedef sunucu sizin alan adınızı tanımıyor olabilir. Alan adını hizmetin kendi panelinde de tanımlamanız ve sağlayıcının adınıza sertifika çıkarmasını beklemeniz gerekir.
Sahipsiz CNAME neden tehlikeli?
Kapatılmış bir bulut hizmetini gösteren CNAME kalırsa, o hizmetteki adı başka biri alıp sizin alt alan adınızda kendi içeriğini yayınlayabilir. Hizmeti kapatmadan önce DNS kaydını silin.