Instalacija DNSMasq za interno DNS razrešavanje (SplitDNS)

Originalna verzija članka

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.

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

  • kb/linux/dnsmasq_instalacija.txt
  • Last modified: 2022/02/03 18:47
  • by milano