LinuxDNS服務(wù)器安裝、配置和維護是每一個(gè)使用LinuxDNS服務(wù)的朋友需要了解與掌握的。要想讓自己的網(wǎng)站更流暢,讓自己的服務(wù)器更穩定,你就需要了解這些內容。
每個(gè) IP 地址都可以有一個(gè)主機名,主機名由一個(gè)或多個(gè)字符串組成,字符串之間用小數點(diǎn)隔開(kāi)。有了主機名,就不要死記硬背每臺 IP 設備的 IP 地址,只要記住相對直觀(guān)有意義的主機名就行了。這就是 DNS 協(xié)議所要完成的功能。
今天我們將討論DNS服務(wù)器,特別是Linux DNS服務(wù)器,及其如何安裝、配置和維護它。
/etc/hosts文件(推薦閱讀:dns服務(wù)器怎么配置?dns服務(wù)器配置詳解)
在沒(méi)有DNS服務(wù)器的情況下,每個(gè)系統在本地網(wǎng)絡(luò )上保留其主機名和相應IP地址列表的副本是合理的——特別是在沒(méi)有互聯(lián)網(wǎng)連接的小型站點(diǎn)上。
在Linux系統中,這個(gè)列表就是/etc/hosts文件。 即使你沒(méi)有DNS服務(wù)器或DNS服務(wù)器不可用,該文件也可以使用/etc/hosts文件將IP地址轉換為名稱(chēng)。
也許你已經(jīng)有DNS服務(wù)器了,但你也會(huì )因為其它原因而想保留這個(gè)文件。例如,系統可能需要在向外部查詢(xún)之前在本地查找DNS服務(wù)器的IP地址;這意味著(zhù)系統在查詢(xún)DNS服務(wù)器之前先檢索該文件,如果查找到對應的域則無(wú)須查詢(xún)任何DNS服務(wù)器直接將其轉換為IP地址。
試試編輯下/etc/hosts文件,并添加以下信息:127.0.0.1 google.com.
然后,返回你的瀏覽器,輸入google.com,看看結果如何。如果你的系統上安裝了Apache并且本地主機正在運行,瀏覽器會(huì )顯示localhost的索引頁(yè),而不是Google頁(yè)面。
作為確認,你可以將google.com映射到任何網(wǎng)站的任何其他IP地址并查看結果。
因此這個(gè)文件所做的是將IP地址轉換成名字,但這僅僅是在同一互相連接的網(wǎng)絡(luò )下。 那么外部網(wǎng)絡(luò )和眾多系統的所有記錄是如何維護的呢?
每個(gè)人都需要維護自己的/etc/hosts文件并自己更新嗎?
更為穩健的域名服務(wù)是DNS服務(wù)器。
域名
當你訪(fǎng)問(wèn)網(wǎng)站時(shí),你可以輸入FQDN(Fully Qualified Domain Name,完全限定域名)或類(lèi)似likegeeks.com或www.google.com的域名。在域名中從右到左的兩個(gè)點(diǎn)之間的每個(gè)文本依次是頂級域組件、二級域組件和三級域組件。
所以,com是頂級域名組件; google是二級域組件; 而www是三級域名組件。
實(shí)際上,當你訪(fǎng)問(wèn)任何網(wǎng)站時(shí),瀏覽器會(huì )默認在域的末尾添加一個(gè)不可見(jiàn)的點(diǎn),因此該域將像www.google.com.一樣。 該點(diǎn)被稱(chēng)為根域。
該點(diǎn)是由一大堆稱(chēng)為根域名服務(wù)器的特殊服務(wù)器管理的。截止這篇文章發(fā)表前,世界上有13個(gè)根域名服務(wù)器。 你可以把他們當成互聯(lián)網(wǎng)的大腦 – 如果他們失效了,世界上就沒(méi)有互聯(lián)網(wǎng)了。
為什么是13呢? 因為如果世界的某處地震可能會(huì )破壞一個(gè)根服務(wù)器,所以其他的服務(wù)器可以繼續提供服務(wù)直到受影響的服務(wù)器重新上線(xiàn)。
這些根名稱(chēng)服務(wù)器按字母順序命名,名稱(chēng)如a.root-server.net、b.root-server.net等。
頂級域名 (或稱(chēng)作一級域名 TLDs)
我們已經(jīng)見(jiàn)過(guò)頂級域名的組成部分,如 com??梢哉J為,頂級域名為 DNS 命名空間提供分類(lèi)組織。
頂級域名(TLD)根據地理或功能方面分為幾類(lèi)。
截止本文撰寫(xiě)時(shí),網(wǎng)上有 800 多個(gè)頂級域名。
頂級域名類(lèi)別有:
通用的頂級域名如:org, .com, .net, .gov, .edu 等等
國家代碼頂級域名如:.us, .ca 等,分別對應美國和加拿大的國家代碼
新的品牌頂級域名,允許組織創(chuàng )建最多 64 個(gè)字符的TLD,如:.linux, .microsoft, .companyname 等
基礎架構頂級域名如: .arpa
子域名
當你訪(fǎng)問(wèn)一個(gè)類(lèi)似 mail.google.com 這樣的網(wǎng)站, 這里的mail 就是 google.com的子域名.
只有mail.google.com 的名稱(chēng)服務(wù)器知道他下面存在的所有主機,所以Google會(huì )回復是否有一個(gè)叫mail 的子域名。根名稱(chēng)服務(wù)器對此并不知情。
DNS服務(wù)器的類(lèi)型
一共有三種DNS服務(wù)器。
主DNS服務(wù)器
這些服務(wù)器上存放了特定域名的配置文件,并且基于此權威地規定了特定域名的地址。主DNS服務(wù)器知道全部在它管轄范圍的主機和子域名的地址。
輔助DNS服務(wù)器
這些服務(wù)器作為主DNS服務(wù)器的備份,也承擔一定負載。主服務(wù)器知道輔助DNS服務(wù)器的存在,并且會(huì )向他們推送更新。
緩存DNS服務(wù)器
這些服務(wù)器上不存放特定域名的配置文件。當客戶(hù)端請求緩存服務(wù)器來(lái)解析域名時(shí),該服務(wù)器將首先檢查其本地緩存。如果找不到匹配項便會(huì )詢(xún)問(wèn)主服務(wù)器。接著(zhù)這條響應將被緩存起來(lái)。您也可以輕松地將自己的系統用作緩存服務(wù)器。
搭建 Linux DNS 服務(wù)器
Linux 下有很多實(shí)現了 DNS 功能的包,不過(guò)我們只關(guān)注 BIND DNS 服務(wù)器。它用于世界上大多數 DNS 服務(wù)器。
如果你在使用基于 Red Hat 發(fā)行版的 Linux,比如 CentOS,可以像這樣安裝:$ dnf -y install bind
如果你使用基于 Debian 的操作系統,比如 Ubuntu:$ apt-get install bind9
安裝完成之后就可以啟動(dòng)它并讓它在計算機啟動(dòng)的時(shí)候一并啟動(dòng)起來(lái)。
$ systemctl start named$ systemctl enable named
配置 BIND
這個(gè)服務(wù)使用 /etc/named.conf 作為配置文件。
BIND 在那個(gè)文件中使用像下面這樣的一些語(yǔ)句:
options: 用于全局 BIND 配置。
logging: 配置哪些需要記錄,哪些需要忽略。我推薦你看看 Linux syslog server。
zone: 定義 DNS 區域。
include: 在 named.conf 中包含另一個(gè)文件。
在 options 語(yǔ)句中可以看到 BIND 的工作目錄在 /var/named。
zone 語(yǔ)句可用于定義 DNS 區域,比如域名 google.com,它包含子域名 mail.google.com 和 analytics.google.com。
上述三個(gè)域名(主域名和子域名) 都有一個(gè)由 zone 語(yǔ)句定義的區域。
定義一個(gè)主域服務(wù)器
我們知道 DNS 服務(wù)器類(lèi)型有主域名服務(wù)器、輔助域名服務(wù)器和緩存域名服務(wù)器。不同于緩存域名服務(wù)器,主域名服務(wù)器和輔助域名服務(wù)器在應答過(guò)程中是處于同等地位的。
在 /etc/named.conf 的配置文件中,你可以使用如下語(yǔ)法定義一個(gè)主域服務(wù)器:
zone "likegeeks.com" {type master;file likegeeks.com.db};
包含主要區域信息的文件存放在 /var/named 目錄下,從 options 可知,這是一個(gè)工作目錄。
注意:軟件服務(wù)器或者托管面板會(huì )根據你的域名自動(dòng)為你創(chuàng )建主域服務(wù)器信息的文件名,因此如果你的域名是 example.org,那么你主域服務(wù)器信息的文件就為 /var/named/example.org.db。
類(lèi)型為 master,也就是說(shuō)這是一個(gè)主域服務(wù)器。
定義一個(gè)輔助域服務(wù)器
同定義一個(gè)主域服務(wù)器一樣,輔助域服務(wù)器的定義稍微有些變化:
zone "likegeeks.com" {type slave;masters IP Address list; ;file likegeeks.com.db};
對于輔助域服務(wù)器來(lái)說(shuō),它的域名和主域服務(wù)器是一樣的。上述語(yǔ)法里的的slave類(lèi)型表示這是一個(gè)輔助域服務(wù)器,“masters IP Address list”表示輔助域服務(wù)器中區域文件內的信息都是通過(guò)主域服務(wù)器中區域文件內的信息復制過(guò)來(lái)的。
定義一個(gè)緩存服務(wù)器
即使你已經(jīng)配置了主域或者輔助域服務(wù)器,你仍有必要(不是必須)定義一個(gè)緩存服務(wù)器,因為這樣你可以減少DNS服務(wù)器的查詢(xún)次數。
在定義緩存服務(wù)器之前,你需要先定義三個(gè)區域選擇器,第一個(gè):
zone "." IN {type hint;file "root.hint";};zone "." IN {type hint;file "root.hint";};zone "." IN {type hint;file "root.hint";};zone "localhost" IN {type master;file "localhost.db";};
定義第三個(gè)區域是為了反向查找到本地主機。這種反向查找是把本地的IP地址執向本地主機。
zone "0.0.127.in-addr.arpa" IN {type master;file "127.0.0.rev";};
把這三個(gè)區域信息放到/etc/named.conf文件里,你的系統就可以以緩存服務(wù)器來(lái)工作了。但是如何引用類(lèi)似likegeeks.com.db, localhost.db, 和 127.0.0.rev這些文件中的內容呢?
這些文件包含具有某些選項的每個(gè)區域的DNS記錄類(lèi)型。 那么,這些DNS記錄類(lèi)型是什么以及它們是如何寫(xiě)的?
DNS記錄類(lèi)型
數據庫文件包含諸如SOA、NS、A、PTR、MX、CNAME和TXT在內的記錄類(lèi)型。
我們看看每一種類(lèi)型都是如何記錄的吧。
SOA:起始授權機構記錄
SOA記錄按如下形式開(kāi)始描述一個(gè)站點(diǎn)的DNS條目:
example.com. 86400 IN SOA ns1.example.com. mail.example.com. (2017012604 ;serial86400 ;refresh, seconds7200 ;retry, seconds3600000 ;expire, seconds86400 ;minimum, seconds)
第一行以域名example.com開(kāi)始,以句號結束——該語(yǔ)句和/etc/named.conf文件中的區域定義是一致的。我們要始終記得,DNS配置文件是極其挑剔的。
IN 告訴域名服務(wù)器:這是一條網(wǎng)絡(luò )記錄。
SOA 告訴域名服務(wù)器:這是一條起始授權機構記錄。
ns1.example.com. 是該文件所在域的域名服務(wù)器的完全合格域名(FQDN: Fully Qualified Domain Name)。
mail.host.com. 是域管理員的郵箱地址。你會(huì )發(fā)現這個(gè)郵箱地址沒(méi)有“@”標志,而是被句號所取代,并且末尾還有一個(gè)句號。
第2行是一個(gè)序列碼,它被用來(lái)告訴域名服務(wù)器文件是什么時(shí)候升級的。因此,如果你對區域碼做了變更,你必須對這個(gè)序列碼進(jìn)行遞增。這個(gè)序列碼的格式是 YYYYMMDDxx ,其中的 xx 是從 00 開(kāi)始的。
第3行是每秒刷新率。這個(gè)值被用來(lái)告訴第二個(gè)域名服務(wù)器查詢(xún)主服務(wù)器中的記錄是否已經(jīng)被更新的頻率。
第4行是每秒重試的頻率。如果第二個(gè)服務(wù)器多次嘗試連接主域名服務(wù)器來(lái)進(jìn)行更新檢測,但無(wú)法連接上的時(shí)候,第二個(gè)服務(wù)器就會(huì )在每秒內重試指定的數值次數。
第5行是超時(shí)指示。其目的是為了第二個(gè)服務(wù)器能將區域數據緩存下來(lái)。這個(gè)值告訴這些服務(wù)器如果它們不能連接到主服務(wù)器來(lái)進(jìn)行更新,那么它們就會(huì )在這個(gè)指定數值秒數之后拋棄這個(gè)值。
第6行告訴緩存服務(wù)器,如果它們不能連接到主域名服務(wù)器時(shí),它們應該在超時(shí)前等待多久。
NS: Name Server Records(名稱(chēng)服務(wù)器記錄)
NS記錄用于指定哪個(gè)名稱(chēng)服務(wù)器維護該域的記錄。
你可以這樣編寫(xiě)的NS記錄:
IN NS ns1.example.com.IN NS ns2.example.com.
并不需要有2個(gè)NS記錄,但是通常偏好有備份名稱(chēng)服務(wù)器。
A和AAAA: Address Records(地址記錄)
A記錄用于提供從主機名到IP地址的映射support IN A 192.168.1.5。
如果你在地址為192.168.1.5上的support.example.com上有一個(gè)主機,你可以像上面的例子那樣輸入。
請注意,我們所寫(xiě)的主機并沒(méi)有句號。
PTR: Pointer Records(指針記錄)
PTR記錄用于執行反向名稱(chēng)解析,允許某人指定IP地址然后找出對應的主機名。
這與A記錄的功能相反:192.168.1.5 IN PTR support.example.com.
在這里,我們鍵入具有點(diǎn)號的完整主機名。
MX: Mail Exchange Records(郵件交換記錄)
MX記錄告訴其他站點(diǎn)關(guān)于你所在域的郵件服務(wù)器地址:example.com. IN MX 10 mail.
當然這個(gè)域以句號結束。數字10是郵件服務(wù)器的重要性標志,如果你擁有多個(gè)郵件服務(wù)器,其中較小的數字不太重要。
CNAME: Canonical Name Records(權威名稱(chēng)記錄)
CNAME記錄允許你為主機名創(chuàng )建別名。當你想提供一個(gè)易于記住的名稱(chēng)時(shí),這很有用。
假設某個(gè)站點(diǎn)具有一個(gè)主機名為whatever-bignameis.example.com的Web服務(wù)器,并且由于系統是Web服務(wù)器,因此可以為主機創(chuàng )建一個(gè)名為www的CNAME記錄或者別名。
你可以創(chuàng )建名為www.example.com的域名創(chuàng )建CNAME記錄:
whatever-bignameis IN A 192.168.1.5www IN CNAME whatever-bignameis
第一行通知DNS服務(wù)器關(guān)于別名的位置。第二行創(chuàng )建一個(gè)指向www的別名。
TXT記錄
您可以將任何信息存儲到TXT記錄中,例如你的聯(lián)系方式或者你希望人們在查詢(xún)DNS服務(wù)器時(shí)可獲得的任意其他信息。
你可以這樣保存TXT記錄:example.com. IN TXT ” YOUR INFO GOES HERE”.
此外,RP記錄被創(chuàng )建為對host聯(lián)系信息的顯式容器:example.com. IN RP mail.example.com. example.com。
DNS TTL值
在/etc/named.conf文件的頂部,這里有一個(gè)$TTL條目。
該條目告訴BIND每個(gè)單獨記錄的TTL值(time to live,生存時(shí)間值)。
它是以秒為單位的數值,比如14,400秒(4個(gè)小時(shí)),因此DNS服務(wù)器最多緩存你的域文件4個(gè)小時(shí),之后就會(huì )向你的DNS服務(wù)器重新查詢(xún)。
你可以降低這個(gè)值,但是默認值通常是合理的。除非你知道你正在做什么。
捕獲配置錯誤
當您寫(xiě)入域文件時(shí),也許您忘記了一個(gè)句號或空格或其他任意錯誤。
你可以從日志診斷Linux DNS服務(wù)器錯誤。BIND服務(wù)通過(guò)/var/log/messages上的錯誤,可以使用tail命令來(lái)查看實(shí)時(shí)錯誤日志,須使用-f選項:$ tail -f /var /log/messages。
因此,當你編寫(xiě)域文件或修改/etc/named.config并重新啟動(dòng)服務(wù)時(shí),顯示錯誤之后,你可以從日志中輕松識別錯誤類(lèi)型。
Host命令
在你成功添加或修改記錄后,可以使用host命令查看主機是否正確解析。
host命令允許你將主機名解析為IP地址:$ host example.com。
此外,你可以執行反向查找:$ host 192.168.1.5。
你可以this在此篇文章中查看更多關(guān)于host和dig命令的信息。
Whois命令
whois命令用于確定域名的所有權及其擁有者的e-mail地址和聯(lián)系電話(huà):$ whois example.com.
Rndc命令
rndc工具可用于安全地管理名稱(chēng)服務(wù)器,因為與服務(wù)器的所有通信均通過(guò)數字簽名進(jìn)行身份驗證。
此工具用于控制名稱(chēng)服務(wù)器和調試問(wèn)題。 你可以通過(guò)以下方式檢查L(cháng)inux DNS服務(wù)器的狀態(tài):$ rndc status。
此外,如果你更改任何域(zone)文件,您可以重新加載服務(wù),而無(wú)須重啟命名服務(wù):$ rndc reload example.com。
在這里,我們重新加載example.com域文件。 你可以重新加載所有域:$ rndc reload。
或者你可以添加新的域或更改服務(wù)的配置。 你可以重新加載配置,如下所示:
$ rndc reconfig。
Linux DNS解析器
我們已經(jīng)知道Linux DNS服務(wù)器的工作原理以及如何配置它。另一部分當然是與DNS服務(wù)器交互的(正在與DNS服務(wù)器通信以將主機名解析為IP地址的)客戶(hù)端。
在Linux上,解析器位于DNS的客戶(hù)端。要配置解析器,可以檢查/etc/resolv.conf這個(gè)配置文件。
在基于Debian的發(fā)行版上,可以查看/etc/resolvconf/resolv.conf.d/目錄。
/etc/resolv.conf文件中包含客戶(hù)端用于獲取其本地DNS服務(wù)器地址所需的信息。
第一個(gè)表示默認搜索域,第二個(gè)表示主機名稱(chēng)服務(wù)器(nameserver)的IP地址。
名稱(chēng)服務(wù)器行告訴解析器哪個(gè)名稱(chēng)服務(wù)器可使用。 只要你的BIND服務(wù)正在運行,你就可以使用自己的DNS服務(wù)器。服務(wù)器是什么?盡在聚名資訊站!
來(lái)源鏈接:https://www.juming.com/zx/531.html
本站聲明:網(wǎng)站內容來(lái)源于網(wǎng)絡(luò ),如有侵權,請聯(lián)系我們,我們將及時(shí)處理。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站