Şu anda aşağıdaki DNS yapılandırmasına sahip olan birden çok web sitesini yönetiyorum:
example.com - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com - CNAME - example.com
beta.example.com - CNAME - test.example.com
dev.example.com - CNAME - test.example.com
Bu CNAME kayıtlarının uygun bir kullanımı mı? İnternette baktım ve net bir cevap bulamadım. Bazı insanlar CNAME kayıtlarının kötü olduğunu iddia ediyorlar (bunun nedenleri açık değiller) ve aşağıdaki ayarları önerdiler:
example.com - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com - A Record - Production Server IP
beta.example.com - A Record - Test Server IP
dev.example.com - A Record - Test Server IP
Bunlardan hangisi daha iyi bir yaklaşımdır (ve neden)?
Not: Alt alanlar kendi MX kayıtlarını gerektirmez, bu yüzden burada bir sorun olmaz.
Evet, bu CNAME'lerin uygun bir kullanımı. Bir parçası olduğum tartışmalarda, argümanlar böyle gitmeye eğilimlidir:
CNAME'lere karşı:
- Aşağı yönündeki DNS önbelleklerinin, biri CNAME için bir tane ve CNAME'nin kaydettiği A-Kaydı için olmak üzere 2 DNS araması gerçekleştirmesi gerektiğinden (küçük) bir performans cezası söz konusudur.
- VAGue, CNAME'lerle ilgili daha az "yetkili" veya uyumluluk sorunlarına sahip sahte argümanlar.
CNAME'ler lehine:
- Donanım (fiziksel sunucular) ve hizmetler arasında temiz bir soyutlama sağlarlar.
- DNS yönetimini basitleştirirler - bir sunucu hareket ettiğinde, yalnızca bir rekoru değiştirmeniz gerekir.
Birkaç farklı yol denedikten sonra Bunu yapmak için şimdi kişisel bir favori tarzım var. Bu:
- Her fiziksel sunucu için bir A Kayıt; oldukça düşük bir TTL ile (belki 30 dakika); sunucuya bir insan dostu isim.
- Her hizmet için bir CNAME; yüksek bir TTL ile (belki 24 saat); Yukarıdaki sunucu adlarına işaret eder.
- Yukarıdaki kuralların tek istisnası olarak, alan kökü, web sunucusu / web yük dengeleyicisini işaret eden bir A-Kaydıdır. (@ Bir A-kaydı olmak zorundadır.)
Bu kurulumun iyi çalıştığını görüyorum. CNAMES için ekstra DNS aramaları tutar; ve bir sunucu çökerse hala genel DNS'yi oldukça hızlı bir şekilde değiştirebilirim.
İşte bir (doğaçlama) örnek BIND sözdiziminde:
;name ttl class rr value
server01 30m IN A 192.168.0.3
server02 30m IN A 192.168.0.4
webmail 24h IN CNAME server01
extranet 24h IN CNAME server02
ftp 24h IN CNAME server02
Evet, uygun.
Pek çok kişinin paylaştığı En İyi Uygulamalarım, her sunucu IP'si için 1 A kayıt oluşturmak; ve başka bir şey için CNAMES kullanın.
Ortak bir örnek şöyle olurdu:
server1.example.com. IN A 192.168.0.1
server2.example.com. IN A 192.168.5.2
www IN CNAME server1
ftp IN CNAME server1
beta IN CNAME server2