DNS, alan adlarını IP adreslerine çeviren hiyerarşik bir sistemdir. Her kayıt türü (A, AAAA, MX, TXT, CNAME vb.) belirli kurallara tabidir. CNAME, “bir kaydı başka bir kayda takma” işlevi görür; örneğin:
Örnek:
Bu yapı, DNS sunucusu tarafından reddedilir; hata mesajı: “CNAME record for example.com conflicts with existing records”.
Kök alan adında CNAME kullanmak yerine A/AAAA kaydı veya alias hizmeti tercih edilmelidir.
Kod:
www.example.com. IN CNAME example.com.
1. CNAME’in tek kayıt olmasını gerektiren kural
Bir DNS kaydı aynı adı taşıyan başka bir kayıt türünü taşıyamaz.- A, AAAA, MX, NS gibi kayıt türleri aynı isim altında birden fazla bulunabilir.
- CNAME ise aynı anda başka bir kayıt türüne sahip olamaz; eğer
example.com.için CNAME varsa, aynı alan adında A veya AAAA gibi kayıt bulunamaz.
2. Apex alan adının (kök) durumu
Kök (apex) alan adı doğrudan isim sunucusu (NS) tarafından yönetilir.- Kök ad, birden çok kayıt türü (A/AAAA, NS, MX, TXT) içerebilir.
- CNAME bu kurala aykırı olduğundan, DNS sunucuları kök ad için CNAME kabul etmez.
Örnek:
Kod:
example.com. IN A 192.0.2.1
example.com. IN CNAME alias.example.net. ; HATA
Bu yapı, DNS sunucusu tarafından reddedilir; hata mesajı: “CNAME record for example.com conflicts with existing records”.
3. Çevresel çözüm yolları
- A/AAAA kaydı ekleyin:
example.com. IN A 192.0.2.1veyaexample.com. IN AAAA 2001:db8::1. - Alias hizmeti kullanın: Cloudflare gibi CDN sağlayıcıları, “ANAME” veya “CNAME flattening” özelliği ile kök ad için CNAME benzeri davranış sunar. Bu özellik, içsel olarak CNAME’i A/AAAA’ye dönüştürür.
- Subdomain yönlendirme:
www.example.comiçin CNAME kullanın, kök ad için ayrı A/AAAA kaydı bırakın.
Kök alan adında CNAME kullanmak yerine A/AAAA kaydı veya alias hizmeti tercih edilmelidir.