DNS‘i (Domain Name System) kısaca internetin telefon defteri olarak tanımlayabiliriz. Erişilmek istenen sunucunun bilinen isminden, ki bu bilinen isim FQDN (Fully Qualified Domain Name) olarak adlandırılır, örneğin yahoo․com, IP adresini öğrenebilmek için DNS protokolünü kullanırız. Bir internet sitesinin adresini tarayıcımızın adres çubuğuna girdiğimizde, tarayıcı öncelikle kendi yerel ön belleğinde ilgili adres için IP’nin bulunup bulunmadığını kontrol eder. Yerel olarak istenen tazelikte (ilgili kaydın belirleyeceği süre, 1 saat, 1 gün vb.) istenen bilgi bulunamazsa, bilgisayarda tanımlı olan DNS sunucuya (bu sunucu genellikle internet sağlayıcınızın (ISP) DNS adresi olur) recursive olarak istek atılır. İlgili sunucu, istenen bilgi kendisinde istenen tazelikte varsa isteği direkt cevaplar kendisinde yoksa bir üst sunucuya istekte bulunur. İstenen cevap zincirdeki sunucularda bulunamazsa, kaydı tutan asıl sunucuya kadar gidilir, cevap bulunur ve dönülür.
Birçok tarayıcı kendi yerel ön belleğini (local cache) tutmaktadır. Chrome için chrome://net-internals/#dns adresinden yerel ön belleğe ulaşabilirsiniz.
Yukarıda bahsedilen tazelik ise DNS isteğine verilen cevapta TTL (time-to-live) olarak bulunur. TTL süresi DNS kaydının sahibi tarafından belirlenir. DNS süresini kısa (5 dakika gibi) vermek, sunucu adresini değiştirdiğinizde kullanıcıların hızlı bir şekilde yeni adrese gelebilmelerini sağlar fakat DNS sunucularına daha fazla yük binmesine ve genel DNS problemlerinden daha fazla etkilenmenize neden olur.
SEO tarafı için özellikle eklemek istediğim kısım ise sunucunuzu değiştiriyor/taşıyor olabilir ya da herhangi bir sebeple IP adresinizi değiştirmeniz gerekebilir. Bu gibi durumlarda muhakkak 1 hafta öncesinde DNS süresini kısaltmalısınız. Evet yanlış duymadınız, 1 hafta! Nedeni ise Google’ın bazı senaryolarda her ne kadar TTL’de verdiğiniz süre kısa olsa da, buna sadık kalmadığı ve kendi tarafını çok geç güncellediğini tanık olmamız. Bu, hem geçiş esnasında son kullanıcının nispeten az etkilenmesini hem de googlebot gibi arama motoru botlarının siteye istek attıklarında bir problem yaşamalarını mümkün mertebe azaltacaktır. Aksi halde Google Search Console üzerinde DNS hataları almaya başlayacak ve bu sitenizin taranması ile size atanan tarama bütçesinin (crawl-budget) negatif yönde değişmesine sebep olabilir. Geçiş sonrasında TTL süresini tekrar artırabilirsiniz.
Bu konu ile ilgili 2005 yılında Matt Cutts, başka bir host servisine geçiş yaparken takip etmeniz gereken adımları şu şekilde sıralamıştı:
- Yeni bir hosting buldunuz ve hesap yarattınız. Kuruluma/taşınmaya hazırsınız.
- Yeni hosta taşınma için sitenize ait bir tam yedek (full backup) alın. Yeni host içinde kurulumu/taşınmayı gerçekleştirin.
- DNS adresinizi yeni hostinginize işaret edecek şekilde değiştirin.
- DNS değişiminin tüm internete bildirimi için bir süre bekleyin.
- Siteye gelen ziyaretlerin yeni hosting/IP adresine geldiğinden emin olun. Ayrıca “Google gibi getir” aracı ile googlebot’un yeni hosting/IP’ye düştüğünden emin olun. Eğer tüm istekler yeni IP’ye geliyorsa, işlem tamamdır. Eski sitenizi ise artık kapatabilirsiniz.
Kısacası yeni bir hosta geçişin ardından eski sunucuyu hemen kapatmamalı, tüm isteklerin yeni hosta geldiğinden emin olmalısınız. Burası önemliydi. Şimdi geri dönelim konumuza ?
DNS kayıtları için TTL süresi, DNS sağlayıcısının verdiği yönetim ekranından düzenlenir. Aşağıda en önemli DNS sorgu çeşitleri verilmiştir. En çok kullanılanı ve bilineni IP versiyon 4 adresi dönen A kaydı sorgusudur.
NS kayıt tipini bir alt domaini başka bir DNS sunucusunun yönetmesini istediğimizde kullanırız. Örneğin DNS kaydımızı GoDaddy, uygulama sunucularını da Amazon’da tuttuğumuzda, GoDaddy’ye bir NS kaydı girerek buradan Amazon DNS sunucusunu gösteririz. İsim kaydı sorgulanırken güncel IP adresi Amazon DNS’ten kolaylıkla bulunur. Bu sayede Amazon’daki sunucu adresini sürekli olarak GoDaddy’de güncellememiz gerekmez.
CNAME kayıt tipini farklı domainleri tek bir domainde birleştirmek istediğimizde kullanabiliriz. Örneğin sitemizde example․com ve www․example․com gibi iki farklı adresi CNAME ile tek example․com’da birleştirebiliriz. CNAME‘i aynı zamanda farklı bir domain’e yönlendirme amacı ile de kullanabiliriz.
SRV kayıt tipi, sunucu tarafından sunulan bir servisin adres, protokol ve port bilgisini döner. Bu kayıt tipi güncel olarak özellikle mikro servis tipi sistemlerde Service Discovery yapan modüller tarafından kullanılmaktadır.
DNS kayıtlarını sorgulamak için “nslookup” veya “dig” adlı uygulanabilir kullanılabilir. Bu iki uygulama da macOS, Linux ve Windows’ta bulunur.
Yukarıda kriko.io “A” tipi kayıt için sorgu yapılmış ve DNS sunucusu tarafından bir adet IP dönmüştür.
İnternet Tarayıcınızın DNS Önbelleğini Silmek İçin:
Chrome: Yeni bir sekme açıp adres çubuğuna şu adresi yazın: chrome://net-internals/#dns Ardından “Clear host cache” düğmesine tıklayın.
Firefox: Bu tarayıcı için adım adım anlatalım:
- Yeni bir sekme açıp, adres çubuğuna şu adresi girin about:config
- Önünüze çıkacak uyarı ekranında yer alan “Riski kabul ediyorum!” düğmesi ile uyarıyı onaylayın.
- Ardından arama kısmına şunu girin: “network.dnsCacheExpiration” ve enterlayın. Ardında “değer” (value) kısmına 0 yazın.
- Daha sonra tekrar “değer” (value) kısmına 60 yazın. Varsayılan değer 60’dır ve saniye cinsidir.
Referans: Bu yazının bir kısmı “DNS Nasıl Çalışır?” isimli yazıdan derlenmiştir.