Kök etki alanındaki CNAME kısıtlamalarının üstesinden nasıl gelinir?

  • 22.04.2019

Müşterilerimiz için birçok web uygulaması barındırıyoruz. Açıkçası, bu uygulamalara bağlanmak için kendi alanlarını kullanmak istiyorlar, genellikle http://www.customer1.example veya http://customer1.example olan herhangi bir kullanıcının web uygulamalarına gitmesini istiyorlar.

Karşı karşıya olduğumuz durum, yakın gelecekte IP adreslerini değiştirebilmemiz gerektiğidir. Ayrıca, etki alanlarındaki A kayıtlarında değişiklik yapan müşteriye güvenmek istemiyoruz. Bu nedenle, CNAME kayıtlarını kullanmanın işe yarayacağını düşündük, ancak öğrendiğimiz gibi, kök etki alanı için CNAME kayıtları işe yaramayacaktı.

Temel olarak:

Müşteri1.örnek CNAME'de müşteri1.sirketimalanadim.örnek // bu RFC olarak geçersizdir www.müşteri1.örnek CNAME müşteri1.sirketimalanadim.örnek // geçerlidir ve çalışır

client1.mycompanydomain.example veya A kaydının IP adresini değiştirebilmek istiyoruz ve müşterilerimiz kontrol ettiğimiz bu kaydı takip edecek.

DNS'imizde şöyle görünecek:

Bir 192.0.2.1'DE Müşteri1.sirketimalanadim.örnek

Herhangi bir fikir?

8 cevap

Sipwiz ve Bay Evil'e teşekkürler. Kullanıcının girdiği ve başında www girdiği url'yi ayrıştıracak bir PHP betiği geliştirdik. (örneğin bir müşteri kiragiannis.com'a girerse www.kiragiannis.com'a yönlendirilir). Bu nedenle, müşterimiz kökünü (örneğin, client1.com, web yönlendiricimizin bulunduğu A kaydına) ve ardından www CNAME'i yönettiğimiz gerçek A kaydına yönlendirir.

Geleceğimizle ilgilenmeniz durumunda kod aşağıdadır.

Bu sorunun hala sık sık gündeme gelmesinin nedeni, bahsettiğiniz gibi, birisinin önemli bir yazar olduğunu düşünmesi, RFC'nin önünde alt alan adı olmayan alan adlarının geçersiz olduğunu belirtmesidir. Ancak, RFC'yi dikkatlice okursanız, bunun tam olarak söylediği şey olmadığını anlayacaksınız. Aslında, RFC 1912 şunları belirtir:

CNAME ile aşırıya kaçmayın. Ana bilgisayarları yeniden adlandırırken bunları kullanın, ancak onlardan kurtulmayı planla(ve kullanıcılarınızı bilgilendirin).

Bazı DNS ana bilgisayarları, bölgenin en üstünde CNAME benzeri işlevsellik elde etmenin bir yolunu sağlar (çıplak etki alanı adı için kök etki alanı düzeyi) özel tip kayıtlar. Bu tür kayıtlar, örneğin şunları içerir:

  • DNSimple'daki takma ad
  • DNS'de ANAME Kolaylaştı
  • easyDNS'de ANAD
  • CloudFlare'de CNAME

Her ISS için kurulum aynıdır: tıpkı bir CNAME kaydı için yaptığınız gibi, apeks alanınız için example.domain.com'a bir ALIAS veya ANAME kaydı belirtin. DNS sağlayıcısına bağlı olarak, bölgenin üst kısmını boş veya @Ad değeri tanımlar.

ALIAS veya ANAME veya @ example.domain.com.

DNS sağlayıcınız bu tür bir kaydı desteklemiyorsa ve buna geçiş yapamıyorsanız, protokol veya sunucu tarafına bağlı olarak o kadar da zor olmayan alt alan yeniden yönlendirmesini kullanmanız gerekecektir. yazılım hangisi yapmalı,

Bunu yalnızca "amatör yöneticiler" veya benzer fikirlerin yaptığı ifadesine kesinlikle katılmıyorum. Bu sadece "Bir ad ve hizmetinin ne yapması gerekir?" anlayın ve ardından DNS yapılandırmanızı bu istekleri karşılayacak şekilde uyarlayın; Ana hizmetleriniz İnternet ise ve E-posta CNAME'i kalıcı olarak silmenin sorunlu olması için GERÇEK bir neden göremiyorum. Sonuçta, kim @ subdomain.domain.org'u @ domain.org'a tercih eder? Protokolün kendisini zaten yapılandırdıysanız, kimin "www" ihtiyacı var? Kök alan adının kullanımının geçersiz olacağını varsaymak mantıksızdır.

CNAME - Kök kaydı teknik olarak RFC'lere karşı değildir, ancak sınırlamaları vardır, yani önerilmez.

Tipik olarak, kök girişiniz birden çok giriş içerecektir. Ad sunucularınız için 3 ve ardından IP adresi için bir tane diyelim.

Bir düğümde CNAME RR varsa, başka hiçbir veri mevcut olmamalıdır;

Ve IETF belgesinde " Yaygın hatalar işte ve DNS yapılandırması":

Bu genellikle deneyimsiz yöneticiler tarafından açık olarak yapılır ve Alan adı aynı zamanda ev sahibi oldu. ancak DNS sunucuları BIND gibi, CNAME'i görür ve bu ad için başka kaynaklar eklemeyi reddeder. CNAME ile başka hiçbir kaydın bir arada bulunmasına izin verilmediğinden, NS kayıtları yok sayılır. Bu nedenle, podunk.xx etki alanındaki tüm ana bilgisayarlar da yok sayılır!

Bununla nasıl başa çıktıklarını veya ne gibi olumsuz yan etkileri olabileceğini bilmiyorum, ancak bazı alan adlarımı barındırmak için Hover.com'u kullanıyorum ve yakın zamanda alanımın üstünü CNAME olarak belirledim. DNS düzenleme araçları hiç şikayet etmedi ve alanım atanan CNAME aracılığıyla mutlu bir şekilde çözülüyor.

Dig'in bu etki alanı için bana gösterdiği şey (gerçek etki alanı, etkialanim.com olarak çalışıyor):

; <<>> DiG 9.8.3-P1<<>> etkialanim.com ;; genel seçenekler: + cmd ;; Cevap geldi: ;; - >> BAŞLIK<<- opcode: QUERY, status: NOERROR, id: 2056 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mydomain.com. IN A ;; ANSWER SECTION: mydomain.com. 394 IN CNAME myapp.parseapp.com. myapp.parseapp.com. 300 IN CNAME parseapp.com. parseapp.com. 60 IN A 54.243.93.102

Client1.mycompanydomain.com.localdomain demek istediğinizi düşünmemek için harici alanın sonuna bir nokta koymalısınız;

Yani, sadece değiştirin:

CNAME'DE Müşteri1.com müşteri1.mycompanydomain.com

CNAME'DE Müşteri1.com müşteri1.mycompanydomain.com.

Sipwiz doğrudur, doğru yapmanın tek yolu hibrit bir HTTP ve DNS yaklaşımıdır. Kayıt şirketim Tucows için bir satıcıdır ve ücretsiz bir katma değer olarak alan adı yönlendirme hizmeti sunarlar.

Alan adınız blah.com ise, size alan adını nereye yönlendirmek istediğinizi soracaklar ve www.blah.com'a gireceksiniz. Apache sunucularına bir A kaydı atarlar ve otomatik olarak blah.com'u DNS ana bilgisayarları olarak eklerler. Vhost, 302 HTTP hatasıyla yanıt verir ve bunları doğru URL'ye yönlendirir. Komut dosyası oluşturması/kurulum yapması kolaydır ve düşük düzeyde ele alınabilir, aksi takdirde hurdaya çıkar.

Örneğin şu komutu çalıştırın: curl -v eclecticengineers.com

DNS (Alan Adı Sistemi), İnternet'in "telefon rehberi" dir. Telefon numarası olarak IP adresini ve kişi adları olarak etki alanlarını kullanır. Böyle bir deftere sadece "telefon numarası" değil, aynı zamanda kişi hakkında ek bilgiler de girebilirsiniz ("e-posta", "iş yeri" vb.).

Etki alanı bilgileri DNS sunucularında saklanır. DNS sistemine eklemek için kayıt olmanız gerekir. kaynak kayıtları... Sunucular, onların yardımıyla, diğer sunucularla alan adları hakkındaki bilgileri paylaşır. Etki alanı için kaynak kayıtları kaydedilinceye kadar, İnternet'in "telefon defterinde" değildir. Bu nedenle, sitenin veya postanın üzerinde çalışması imkansızdır. Kaynak kayıtlarını belirlemeye başlamadan önce, bir etki alanı atamanız, yani bunun için DNS sunucularını kaydetmeniz gerekir. Talimatlara göre yapabilirsiniz:. Ardından kaynak kayıtlarına gidin. Değişiklikler, DNS sunucuları güncellendikten sonra (genellikle 24 saat önce) yürürlüğe girer.

Ana kaynak kayıtları A, CNAME, MX, TXT ve SPF kayıtlarıdır. Onları daha ayrıntılı olarak ele alalım.

A kaydı

A (adres) kaydı, İnternet'teki temel kaynak kayıtlarından biridir. Etki alanını sunucu IP adresiyle bağlamak gerekir. Bir A kaydı kaydedilene kadar siteniz çalışmayacaktır.
Tarayıcının adres çubuğuna sitenin adını girdiğinizde, sitenizi hangi sunucudan açmanız gerektiğini DNS, A kaydına göre belirler.

A kaydı örnekleri:

Kayıt adıKayıt türüAnlam
site.ruA123.123.123.123
shop.site.ruA123.123.123.123

Talimatlara göre bir A kaydı kaydedebilirsiniz:

CNAME kaydı

CNAME (Kanonik ad), alt alan adlarını (örneğin, www.site.ru) kurallı alan adına (site.ru) veya başka bir alana bağlamaktan sorumlu bir kayıttır.
CNAME'in ana işlevi, farklı alt alanlar için alan kaynak kayıtlarını (A, MX, TXT) çoğaltmaktır.

CNAME kaydı örnekleri:

Kayıt adıKayıt türüAnlam
www.site.ruCNAMEsite.ru
webmail.site.ruCNAMEwebmail.hosting.site

Bir alt alan adı için CNAME kaydettiyseniz www.site.ru ve site.ru değerini belirtin, site aynı IP adresinden açılacaktır. site.ru... CNAME için kaydolursanız mail.site.ru ve değeri belirtin webmail.hosting.site sonra mail.hosting.site webmail.hosting.site ile aynı kaynak kayıtları dağıtılacaktır.

Bir CNAME kaydının kullanılması, bu alt etki alanı, yani alt etki alanı için diğer kaynak kayıtlarının kullanımını hariç tutar. webmail.site.ru veya www.site.ru aynı anda hem A kaydı hem de CNAME kaydı ekleyemezsiniz.

Talimatlara göre bir CNAME kaydı kaydedebilirsiniz:

MX kaydı

MX (Mail Exchanger) - postanın çalışacağı sunucudan sorumlu bir kayıt. MX kayıtları, postanın nasıl çalıştığı konusunda kritik öneme sahiptir. Onlar sayesinde gönderen taraf, alan adınız için hangi sunucuya posta göndermeniz gerektiğini "anlıyor".

MX kayıtlarına örnekler:

Kayıt adıKayıt türüBir öncelikAnlam
site.ruMX10 mx1.hosting.site
site.ruMX15 mx2.hosting.site

nerede mx1.hosting ..

Genellikle, iki posta sunucusu belirtilir, böylece bunlardan biri kullanılamıyorsa, posta diğerine gönderilmeye devam eder. Girişin önceliği, postanın ilk olarak hangi sunucuya gönderileceğini belirler. Sayı ne kadar düşükse, öncelik o kadar yüksek olur. Böylece site.ru alan adı için mail sunucusu mx1.hosting..hosting şeklindedir.. Öncelik aynı ise sunucu rastgele seçilir.

Talimatlara göre bir MX kaydı kaydedebilirsiniz:

TXT kaydı

TXT (Metin dizesi) - alan için gerekli metin yorumlarını ayarlamak için kullanılan bir kayıt. Genellikle ek hizmetler bağlanırken etki alanının sahipliğini kontrol etmek için ve ayrıca SPF kaydı ve DKIM anahtarı için bir kapsayıcı kullanılır. Birbirleriyle çelişmiyorlarsa sınırsız sayıda TXT kaydı kaydedebilirsiniz.

Talimatlara göre bir TXT kaydı kaydedebilirsiniz:

SPF kaydı

SPF kaydı (Gönderen Politikası Çerçevesi), belirtilen etki alanı adına ileti göndermesine izin verilen sunucuların listesi hakkında bilgi içerir. İzinsiz kullanımı önler. SPF ayarı, etki alanı için TXT kaydına yazılır.

Bir SPF kaydı örneği:

Kayıt adıKayıt türüAnlam
site.rutxtv = spf1 şunları içerir: _spf.hosting..123.123.123 a mx ~ tümü

burada 123.123.123.123, ihtiyacınız olan sunucunun IP adresidir.

Bu örnekte:

  • v = spf1- kullanılan SPF kaydının sürümünü tanımlar;
  • şunları içerir: _spf.hosting.site- SPF kaydına başka bir alanın SPF kaydının değerini dahil eder. Yani "_spf.hosting.site" alan adı için SPF kaydının tüm değerleri alan adı için geçerli olacaktır;
  • ip4: 123.123.123.123 - 123.123.123.123 IP adresinden posta alınmasına izin verir;
  • a- IP adresi etki alanının kaynak A kaydında bulunan sunucudan posta alınmasına izin verir. Basitçe söylemek gerekirse, sitenin barındırıldığı sunucudan;
  • mx- alan adı için MX kayıtlarından birinde gönderen sunucu belirtilmişse posta alınmasına izin verir;
  • ~ hepsi- Mektup yukarıdaki listede yer almayan bir sunucudan geldiyse daha dikkatli analiz edilmelidir. Ayrıca bazen kullanılır -herşey- bu durumda mektup ek kontrolleri geçmez ve hemen reddedilir.

Talimatlara göre bir SPF kaydı kaydedebilirsiniz:

NS, PTR, SOA kayıtları hizmet kayıtlarıdır ve kural olarak otomatik olarak yapılandırılır.

NS kaydı

NS (Yetkili ad sunucusu) kaydı, alanın kaynak kayıtlarının geri kalanını depolamaktan sorumlu olan DNS sunucularına işaret eder. NS kayıtlarının sayısı, ona hizmet eden tüm sunucuların sayısına kesinlikle karşılık gelmelidir. DNS hizmetinin çalışması için kritiktir.

PTR kaydı

PTR, bir sunucunun IP adresini kurallı adıyla (etki alanı) ilişkilendiren bir ters DNS kaydıdır. PTR kaydı, postaları filtrelemek için kullanılır.Bir VPS veya Dedicated sunucu sipariş ettiyseniz, talimatlara göre bir PTR kaydı kaydedebilirsiniz:

SOA kaydı

SOA (Yetki Başlangıcı) - Referans alan adı bilgilerini hangi sunucunun sakladığını gösteren ilk bölge kaydı. DNS hizmetinin çalışması için kritiktir. SOA kaydının ne olduğu ve nasıl kontrol edileceği hakkında daha fazla bilgi edinebilirsiniz.

  • Tercüme

Dikkatli okuyucu bu resimde IPv6'yı bulacaktır.


İnsanlar genellikle alan adları konusunda kafa karıştırır. Sitem neden çalışmıyor? Bu saçmalık neden bozuk, hiçbir şey yardımcı olmuyor, sadece çalışmasını istiyorum! Genellikle soruyu soran kişi ya DNS hakkında bilgi sahibi değildir ya da temel fikirleri anlamaz. Birçokları için DNS korkutucu ve anlaşılmaz bir şeydir. Bu makale, bu korkuyu gidermeye yönelik bir girişimdir. DNS (şimdiki değeri) basitçe birkaç temel kavramı anlıyorsanız.

DNS nedir

DNS anlamına gelir Alan Adı Sistemi... Küresel olarak dağıtılmış bir anahtar ve değer deposudur. Dünyanın her yerindeki sunucular size anahtara göre bir değer sağlayabilir ve anahtarı bilmiyorlarsa başka bir sunucudan yardım isteyeceklerdir.


Bu kadar. Hakikat. Siz veya tarayıcınız www.example.com anahtarı için bir değer ister ve yanıt olarak 1.2.3.4 alır.

Temel şeyler

DNS'nin büyük bir artısı, bunun bir kamu hizmeti olmasıdır ve bunu anlamak istiyorsanız sunuculara girebilirsiniz. Hadi deneyelim. web01.bugsplat.info makinesinde barındırılan bir petekeen.net alanım var. Aşağıda kullanılan komutlar OS X komut satırından çalıştırılabilir ( oh, yani, macOS - yaklaşık. başına.).


Ad ve adres arasındaki eşlemeye bir göz atalım:


$ kaz web01.bugsplat.info

Dig komutu, DNS sorguları için bir İsviçre çakısıdır. Havalı, çok işlevli alet. İşte cevabın ilk kısmı:


; <<>> DiG 9.7.6-P1<<>> web01.bugsplat.info ;; genel seçenekler: + cmd ;; Cevap geldi: ;; - >> BAŞLIK<<- opcode: QUERY, status: NOERROR, id: 51539 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

Burada ilginç olan tek bir detay var: talebin kendisi hakkında bilgi. Bir kayıt istediğimizi ve tam olarak bir yanıt aldığımızı söylüyor. Buraya:


;; SORU BÖLÜMÜ:; web01.bugsplat.info. İÇİNDE

dig varsayılan olarak A kayıtları ister. bir adres(adres) ve bu, DNS'deki temel kayıt türlerinden biridir. A, bir IPv4 adresi içerir. IPv6 adreslerinin bir karşılığı vardır - AAAA. Gelin cevaba bir göz atalım:


;; CEVAP BÖLÜMÜ: web01.bugsplat.info. Bir 192.241.250.244 İÇİNDE 300

Cevabın geri kalanı cevabın kendisini açıklar:


;; Sorgu süresi: 20 msn ;; SUNUCU: 192.168.1.1 # 53 (192.168.1.1);; NE ZAMAN: 19 Temmuz Cuma 20:01:16 2013 ;; MSG BOYUTU rcvd: 56

Özellikle, sunucunun yanıt vermesinin ne kadar sürdüğünü, sunucunun IP adresinin ne olduğunu (192.168.1.1), hangi bağlantı noktasının çaldığını (53, varsayılan DNS bağlantı noktası), isteğin ne zaman tamamlandığını ve kaç bayt olduğunu söyler. yanıt içindeydiler.


Gördüğünüz gibi, normal bir DNS sorgusu ile ilgili çok şey oluyor. Bir web sayfasını her açtığınızda, tarayıcı, resimler ve komut dosyaları gibi tüm harici kaynakları yüklemek de dahil olmak üzere düzinelerce bu istekte bulunur. Her kaynak en az bir yeni DNS isteğinden sorumludur ve DNS güçlü önbelleğe alma için tasarlanmadıysa çok fazla trafik oluşturulur.


Ancak bu örnekte, DNS sunucusu 192.168.1.1'in basit bir soruyu yanıtlamak için bir grup başka sunucuyla iletişim kurduğunu görmüyorsunuz: "web01.bugsplat.info nereye işaret ediyor?" Bilgi önbelleğe alınmamış olsaydı, kazmanın geçmesi gereken tüm olası zincir hakkında bilgi edinmek için bir iz çalıştıralım:


$ dig + izleme web01.bugsplat.info;<<>> DiG 9.7.6-P1<<>> + web01.bugsplat.info'yu izleyin ;; genel seçenekler: + cmd. 137375 NS l.root-servers.net'te. ... 137375 NS m.root-servers.net'te. ... 137375 NS a.root-servers.net'te. ... 137375 NS'de b.root-servers.net. ... 137375 NS c.root-servers.net'te. ... 137375 NS d.root-servers.net'te. ... 137375 NS e.root-servers.net'te. ... 137375 NS f.root-servers.net'te. ... 137375 NS g.root-servers.net'te. ... 137375 NS h.root-servers.net'te. ... 137375 NS i.root-servers.net'te. ... 137375 NS j.root-servers.net'te. ... 137375 NS k.root-servers.net'te. ;; 189 ms bilgide 192.168.1.1 # 53 (192.168.1.1) adresinden 512 bayt alındı. 172800 IN NS c0.info.afilias-nst.info. bilgi. 172800 IN NS a2.info.afilias-nst.info. bilgi. 172800 NS d0.info.afilias-nst.org'da. bilgi. 172800 NS b2.info.afilias-nst.org'da. bilgi. 172800 NS b0.info.afilias-nst.org'da. bilgi. 172800 NS a0.info.afilias-nst.info'da. ;; 1224 ms bugsplat.info'da 192.5.5.241 # 53'ten (192.5.5.241) 443 bayt alındı. 86400, NS ns-1356.awsdns-41.org'da. bugsplat.info. 86400, NS ns-212.awsdns-26.com'da. bugsplat.info. 86400 NS ns-1580.awsdns-05.co.uk'de. bugsplat.info. 86400, NS ns-911.awsdns-49.net'te. ;; 239 ms web01.bugsplat.info'da 199.254.48.1 # 53'ten (199.254.48.1) 180 bayt alındı. 300 IN A 192.241.250.244 bugsplat.info. 172800 NS ns-1356.awsdns-41.org'da. bugsplat.info. 172800 NS ns-1580.awsdns-05.co.uk'de. bugsplat.info. 172800 NS ns-212.awsdns-26.com'da. bugsplat.info. 172800 NS ns-911.awsdns-49.net'te. ;; 15 ms'de 205.251.195.43 # 53'ten (205.251.195.143) 196 bayt alındı

Bilgiler hiyerarşik bir sırayla görüntülenir. Dig'in bir noktayı nasıl eklediğini hatırlayın. ana bilgisayardan sonra, web01.bugsplat.info? Yani, dönem. bu önemli bir ayrıntıdır ve hiyerarşinin kökü anlamına gelir.


Kök DNS sunucuları, dünya çapında çeşitli şirketler ve ülkeler tarafından sağlanmaktadır. Başlangıçta çok azı vardı, ancak İnternet büyüdü ve şimdi 13 tanesi var. Ancak sunucuların her biri, bir IP'nin arkasına saklanan onlarca veya yüzlerce fiziksel makineye sahiptir.


Dolayısıyla, izlemenin en üstünde, her biri bir NS kaydı kullanılarak tanımlanan kök sunucular bulunur. NS kaydı, etki alanı adını (bu durumda kök etki alanı) DNS sunucusuna bağlar. Namecheap veya Godaddy gibi bir kayıt kuruluşuna bir alan adı kaydettiğinizde, sizin için NS kayıtları oluştururlar.


Sonraki blokta, dig'in nasıl rastgele bir kök sunucu seçtiğini ve web01.bugsplat.info için bir A kaydı istediğini görebilirsiniz. Yalnızca kök sunucunun IP adresi görünür (192.5.5.241). Peki hangi kök sunucuydu? Hadi bulalım!


$ dig -x 192.5.5.241;<<>> DiG 9.8.3-P1<<>> -x 192.5.5.241 ;; genel seçenekler: + cmd ;; Cevap geldi: ;; - >> BAŞLIK<<- opcode: QUERY, status: NOERROR, id: 2862 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;241.5.5.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 241.5.5.192.in-addr.arpa. 3261 IN PTR f.root-servers.net.

-x bayrağı, kazmayı IP adresini geriye doğru aramaya zorlar. DNS, IP ile ana bilgisayarı birbirine bağlayan bir PTR kaydıyla yanıt verir, bu durumda f.root-servers.net.


İlk isteğimize geri dönersek, F kök sunucusu farklı bir NS sunucusu kümesi döndürdü. Üst düzey alan bilgisinden sorumludur. dig, bu sunuculardan birinden web01.bugsplat.info için A kaydı ister ve yanıt olarak başka bir NS sunucusu kümesi alır ve ardından şunu sorar: Bunlardan biri sunucular web01.bugsplat.info için bir kayıt. ... Sonunda bir cevap alır!


Vay! Çok fazla trafik oluşturulacaktı, ancak bu kayıtların neredeyse tamamı zincirdeki her sunucu tarafından kalıcı olarak önbelleğe alındı. Bilgisayarınız da tıpkı tarayıcınız gibi bu verileri önbelleğe alır. Çoğu zaman, DNS sorguları asla kök sunuculara ulaşmaz çünkü IP adresleri neredeyse hiç değişmez ( “Muhtemelen hepsi aynı, veritabanlarındaki kayıtlar için büyük bir TTL'den bahsediyoruz. DNS sunucusunun IP adresi hiç değişmediyse, bu, veritabanının kalıcı olarak önbelleğe alındığı anlamına gelmez."- yakl. rrrav'dan). Üst düzey alan adları com, net, org vb. ayrıca genellikle yoğun şekilde önbelleğe alınır.

Diğer çeşitler

Bilmeye değer birkaç tür daha var. Birincisi MX'dir. Alan adını bir veya daha fazla posta sunucusuna bağlar. E-posta o kadar önemlidir ki, kendi DNS kaydı türüne sahiptir. İşte petekeen.net için MX değerleri:


$ dig petekeen.net mx;<<>> DiG 9.7.6-P1<<>> petekeen.net mx ;; genel seçenekler: + cmd ;; Cevap geldi: ;; - >> BAŞLIK<<- opcode: QUERY, status: NOERROR, id: 18765 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;petekeen.net. IN MX ;; ANSWER SECTION: petekeen.net. 86400 IN MX 60 web01.bugsplat.info. ;; Query time: 272 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:33:43 2013 ;; MSG SIZE rcvd: 93

MX kaydının bir IP adresine değil bir ada atıfta bulunduğunu unutmayın.


Büyük olasılıkla aşina olduğunuz başka bir tür de CNAME'dir. şifresini şu şekilde çözer: Kanonik Ad(kanonik ad). Bir ismi diğeriyle ilişkilendirir. Gelin cevaba bir göz atalım:


$ kaz www.petekeen.net;<<>> DiG 9.7.6-P1<<>> www.petekeen.net ;; genel seçenekler: + cmd ;; Cevap geldi: ;; - >> BAŞLIK<<- opcode: QUERY, status: NOERROR, id: 16785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.petekeen.net. IN A ;; ANSWER SECTION: www.petekeen.net. 86400 IN CNAME web01.bugsplat.info. web01.bugsplat.info. 300 IN A 192.241.250.244 ;; Query time: 63 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:36:58 2013 ;; MSG SIZE rcvd: 86

İki cevap aldığımız hemen anlaşılıyor. Birincisi www.petekeen.net'in web01.bugsplat.info'ya işaret ettiğini söylüyor. İkincisi, o sunucu için A kaydını döndürür. CNAME'i başka bir sunucu için bir takma ad (veya takma ad) olarak düşünebilirsiniz.

CNAME'de sorun ne?

CNAME kayıtları çok kullanışlıdır ancak önemli bir nokta vardır: Eğer belirli bir isme sahip bir CNAME varsa, aynı isimle başka bir kayıt oluşturamazsınız. MX yok, A yok, NS yok, hiçbir şey yok.


Bunun nedeni, DNS'nin ikameyi, CNAME'nin işaret ettiği tüm kayıtların CNAME için de geçerli olacağı şekilde yapmasıdır. Örneğimizde www.petekeen.net ve web01.bugsplat.info kayıtları aynı olacaktır.


Bu nedenle, petekeen.net gibi bir kök etki alanında CNAME yapamazsınız, çünkü genellikle orada başka kayıtlara, örneğin MX'e ihtiyaç duyulur.

Diğer sunuculara yapılan istekler

DNS yapılandırmasının bozuk olduğunu varsayalım. Size sorunu çözdüğünüz anlaşılıyor, ancak emin olmak için önbelleğin güncellenmesini beklemek istemiyorsunuz. Dig ile, varsayılan sunucunuz yerine genel DNS sunucusunu aşağıdaki gibi sorgulayabilirsiniz:


$ kaz www.petekeen.net @ 8.8.8.8

Bir IP adresi veya ana bilgisayar içeren @ sembolü, varsayılan bağlantı noktasında belirtilen sunucunun sorgulanmasına neden olur. 4.2.2.2'de Google'ın genel DNS sunucusunu veya genele yakın bir Düzey 3 sunucusunu kullanabilirsiniz.

tipik durumlar

Pek çok web geliştiricisinin aşina olduğu tipik durumlara bir göz atalım.

Etki alanı www'ye yönlendirme

Genellikle iskettlemanstillopen.com alan adını www.iskettlemanstillopen.com'a yönlendirmek gerekir. Namecheap veya DNSimple gibi kayıt şirketleri buna diyor URL Yönlendirme... İşte Namecheap yönetici alanından bir örnek:



@ sembolü, iskettlemanstillopen.com kök etki alanı anlamına gelir. Bu etki alanı için A kaydına bir göz atalım:


$ dig iskettlemanstillopen.com ;; SORU BÖLÜMÜ:; iskettlemanstillopen.com. İÇİNDE ;; CEVAP BÖLÜMÜ: iskettlemanstillopen.com. 500 İÇİNDE 192.64.119.118

Bu IP, Namecheap'e aittir ve orada çalışan ve http://www.iskettlemanstillopen.com'a HTTP düzeyinde yönlendirme yapan küçük bir web sunucusu vardır:


$ curl -I iskettlemanstillopen.com curl -I iskettlemanstillopen.com HTTP / 1.1 302 Geçici Olarak Taşındı Sunucu: nginx Tarih: Cum, 19 Temmuz 2013 23:53:21 GMT İçerik Türü: metin / html Bağlantı: canlı tutma İçerik-Uzunluk : 154 Yer: http://www.iskettlemanstillopen.com/

Heroku veya Github için CNAME

Yukarıdaki ekran görüntüsüne bir göz atın. İkinci satırda CNAME var. Bu durumda, www.iskettlemanstilloopen.com, Heroku'da çalışan bir uygulamaya işaret eder.


$ heroku alan adları === sıcak-yolculuk-3906 Alan Adları sıcak-yolculuk-3906.herokuapp.com www.iskettlemanstillopen.com

Github'un benzer bir hikayesi var, ancak orada havuzun kökünde özel bir dosya oluşturmanız ve CNAME olarak adlandırmanız gerekiyor. Belgelere bakın .dns Etiket Ekle