Sažet, ali potpun šalabahter za dnsmasq: DHCP konfiguracija, DNS zona mikro.local, modularna konfiguracija, varijanta s /etc/hosts i varijanta gdje je sve direktno u jednom .conf file-u.
Raspon 10.10.10.100–150, gateway, DNS, domain, lease time.
Idi na DHCPKlasični lab pristup: /etc/hosts + expand-hosts.
Napredniji pristup: svi DNS zapisi kroz address= i mx-host=.
dnsmasq je lagan servis koji može raditi kao DNS cache, mali DNS server i DHCP server. Idealan je za labove i jednostavne lokalne domene.
/etc/hosts, ili mu direktno napišeš DNS zapise u .conf file koristeći address=, mx-host= i slične opcije.Umjesto da sve pišeš u /etc/dnsmasq.conf, možeš koristiti modularni pristup kroz /etc/dnsmasq.d/.
sudo vim /etc/dnsmasq.conf
Provjeri da postoji ili dodaj:
conf-dir=/etc/dnsmasq.d
dhcp.conf, dns-mikro-hosts.conf, dns-mikro-direct.conf. Tako je preglednije i lakše za debug.Na SERVERB dnsmasq treba posluživati subnet 10.10.10.0/24, ali samo raspon .100 do .150. Uz IP mora davati:
10.10.10.110.10.10.254dnsmasq.local1 daysudo dnf install dnsmasq -y
sudo systemctl enable --now dnsmasq
sudo systemctl status dnsmasq
sudo mkdir -p /etc/dnsmasq.d
sudo vim /etc/dnsmasq.d/dhcp.conf
Konačni sadržaj:
interface=eth0
dhcp-range=10.10.10.100,10.10.10.150,1d
dhcp-option=3,10.10.10.1
dhcp-option=6,10.10.10.254
dhcp-option=15,dnsmasq.local
| Opcija | Značenje | Opis |
|---|---|---|
3 | Router | Default gateway koji DHCP klijent treba koristiti. |
6 | DNS server | DNS poslužitelj koji DHCP klijent dobiva. |
15 | Domain name | Default domain / search domain koji klijent dobiva. |
3 = gateway, 6 = DNS, 15 = domain.sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq
Ovo je najbliže onome što lab često očekuje: dnsmasq čita imena iz /etc/hosts, a expand-hosts automatski dodaje domenu.
sudo vim /etc/dnsmasq.d/dns-mikro-hosts.conf
Konačni sadržaj:
interface=eth0
domain=mikro.local
local=/mikro.local/
expand-hosts
sudo vim /etc/hosts
Dodaj:
10.10.10.2 servera
10.10.10.3 serverb
10.10.10.4 serverc
10.10.10.10 email
expand-hosts dnsmasq iz ovoga automatski dobiva servera.mikro.local, serverb.mikro.local, serverc.mikro.local i email.mikro.local.sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq
sudo chattr -i /etc/resolv.conf
sudo vim /etc/resolv.conf
Konačni sadržaj:
nameserver 172.25.250.10
search mikro.local
nslookup servera.mikro.local
nslookup serverb.mikro.local
nslookup serverc.mikro.local
nslookup email.mikro.local
Ovo je napredniji i vrlo čist pristup. Ne koristiš /etc/hosts za lokalna imena, nego sva imena definiraš direktno kroz dnsmasq opcije u jednom modularnom file-u.
sudo vim /etc/dnsmasq.d/dns-mikro-direct.conf
Konačni sadržaj:
interface=eth0
domain=mikro.local
local=/mikro.local/
address=/servera.mikro.local/10.10.10.2
address=/serverb.mikro.local/10.10.10.3
address=/serverc.mikro.local/10.10.10.4
address=/email.mikro.local/10.10.10.10
mx-host=mikro.local,serverb.mikro.local,10
| Opcija | Značenje | Primjer |
|---|---|---|
domain= | Definira lokalnu domenu | domain=mikro.local |
local=/.../ | dnsmasq tretira tu domenu kao lokalnu zonu za koju odgovara | local=/mikro.local/ |
address=/ime/IP | Direktni A zapis | address=/servera.mikro.local/10.10.10.2 |
mx-host= | MX zapis za domenu | mx-host=mikro.local,serverb.mikro.local,10 |
address=/..., onda ti /etc/hosts za ta imena više nije potreban. Također, expand-hosts nije potreban jer već koristiš puna imena.sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq
sudo chattr -i /etc/resolv.conf
sudo vim /etc/resolv.conf
Konačni sadržaj:
nameserver 172.25.250.10
search mikro.local
nslookup servera.mikro.local
nslookup serverb.mikro.local
nslookup serverc.mikro.local
nslookup email.mikro.local
nslookup -type=mx mikro.local
U labu na slici vidiš da nslookup vrati i IP i poruku REFUSED. To se zna dogoditi kad dnsmasq odgovori za lokalno ime, ali odbije druge vrste upita ili dodatne rekurzivne upite koje nslookup pokušava napraviti. To nije nužno dokaz da A zapis ne radi.
/etc/dnsmasq.conf
/etc/dnsmasq.d/dhcp.conf
/etc/dnsmasq.d/dns-mikro-hosts.conf
/etc/dnsmasq.d/dns-mikro-direct.conf
# 1. Instalacija
sudo dnf install dnsmasq -y
# 2. Omogući modularno
sudo vim /etc/dnsmasq.conf
# dodaj:
conf-dir=/etc/dnsmasq.d
# 3A. DHCP
sudo vim /etc/dnsmasq.d/dhcp.conf
# 3B. DNS (hosts varijanta)
sudo vim /etc/dnsmasq.d/dns-mikro-hosts.conf
sudo vim /etc/hosts
# ili 3C. DNS (sve u conf file-u)
sudo vim /etc/dnsmasq.d/dns-mikro-direct.conf
# 4. Restart
sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq
# 5. WORKSTATION
sudo chattr -i /etc/resolv.conf
sudo vim /etc/resolv.conf
# 6. Test
nslookup servera.mikro.local
nslookup email.mikro.local
nslookup -type=mx mikro.local
| Stvar | Zapamti |
|---|---|
| Modularno | conf-dir=/etc/dnsmasq.d |
| DHCP gateway | dhcp-option=3,... |
| DHCP DNS | dhcp-option=6,... |
| DHCP domain | dhcp-option=15,... |
| DNS preko hosts | expand-hosts + /etc/hosts |
| DNS sve u conf | address=/ime/IP |
| Mail zapis | mx-host=... |