0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux DNS 服務器安裝、配置和維護的詳細解析

馬哥Linux運維 ? 2017-12-18 15:08 ? 次閱讀

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

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

/etc/hosts文件

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

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

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

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

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

作為確認,你可以將google.com映射到任何網站的任何其他IP地址并查看結果。

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

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

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

域名

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

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

實際上,當你訪問任何網站時,瀏覽器會默認在域的末尾添加一個不可見的點,因此該域將像www.google.com.一樣。 該點被稱為根域。

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

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

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

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

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

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

截止本文撰寫時,網上有 800 多個頂級域名。

頂級域名類別有:

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

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

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

  • 基礎架構頂級域名如:.arpa

子域名

當你訪問一個類似mail.google.com這樣的網站, 這里的mail就是google.com的子域名.

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

DNS服務器的類型

一共有三種DNS服務器。

主DNS服務器

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

輔助DNS服務器

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

緩存DNS服務器

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

搭建 Linux DNS 服務器

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

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

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

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

$systemctlstartnamed

$systemctlenablenamed

配置 BIND

這個服務使用/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ū)域。

定義一個主域服務器

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

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

zone"likegeeks.com"{

typemaster;

filelikegeeks.com.db

};

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

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

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

定義一個輔助域服務器

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

zone"likegeeks.com"{

typeslave;

mastersIPAddresslist;;

filelikegeeks.com.db

};

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

定義一個緩存服務器

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

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

zone"."IN{

typehint;

file"root.hint";

};

zone"."IN{

typehint;

file"root.hint";

};

zone"."IN{

typehint;

file"root.hint";

};

zone"localhost"IN{

typemaster;

file"localhost.db";

};

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

zone"0.0.127.in-addr.arpa"IN{

typemaster;

file"127.0.0.rev";

};

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

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

DNS記錄類型

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

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

SOA:起始授權機構記錄

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

example.com.86400INSOAns1.example.com.mail.example.com.(

2017012604;serial

86400;refresh,seconds

7200;retry,seconds

3600000;expire,seconds

86400;minimum,seconds

)

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

IN 告訴域名服務器:這是一條網絡記錄。

SOA 告訴域名服務器:這是一條起始授權機構記錄。

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

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

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

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

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

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

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

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

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

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

INNSns1.example.com.

INNSns2.example.com.

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

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

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

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

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

PTR: Pointer Records(指針記錄)

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

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

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

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

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

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

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

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

假設某個站點具有一個主機名為whatever-bignameis.example.com的Web服務器,并且由于系統(tǒng)是Web服務器,因此可以為主機創(chuàng)建一個名為www的CNAME記錄或者別名。

你可以創(chuàng)建名為www.example.com的域名創(chuàng)建CNAME記錄:

whatever-bignameisINA192.168.1.5

wwwINCNAMEwhatever-bignameis

第一行通知DNS服務器關于別名的位置。第二行創(chuàng)建一個指向www的別名。

TXT記錄

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

你可以這樣保存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服務器最多緩存你的域文件4個小時,之后就會向你的DNS服務器重新查詢。

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

捕獲配置錯誤

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

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

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

Host命令

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

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

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

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

Whois命令

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

Rndc命令

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

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

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

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

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

$ rndc reconfig。

Linux DNS解析器

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

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

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

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

第一個表示默認搜索域,第二個表示主機名稱服務器(nameserver)的IP地址。

名稱服務器行告訴解析器哪個名稱服務器可使用。 只要你的BIND服務正在運行,你就可以使用自己的DNS服務器。

使用Linux DNS服務器非常簡單。 我希望你發(fā)現(xiàn)這篇文章很有用,并且很容易理解。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11161

    瀏覽量

    208459
  • DNS
    DNS
    +關注

    關注

    0

    文章

    214

    瀏覽量

    19749
  • Bind
    +關注

    關注

    0

    文章

    5

    瀏覽量

    7594

原文標題:Linux DNS 服務器安裝、配置和維護

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    服務器維護技巧

    服務器維護技巧一:從基本做起,及時安裝系統(tǒng)補丁——不論是Windows還是Linux,任何操作系統(tǒng)都有漏洞,及時的打上補丁避免漏洞被蓄意攻擊利用,是
    發(fā)表于 09-09 15:22

    【Raspberry Pi 3試用體驗】+ 搭建本地DNS服務器

    address=/taobao.com/218.195.54.90resolv.conf:文件主要的作用是DNS客戶機配置文件,設置DNS服務器的IP地址及
    發(fā)表于 04-24 21:39

    LinuxDNS服務器配置分析

    很多平臺平臺提供云解析功能,所謂的云解析就是一個DNS服務器,一般情況下,在域名的提供商購買一個域名之后,會指定一個NS記錄,例如,在域名的提供商購買一下域名miner-k.com.需
    發(fā)表于 07-17 08:14

    DNS攻擊防范科普系列1》—你的DNS服務器真的安全么?

    到錯誤的服務器上。簡單點說,DNS污染是指把自己偽裝成DNS服務器,在檢查到用戶訪問某些網站后,使域名解析到錯誤的IP地址。
    發(fā)表于 10-16 15:21

    DNS服務器及其配置

    DNS服務器及其配置:DNS的作用將主機名字轉換成二進制IP地址。1.DNS被設計成為一個聯(lián)機分布數(shù)據庫系統(tǒng)。2.
    發(fā)表于 12-07 14:39 ?20次下載

    如何配置Win 2003的DNS服務器

    如何配置Win 2003的DNS服務器 概要   本文介紹了如何配置“域名系統(tǒng)”(DNS) 服務器
    發(fā)表于 01-29 11:35 ?647次閱讀

    企業(yè)AD、DNS、WINS服務器配置

    企業(yè)AD、DNS、WINS服務器配置
    發(fā)表于 09-05 16:59 ?6次下載
    企業(yè)AD、<b class='flag-5'>DNS</b>、WINS<b class='flag-5'>服務器</b>的<b class='flag-5'>配置</b>

    Linux中如何配置DNS

    ----DNS的功用是把計算機的名稱轉換為 IP地址。DNS的使用簡化了系統(tǒng)管理員及客戶對主機文件的操作和維護。 Intranet服務器的系統(tǒng)配置
    發(fā)表于 11-07 10:44 ?3次下載

    解讀DNS服務器以及保護的方法

    域名服務器保存著域名及其對應的IP地址,從而實現(xiàn)實現(xiàn)域名解析及IP之間的解析。那么,怎么保護DNS服務器?小編為大家介紹了
    發(fā)表于 01-14 09:21 ?2518次閱讀
    解讀<b class='flag-5'>DNS</b><b class='flag-5'>服務器</b>以及保護的方法

    Linux入門教程之LINUX入門與安裝配置

    本文檔的主要內容詳細介紹的是Linux入門教程之LINUX入門與安裝配置主要內容包括了:1、入門篇安裝篇 2、進程篇 3、輸入法篇 4、網絡
    發(fā)表于 11-07 16:41 ?4次下載

    Linux服務器配置全程實錄電子教材免費下載

    Linux 服務器配置Linux的最主要應用之一,在企業(yè)中應用廣泛,本書以企業(yè)Linux服務器
    發(fā)表于 12-11 17:11 ?13次下載

    Linux下Apache服務器安裝配置

    Linux下Apache服務器安裝配置(現(xiàn)代電源技術的發(fā)展概況)-Linux下Apache服務器
    發(fā)表于 08-31 16:22 ?8次下載
    <b class='flag-5'>Linux</b>下Apache<b class='flag-5'>服務器</b>的<b class='flag-5'>安裝</b>和<b class='flag-5'>配置</b>

    DNS服務器DNS服務器地址是什么

    今日就來同大家分享什么是DNS服務器地址,DNS服務器地址怎么找,幫助大家更了解DNS服務器。首
    的頭像 發(fā)表于 03-30 15:57 ?8589次閱讀

    探討DNS服務器解析

    本地 DNS 服務器收到來自客戶端的 DNS 請求,它會在其緩存中查找 google.com 的 IP 地址。如果它可以找到對應的條目,它將直接將 IP 地址返回給客戶端。否則,本地 DNS
    的頭像 發(fā)表于 05-05 15:42 ?1481次閱讀

    DNS服務器是什么?有哪些類型?

    ,小編我給大家分析一下DNS服務器是什么?有哪些類型? 一、DNS服務器是什么? DNS服務器
    的頭像 發(fā)表于 08-14 17:40 ?2162次閱讀