Instalacija DNSMasq za interno DNS razrešavanje (SplitDNS)
Ovaj vodič vodi kroz podešavanja dnsmask u cilju postizanja sledećeg:
- Kada Zimbra servera pošalje A DNS upit za svoj javni Hostname nekom od javnih DNS servisa, umesto javne IP adrese dobiće IP adresu samog sebe (severa).
- Kada Zimbra servera pošalje DNS upit za MKS zapis jednom od javnih DNS domena, dobiće, takođe, sopstvenu LAN IP adresu (umeto javne)
- Kada Zimbra servera pošalje bilo koji drugi DNS upit, javni DNS će vratiti ispravnu (javnu) adresu.
- Neka dnsmask vezuje se samo za interfejs koji koristi tako da drugi DNS serveri mogu da rade paralelno ako treba (glavni server, AD, HOME domena)
Zašto dnsmask umesto BIND?
Jedna reč: jednostavnost.
Bind je punopravan DNS server koji može obavljati ulogu autorizatora i rekurzivnog nameservera, ali nam to, za ovu svrhu, ne treba. Već imamo server za autorizaciju u domenu (Active Directory server), i jedan ili više rekurzivnih nameservera (AD DNS). Dnsmask je lagan DNS špediter, koji u ovom slučaju obezbeđuje jednostavno konfigurisanje tzv, Split DNS modela.
Primer instalacije
Postavke iskorišćene za primer:
192.168.0.2
je LAN IP servera
mail.domain.com
je ime hosta servera
domain.com
je glavni domen
domain2.com
je dodatni glavni domen
8.8.8.8
i 8.8.4.4
su javni DNS serveri (internet)
Usmeravanje DNS zahteva na servis vrši se upisom nameserver-a u konfiguracioni fajl na lokaciji /etc/resolv.conf
Vezaćemo *Dnsmask* za lokalnu adresu da odgovori na DNS upite.
nameserver 192.168.0.2
Uputili smo dnsmask da odgovori samo specifičan upiti i na način na koji želimo, a svi ostali upiti će biti prosleđen internet DNS serverima.
Uređejom /etc/resolv.dnsmask
nameserver 8.8.8.8 nameserver 8.8.4.4
Konfiguracioni fajl samog servisa je /etc/dnsmask.conf
. Fajl je prilično velika, opisaću samo elemente relevantne za ovaj primer.
address = /mail.domain.com/192.168.0.2 resolv-file = /etc/resolv.dnsmask except-interfejs = lo listen-address = 192.168.0.2 bind-interfaces
Ovo postavlja *dnsmask* da sluša na lokalnoj IP adresi i da se ne vezuje za loopback interfejs lo
(127.0.0.01), odnosno da se veže samo za stvarne interfejse.
Takođe, tera ga da na bilo koji DNS A-record
zahtev za mail.domain.com
odgovori sa LAN IP adresom računara. Ovaj “naivan” trik omogućava da upotrebimo isti hostname na dva servera, bez bilo kakvog konflikta.
U isti fajl dodajmo liniju
mx-host = domain.com,mail.domain.com,10
Ova linija će uputiti *dnsmask* da uvek vraća “mail.domain.com” kao MX record
za definisani domen.
Konkretne postavke za mail.melany.rs
su:
address=/mail.melany.rs/192.168.0.250 resolv-file=/etc/resolv.dnsmask mx-host=melany.rs,mail.melany.rs,10 except-interface=lo listen-address=192.168.0.250 bind-interfaces
Restart i provera servisa
Restartovati dnsmask sa
/etc/init.d/dnsmask restart
i proveriti da
dig mx domain.com
vraća lokalni hostname / adresu.
Takođe, uverite se da server može ispravno da razreši bilo koju drugu IP adresu preko servera navedenih u /etc/resolv.dnsmask
Dodatne dnsmask.conf opcije:
– Da biste naveli autoritativni server za domen:
server=/domain.com/10.0.0.1
sa 10.0.0.1 kao IP na autoritativni DNS za domain.com
– Da biste naveli obrnutu DNS rezoluciju (PTR zapis) za domen:
server=/192.168.in-addr.arpa/192.168.100.1
- Zapišite sve DNS upite (u svrhu otklanjanja grešaka)
log-queries
- Lokalno vrati SPF zapis za domen
txt-record=zextras.com,"v=spf1 mx -all" nameserver 8.8.8.8 nameserver 8.8.4.4
Dodatne reference
How to Install Your DNS Server Using Dnsmasq
Installing DNS Server on CentOS/RHEL using dnsmasq