DNS/DHCP 伺服器(Dnsmasq)
(01)安裝Dnsmasq
Dnsmasq:安裝
安裝 Dnsmasq,它是輕量級的 DNS 轉發器和 DHCP 伺服器軟體。
[1] 安裝 Dnsmasq。
root@dlp:~# apt -y install dnsmasq
[2] 配置 Dnsmasq。
root@dlp:~# vi /etc/dnsmasq.conf
# line 19 : uncomment
# never forward plain names
domain-needed
# line 21 : uncomment
# never forward addresses in the non-routed address spaces
bogus-priv
# line 53 : uncomment
# query with each server strictly in the order in resolv.conf
strict-order
# line 67 : add if you need
# query the specific domain name to the specific DNS server
# the example follows means query [server.education] domain to the [10.0.0.10] server
server=/server.education/10.0.0.10
# line 116 : uncomment and specify network interfaces to bind
interface=enp1s0
# line 134 : uncomment
bind-interfaces
# line 145 : uncomment to add domain name on hostname automatically
expand-hosts
# line 155 : add to set domain name
domain=srv.world
# change the link according to man page of systemd-resolved in order to avoid conflicting on 53
root@dlp:~# ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf
root@dlp:~# systemctl restart dnsmasq systemd-resolved
[3] 對於 DNS 記錄,請將其新增到 [/etc/hosts] 中。然後,Dnsmasq 將回答客戶的查詢。
root@dlp:~# vi /etc/hosts
# add DNS entries
10.0.0.30 dlp.srv.world dlp
10.0.0.31 www.srv.world www
root@dlp:~# systemctl reload dnsmasq
[4] 驗證網路中客戶端主機的名稱或地址解析。
root@desktop:~#
vi /etc/netplan/01-netcfg.yaml
# change DNS setting to refer to Dnsmasq Server
nameservers:
addresses: [10.0.0.30]
root@desktop:~#
root@desktop:~#
nameserver 10.0.0.30
netplan apply
root@desktop:~#
grep nameserver /run/systemd/resolve/resolv.conf
nameserver 10.0.0.30
root@desktop:~#
dig dlp.srv.world.
root@desktop:~#
dig -x 10.0.0.30
; <<>> DiG 9.18.24-0ubuntu5-Ubuntu <<>> dlp.srv.world.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25017
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;dlp.srv.world. IN A
;; ANSWER SECTION:
dlp.srv.world. 0 IN A 10.0.0.30
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Apr 29 14:04:55 UTC 2024
;; MSG SIZE rcvd: 58
; <<>> DiG 9.18.24-0ubuntu5-Ubuntu <<>> -x 10.0.0.30
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20706
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;30.0.0.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
30.0.0.10.in-addr.arpa. 0 IN PTR dlp.srv.world.
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Apr 29 14:05:39 UTC 2024
;; MSG SIZE rcvd: 78
(02)配置DHCP伺服器
Dnsmasq:配置DHCP伺服器
在 Dnsmasq 上啟用整合 DHCP 功能並配置 DHCP 伺服器。
[1] 配置 Dnsmasq。
root@dlp:~# vi /etc/dnsmasq.conf
# line 168 : add : range of IP address to lease and term of lease
dhcp-range=10.0.0.200,10.0.0.250,12h
# line 345 : add : define default gateway
dhcp-option=option:router,10.0.0.1
# line 354 : add : define NTP, DNS, server and subnetmask
dhcp-option=option:ntp-server,10.0.0.10
dhcp-option=option:dns-server,10.0.0.10
dhcp-option=option:netmask,255.255.255.0
root@dlp:~# systemctl restart dnsmasq
[2] 沒關係。
在任何客戶端計算機上配置 DHCP 客戶端並驗證其是否正常工作。