名稱(chēng)解析是現(xiàn)代網(wǎng)絡(luò)的重要組成部分。名稱(chēng)解析服務(wù)將人們?nèi)菀子涀〉拿Q(chēng)與較難記住的IP地址聯(lián)系起來(lái)。名稱(chēng)解析使用地址(A)記錄來(lái)解析具有IPv4地址的名稱(chēng),并使用quad-A(AAAA)記錄來(lái)將名稱(chēng)與IPv6地址相關(guān)聯(lián)。最終用戶(hù)依靠名稱(chēng)解析來(lái)瀏覽網(wǎng)站。計(jì)算機(jī)技術(shù)人員可以使用名稱(chēng)來(lái)映射網(wǎng)絡(luò)打印機(jī)或驅(qū)動(dòng)器,系統(tǒng)管理員可以通過(guò)名稱(chēng)遠(yuǎn)程連接到服務(wù)器或VM。
排除名稱(chēng)解析故障的第一步是了解它。本系列的第一篇文章定義了名稱(chēng)解析?并提供了一些功能的示例,如主機(jī)文件和DNS。第二篇文章介紹名稱(chēng)解析問(wèn)題的疑難解答?從客戶(hù)端的角度,使用ping、nslookup、host和dig等工具。本文討論服務(wù)器上的DNS服務(wù)故障排除。具體而言,它將介紹如何檢查L(zhǎng)inux和Windows DNS服務(wù)器上的服務(wù)狀態(tài)和主配置文件。
基于Linux的DNS疑難解答
Linux服務(wù)器上的名稱(chēng)解析故障排除從基礎(chǔ)知識(shí)開(kāi)始。首先,服務(wù)是否已安裝并正在運(yùn)行?其次,區(qū)域文件是否準(zhǔn)確,它們是否包含解析網(wǎng)絡(luò)主機(jī)所需的資源記錄?
Linux的名稱(chēng)解析服務(wù)是Berkeley Internet Name Domain(BIND),目前版本為9。
1.檢查是否安裝了BIND
排除名稱(chēng)解析服務(wù)器故障時(shí),請(qǐng)確保BIND已安裝并正在運(yùn)行。使用以下命令確認(rèn)BIND 9已安裝:
$ named -v
輸出應(yīng)指示BIND 9已安裝并顯示版本號(hào)。如果未安裝BIND 9,這就是對(duì)該服務(wù)器的名稱(chēng)解析查詢(xún)失敗的原因。
在Red Hat、Fedora和類(lèi)似的發(fā)行版上,鍵入以下內(nèi)容以安裝BIND 9:
$ sudo dnf install -y bind bind-utils
在Ubuntu、Debian和類(lèi)似的發(fā)行版上,鍵入以下內(nèi)容:
$ sudo apt install bind9 bind9-utils bind9-dnsutils
管理員是否需要安裝各種額外的實(shí)用程序取決于他們打算如何使用名稱(chēng)解析服務(wù)器。
2.確保BIND正在運(yùn)行
假設(shè)安裝了BIND,下一步是確保服務(wù)正在運(yùn)行。系統(tǒng) 命令使用以下語(yǔ)法:
$ sudo systemctl status bind9
管理員可以使用systemctl啟動(dòng),停止,再啟動(dòng),使能?和禁用?命令來(lái)管理服務(wù)。
別忘了設(shè)置防火墻允許端口53/udp用于查詢(xún),53/tcp用于區(qū)域傳輸。
3.檢查區(qū)域配置
存儲(chǔ)BIND 9配置文件的主目錄通常是/etc/綁定?和/var/cache/bind。主要的服務(wù)配置文件有named.conf,named.conf.default-zones,named.conf.local?和named.conf.options這些文件定義名稱(chēng)解析服務(wù)如何執(zhí)行其任務(wù)。
請(qǐng)注意,確切的目錄和文件名以及位置可能因發(fā)行版而異。這在Linux系統(tǒng)上并不少見(jiàn)。grep?的/etc?和/var?字符串目錄包含命名的.

區(qū)域文件包含將特定主機(jī)名與IP地址相關(guān)聯(lián)的實(shí)際資源記錄。區(qū)域文件通常位于/var/cache/bind。標(biāo)準(zhǔn)資源記錄,例如授權(quán)起始(SOA)和名稱(chēng)服務(wù)器(NS)記錄,與用于名稱(chēng)解析查詢(xún)的A和指針(PTR)記錄一起存儲(chǔ)在這里。如果服務(wù)器解析多個(gè)區(qū)域的查詢(xún),則每個(gè)區(qū)域?qū)⒕哂衅渥约旱奈募?/p>
使用以下命令檢查區(qū)域文件配置,其中地帶名稱(chēng)?是管理員正在進(jìn)行故障排除的DNS區(qū)域的名稱(chēng):
$ sudo命名檢查區(qū)域zonename.comdb.zonename.com
該指定檢查區(qū)?實(shí)用程序檢查區(qū)域文件的語(yǔ)法。此檢查提供了測(cè)試和排除現(xiàn)有區(qū)域文件故障的機(jī)會(huì),并在將新區(qū)域文件加載到BIND9之前確認(rèn)其配置。
結(jié)果應(yīng)通過(guò)提供退出代碼指示區(qū)域正在正確響應(yīng)0。如果檢查返回退出代碼1,檢查區(qū)域文件內(nèi)容是否有錯(cuò)誤。管理員可能會(huì)遇到以下錯(cuò)誤:
- 區(qū)域名稱(chēng)不正確。
- 區(qū)域文件可能包含不正確的A和PTR資源記錄。
- 記錄可能有印刷錯(cuò)誤。
注意事項(xiàng):?管理員可能會(huì)發(fā)現(xiàn),使用dig、host和nslookup等工具從客戶(hù)端系統(tǒng)進(jìn)行故障排除有助于正確識(shí)別某些問(wèn)題。
基于Windows的DNS疑難解答
微軟Active Directory域服務(wù)?(AD DS)集成了多項(xiàng)服務(wù),以提供安全性和易于管理性。第一項(xiàng)服務(wù)是DNS AD集成區(qū)域。此功能支持使用AD數(shù)據(jù)庫(kù)復(fù)制DNS數(shù)據(jù)庫(kù)--一種更全面的復(fù)制設(shè)計(jì)。第二項(xiàng)服務(wù)是動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)擁有的A和PTR記錄的動(dòng)態(tài)更新。DHCP注冊(cè)客戶(hù)端的主機(jī)名和IP地址?在租用IP地址配置后,使用DNS,確保-希望-DNS區(qū)域填充有準(zhǔn)確的信息。因?yàn)檫@三種服務(wù)一起工作,所以通常將它們放在同一臺(tái)服務(wù)器上是有意義的。
任何名稱(chēng)解析故障排除都必須涉及AD DS和DHCP。在查看事件查看器消息或試圖縮小名稱(chēng)解析問(wèn)題的范圍時(shí),請(qǐng)記住這一點(diǎn)。有幾個(gè)控制臺(tái)和Windows PowerShell cmdlet可用于排除DNS故障。
1.驗(yàn)證是否已安裝DNS
首先,通過(guò)檢查服務(wù)器管理器或服務(wù)項(xiàng)目?如有必要,請(qǐng)?zhí)砑覦NS角色,并將服務(wù)器配置為AD域的一部分。任何服務(wù)(包括DNS)都可以在服務(wù)項(xiàng)目?中的控制臺(tái)工具?管理員可以檢查服務(wù)的狀態(tài)并從該控制臺(tái)重新啟動(dòng)服務(wù)。
2.檢查區(qū)域
打開(kāi)DNS管理器?管理員還可以在這里創(chuàng)建新的區(qū)域,以及管理區(qū)域復(fù)制、安全設(shè)置和轉(zhuǎn)發(fā)等配置。
3.使用PowerShell排除配置故障
只要管理員記住了適當(dāng)?shù)腸mdlet和參數(shù),命令行環(huán)境(如PowerShell,可以是高效的,并且通常比導(dǎo)航GUI更快。顯然,命令行界面的主要好處是腳本。管理員甚至可以生成他們自己的名稱(chēng)解析故障排除腳本。
有幾個(gè)cmdlet可幫助進(jìn)行DNS故障排除和報(bào)告。它對(duì)于顯示區(qū)域中的記錄、確認(rèn)DNS服務(wù)器對(duì)查詢(xún)名稱(chēng)的名稱(chēng)解析是可能的特別有用。
以下是使用PowerShell排除配置故障或檢索信息的幾個(gè)示例。
使用以下cmdlet清除DNS解析程序緩存:
〉Clear-DnsServerCache
使用以下cmdlet從服務(wù)器檢索資源記錄,并確認(rèn)記錄存在:
〉Get-DnsServerResourceRecord -ComputerName DC1 -ZoneName myzone.local
從指定的DNS服務(wù)器檢索A記錄,方法是添加- RR A型?參數(shù):
〉Get-DnsServerResourceRecord -ComputerName DC1 -ZoneName myzone.local -RRType A
4.檢查DNS配置
從服務(wù)器管理器中,轉(zhuǎn)到工具?菜單,然后選擇DNS?打開(kāi)DNS管理器?控制臺(tái)。管理員可以展開(kāi)節(jié)點(diǎn)以顯示服務(wù)器知道的任何DNS區(qū)域。以下是根據(jù)故障排除方案需要檢查的一些區(qū)域:
- 確認(rèn)列出了正確的區(qū)域。
- 搜索靜態(tài)資源記錄中的任何印刷錯(cuò)誤。
- 驗(yàn)證是否存在正確的A和PTR資源記錄。
- 確認(rèn)防火墻允許DNS流量。
管理員還可以使用DNS控制臺(tái)檢查區(qū)域?qū)傩裕缜宄娃D(zhuǎn)發(fā)器。這些設(shè)置會(huì)影響DNS處理名稱(chēng)解析查詢(xún)的方式。清除有助于清理DNS記錄。在AD環(huán)境中,Windows客戶(hù)端或DHCP服務(wù)器動(dòng)態(tài)創(chuàng)建A和PTR資源記錄。如果不進(jìn)行處理,記錄的數(shù)量會(huì)繼續(xù)增長(zhǎng),而不會(huì)刪除較舊的記錄,這就是為什么DNS可以使用老化和清除等屬性的原因。
時(shí)效標(biāo)識(shí)指定時(shí)效的資源記錄。這些記錄被標(biāo)記為陳腐的,并且在另一個(gè)指定的時(shí)間間隔后它們將被清除(刪除)。請(qǐng)確保在區(qū)域中的一個(gè)DNS服務(wù)器上啟用了清除,以保持區(qū)域的大小可管理。
轉(zhuǎn)發(fā)會(huì)將未解析的查詢(xún)發(fā)送到另一臺(tái)服務(wù)器。此配置將內(nèi)部DNS服務(wù)器(可能與AD域控制器(DC)位于同一位置)與直接Internet訪問(wèn)隔離。相反,指定的DNS服務(wù)器(稱(chēng)為運(yùn)輸公司?駐留在網(wǎng)絡(luò)的面向Internet的屏蔽子網(wǎng)或DMZ中。內(nèi)部DNS服務(wù)器將對(duì)外部Internet資源的查詢(xún)轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)器。
要檢查的另一個(gè)設(shè)置是條件轉(zhuǎn)發(fā)。DNS條件轉(zhuǎn)發(fā)使管理員能夠?qū)⑻囟ㄓ蛎c已知DNS服務(wù)器關(guān)聯(lián)。當(dāng)DNS服務(wù)器接收到與該域名相關(guān)的查詢(xún)時(shí),該查詢(xún)將直接發(fā)送到列出的DNS服務(wù)器,而不通過(guò)多個(gè)其他服務(wù)器進(jìn)行解析。請(qǐng)確保標(biāo)識(shí)的任何域名都正確,并且提供了適當(dāng)?shù)腄NS服務(wù)器IP地址。
5.重新加載區(qū)域
接下來(lái),嘗試重新加載區(qū)域。管理員還可以重新啟動(dòng)DNS服務(wù)。但是,請(qǐng)注意,這也會(huì)重新啟動(dòng)AD DS,并可能影響客戶(hù)端系統(tǒng)。假設(shè)站點(diǎn)上至少有兩個(gè)AD DC,以減輕一次一個(gè)DC不可用的影響。
6.檢查事件查看器日志
接下來(lái),檢查事件查看器DNS日志。管理員可能需要查看AD DS事件,甚至可能是DHCP事件,而不僅僅是DNS條目。注意指示DNS啟動(dòng)問(wèn)題的條目。更重要的是,檢查DNS和AD DS是否存在復(fù)制錯(cuò)誤。
Windows提供了多種DNS服務(wù)接口。管理員可以通過(guò)服務(wù)項(xiàng)目?控制臺(tái),但大多數(shù)DNS故障排除可能會(huì)在DNS管理器?控制臺(tái)。此控制臺(tái)可啟用區(qū)域管理、顯示資源記錄并修改服務(wù)設(shè)置,如清除和轉(zhuǎn)發(fā)。AD集成區(qū)域可提高DNS區(qū)域復(fù)制的安全性和性能,并實(shí)現(xiàn)DNS和DHCP之間更緊密的集成。因此,在對(duì)DNS問(wèn)題進(jìn)行故障排除時(shí),請(qǐng)不要忘記檢查AD復(fù)制和DHCP設(shè)置。
總結(jié)
DNS服務(wù)器提供網(wǎng)絡(luò)上最關(guān)鍵的服務(wù)之一。名稱(chēng)解析使用戶(hù)能夠使用相對(duì)容易記住的名稱(chēng)。在后臺(tái),系統(tǒng)將這些名稱(chēng)與TCP/IP所需的IP地址相關(guān)聯(lián)。許多服務(wù)都依賴(lài)于DNS,包括電子郵件,Web瀏覽,文件共享,打印機(jī)共享和AD。通過(guò)確保服務(wù)已安裝、正在運(yùn)行且可訪問(wèn)來(lái)開(kāi)始故障排除。確認(rèn)存儲(chǔ)資源記錄所需的區(qū)域存在且配置正確。最后,驗(yàn)證查詢(xún)目標(biāo)的資源記錄存在且準(zhǔn)確。