一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 在Linux系統上安裝配置DNS服務器的教程

在Linux系統上安裝配置DNS服務器的教程

2019-07-03 15:2151CTO Linux

這篇文章主要介紹了在Linux上安裝配置DNS服務器的教程,文中示例基于CentOS系統,需要的朋友可以參考下

簡介
DNS 是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由解析器和域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,并具有將域名轉換為IP地址功能的服務器。其中域名必須對應一個IP地址,而IP地址不一定有域名。域名系統采用類似目錄樹的等級結構。域名服務器為客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。將域名映射為IP地址的過程就稱為“域名解析”。在Internet上域名與IP地址之間是一對一(或者多對一)的,也可采用DNS輪循實現一對多,域名雖然便于人們記憶,但機器之間只認IP地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。DNS 命名用于 Internet等 TCP/IP網絡中,通過用戶友好的名稱查找計算機和服務。當用戶在應用程序中輸入 DNS 名稱時,DNS 服務可以將此名稱解析為與之相關的其他信息,如 IP 地址。因為,你在上網時輸入的網址,是通過域名解析系統解析找到了相對應的IP地址,這樣才能上網。其實,域名的最終指向是IP。 [1]

DNS分為Client和Server,Client扮演發問的角色,也就是問Server一個Domain Name,而Server必須要回答此Domain Name的真正IP地址。而當地的DNS先會查自己的資料庫。如果自己的資料庫沒有,則會往該DNS上所設的DNS服務器詢問,依此得到答案之后,將收到的答案存起來,并回答客戶。DNS服務器會根據不同的授權區(Zone),記錄所屬該網域下的各名稱資料,這個資料包括網域下的次網域名稱及主機名稱。在每一個名稱服務器中都有一個快取緩存區(Cache),這個快取緩存區的主要目的是將該名稱服務器所查詢出來的名稱及相對的IP地址記錄快取緩存區中,這樣當下一次還有另外一個客戶端到此服務器上去查詢相同的名稱 時,服務器就不用在到別臺主機上去尋找,而直接可以從緩存區中找到該筆名稱記錄資料,傳回給客戶端,加速客戶端對名稱查詢的速度。例如:

當DNS客戶端向指定的DNS服務器查詢網際網路上的某一臺主機名稱 DNS服務器會在該資料庫中找尋用戶所指定的名稱 如果沒有,該服務器會先在自己的快取緩存區中查詢有無該筆紀錄,如果找到該筆名稱記錄后,會從DNS服務器直接將所對應到的IP地址傳回給客戶端 ,如果名稱服務器在資料記錄查不到且快取緩存區中也沒有時,會向最接近的名稱服務器去要求幫忙找尋該名稱的IP地址 ,在另一臺服務器上也有相同的動作的查詢,當查詢到后會回復原本要求查詢的服務器,該DNS服務器在接收到另一臺DNS服務器查詢的結果后,先將所查詢到的主機名稱及對應IP地址記錄到快取緩存區中 ,最后在將所查詢到的結果回復給客戶端。


任何運作中的域名至少有兩臺DNS服務器,一臺稱為主域名服務器(比如叫做ns1),而另一臺稱為從域名服務器(比如叫做ns2)。這些服務器通常用于故障轉移:如果一臺宕機,另外一臺就激活成為DNS服務器(譯注:此處譯者有不同意見,事實上兩個或更多的DNS服務器是共同工作的,并不是第一臺停止服務后,第二臺才接替工作。解析器是隨機選擇一個DNS服務器進行詢問,如果超時則會詢問下一個,這是多個DNS的故障容錯機制)。也可以實現包括負載均衡、防火墻和集群在內的更為復雜的故障轉移機制。

一個域的所有DNS條目都會被添加到主域名服務器,從服務器只會根據主服務器上的SOA記錄的序列號參數從主服務器同步所有信息。

此教程將會講述如何創建一臺在CentOS上運行的主DNS服務器。請注意,本教程中提到的DNS服務器將會是一臺開放DNS服務器,這也就是說該服務器將會回應來自任何IP地址的查詢。對于DNS服務器的訪問控制將在此教程中討論。

在開始之前,我想要提一下的是,DNS可以在chroot環境中配置,也可以在非chroot環境中配置。chroot環境將DNS服務器限制在系統中某個特定目錄中,以避免讓服務器具有系統級的訪問權限。在此環境中,任何DNS服務器的安全漏洞不會導致整個系統的破壞。將DNS服務器置于chroot環境中,對于部署測試也很有用。

目標

我們將在基于域名example.tst的測試環境中配置一臺DNS服務器,這個域名是虛假的(并不真實存在的)。這樣,我們就不會意外干擾到其它真實的域名。

在該域中,有以下三臺服務器。
在Linux系統上安裝配置DNS服務器的教程

我們將會配置一臺主域名服務器,并添加上表中必要的域和DNS記錄。

過程
設置主機名

所有的主機名必須以完全限定域名的方式正確定義,可以通過以下方法完成設置。
 

復制代碼
代碼如下:

# vim /etc/sysconfig/network 
HOSTNAME=ns1.example.tst 

注:該文件中指定的主機名參數在服務器啟動后才會啟用(譯注:或者網絡服務重啟后),因此,該設置不會馬上生效。下面的命令可以立刻臨時性地修改主機名。

復制代碼
代碼如下:

# hostname ns1.example.tst 

一旦設置,主機名可以通過以下命令驗證。

復制代碼
代碼如下:

# hostname 
ns1.example.tst 

在進入下一步之前,請確保上述三臺服務器上的主機名已經設置正確。

 

安裝軟件包

我們將使用bind來配置DNS服務,該軟件可以很方便地通過yum來安裝。

不使用chroot環境的:
 

復制代碼
代碼如下:

# yum install bind bind-chroot 

使用chroot環境的:

復制代碼
代碼如下:

# yum install bind bind-chroot 

準備配置文件

 

正如前面提到的,bind可以在chroot環境下配置,或者在非chroot環境下配置,配置文件的路徑會因為是否安裝chroot包而不同。
在Linux系統上安裝配置DNS服務器的教程

可以使用默認提供的named.conf配置文件,但是為了更方便使用,我們將使用另外一個簡單的配置文件模板。

chroot環境
 

復制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf 

chroot環境

復制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf 

現在來備份并修改配置文件。

 

chroot環境
 

復制代碼
代碼如下:

# vim /etc/named.conf 

chroot環境

復制代碼
代碼如下:

# vim /var/named/chroot/etc/named.conf 

添加/修改以下行:

復制代碼
代碼如下:

options { 
## 區域文件存放目錄 ## 
directory "/var/named"; 
## 對于非本地權威域的請求轉發到 Google 的公開 DNS 服務器 ## 
forwarders { 8.8.8.8; }; 
}; 
## 申明一個本地域 example.tst ## 
zone "example.tst" IN { 
type master; 
file "example-fz"; ## 存儲文件名,放在 /var/named ## 
allow-update { none; }; 
}; 
## 為IP段 172.16.1.0 提供反向解析 ## 
zone "1.16.172.in-addr.arpa" IN { 
type master; 
file "rz-172-16-1"; ## 存儲文件名,放在 /var/named ## 
allow-update { none; }; 
}; 

準備區域文件

 

那些默認的區域文件會自動創建到/var/named 或者/var/named/chroot/var/named (chroot環境)。如果在這些地方找不到這些文件,/usr/share/doc/bind目錄中提供了模板文件,可以從這里拷貝。

假設默認區域文件沒有提供,我們可以從/usr拷貝模板文件。

chroot環境
 

復制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/ 

chroot環境

復制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/chroot/var/named 

很好!由于現在默認的區域文件已經準備好,我們可以為example.tst和172.16.1.0網絡創建區域文件了,以下要點必須時刻謹記。

 

區域文件中的特殊字符‘@’意味著空。(譯注:意即代表本域。)

所有的完全限定域名必須以點‘.’結束。如:example.tst.如果沒有這個點,你會發生問題。(譯注:即會被當做當前@所代表的域的子域。)

1. 轉發區域(本地權威域)

轉發區域包含了名稱到IP地址的映射。對于公開的域,域名托管提供商的DNS服務器存儲了轉發區域文件。(譯注:轉發區域即本地的權威域,由這個服務器自身提供權威的解析數據)

chroot環境
 

復制代碼
代碼如下:

# vim /var/named/example-fz 

chroot環境

復制代碼
代碼如下:

# vim /var/named/chroot/var/named/example-fz 

$TTL 1D 
 
@       IN SOA  ns1.example.tst. sarmed.example.tst. ( 
 
                                        0       ; serial 
 
                                        1D      ; refresh 
 
                                        1H      ; retry 
 
                                        1W      ; expire 
 
                                        3H )    ; minimum 
 
IN NS      ns1.example.tst. 
 
IN A       172.16.1.3 
 
mail        IN A        172.16.1.1 
 
        IN MX 10    mail.example.tst. 
 
www     IN A        172.16.1.2 
 
ns1     IN A        172.16.1.3 
 
ftp     IN CNAME    www.example.tst. 
說明:在區域文件中,SOA是開始授權(Start Of Authority)的意思。它的值的第一段是授權名稱服務器的完全限定域名。完全限定域名后面跟著的是電子郵件地址。由于不能在[email protected]這樣的格式中使用‘@’符號(譯注:@有特定意義,代表本域。),我們將電子郵件地址重寫成sarmed.example.tst.這樣的格式。

 

以下是典型的常用DNS記錄類型:

NS:域名服務器

A: 地址記錄,記錄主機名到IP地址的映射(譯注,此處原文有誤。)

MX: 郵件交換記錄。這里我們只用了一個郵件交換記錄,設置其優先級為10。如果有多個郵件交換記錄,我們可以使用多個數值優先級,數字小的優先級最高。例如,MX 0比MX 1優先級更高。

CNAME: 標準名。如果在一臺單一服務器上托管了多個服務,也很可能將多個名稱解析到某個單一服務器。CNAME指定了一臺服務器可能有的其它名稱,并且將它們指向具有實際A記錄的名稱。

2. 反向區域

反向區域包含了IP地址到名稱的映射。這里,我們為172.16.1.0網絡創建反向區域。在正式的域中,公共IP區塊的擁有者擁有的DNS服務器存儲反向區域文件。(某些服務,如郵件服務,要求IP地址具備正確的反向解析才能正常工作。而IP的反向解析,通常是由IP的擁有者如接入商或IDC來負責解析。)

chroot環境
 

復制代碼
代碼如下:

# vim /var/named/rz-172-16-1
   
chroot環境

復制代碼
代碼如下:

# vim /var/named/chroot/var/named/rz-172-16-1 

 

$TTL 1D

@       IN SOA  ns1.example.tst. sarmed.example.tst. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

IN NS      ns1.example.tst.

1       IN PTR  mail.example.tst.

2       IN PTR  www.example.tst.

3       IN PTR  ns1.example.tst.
說明:除了下面的參數外,反向區域文件中的大多數參數和轉發區域文件中的相同。

PTR: IP反向解析記錄,指向一個反向限定域名。

結束工作

既然區域文件已經準備好,我們接下來調整它們的權限。

chroot環境
 

復制代碼
代碼如下:

# chgrp named /var/named/* 

chroot環境

復制代碼
代碼如下:

# chgrp named /var/named/chroot/var/named/* 

現在,我們為DNS服務器設置IP地址。

復制代碼
代碼如下:

# vim /etc/resolv.conf 
nameserver 172.16.1.3 

 

最后,我們可以啟動DNS服務,并確保將它添加到啟動服務中。
 

復制代碼
代碼如下:

# service named restart 
# chkconfig named on 

DNS服務器起動后,建議關注一下日志文件/var/log/messages,這里頭包含了后臺運行的一些有用信息。如果沒有發現錯誤,我們可以開始測試DNS服務器。

 

測試DNS

我們可以使用dig或者nslookup來測試DNS。首先,我們需要安裝必要的軟件包。
 

復制代碼
代碼如下:

# yum install bind-utils 

1. 使用dig測試轉發區域

 

使用dig來測試時,必須時刻關注狀態信息:“NOERROR”,任何其它值都表明存在問題。
 

復制代碼
代碼如下:

# dig example.tst 

 

;; ->>HEADER<<- opcode: QUERY,  status: NOERROR, id: 31184

 

;; QUESTION SECTION:

;example.com.                   IN      A

 

;; ANSWER SECTION:

example.com.            86400   IN      A       172.16.1.3

 

;; AUTHORITY SECTION:

example.com.            86400   IN      NS      ns1.example.com.

 

;; ADDITIONAL SECTION:

ns1.example.com.        86400   IN      A       172.16.1.3
2. 使用dig測試PTR記錄

使用dig來測試時,必須時刻關注狀態信息:“NOERROR”,任何其它值都表明存在問題。(譯注,也可用 dig 1.1.16.172.in-addr.arpa. ptr 來測試。)
 

復制代碼
代碼如下:

# dig -x 172.16.1.1 

 

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27415

 

;; QUESTION SECTION:

;1.1.17.172.in-addr.arpa.       IN      PTR

 

;; ANSWER SECTION:

1.1.16.172.in-addr.arpa. 86400  IN      PTR     mail.example.tst.

 

;; AUTHORITY SECTION:

1.16.172.in-addr.arpa.  86400   IN      NS      ns1.example.tst.

 

;; ADDITIONAL SECTION:

ns1.example.tst.        86400   IN      A       172.16.1.3
3. 使用dig測試MX記錄
 

復制代碼
代碼如下:

# dig example.tst mx 

 

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35405

 

;; QUESTION SECTION:

;example.tst.                        IN      MX

 

;; ANSWER SECTION:

example.tst.         14366   IN      MX     10  mail.example.tst.
排錯提示

我已經把SELinux關閉。

保證防火墻沒有阻擋UDP 53端口

萬一出錯,可在/var/log/messages中查看到有用的信息

確保區域文件的屬主為‘named’

確保DNS服務器的IP地址是/etc/resolv.conf中的第一條目

如果你使用example.tst作為實驗環境,確保將服務器從互聯網斷開,因為example.tst是一個不存在的域。

最后小結,該教程關注的是實驗環境中配置example.tst域用作為演示。請注意,該教程中創建了一臺公共DNS服務器,此服務器會回應來自任何源IP地址的查詢。如果你是在配置DNS生產服務器,請確保檢查與公共DNS相關的策略。其它教程涵蓋了創建從DNS服務器, 限制對DNS服務器的訪問以及部署DNSSEC。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本乱人伦中文在线播放 | 国产另类视频 | 毛片亚洲毛片亚洲毛片 | 国产成人无精品久久久久国语 | 狠狠做五月深爱婷婷天天综合 | 亚洲黄色免费在线观看 | 2018av在线| 久久偷拍人 | 亚洲乱码一二三四五六区 | 草草在线免费视频 | 三年片韩国在线观看 | 国产精品香蕉一区二区三区 | 亚洲AV 无码AV 中文字幕 | 日本中文字幕一区二区有码在线 | 日本一区二区不卡久久入口 | 91小视频在线观看免费版高清 | 校花被拖到野外伦小说 | 欧美色青| 99精品热视频| 奶茶视频官网免费 | 国产第一页无线好源 | 国产综合成色在线视频 | 精品日产1区2卡三卡麻豆 | 504神宫寺奈绪大战黑人 | 无码射肉在线播放视频 | 久久久免费热线精品频 | 亚洲国产综合另类视频 | 无人影院在线播放 | 色8 | 亚洲网红精品大秀在线观看 | 小夫妻天天恶战 | 日本艳鉧动漫1~6在线观看 | 成人观看免费大片在线观看 | 免费特黄一级欧美大片在线看 | 男人的j放进女人的p全黄 | 国产成人福利免费视频 | 国产精品资源站 | 国产欧美日韩专区 | 22sihu国产精品视频影视资讯 | 晓雪老师我要进你里面好爽 | 亚洲国产韩国欧美在线不卡 |