免費(fèi)注冊 登錄

超過1000,000域名在迅速網(wǎng)絡(luò)注冊

<    >

LinuxDNS服務(wù)器安裝、配置和維護(hù)_迅速域名



  LinuxDNS服務(wù)器安裝、配置和維護(hù)是每一個使用LinuxDNS服務(wù)的朋友需要了解與掌握的。要想讓自己的網(wǎng)站更流暢,讓自己的服務(wù)器更穩(wěn)定,你就需要了解這些內(nèi)容。

  每個 IP 地址都可以有一個主機(jī)名,主機(jī)名由一個或多個字符串組成,字符串之間用小數(shù)點隔開。有了主機(jī)名,就不要死記硬背每臺 IP 設(shè)備的 IP 地址,只要記住相對直觀有意義的主機(jī)名就行了。這就是 DNS 協(xié)議所要完成的功能。

  今天我們將討論DNS服務(wù)器,特別是Linux DNS服務(wù)器,及其如何安裝、配置和維護(hù)它。



  
/etc/hosts文件
(推薦閱讀:dns服務(wù)器怎么配置?dns服務(wù)器配置詳解)

  在沒有DNS服務(wù)器的情況下,每個系統(tǒng)在本地網(wǎng)絡(luò)上保留其主機(jī)名和相應(yīng)IP地址列表的副本是合理的——特別是在沒有互聯(lián)網(wǎng)連接的小型站點上。

  在Linux系統(tǒng)中,這個列表就是/etc/hosts文件。 即使你沒有DNS服務(wù)器或DNS服務(wù)器不可用,該文件也可以使用/etc/hosts文件將IP地址轉(zhuǎn)換為名稱。

  也許你已經(jīng)有DNS服務(wù)器了,但你也會因為其它原因而想保留這個文件。例如,系統(tǒng)可能需要在向外部查詢之前在本地查找DNS服務(wù)器的IP地址;這意味著系統(tǒng)在查詢DNS服務(wù)器之前先檢索該文件,如果查找到對應(yīng)的域則無須查詢?nèi)魏蜠NS服務(wù)器直接將其轉(zhuǎn)換為IP地址。

  試試編輯下/etc/hosts文件,并添加以下信息:127.0.0.1 google.com.

  然后,返回你的瀏覽器,輸入google.com,看看結(jié)果如何。如果你的系統(tǒng)上安裝了Apache并且本地主機(jī)正在運(yùn)行,瀏覽器會顯示localhost的索引頁,而不是Google頁面。

  作為確認(rèn),你可以將google.com映射到任何網(wǎng)站的任何其他IP地址并查看結(jié)果。

  因此這個文件所做的是將IP地址轉(zhuǎn)換成名字,但這僅僅是在同一互相連接的網(wǎng)絡(luò)下。 那么外部網(wǎng)絡(luò)和眾多系統(tǒng)的所有記錄是如何維護(hù)的呢?

  每個人都需要維護(hù)自己的/etc/hosts文件并自己更新嗎?

  更為穩(wěn)健的
域名
服務(wù)是DNS服務(wù)器。

  
域名

  當(dāng)你訪問網(wǎng)站時,你可以輸入FQDN(Fully Qualified Domain Name,完全限定域名)或類似likegeeks.com或www.google.com的域名。在域名中從右到左的兩個點之間的每個文本依次是頂級域組件、二級域組件和三級域組件。

  所以,com是
頂級域名
組件; google是二級域組件; 而www是三級域名組件。

  實際上,當(dāng)你訪問任何網(wǎng)站時,瀏覽器會默認(rèn)在域的末尾添加一個不可見的點,因此該域?qū)⑾駑ww.google.com.一樣。 該點被稱為根域。

  該點是由一大堆稱為根域名服務(wù)器的特殊服務(wù)器管理的。截止這篇文章發(fā)表前,世界上有13個根域名服務(wù)器。 你可以把他們當(dāng)成互聯(lián)網(wǎng)的大腦 – 如果他們失效了,世界上就沒有互聯(lián)網(wǎng)了。

  為什么是13呢? 因為如果世界的某處地震可能會破壞一個根服務(wù)器,所以其他的服務(wù)器可以繼續(xù)提供服務(wù)直到受影響的服務(wù)器重新上線。

  這些根名稱服務(wù)器按字母順序命名,名稱如a.root-server.net、b.root-server.net等。

  
頂級域名 (或稱作一級域名 TLDs)

  我們已經(jīng)見過頂級域名的組成部分,如 com??梢哉J(rèn)為,頂級域名為 DNS 命名空間提供分類組織。

  頂級域名(TLD)根據(jù)地理或功能方面分為幾類。

  截止本文撰寫時,網(wǎng)上有 800 多個頂級域名。

  頂級域名類別有:

  通用的頂級域名如:org, .com, .net, .gov, .edu 等等

  國家代碼頂級域名如:.us, .ca 等,分別對應(yīng)美國和加拿大的國家代碼

  新的品牌頂級域名,允許組織創(chuàng)建最多 64 個字符的TLD,如:.linux, .microsoft, .companyname 等

  基礎(chǔ)架構(gòu)頂級域名如: .arpa

  
子域名

  當(dāng)你訪問一個類似 mail.google.com 這樣的網(wǎng)站, 這里的mail 就是 google.com的子域名.

  只有mail.google.com 的名稱服務(wù)器知道他下面存在的所有主機(jī),所以Google會回復(fù)是否有一個叫mail 的子域名。根名稱服務(wù)器對此并不知情。

  
DNS服務(wù)器的類型

  一共有三種DNS服務(wù)器。

  
主DNS服務(wù)器

  這些服務(wù)器上存放了特定域名的配置文件,并且基于此權(quán)威地規(guī)定了特定域名的地址。主DNS服務(wù)器知道全部在它管轄范圍的主機(jī)和子域名的地址。

  
輔助DNS服務(wù)器

  這些服務(wù)器作為主DNS服務(wù)器的備份,也承擔(dān)一定負(fù)載。主服務(wù)器知道輔助DNS服務(wù)器的存在,并且會向他們推送更新。

  
緩存DNS服務(wù)器

  這些服務(wù)器上不存放特定域名的配置文件。當(dāng)客戶端請求緩存服務(wù)器來解析域名時,該服務(wù)器將首先檢查其本地緩存。如果找不到匹配項便會詢問主服務(wù)器。接著這條響應(yīng)將被緩存起來。您也可以輕松地將自己的系統(tǒng)用作緩存服務(wù)器。

  
搭建 Linux DNS 服務(wù)器

  Linux 下有很多實現(xiàn)了 DNS 功能的包,不過我們只關(guān)注 BIND DNS 服務(wù)器。它用于世界上大多數(shù) DNS 服務(wù)器。

  如果你在使用基于 Red Hat 發(fā)行版的 Linux,比如 CentOS,可以像這樣安裝:$ dnf -y install bind

  如果你使用基于 Debian 的操作系統(tǒng),比如 Ubuntu:$ apt-get install bind9

  安裝完成之后就可以啟動它并讓它在計算機(jī)啟動的時候一并啟動起來。

  $ systemctl start named$ systemctl enable named

  
配置 BIND

  這個服務(wù)使用 /etc/named.conf 作為配置文件。

  BIND 在那個文件中使用像下面這樣的一些語句:

  options: 用于全局 BIND 配置。

  logging: 配置哪些需要記錄,哪些需要忽略。我推薦你看看 Linux syslog server。

  zone: 定義 DNS 區(qū)域。

  include: 在 named.conf 中包含另一個文件。

  在 options 語句中可以看到 BIND 的工作目錄在 /var/named。

  zone 語句可用于定義 DNS 區(qū)域,比如域名 google.com,它包含子域名 mail.google.com 和 analytics.google.com。

  上述三個域名(主域名和子域名) 都有一個由 zone 語句定義的區(qū)域。

  
定義一個主域服務(wù)器

  我們知道 DNS 服務(wù)器類型有主域名服務(wù)器、輔助域名服務(wù)器和緩存域名服務(wù)器。不同于緩存域名服務(wù)器,主域名服務(wù)器和輔助域名服務(wù)器在應(yīng)答過程中是處于同等地位的。

  在 /etc/named.conf 的配置文件中,你可以使用如下語法定義一個主域服務(wù)器:

  zone ? ?"likegeeks.com" {type master;file likegeeks.com.db};

  包含主要區(qū)域信息的文件存放在 /var/named 目錄下,從 options 可知,這是一個工作目錄。

  注意:軟件服務(wù)器或者托管面板會根據(jù)你的域名自動為你創(chuàng)建主域服務(wù)器信息的文件名,因此如果你的域名是 example.org,那么你主域服務(wù)器信息的文件就為 /var/named/example.org.db。

  類型為 master,也就是說這是一個主域服務(wù)器。

  
定義一個輔助域服務(wù)器

  同定義一個主域服務(wù)器一樣,輔助域服務(wù)器的定義稍微有些變化:

  zone ? ?"likegeeks.com" {type slave;masters IP Address list; ;file likegeeks.com.db};

  對于輔助域服務(wù)器來說,它的域名和主域服務(wù)器是一樣的。上述語法里的的slave類型表示這是一個輔助域服務(wù)器,“masters IP Address list”表示輔助域服務(wù)器中區(qū)域文件內(nèi)的信息都是通過主域服務(wù)器中區(qū)域文件內(nèi)的信息復(fù)制過來的。

  
定義一個緩存服務(wù)器

  即使你已經(jīng)配置了主域或者輔助域服務(wù)器,你仍有必要(不是必須)定義一個緩存服務(wù)器,因為這樣你可以減少DNS服務(wù)器的查詢次數(shù)。

  在定義緩存服務(wù)器之前,你需要先定義三個區(qū)域選擇器,第一個:

  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";};

  定義第三個區(qū)域是為了反向查找到本地主機(jī)。這種反向查找是把本地的IP地址執(zhí)向本地主機(jī)。

  zone ? ? ?"0.0.127.in-addr.arpa" IN {type master;file "127.0.0.rev";};

  把這三個區(qū)域信息放到/etc/named.conf文件里,你的系統(tǒng)就可以以緩存服務(wù)器來工作了。但是如何引用類似likegeeks.com.db, localhost.db, 和 127.0.0.rev這些文件中的內(nèi)容呢?

  這些文件包含具有某些選項的每個區(qū)域的DNS記錄類型。 那么,這些DNS記錄類型是什么以及它們是如何寫的?

  
DNS記錄類型

  數(shù)據(jù)庫文件包含諸如SOA、NS、A、PTR、MX、CNAME和TXT在內(nèi)的記錄類型。

  我們看看每一種類型都是如何記錄的吧。

  SOA:起始授權(quán)機(jī)構(gòu)記錄

  SOA記錄按如下形式開始描述一個站點的DNS條目:

  example.com. ? ? ?86400 ? ? ?IN ? ? ?SOA ? ? ?ns1.example.com. ? mail.example.com. ? ? ?(2017012604 ;serial86400 ;refresh, seconds7200 ;retry, seconds3600000 ;expire, seconds86400 ;minimum, seconds)

  第一行以域名example.com開始,以句號結(jié)束——該語句和/etc/named.conf文件中的區(qū)域定義是一致的。我們要始終記得,DNS配置文件是極其挑剔的。

  IN 告訴域名服務(wù)器:這是一條網(wǎng)絡(luò)記錄。

  SOA 告訴域名服務(wù)器:這是一條起始授權(quán)機(jī)構(gòu)記錄。

  ns1.example.com. 是該文件所在域的域名服務(wù)器的完全合格域名(FQDN: Fully Qualified Domain Name)。

  mail.host.com. 是域管理員的郵箱地址。你會發(fā)現(xiàn)這個郵箱地址沒有“@”標(biāo)志,而是被句號所取代,并且末尾還有一個句號。

  第2行是一個序列碼,它被用來告訴域名服務(wù)器文件是什么時候升級的。因此,如果你對區(qū)域碼做了變更,你必須對這個序列碼進(jìn)行遞增。這個序列碼的格式是 YYYYMMDDxx ,其中的 xx 是從 00 開始的。

  第3行是每秒刷新率。這個值被用來告訴第二個域名服務(wù)器查詢主服務(wù)器中的記錄是否已經(jīng)被更新的頻率。

  第4行是每秒重試的頻率。如果第二個服務(wù)器多次嘗試連接主域名服務(wù)器來進(jìn)行更新檢測,但無法連接上的時候,第二個服務(wù)器就會在每秒內(nèi)重試指定的數(shù)值次數(shù)。

  第5行是超時指示。其目的是為了第二個服務(wù)器能將區(qū)域數(shù)據(jù)緩存下來。這個值告訴這些服務(wù)器如果它們不能連接到主服務(wù)器來進(jìn)行更新,那么它們就會在這個指定數(shù)值秒數(shù)之后拋棄這個值。

  第6行告訴緩存服務(wù)器,如果它們不能連接到主域名服務(wù)器時,它們應(yīng)該在超時前等待多久。

  NS: Name Server Records(名稱服務(wù)器記錄)

  NS記錄用于指定哪個名稱服務(wù)器維護(hù)該域的記錄。

  你可以這樣編寫的NS記錄:

  IN ? ? ? ? ? NS ? ? ? ? ns1.example.com.IN ? ? ? ? ? NS ? ? ? ? ns2.example.com.

  并不需要有2個NS記錄,但是通常偏好有備份名稱服務(wù)器。

  A和AAAA: Address Records(地址記錄)

  A記錄用于提供從主機(jī)名到IP地址的映射support IN A 192.168.1.5。

  如果你在地址為192.168.1.5上的support.example.com上有一個主機(jī),你可以像上面的例子那樣輸入。

  請注意,我們所寫的主機(jī)并沒有句號。

  PTR: Pointer Records(指針記錄)

  PTR記錄用于執(zhí)行反向名稱解析,允許某人指定IP地址然后找出對應(yīng)的主機(jī)名。

  這與A記錄的功能相反:192.168.1.5 IN PTR support.example.com.

  在這里,我們鍵入具有點號的完整主機(jī)名。

  MX: Mail Exchange Records(郵件交換記錄)

  MX記錄告訴其他站點關(guān)于你所在域的郵件服務(wù)器地址:example.com. IN MX 10 mail.

  當(dāng)然這個域以句號結(jié)束。數(shù)字10是郵件服務(wù)器的重要性標(biāo)志,如果你擁有多個郵件服務(wù)器,其中較小的數(shù)字不太重要。

  CNAME: Canonical Name Records(權(quán)威名稱記錄)

  CNAME記錄允許你為主機(jī)名創(chuàng)建別名。當(dāng)你想提供一個易于記住的名稱時,這很有用。

  假設(shè)某個站點具有一個主機(jī)名為whatever-bignameis.example.com的Web服務(wù)器,并且由于系統(tǒng)是Web服務(wù)器,因此可以為主機(jī)創(chuàng)建一個名為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)建一個指向www的別名。

  
TXT記錄

  您可以將任何信息存儲到TXT記錄中,例如你的聯(lián)系方式或者你希望人們在查詢DNS服務(wù)器時可獲得的任意其他信息。

  你可以這樣保存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文件的頂部,這里有一個$TTL條目。

  該條目告訴BIND每個單獨記錄的TTL值(time to live,生存時間值)。

  它是以秒為單位的數(shù)值,比如14,400秒(4個小時),因此DNS服務(wù)器最多緩存你的域文件4個小時,之后就會向你的DNS服務(wù)器重新查詢。

  你可以降低這個值,但是默認(rèn)值通常是合理的。除非你知道你正在做什么。

  
捕獲配置錯誤

  當(dāng)您寫入域文件時,也許您忘記了一個句號或空格或其他任意錯誤。

  你可以從日志診斷Linux DNS服務(wù)器錯誤。BIND服務(wù)通過/var/log/messages上的錯誤,可以使用tail命令來查看實時錯誤日志,須使用-f選項:$ tail -f /var /log/messages。

  因此,當(dāng)你編寫域文件或修改/etc/named.config并重新啟動服務(wù)時,顯示錯誤之后,你可以從日志中輕松識別錯誤類型。

  
Host命令

  在你成功添加或修改記錄后,可以使用host命令查看主機(jī)是否正確解析。

  host命令允許你將主機(jī)名解析為IP地址:$ host example.com。

  此外,你可以執(zhí)行反向查找:$ host 192.168.1.5。

  你可以this在此篇文章中查看更多關(guān)于host和dig命令的信息。

  
Whois命令

  whois命令用于確定域名的所有權(quán)及其擁有者的e-mail地址和聯(lián)系電話:$ whois example.com.

  
Rndc命令

  rndc工具可用于安全地管理名稱服務(wù)器,因為與服務(wù)器的所有通信均通過數(shù)字簽名進(jìn)行身份驗證。

  此工具用于控制名稱服務(wù)器和調(diào)試問題。 你可以通過以下方式檢查Linux DNS服務(wù)器的狀態(tài):$ rndc status。

  此外,如果你更改任何域(zone)文件,您可以重新加載服務(wù),而無須重啟命名服務(wù):$ rndc reload example.com。

  在這里,我們重新加載example.com域文件。 你可以重新加載所有域:$ rndc reload。

  或者你可以添加新的域或更改服務(wù)的配置。 你可以重新加載配置,如下所示:

  $ rndc reconfig。

  Linux DNS解析器

  我們已經(jīng)知道Linux DNS服務(wù)器的工作原理以及如何配置它。另一部分當(dāng)然是與DNS服務(wù)器交互的(正在與DNS服務(wù)器通信以將主機(jī)名解析為IP地址的)客戶端。

  在Linux上,解析器位于DNS的客戶端。要配置解析器,可以檢查/etc/resolv.conf這個配置文件。

  在基于Debian的發(fā)行版上,可以查看/etc/resolvconf/resolv.conf.d/目錄。

  /etc/resolv.conf文件中包含客戶端用于獲取其本地DNS服務(wù)器地址所需的信息。

  第一個表示默認(rèn)搜索域,第二個表示主機(jī)名稱服務(wù)器(nameserver)的IP地址。

  名稱服務(wù)器行告訴解析器哪個名稱服務(wù)器可使用。 只要你的BIND服務(wù)正在運(yùn)行,你就可以使用自己的DNS服務(wù)器。
服務(wù)器是什么
?盡在
聚名
資訊站!

聚名    2019-02-18 15:47:18



上一篇 (如何做好網(wǎng)站站內(nèi)優(yōu)化與站外推廣_迅速域名)   下一篇 (如何配置dhcp服務(wù)器?dhcp服務(wù)器配置流程是什么?)


產(chǎn)品優(yōu)勢

迅速域名注冊始終以滿足顧客為己任

特點功能

為更多企業(yè)提供強(qiáng)有力的技術(shù)支持,助力業(yè)務(wù)飛速拓展

域名資訊

我們誠心邀您分享我們的成長經(jīng)歷

域名常見問題

讓您進(jìn)一步深入了解域名常見問題

合作伙伴

15年不間斷服務(wù),更值得信賴