7上使用dnsmasq設置DNS

在本文章中,我們將介紹如何在CentOS / RHEL 8/7發行版上使用dnsmasq安裝和設置DNS / DHCP服務器的教程;dnsmasq是一個小巧且方便地用於配置DNS和DHCP的工具,適用於小型網絡,它提供了DNS功能和可選擇的DHCP功能。

如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

動態主機配置協議DHCP )服務器為網絡上的每個設備動態分配IP地址和其他網絡配置參數。 LAN上的DNS轉發器將對非本地域名的DNS查詢轉發到上游DNS服務器(該網絡外部)。 DNS緩存服務器可響應來自客戶端的遞歸請求,以便可以更快地解決DNS查詢,從而提高了對以前訪問的站點的DNS查找速度。

dnsmasq是輕型,易於配置的DNS轉發器,DHCP服務器軟件和路由器通告子系統,適用於小型網絡。 Dnsmasq支持Linux,* BSD,Mac OS X以及Android。

它具有一個DNS子系統,該子系統為網絡提供本地DNS服務器,並將所有查詢類型轉發到上游遞歸DNS服務器並緩存常見記錄類型。 DHCP子系統支持DHCPv4,DHCPv6,BOOTP,PXE和TFTP服務器。 路由器通告子系統支持IPv6主機的基本自動配置。

在本文中,我們將引導您完成有關如何在CentOS / RHEL 8/7發行版上使用dnsmasq安裝和設置

DNS / DHCP服務器的說明

在CentOS和RHEL Linux中安裝dnsmasq

1.dnsmasq軟件包是在默認存儲庫中可用,可以使用YUM包管理器輕鬆安裝,如下所示。

# yum install dnsmasq
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

在CentOS中安裝dnsmasq

2. dnsmasq軟件包安裝完成後,您需要立即啟動dnsmasq服務,並使它能夠在系統引導時自動啟動。 此外,使用以下systemctl命令檢查其狀態以確保其已啟動並正在運行。

# systemctl start dnsmasq
# systemctl enable dnsmasq
# systemctl status dnsmasq
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

啟動並驗證dnsmasp狀態

在CentOS和RHEL Linux中配置dnsmasq服務器

3.可以通過/etc/dnsmasq.conf文件(包含註釋和解釋清楚的選項)來配置dnsmasq服務器,還可以將用戶定義的配置文件添加到/etc/dnsmasq.d目錄中。

默認情況下,DNS是啟用的,因此在進行任何更改之前,請確保創建/etc/dnsmasq.conf文件的備份。

#cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4.現在,使用您喜歡的文本編輯器打開/etc/dnsmasq.conf文件,並進行以下建議的配置設置。

#vi /etc/dnsmasq.conf 

listen-address選項用於設置dnsmasq監聽的IP地址。 要使用您的CentOS / RHEL服務器在LAN上監聽DHCPDNS請求,如下所示,將listen-address選項設置為其LAN IP地址(記住包括127.0.0.1

) 請注意,服務器IP必須是靜態的。

listen-address=::1,127.0.0.1,192.168.56.10

與上述相關,您可以使用interface選項限制dnsmasq監聽的接口(為多個接口添加更多行)。

interface=eth0

5.如果要將 (可以如下所示進行設置)自動添加到hosts文件中的簡單名稱,請取消註釋expand-hosts選項。

expand-hosts

6.要為dnsmasq設置域,這意味著只要設置的域匹配, DHCP客戶端將具有完全限定的域名,併為所有客戶端設置“ domain ” DHCP選項。

domain=tecmint.lan

7.接下來,如下所示,使用server選項(以server = dns_server_ip的形式)為非本地域定義上游DNS服務器。

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8.然後,您可以使用顯示的地址選項將本地域強制為IP地址。

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9.保存文件,並檢查配置文件語法中的錯誤,如下所示。

# dnsmasq --test
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

檢查dnsmasq配置

使用/etc/resolv.conf文件配置dnsmasq

10.在此步驟中,您需要通過將localhost地址添加為/etc/resolv.conf文件中的唯一名稱服務器,來使所有查詢都發送到dnsmasq 。

#vi /etc/resolv.conf
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

在/etc/resolv.conf文件中設置Localhost地址

11. /etc/resolv.conf文件由本地守護程序(尤其是NetworkManager )維護,因此任何用戶進行的更改都將被覆蓋。為了防止這種情況,請使用chattr命令通過設置不可變文件屬性 (禁用對文件的寫訪問)來對其進行寫保護。

#chattr + i /etc/resolv.conf
#lsattr /etc/resolv.conf
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

設置文件屬性

定義DNS主機和名稱

12. Dnsmasq/etc/hosts文件中讀取所有DNS主機和名稱,因此,如下所示添加DNS主機的IP地址和名稱對。

127.0.0.1 dnsmasq
192.168.56.10 \tdnsmasq
192.168.56.1 \tgateway
192.168.56.100\tmaas-controller

192.168.56.20 \tnagios
192.168.56.25 \twebserver1
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

添加DNS主機IP地址

重要說明 :本地DNS名稱也可以通過從DHCP子系統導入名稱來定義,也可以通過配置各種有用的記錄類型來定義。

13.要應用以上更改,請如下所示重新啟動dnsmasq服務。

# systemctl restart dnsmasq

14.如果正在運行Firewalld服務,則需要在防火牆配置中打開DNSDHCP服務,以允許來自LAN上主機的請求傳遞到dnsmasq服務器。

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --add-service=dhcp --permanent
# firewall-cmd --reload

測試本地DNS

15.要測試本地DNS服務器或轉發是否工作正常,您需要使用dig或nslookup之類的工具來執行DNS查詢。這些工具是由bind-utils軟件包提供的,該軟件包可能未預先安裝在CentOS / RHEL 8上,但是您可以參考如下所示進行安裝。

#yum install bind-utils

16.安裝後,您可以在本地域上運行一個簡單查詢,如下所示。

# dig tecmint.lan
OR
# nslookup tecmint.lan
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

查詢本地域

17.您也可以嘗試查詢其中一臺服務器的FQDN。

# dig webserver1.tecmint.lan
OR
# nslookup webserver1.tecmint.lan
如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

查詢域DNS

18.要測試反向IP查找,請運行類似的命令。

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

如何在CentOS / RHEL 8/7上使用dnsmasq設置DNS / DHCP服務器

查詢反向IP查找

使用dnsmasq啟用DHCP服務器

19.您可以通過取消註釋dhcp-range選項來啟用DHCP服務器,並提供可租用的地址範圍以及可選的租用時間,例如(對於多個網絡重複)。

dhcp-range=192.168.0.50,192.168.0.150,12h

20.以下選項定義了DHCP服務器將其租約數據庫保留在何處,這將幫助您輕鬆檢查其已分配的IP地址。

dhcp-leasefile = /var/lib/dnsmasq/dnsmasq.leases

21.要將DHCP服務器設置為權威模式,請取消註釋該選項。

dhcp-authoritative

22.保存文件,然後重新啟動dnsmasq服務以應用最近的更改。

# systemctl restart dnsmasqru

如果你對本教程有任何想法或疑問,請在下面留言交流討論。

PS:本文來自翻譯,文中內容有所改動,並非原文所譯。

參考資料:https://cloud.tencent.com/developer/article/1174717


分享到:


相關文章: