Ubuntu'da dnsmasq kullanarak DNS Önbelleğe Alma Nasıl Kurulur

Yayınlanan: 2022-10-19

DNSmasq, Linux dağıtımları için DNS isteklerini önbelleğe almak için kullanılabilir. ancak, biraz zorlayıcı olabilir.

DNS önbelleği, bir web sitesi alan adını ilişkili IP adresine dönüştüren DNS arama prosedürünü hızlandırmak için çalışır. Ağınızdaki birkaç kullanıcı aynı web sitesi adresini ziyaret ettiğinde, yerel DNS önbellek sunucusunu kullanmak web'in yüklenmesi için gereken süreyi azaltabilir.

Önce DNS Önbelleklemenin ne olduğunu görelim.

DNS Önbelleğe Alma Nedir?

DNS, internet tarafından halka açık tüm çevrimiçi siteleri ve ilgili IP adreslerini takip etmek için kullanılır. Bir telefon rehberine benzetilebilir. DNS kullanmak, ağ altyapısının internet siteleriyle etkileşime girmesi için gerekli olan her sitenin IP'sini ezberlemek zorunda kalmamızı engeller.

Arama motorundan bir web sayfasını görüntülemesini istediğinizde, aslında perde arkasında gerçekleşen şey budur.

Sisteminizin çok sayıda harici DNS sunucusuna erişimi olmasına rağmen, sorun şu ki DNS'nin merkezi bir kopyasına sahip olmak iletimi ve çözünürlüğü hala hızlandırıyor. Bu, DNS önbelleğe almanın devreye girdiği zamandır.

dnscache

İsteği web'e göndermeden önce, DNS önbelleği, prosedürü daha da hızlandırmak amacıyla yakın zamanda ve sık erişilen etki alanları için kimlik çözümlemesini gerçekleştirir.

Bir IP adresini bir etki alanı adına çözümlemek için gerektiğinde DNS sunucusuna erişilir. Bu, özellikle web sitesi aynı anda çok sayıda istek alıyorsa, DNS sunucusuna ek bir yük getirebilir.

DNS isteklerini ve yanıt sürelerini azaltmak için bir DNS önbelleği kullanılır. Çözümlenen IP adresleri, ana bilgisayar ayrıntılarıyla birlikte yerel olarak kaydedilir. Yeni bir DNS sorgusu başlatmak yerine, IP veya etki alanı adının bir sonraki çözümlenmesi gerektiğinde sonuç DNS önbelleğinden alınır.

DNS önbelleğe alma, Amazon EC2 Bulut Sunucularındaki aralıklı DNS çözüm sorunlarını gidermeye nasıl yardımcı olur?

Linux sistemlerinin çoğu yerel bir DNS önbelleği kullanmaz. Bu, tüm DNS isteklerinin doğrudan Amazon tarafından sağlanan ve bir kerede işleyebileceği isteklerin sayısı konusunda bir sınırlaması olan yetkili DNS çözümleyicisine gönderildiği anlamına gelir. Çok sayıda istek olduğunda DNS çözümleme sorunları ortaya çıkar.

Sistemde yerel bir DNS önbelleği dağıtmak, DNS çözümleme hatalarını önlerken CPU ve ağ kullanımını azaltmanıza yardımcı olur . Yerel bir DNS önbelleği, Amazon RDS ve S3 gibi harici DNS kaynaklarına yapılan sorgulara yanıt verir.

DHCP protokolü, bir DNS sunucusu adresi istemek için Amazon VPC'lerine bağlı Amazon EC2 bulut sunucuları tarafından başlatma sırasında kullanılır.

dnsaw'lar

Sanal bir özel bulut oluşturmak için Amazon VPC'yi kullandığınızda, Route 53 DNS Çözümleyici, yerel Amazon VPC web adresleri ve özel olarak yönetilen bölgelerdeki girişler altında çalışan EC2 bulut sunucularına yönelik DNS isteklerine yanıt vermek için VPC'deki bir çözümleyiciyi etkin bir şekilde kullanır. Çözümleyici, tüm ek web adresleri için genel DNS sunucularında tekrarlayan aramalar yapar.

Bir DNS önbelleği, çevrimiçi bir web sitesine erişmeye çalışırken sistemimizin hızla inceleyebileceği önceki DNS sorgularının geçici bir kaydı olarak hizmet eder. Mevcut ve sonraki her oturumun bir günlüğünü tutar. Bu DNS önbelleği, etki alanı çözümlemesini kolaylaştırır ve Amazon EC2 Linux bulut sunucularındaki hataları önler.

Çoğu kullanıcı, AWS'ye erişirken genellikle DNS için Amazon'un Route 53 hizmetini kullanır. Kullanımı gerçekten çok kolay ve neredeyse ücretsiz. Ancak, kullanıcının yerel bir DNS sunucusu kullanma kararını etkileyebilecek birkaç neden vardır.

Bind9, yerel bir DNS önbellek sunucusu kurmak için hala harika bir seçenek olsa da, dnsmasq'ın hem EC2 bulut sunucularında hem de yerel bir makinede kurulması ve yapılandırılması çok daha kolaydır.

dnsmasq nedir?

DNSmasq, DNS, DHCP, TFTP ve DNS önbelleğe almayı destekleyen Linux ile ilgili bir araçtır. Kompakt ve hafif olması, daha az kaynak kısıtlaması olan ağlar ve güvenlik duvarları için ideal olmasını sağlar.

Kurulumu ve yapılandırması inanılmaz derecede basittir. Alt ağlar için DNS ve DHCP kurulumu için dnsmasq esnek ve pratik bir çözümdür.

Bu DHCP tarafından atanan tanımlayıcıları ve ilgili talimatları her sunucu veya temeldeki bir denetleyici için ayarlamak mümkündür. Dinamik ve statik DHCP seçeneklerinin her ikisi de dnsmasq tarafından desteklenir. Taşınabilirdir ve en az 1.000 istemci için DNS ve DHCP'yi yönetme yeteneğine sahiptir.

Bir DNS sorgusu alındığında, dnsmasq yerel bir önbellekten yanıt verir veya yetkili bir DNS sunucusuna iletir. DHCP yapılandırmasına sahip adresler için DNS isteklerine yanıt vermenin yanı sıra, genel DNS'de listelenmeyen yerel ana bilgisayar adlarını belirlemek için /etc/hosts dosyasının içeriğini kontrol eder.

Tarayıcının yerleşik DNS önbelleği yerine dnsmasq aracını kullanmak, internette gezinme performansını büyük ölçüde artırır. Kurulumu çok basit olduğu ve çok az disk alanı gerektirdiği için kısıtlı kaynaklara sahip entegre bir ortam için idealdir.

dnsmasq'ın özellikleri

  • Belirli etki alanı adı çözümleme sorgularını belirli yetkili sunuculara iletecek şekilde yapılandırarak dnsmasq kullanarak dahili DNS sunucularını entegre etmek kolaydır.
  • Yapılandırılmış yerel DNS sunucusu kullanılarak sunucunun iş yükü azaltılır ve güvenilirlik artırılır.
  • Güvenlik duvarı etkin uç noktalar için DNS yapılandırması oldukça kolaydır ve ISP tarafından kullanılan DNS'den bağımsızdır.
  • Bilgisayarda DNS kontrolü yapılırken internete bağlı porta erişilemezse, arama işlemi anında askıya alınır.
  • PPP (Noktadan noktaya protokol) veya DHCP sorguları aracılığıyla, dnsmasq, doğrudan temel etki alanı çözümleme sunucusundan periyodik olarak veri toplamak için gerçekten yapılandırılabilir.

Kurulum

dnsmasq yardımcı programını kurmadan ve yapılandırmadan önce systemd-resolved hizmet kapatılmalıdır.

 systemctl stop systemd-resolved

Ayrıca, yeniden başlattığınızda otomatik olarak başlamaması için maske özelliğini kullanarak da gizleyebilirsiniz.

 systemctl mask systemd-resolved

dnsmasq'ı kurmak, systemd-resolved kapattıktan sonra gerçekleştirmeniz gereken ilk eylemdir. DNSmasq, hemen hemen tüm Linux dağıtımlarında önceden yüklenmiş olarak gelir. Değilse manuel olarak kurabilirsiniz. Bir komut terminali başlatın ve ardından bunu yapmak için aşağıdaki komutu yazın.

 sudo apt-get install dnsmasq

Bir yum kullanıcısıysanız aşağıdaki komutu kullanın:

 sudo yum install -y dnsmasq

Bu komut, aracı otomatik olarak yükler ve arka planda dnsmasq başlatır.

dnsmap kurulumu

Başarılı kurulumdan sonra aşağıdaki komutu kullanarak dnsmasq durumunu kontrol edebilirsiniz.

 systemctl status dnsmasq

Durumunu “aktif (çalışıyor)” olarak gösteriyorsa, kurulum tamamlanmış ve 53 numaralı bağlantı noktasına yapılandırılmış demektir. Durumunu “etkin değil (ölü)” olarak gösteriyorsa, hem Ubuntu makinesini hem de dnsmasq'ı yeniden başlatmanız gerekir. Bu hatayı düzeltecektir.

dnsmasqstatus

Yapılandırma

Dnsmasq artık makinenizde yerel önbelleğe alma DNS sunucusu olarak kurulmaya hazırdır. Varsayılan yapılandırma dosyası /etc/dnsmasq.conf bulunur. Sistemde dnsmasq yardımcı programını kurmak için bu yapılandırma dosyası değiştirilmelidir.

Yapılandırma dosyasını açmak ve düzenlemek için bu komutu kullanın.

 nano /etc/dnsmasq.conf

Yapılandırma dosyası yalnızca kök ayrıcalıklarıyla düzenlenmelidir. Yorumlar da dahil olmak üzere dosyadaki her şeyi temizleyin ve bu yapılandırma ayarını kopyalayıp yapıştırın ve kaydedin.

 port=53 domain-needed bogus-priv listen-address=127.0.0.1 expand-hosts domain=geek-demo.com cache-size=1000

Her bir parametrenin ne anlama geldiğini kısaca açıklayayım.

  • Bağlantı Noktası – Dnsmasq'ın DNS isteklerini almak için kullanacağı bağlantı noktasını belirtmek veya bağlamak için.
  • etki alanı gerekli – Yalnızca etki alanı adlarını yukarı akış DNS sunucusuna iletir.
  • bogus-priv – etki alanı ve bağlantı noktası iletmeyi önler
  • dinleme adresi – Ad sunucusu adresini tanımlamak için. Tipik olarak, yerel bir DNS sunucusu kurmak için varsayılan olarak localhost kullanılır.
  • etki alanı – dnsmasq'ın kısa tanımlayıcılara eklediği etki alanlarını yapılandırmak için.
  • cache-size – Depolamada izin verilen maksimum DNS önbelleğe alma boyutu.
dnsmasqhost

Gerekli tüm değişiklikleri yaptıktan sonra config dosyasını kaydedip kapatın. Sonraki adım, yerel ana bilgisayar çözümleme adresini eklemek için /etc/resolv.conf dosyasını düzenlemektir. Nano düzenleyici ile açmak için aşağıdaki komutu kullanın.

 nano /etc/resolv.conf

Burada, sisteminizin adres çözümlemesi için kullandığı tüm ad sunucularını bulabilirsiniz. Bu listeye geri döngü adresini de ekleyin. “ nameserver 127.0.0.1 ” ekleyin ve ilk satırda tutun.

dnsresolve

Yapılandırma dosyasını kaydedin ve çıkın. Güncellenen ayarın etkili olması için dnsmasq yardımcı programını yeniden başlatın.

 systemctl restart dnsmasq

Yerel DNS Önbelleğe Alma sunucusunu test etme

Yerel DNS sunucusunu test etmek kolaydır. Bir komut satırı açın ve DNS önbelleğe almayı kontrol etmek için dig komutunu kullanın. Dig komutunu ilk kez çalıştırdığınızda, sonucun oldukça yaygın olması gerekir.

 ┌──(rootkali)-[/home/writer] └─# dig geekflare.com 1 ; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 227 IN A 172.66.43.163 geekflare.com. 227 IN A 172.66.40.93 ;; Query time: 31 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) ;; WHEN: Sat Oct 15 07:52:49 EDT 2022 ;; MSG SIZE rcvd: 74

Burada, yukarı akış ad sunucusundan ayrıntıları sorgulamak için sorgulama süresinin yaklaşık 31 msn olduğunu lütfen unutmayın. Aynı dig komutunu bir kez daha yürütün ve sorgu süresinde önemli bir azalma olduğunu fark edeceksiniz.

 ┌──(rootkali)-[/home/writer] └─# dig geekflare.com 1 ; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 281 IN A 172.66.40.93 geekflare.com. 281 IN A 172.66.43.163 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) ;; WHEN: Sat Oct 15 07:58:10 EDT 2022 ;; MSG SIZE rcvd: 74

Burada sorgu süresi 0 msn'dir. Bunun nedeni, ilk aramayı gerçekleştirdikten sonra, dnsmasq'ın verileri depolaması ve daha sonra gerçekleştirilen tüm aramaların, saklanan önbelleğin kullanılması nedeniyle anlık olmasıdır. Depolanan DNS önbelleğini silmek istiyorsanız, dnsmasq'ı yeniden başlatmak gerekir.

Toplama

Bu yazımızda, dnsmasq'ı yerel bir DNS sunucusu olarak çalışacak şekilde nasıl kuracağımızı ve yapılandıracağımızı gördük. Farklı işletim sistemlerinde Daha Hızlı Tarama için DNS sunucularının nasıl değiştirileceğini öğrenmek de ilginizi çekebilir.