CNAME'yi ip adresiyle kullanabilir miyim? Neden Çalışırsa (bazen)?


13

İlk soru için en kolay cevap "Hayır, bunun için" A "var" olduğuna inanıyorum, ancak yanlışlıkla IP adresini gösteren CNAME kullanarak bazı alt alan adı kurduk ve ofisimdeki birkaç bilgisayarda çalıştı. Nasıl mümkün olduğunu merak ediyorum.

Şimdi, evden kontrol ederken aşağıdaki hata var:

beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)

% 100 ofisimde çalışıyordum (şu anda öyle görünmüyor, ancak farklı makinede kontrol ediyorum). Bu nedenle, bazı özel ağ kurulumu nedeniyle veya DNS girişi ekledikten hemen sonra test ettiğim için% 100 değilim.

Bu hikayenin kulağa biraz çılgınca / inanılmaz geldiğini biliyorum, ama birisi bu bulmacayı çözmeme yardımcı olabilir.

// değiştir: dig çıktı ekliyorum

; <<>> DiG 9.6-ESV-R4-P3 <<>> somesubdomain.somedomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60224
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;somesubdomain.somedomain.com.      IN  A

;; ANSWER SECTION:
somesubdomain.somedomain.com.   67  IN  CNAME   xxx.xxx.xxx.xx1.

;; AUTHORITY SECTION:
.           1800    IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2012040901 1800 900 604800 86400

;; Query time: 72 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 10 00:11:01 2012
;; MSG SIZE  rcvd: 136

2
Ofis makinelerinin çalışmasını sağlayan başka bir şey olmadığından emin misiniz? Önbellek girişleri? Yerel ağdaki bu etki alanı için genel çözünürlüğü geçersiz kılan yetkili sunucu? Dosyalar barındırılıyor mu?
Shane Madden

Kesin olmak gerekirse, iki makinede çalıştı, ikisi de OSX Ubuntu makinesinde çalışmadı. İki makinede çalıştığı için dns yayılım sorunu veya dns önbellek olduğuna inandığım için ubuntu problemini (bu bir hataydı) görmezden geldim. Her istemcide DNS kurulumunu kontrol ettim ve aynıydı (bu, DNS yayılma teorisi ile ilgili bir belirsizlik bıraktı). Bu makinelerden biri MacBook'um ve şu anda evden kullanıyorum ve kurduğum web sitesi üzerinde artık düzgün çalışmıyor: "Somesubdomain.somedomain.com adresindeki sunucu bulunamıyor, çünkü DNS arama başarısız oldu. "
Maciek Sawicki

Kullanarak adı sorguladığınızda ne döndürülür dig?
Shane Madden

Soruya kazı çıktı ekledim.
Maciek Sawicki

OSX bilgisayarlarının mDNS (aynı şey değil) gibi arama yapmak için DNS'den başka bir şey kullandığından şüpheleniyorum.
Chris S

Yanıtlar:


16

Bir CNAMEkayıttaki veriler her zaman başka bir DNS adı olmalıdır CNAME;

RFC 1034'ün kısaca belirttiği gibi, a'daki veriler CNAME:

            CNAME           a domain name.

Bununla birlikte, bir IP adresini işaret etmek istiyorsanız, biletiniz:

            A               For the IN class, a 32 bit IP address

CNAMEbir DNS diğer adı olacak şekilde tasarlanmış ve uygulanmıştır; söz konusu veri alanında IP adresine sahip olma fikri yoktur. Bu nedenle, tasarlandığı gibi başka bir DNS adının takma adı olarak yorumlanır; sonuçta, bir IP adresi bir DNS adının sözdizimine uyar.

Örneğin, diyelim ki DNS verileriniz:

somesubdomain.somedomain.com.   60  IN  CNAME   192.0.2.1.

Sorguladığınız özyinelemeli DNS sunucusu, kaydın bir olduğunu görür CNAMEve içerdiği gerçek verileri isteyeceğinizi gösterir. Dışında bir kayıt CNAMEbulunamadığından, istemciye verilecek yanıt yoktur.

192Etki alanı içindeki bir ana bilgisayar adı için bir kaydı sorgulamaya çalışır 0.2.1. Bu ad için önbelleğe alınmış hiçbir şey yoktur, bu nedenle kök sunuculara sorar. TLD'ler için .comve gibi isteklerde bulunurlar .net, ancak bu istek bir taleptir .1. Derhal böyle bir şey olmadığını cevaplarlar ve yinelemenin size gönderdiği şey budur.

Gördüğünüz yanıt digözyinelemeli ad sunucunuzdır, "iyi, aradığınız ad başka bir yere işaret etti ve bir yerde yoktu - bana inanmıyorsanız kök sunucuya sorun".


Yani, evet, bir CNAMEkayda IP adresi koymak asla geçerli değildir ve çalışan sistemlerin ana bilgisayar dosyası veya yerel ad çözümlemesi gibi başka bir mekanizma yoluyla doğru çalıştığından şüpheleniyorum - ad çözümleme davranışlarını araştırın.


2

cname, genellikle A kaydı veya başka bir cname gibi başka bir adın takma adı olan kanonik addır. cname'yi bir IP'yi gösterecek şekilde ayarlarsanız, bu IP'nin yalnızca bir takma adıdır. DNS sunucunuzun hedefin meşru olup olmadığını kontrol ettiğini düşünmüyorum, çünkü standart RFC gerçekten cname hedefi için veri formatı / doğrulamanın ne olduğunu söylemiyor. Bu olağan bir kullanım değildir, ancak sizin için çalışıyorsa işe yarıyor. Sanırım bazen işe yaramaması, geleneksel olarak kullanılanı kullanmanız için yeterli olmalı.


0

Alabilirsin:

example IN CNAME 1.2.3.4.

burada 1.2.3.4 çalışan bir IP adresidir. CNAME'deki sondaki noktaya dikkat edin. Ofisinizdeki bazı makinelerin bununla çalıştığı gerçeği, diğerleri ise alt alanın lmhostsveya /etc/hostsdosyada ayarlandığına inanmamı sağlamaz .


1
Bu bir CNAME için geçerli veriler olsa da, bunun ek bir aramaya neden olmayacağından eminim. Kök sunucuları dışında, var olmayan bir TLD için 4?
Shane Madden

HERHANGİ BİR (ör. host -a) Sorgusu ile ek bir arama yapılacaktır .
adamo

@ShaneMadden BTW, yorumunuz bana DJB'nin yerel TLD'lerini
adamo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.