動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù)器為網(wǎng)絡(luò)上的每個(gè)設(shè)備動(dòng)態(tài)分配IP地址和其他網(wǎng)絡(luò)配置參數(shù)。 LAN上的DNS轉(zhuǎn)發(fā)器將對(duì)非本地域名的DNS查詢轉(zhuǎn)發(fā)到上游DNS服務(wù)器(該網(wǎng)絡(luò)外部)。 DNS緩存服務(wù)器可響應(yīng)來自客戶端的遞歸請(qǐng)求,以便可以更快地解決DNS查詢,從而提高了對(duì)以前訪問的站點(diǎn)的DNS查找速度。
dnsmasq是輕型,易于配置的DNS轉(zhuǎn)發(fā)器,DHCP服務(wù)器軟件和路由器通告子系統(tǒng),適用于小型網(wǎng)絡(luò)。 Dnsmasq支持Linux,* BSD,Mac OS X以及Android。
它具有一個(gè)DNS子系統(tǒng),該子系統(tǒng)為網(wǎng)絡(luò)提供本地DNS服務(wù)器,并將所有查詢類型轉(zhuǎn)發(fā)到上游遞歸DNS服務(wù)器并緩存常見記錄類型。 DHCP子系統(tǒng)支持DHCPv4,DHCPv6,BOOTP,PXE和TFTP服務(wù)器。路由器通告子系統(tǒng)支持IPv6主機(jī)的基本自動(dòng)配置。
在本文中,我們將引導(dǎo)您完成有關(guān)如何在CentOS/RHEL 8/7發(fā)行版上使用dnsmasq安裝和設(shè)置DNS/DHCP服務(wù)器的說明。
在CentOS和RHEL Linux中安裝dnsmasq
1. dnsmasq軟件包在默認(rèn)存儲(chǔ)庫(kù)中可用,并且可以使用YUM軟件包管理器輕松安裝,如圖所示。
# yum install dnsmasq
2. dnsmasq軟件包安裝完成后,您需要立即啟動(dòng)dnsmasq服務(wù),并使它能夠在系統(tǒng)引導(dǎo)時(shí)自動(dòng)啟動(dòng)。 此外,使用以下systemctl命令檢查其狀態(tài)以確保其已啟動(dòng)并正在運(yùn)行。
# systemctl start dnsmasq
# systemctl enable dnsmasq
# systemctl status dnsmasq
在CentOS和RHEL Linux中配置dnsmasq服務(wù)器
3.可以通過/etc/dnsmasq.conf文件(包含注釋和解釋清楚的選項(xiàng))來配置dnsmasq服務(wù)器,還可以將用戶定義的配置文件添加到/etc/dnsmasq.d目錄中。
默認(rèn)情況下,DNS是啟用的,因此在進(jìn)行任何更改之前,請(qǐng)確保創(chuàng)建/etc/dnsmasq.conf文件的備份。
# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
4.現(xiàn)在,使用您喜歡的基于文本的編輯器打開/etc/dnsmasq.conf文件,并進(jìn)行以下建議的配置設(shè)置。
# vi /etc/dnsmasq.conf
listen-address選項(xiàng)用于設(shè)置dnsmasq監(jiān)聽的IP地址。 要使用您的CentOS/RHEL服務(wù)器在LAN上偵聽DHCP和DNS請(qǐng)求,請(qǐng)如圖所示將listen-address選項(xiàng)設(shè)置為其LAN IP地址(請(qǐng)記住包括127.0.0.1)。 請(qǐng)注意,服務(wù)器IP必須是靜態(tài)的。
listen-address=::1,127.0.0.1,192.168.56.10
與上述相關(guān),您可以使用interface選項(xiàng)限制dnsmasq偵聽的接口(為多個(gè)接口添加更多行)。
interface=eth0
5.如果要將域(可以如下所示進(jìn)行設(shè)置)自動(dòng)添加到hosts文件中的簡(jiǎn)單名稱,請(qǐng)取消注釋expand-hosts選項(xiàng)。
expand-hosts
6.要為dnsmasq設(shè)置域,這意味著只要設(shè)置的域匹配,DHCP客戶端將具有完全限定的域名,并為所有客戶端設(shè)置“域” DHCP選項(xiàng)。
domain=tecmint.lan
7.接下來,還如圖所示,使用服務(wù)器選項(xiàng)(格式為server=dns_server_ip)為非本地域定義上游DNS服務(wù)器。
# Google’s nameservers
server=8.8.8.8
server=8.8.4.4
8.然后,您可以使用顯示的地址選項(xiàng)將本地域強(qiáng)制為IP地址。
address=/tecmint.lan/127.0.0.1
address=/tecmint.lan/192.168.56.10
9.保存文件,并檢查配置文件語(yǔ)法中的錯(cuò)誤,如圖所示。
# dnsmasq –test
使用/etc/resolv.conf文件配置dnsmasq
10.在此步驟中,您需要通過將localhost地址添加為/etc/resolv.conf文件中的唯一名稱服務(wù)器,來使所有查詢都發(fā)送到dnsmasq。
# vi /etc/resolv.conf
11. /etc/resolv.conf文件由本地守護(hù)程序(尤其是NetworkManager)維護(hù),因此任何用戶進(jìn)行的更改都將被覆蓋。 為了防止這種情況,請(qǐng)使用chattr命令通過設(shè)置不可變文件屬性(禁用對(duì)文件的寫訪問)來對(duì)其進(jìn)行寫保護(hù)。
# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf
定義DNS主機(jī)和名稱
12. Dnsmasq從/ etc / hosts文件中讀取所有DNS主機(jī)和名稱,因此,如圖所示添加DNS主機(jī)的IP地址和名稱對(duì)。
127.0.0.1 dnsmasq
192.168.56.10 dnsmasq
192.168.56.1 gateway
192.168.56.100 maas-controller
192.168.56.20 nagios
192.168.56.25 webserver1
重要說明:本地DNS名稱也可以通過從DHCP子系統(tǒng)導(dǎo)入名稱來定義,也可以通過配置各種有用的記錄類型來定義。
13.要應(yīng)用以上更改,請(qǐng)如圖所示重新啟動(dòng)dnsmasq服務(wù)。
# systemctl restart dnsmasq
14.如果正在運(yùn)行Firewalld服務(wù),則需要在防火墻配置中打開DNS和DHCP服務(wù),以允許來自LAN上主機(jī)的請(qǐng)求傳遞到dnsmasq服務(wù)器。
# firewall-cmd –add-service=dns –permanent
# firewall-cmd –add-service=dhcp –permanent
# firewall-cmd –reload
測(cè)試本地DNS
15.要測(cè)試本地DNS服務(wù)器或轉(zhuǎn)發(fā)是否工作正常,您需要使用dig或nslookup之類的工具來執(zhí)行DNS查詢。 這些工具由bind-utils軟件包提供,該軟件包可能未預(yù)先安裝在CentOS / RHEL 8上,但您可以如圖所示進(jìn)行安裝。
# yum install bind-utils
16.安裝后,您可以在本地域上運(yùn)行一個(gè)簡(jiǎn)單查詢,如圖所示。
# dig tecmint.lan
或者
# nslookup tecmint.lan
17.您也可以嘗試查詢其中一臺(tái)服務(wù)器的FQDN。
# dig webserver1.tecmint.lan
或者
# nslookup webserver1.tecmint.lan
18.要測(cè)試反向IP查找,請(qǐng)運(yùn)行類似的命令。
# dig -x 192.168.56.25
或者
# nslookup 192.168.56.25
使用dnsmasq啟用DHCP服務(wù)器
19.您可以通過取消注釋dhcp-range選項(xiàng)來啟用DHCP服務(wù)器,并提供可用于租用的地址范圍以及可選的租用時(shí)間,例如(對(duì)于多個(gè)網(wǎng)絡(luò)重復(fù))。
dhcp-range=192.168.0.50,192.168.0.150,12h
20.以下選項(xiàng)定義了DHCP服務(wù)器將其租約數(shù)據(jù)庫(kù)保留在何處,這將幫助您輕松檢查其已分配的IP地址。
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
21.要將DHCP服務(wù)器設(shè)置為權(quán)威模式,請(qǐng)取消注釋該選項(xiàng)。
dhcp-authoritative
22.保存文件,然后重新啟動(dòng)dnsmasq服務(wù)以應(yīng)用最近的更改。
# systemctl restart dnsmasq
如果您想與我們分享有關(guān)本指南的任何問題或想法,請(qǐng)使用以下的評(píng)論欄與我們聯(lián)系。