DNS geçmişi

70'lerde insanlar, erişmek istedikleri sunucuların IP adreslerini hatırlamaktan bıkmıştı. Aynı zamanda, sayısal bir ana bilgisayar adresi yerine daha basit ve daha akılda kalıcı bir ad kullanma fikri ortaya çıktı.

Stanford Araştırma Enstitüsü'ndeki çalışanlar , ARPANET'teki bilgisayarların dize adlarının ve karşılık gelen sayısal adreslerinin bir listesini içeren HOSTS.TXT metin dosyasını buldular .

Adresler manuel olarak atanmıştır. Bir ana bilgisayar adı ve adresi istemek veya ana dosyaya bir bilgisayar eklemek için, kullanıcılar çalışma saatleri içinde Stanford'un ağ bilgi merkeziyle telefonla iletişime geçti.

1980'lerin başlarında, tek, merkezi bir ana bilgisayar tablosunu sürdürmek yavaş ve külfetli hale geldi ve büyüyen ağ, teknik ve personel sorunlarıyla başa çıkmak için otomatik bir adlandırma sistemine ihtiyaç duyuyordu.

1984 yılında, dört UC Berkeley öğrencisi hiyerarşik alan adı sisteminin ilk versiyonunu yazdı. Artık özellikle Unix sistemlerinde yaygın olarak kullanılmaktadır ve hala İnternet üzerinde en yaygın kullanılan DNS yazılımıdır.

DNS'ye Giriş

Etki Alanı Adı Sistemi (DNS), etki alanları hakkında bilgi depolamak ve almak için kullanılan bir dağıtım sistemidir. En yaygın olarak, bir ana bilgisayar adından (bilgisayar veya cihaz) bir IP adresi almak, posta yönlendirme bilgilerini elde etmek ve/veya bir etki alanındaki protokoller için ana bilgisayarlara hizmet vermek için kullanılır.

Sistem, belirli bir protokole göre etkileşime giren belirli bir DNS sunucuları hiyerarşisi şeklinde düzenlenmiştir. DNS'yi anlamanın temeli, ad ve bölgelerin hiyerarşik yapısını anlamaktır.

Bir etki alanı bölgesinden sorumlu olan her sunucu, etki alanının başka bir bölümünün sorumluluğunu başka bir sunucuya devredebilir; bu da, bilgilerin alaka düzeyinin sorumluluğunu, alanın yalnızca "kendilerine ait" bölümünden sorumlu olan çeşitli kuruluşların sunucularına atamayı mümkün kılar. alan adı.

DNS sistemi, bölge hiyerarşisine karşılık gelen bir DNS sunucuları hiyerarşisi içerir. Her bölge, etki alanıyla ilgili bilgileri barındıran en az bir yetkili DNS sunucusu tarafından desteklenir.

Önemli! Ad ve IP adresi birbiriyle birebir ilişkili olmak zorunda değildir. Bir IP adresi, birçok web sitesini tek bir bilgisayarda desteklemenize izin veren birçok alan adına sahip olabilir (buna paylaşımlı barındırma denir ).

Bunun tersi de olabilir - birçok IP adresi bir alan adıyla ilişkilendirilebilir: bu, yük dengeleme oluşturmanıza olanak tanır ve CDN ağlarında aktif olarak kullanılır .

Sistemin kararlılığını artırmak için, aynı bilgileri içeren birçok sunucu kullanılır ve protokol, farklı sunucularda bulunan bilgilerin senkronizasyonunu sağlayacak araçlara sahiptir. 13 kök sunucu var, adresleri pratik olarak değişmiyor.

İlginç! DNS protokolü, sorgulara yanıt vermek için TCP veya UDP bağlantı noktası 53'ü kullanır. Geleneksel olarak, istekler ve yanıtlar tek bir UDP datagramı olarak gönderilir. Yanıt veri boyutu 512 baytı aştığında TCP kullanılır.

DNS kayıtları

DNS sunucusu, her etki alanı adı için bir dizi parametre depolar. Bunlar, alan adı, IP adresi ve çeşitli hizmet bilgileri ile ilgili kayıtlardır.

Toplamda bu türden birkaç düzine giriş var, bu yüzden yalnızca en popülerlerini ele alacağız:

A adres IP adresi
AAAA Adres IPv6 IPv6 formatında adres
CNAME kanonik ad Takma ad için kanonik ad
MX posta değiştirici Etki alanı için posta ağ geçidi adresi
NS ad sunucusu Etki alanı bölgesinden sorumlu düğümün adresi
SOA yetki başlangıcı Bilgi yetkisinin belirtilmesi
SRV sunucu seçimi Hizmetler için Sunucu Konumlarını Belirleme
PTR Işaretçi Adres adı eşleşmesi - A ve AAAA için ters eşleşme
TXT Metin dizesi 255 bayta kadar isteğe bağlı ikili veri yazın

Buradaki en ilginç olanlar:

  • A kaydı, bir etki alanına karşılık gelen bir IP adresi belirlemenizi sağlar.
  • CNAME, ad için bir eşanlamlı belirlemenizi sağlar, örneğin, www.codegym.cc == codegym.cc.
  • MX kaydı, posta sunucusu hakkında bilgi içerir: xxx@codegym.cc adresine bir mektup geldiğinde ne yapılmalı?
  • NS - bu etki alanı hakkında bilgi içeren DNS sunucusunun adresini belirtir. Kayıtlar önbelleğe alındığında ve yerel olmayan düğümlerde depolandığında kullanışlıdır.

IP Adresi Arama

DNS sisteminin nasıl çalıştığını görelim.

Diyelim ki tarayıcınıza api.codegym.cc yazdınız. Tarayıcı, yerel DNS hizmetiyle iletişime geçecek ve ona api.codegym.cc etki alanı için bir IP adresi vermenizi isteyecektir. İşte bundan sonra olacaklar...

İlk olarak DNS hizmeti, bu etki alanının bilgisayarınızdaki yerel ana bilgisayar dosyasında olup olmadığına bakar. Varsa ip adresini ondan alır. Değilse, kendisi tarafından bilinen DNS sunucusuna bir istek gönderir: "api.codegym.cc'nun IP adresi nedir?".

Ancak, DNS sunucusu yalnızca istenen ad hakkında değil, tüm codegym.cc etki alanı hakkında da hiçbir şey bilmiyor olabilir. Bu durumda, sunucu kök sunucuyla - örneğin 198.41.0.4 - iletişim kurar. Bu sunucu şöyle diyor: "Bu adres hakkında hiçbir bilgim yok, ancak ru bölgesinden 204.74.112.1'in sorumlu olduğunu biliyorum."

Ardından DNS sunucusu isteğini 204.74.112.1'e gönderir, ancak şu yanıtı verir: "Bu sunucu hakkında hiçbir bilgim yok, ancak 207.142.131.234'ün codegym.cc bölgesinden sorumlu olduğunu biliyorum." Son olarak, aynı istek üçüncü bir DNS sunucusuna gönderilir ve bir yanıt alır - istemciye, yani tarayıcıya iletilen bir IP adresi.

Bu durumda, isme göre bir IP arama sürecinde aşağıdaki kurallar işe yaradı:

  • Tarayıcı, bilinen bir DNS sunucusuna yinelemeli bir istek gönderdi (bu tür bir isteğe yanıt olarak, sunucunun bir IP adresi veya boş bir yanıt ve bir NXDOMAIN hata kodu döndürmesi gerekir).
  • Tarayıcıdan isteği alan DNS sunucusu, istenen bölgeden sorumlu sunucudan bir yanıt alana kadar, diğer DNS sunucularından yanıt aldığı arka arkaya tekrarlanmayan istekler gönderdi.
  • Bahsedilen DNS sunucularının geri kalanı, istekleri özyinelemesiz olarak işliyordu (ve istekte böyle bir gereksinim olsa bile büyük olasılıkla istekleri yinelemeli olarak işlemezdi).

Bazen istenen sunucunun "yukarı akışlı" bir DNS sunucusuna yinelemeli bir sorgu göndermesi ve hazır bir yanıt beklemesi mümkündür.

Önemli! Özyinelemeli sorgu işleme ile, tüm yanıtlar DNS sunucusundan geçer ve sunucu, bunları önbelleğe alma fırsatı elde eder. Aynı alan adları için tekrarlanan bir istek genellikle sunucunun önbelleğinin ötesine geçmez ve diğer sunuculara yapılan çağrılar hiç gerçekleşmez.

Yanıtlar için izin verilen önbellek süresi, yanıtlarla birlikte gelir (kaynak kaydının TTL alanı).

ana bilgisayar dosyası

İlk aramanın yerel hosts dosyasında olduğunu fark ettik. Bu, ARPANET günlerinde icat edilen HOSTS.TXT dosyasının varisidir. Evet, hala var ve hala kullanılıyor.

Yol boyunca bulunur:

  • Linux'ta /etc/hosts .
  • Windows'ta %SystemRoot%\system32\drivers\etc\hosts .
  • Android'de /system/etc/hosts .

Tipik olarak, dosya yerel ana bilgisayar düğümü için bir konum tanımı içerir:

127.0.0.1   	localhost

Yapısı çok basittir: önce IP adresi gelir, sonra alan adı.

Kullanışlı

Hosts dosyasını kullanarak bannerların alan adreslerini 127.0.0.0, 127.0.0.1 veya 0.0.0.0 adresine yönlendirerek reklamları filtrelemek mümkündür.

127.0.0.1'in kullanılması, sunucunun mevcut olmaması veya yanlış yapılandırılması durumunda yanıt zaman aşımına ve ilgili gecikmelere neden olacağından genellikle önerilmez. Ve herhangi bir reklam alanını 0.0.0.0 IP adresiyle eşlerseniz, ona yönelik tüm istekler hemen düşer).

Genel DNS sunucuları

Bağladığınızda genellikle internet hizmetinizle birlikte bir DNS sunucusu alırsınız. Ancak böylesine ücretsiz bir DNS sunucusu her zaman en iyi seçenek değildir. Ayrıca, bir siteyi her ziyaret ettiğinizde ISP'nizin DNS sunucusuna alan adıyla bir sorgu göndermek istemeyebilirsiniz.

Bu nedenle, birçok kişi halka açık ücretsiz DNS sunucularına geçmeyi tercih eder. İlk olarak, çok hızlılar ve geniş bir alan adı önbelleğine sahipler. Minimum teknik sorun olasılığı ile daha hızlı site yükleme ve çalışma süresi elde edeceksiniz.

İkincisi, güvenlik. Bazı DNS hizmetleri, kimlik avı ve kötü niyetli sitelere erişimi engelleyebilir ve çocukları uygunsuz çevrimiçi içerikten korumak için içerik filtreleme sunar.

Bu tür DNS sunucuları dolandırıcılarla bile savaşabilir. Örneğin, sahte bir banka web sitesine gidersiniz ve DNS sunucusu size dolandırıcıların IP adresini değil, güvenlik hizmetini verir.

Bu tür sunucuların listesi

Bulut parlaması 1.1.1.1
1.0.0.1
Cloudflare, ziyaretçi verilerini reklam sunmak için kullanmayacağını ve istek kaynağı IP adreslerini asla diske yazmayacağını taahhüt eder.
Google Genel DNS 8.8.8.8
8.8.4.4
Sorun giderme ve tanılama için yaklaşık 24-48 saat boyunca talepte bulunan cihazın IP adresi hakkındaki eksiksiz bilgileri saklar
Comodo Güvenli DNS 8.26.56.26
8.20.247.20
Kimlik avı sitelerini engeller, ancak kötü amaçlı yazılım, casus yazılım içeren siteleri ziyaret etmeye çalıştığınızda da uyarır.
Yandex.DNS 77.88.8.8
77.88.8.1
Popüler bir Rus arama motorundan ücretsiz DNS hizmeti