DNS/DHCP 服务器
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 客户端并验证其是否正常工作。