Dnsmasq


Bilgisayarı DNS(Domain Name Server) olarak ayarlama


Domain Name Server, web tarayıcısına yazılan ve yazı karakterlerinden oluşan site adlarını rakamlardan oluşan bir benzersiz sayısal adrese çevirmektedir. Önce tarayıcıya yazılan site ismi ISP aracılığıyla(telekom server) üniversal DNS makinesine gönderilir gelen cevabın ardından rakamlardan oluşan karşılığı tespit edilerek İnternet ağında ki benzersiz adrese sahip olan siteyi barındıran hedef bilgisayara routerler aracılığıyla yönlendirilir.


Dnsmasq server ise hedef bilgisayarlardaki sitelerin rakamlardan oluşan adreslerini yerel olarak oturum süresince hafızasında tutar. Böylece bir siteye oturum süresince birden fazla erişim olduğunda, erişilen web sitesine erişim anında her defasında üniversal DNS sunucusuna teoride bağlanmadan router aracılığıyla siteyi barındıran hedef bilgisayara hızlı bir biçimde erişmeyi sağlar.


Yapılması gerekenler;


sudo apt-get install dnsmasq

/etc/dhcp/dhclient.conf    

dosyasında aşağıdaki değişikler yapılır;


prepend domain-name-servers 127.0.0.1;

request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.domain-search, dhcp6.fqdn,
dhcp6.name-servers, dhcp6.sntp-servers;

/etc/dnsmasq.conf     

dosyasında bazı değişikler yapılabilir. Bu değişikler tek bilgisayar için isteğe bağlıdır.

listen-address=127.0.0.1 
resolv-file=/etc/resolv-dnsmasq.conf

/etc/resolv-dnsmasq.conf

Bu dosya OpenDNS sunucusunun adreslerini barındırır. Eğer modem üzerinden ayarlı değilse ve modem DHCP sunucusu olarak kullanılmıyorsa ayarlanabilir.

nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/NetworkManager/NetworkManager.conf

Bu dosya kediliğinden aşağıdaki gibi ayarlı olmalı.


[main]
plugins=ifupdown,keyfile
dns=dnsmasq

sudo /etc/init.d/dnsmasq restart

Açılışta açılması için;

sudo update-rc.d -f dnsmasq enable


Son olarak ayarların çalışıp çalışmadığını kontrol edebiliriz. Bunun için dig komutunu kullanırız. 

$ dig www.siteismi.com | grep "Query time"

Bu komut ilk işletildikten sonra İnternet sitesine erişim süresi azalarak ikinci erişimde 0 yada 1 mili saniye olacaktır. İlk erişimde üniversal DNS sunucusundan İnternet sitesinin rakamlardan oluşan benzersiz adresi bilgisayarımıza çekilir ve sonraki erişim denemelerinde artık bu adres kullanılacağından ve DNS sunucusuna tekrar sorulmayacağından dnsmasq bellekleme hizmeti ile siteye erişim süresi teorik olarak azaltılır.

echo "cache-size=1000" | sudo tee /etc/NetworkManager/dnsmasq.d/cache