第十六章 域名解析服務

一. 域名解析的基本概念

1. 域名解析的意義

實現域名和IP地址之間的轉換過程

2. 域名解析的方法 

HOSTS:在網絡中的每臺主機都用一個文本文件來存放域名和IP地址的對照表,適用於小型網絡

NIS:存放的解析記錄,適用於中型網絡 

DNS:域名解析信息分佈存儲在網絡中每臺主機,實現分佈式解析(適用於大型網絡)

二. DNS的工作體系

1. 組成

(1) 域名空間

DNS域名空間是命名機制,它提供DNS數據庫的層次樹狀結構,由根域、頂級域、子域與主機名組成,如下圖所示:

DNS域名空間最上面的是根域,可以用圓點“.”表示,它由InterNIC(因特網網絡信息中心)管理。根域下定義了許多頂級域,如下表所示。

域名稱

說明

Com

Edu

Net

Org

Gov

Mil

其他的國碼

商業機構

教育,學術研究單位

網絡服務機構

財團法人等非營利機構

官方政府機構

國防軍事單位

如.cn表示中國

(2) DNS名稱服務器

DNS名稱服務器保存有資源記錄並能響應名稱查詢的計算機。如果DNS服務器負責管理一個或多個區域,就稱此DNS服務器爲這些區域的授權名稱服務器。授權服務器負責管理所管轄的區域中的數據,併爲查詢的DNS客戶提供這些數據。DNS名稱服務器有以下三種類型:

l 主名稱服務器   

主要名稱服務器負責存儲授權區域的一切數據且管理該區域和對區域具有解析功能。

l 輔助域名稱服務器

輔助名稱服務器可以從主名稱服務器中轉移一整套區域信息。並且輔助名稱服務器會定時從主名稱服務器中更新數據,同時可以接受客戶機的查詢.

l 唯高速緩存服務器

緩存服務器負責臨時存儲主名稱服務器己解析過域名記錄

(3) 客戶機

DNS客戶機利用一個簡單的程序或子程序庫,從服務器中提取信息以響應對域名空間的主機查詢

2. DNS的解析過程

(1) 正向解析

DNS客戶端向DNS服務器查詢IP地址時,或DNS服務器在向另外一臺DNS服務器查詢IP地址時,有以下三種查詢方式:

l 直接從緩衝存儲器解析 

 可以直接從DNS客戶端或DNS服務器的高速緩衝器中獲得查詢結果。

l 遞歸查詢  

也就是DNS客戶端送出查詢要求後,如果本地DNS服務器內沒有需要的數據,則DNS服務器會代替客戶端向其他的DNS服務器查詢,一般由DNS客戶端所提出的查詢要求是屬於遞歸查詢。

l 循環查詢  

一般DNS服務器與DNS服務器之間的查詢屬於這種查詢方式,當第1DNS服務器在向第2DNS服務器提出查詢要求後,如果第2DNS服務器內沒有所需要的數據,則它會提供第3DNS服務器的IP地址給第1臺服務器,讓第1DNS服務器向第3DNS服務器查詢。具體解析過程,如下圖所示:

(2) 反向解析

   域名反向解析可以讓DNS客戶端利用IP地址查詢其主機名稱,服務器利用in-addr.arpa反向指針,將一個ip地址指點向域名。

三. DNS的配置:

1.安裝DNS服務器軟件

#rpm –ivh bind-9.2.1-16.i386.rpm

#rpm –ivh  bind-utils-9.2.1-16.i386.rpm

#rpm –ivh redhat-config-bind-1.9.0-13.noarch.rpm

#rpm –ivh  caching-nameserver-9.2-7.noarch.rpm

相關文件:

/etc/named.conf      dns服務器核心配置文件

/etc/rc.d/init.d/nameddns服務器守護進程所對應的程序

/var/named/named.ca  dns服務器根區域文件

/var/named/localhosts.zone  dns服務器localhost區域的正向文件

/etc/named.conf           dns服務器的區域和服務器選項設置文件

/var/named/named.local    127.0.0.0的反向解析文件

2. 修改/etc/named.conf

作用:建立區域

文件內容:

//說明語句

配置語句

...........

配置語句

..........

配置語句

..........

..........

說明:常用的配置語名有以下幾種

(1) options聲明

作用:定義DNS服務器的全局選項

格式:options {

........;

........;

全局選項;

........;

........;

};

全局選項:

directory   “路徑名”;

定義區域服務器區域文件的存放目錄

recursion   yes/no;

是否使用遞歸查詢方式,默認爲yes

transfer-format  one-answer/many-anser;

是否允許一條消息中放入多條應答信息,默認值爲one-answer

forwarders  {ip地址;…….};

定義轉發器

allow-query {ip址址;/網絡號;/any;};

定義允許向服務器發送查詢請求的客戶機地址

allow-transfer {ip地址;/網絡號;/any;};

定義允許從主服務器中更新的從服務器地址

listen-on  [port  端口號]  {ip地址;};

定義dns服務綁定的端口和地址

(2) zone聲明

作用:定義管理區域

格式:zone  “域名”    IN  {

…………;

…………;

區域設置選項;

…………;

…………;

};

區域設置選項:

type   master/hint/slave;

定義區域的類型,

master表示一個區爲主域名服務器

hint   說明一個區爲啓動時初始化高速緩存的域名服務器

slave  說明一個區爲輔助域名服務器

file  “文件名”;

說明一個區域的區域文件名稱

allow-update {none;/key  密鑰名稱;};

說明區域是否允許動態更新

                      masters  {ip地址;};

                        定義主服務器的地址

(3) key聲明

作用:定義授權的安全密鑰

格式:key  “密鑰名稱”  {

…………;

…………;

密鑰設置選項;

…………;

…………;

};

密鑰設置選項:

algorithm   hmac-md5;

定義密鑰加密算法

secret  “密鑰”;

定義加密的密鑰

(4) include語句

作用:將其他文件包含到本配置文件中

格式:include  “路徑名”;

(5) controls聲明

作用:定義rndc命令使用的控制通道

格式:controls  {

inet  {ip地址}   [port  端口號]   allow {主機名;} keys  {密鑰名稱;}

};

實例:

1) 默認named.conf文件內容

options {

directory "/var/named";

// query-source address * port 53;

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

zone "." IN {

type hint;

file "named.ca";

};

zone "localhost" IN {

type master;

file "localhost.zone";

allow-update { none; };

};

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

type master;

file "named.local";

allow-update { none; };

};

include "/etc/rndc.key";

(1) 根據以下要求修改/etc/named.conf

n 建立正向主區域abc.com,區域文件名爲abc.zone

n 建立反向主區域192.168.0.0,區域文件名爲192.rev

#vi  /etc/named.conf

  添加如下內容:

 zone abc.com  IN  {

          type  master;

          file  abc.zone;

                      };

 zone 0.168.192.in-addr.arpa  IN  {

           type   master;

           file  192.rev;

};

3.創建區域文件

作用:存放區域的信息記錄

格式:區域文件指令

[記錄名稱]  [生存週期]     IN  類型      值

說明: 

(1)記錄名稱

       記錄名稱根據記錄類型的不同可以下的值:

ip地址

區域名

FQDN

空格

(2)生存週期

設置記錄被解析後在緩存中保存的最長時間長度

(3)記錄類型

記錄用於決定記錄的格式及記錄的取值,具體可以分爲以下幾種類型:

A記錄

功能:用於設置主機IP地址

實例:  www         IN    A  192.168.0.1

        www.abc.com.  IN   A  192.168.0.l

                      IN   A   192.168.0.2

NS記錄

功能:設置區域的域名服務器地址

實例:abc.com.   IN  NS  www.abc.com.

                IN  NS  192.168.0.1

                IN  NS  www.abc.com.

CNAME記錄

功能:設置主機的別名

實例:ftp    IN   CNAMEwww

      mail.abc.com.   IN   CNAME  www

      mail.abc.com.   IN   CNAME  www.abc.com.

SOA記錄

作用:設置區域的授權信息

實例: 

@區域名) IN  SOA  @ (授權的主機名) root.abc.com.(管理員的mail地址) (

         43  (序列號,遞增量)

         1D  (輔助域名服務器多長時間更新數據庫)

         15M (若輔助域名服務器更新數據失敗,多長時間再試)

         2W   (若輔助域名服務器無法從主服務器上更新數據,原有的數據何時失效)

     86400 (設置生存週期,如果資源記錄欄未設定ttl,則以這裏提供的時間爲準)

           )

MX記錄

作用:設置區域的mail服務器的地址

實例: linux.com.    IN  MX  10   www.linux.com.

注:

PTR

作用:將地址轉換爲主機名

實例:  1    IN  PTR   www.abc.com.

        1.0.168.192.in-addr.arpa  IN  PTR  ftp.abc.com.

(4) 區域文件指令

$ORIGIN 區域名

設置管轄的默認區域

$TTL  數字

爲沒有定義精確的生存週期的記錄定義缺省的TTL

$INCLUDE  文件的路徑

包含外部的配置文件

文件實例:

(1) 根區域文件的例子

根區域文件主要用於定義互聯網中13臺根域服務器的位置,其文件的內容主要由A記錄和NS記錄構成,看下面的文件內容:

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4

.                        3600000      NS    B.ROOT-SERVERS.NET.

B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107

.                        3600000      NS    C.ROOT-SERVERS.NET.

C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12

.                        3600000      NS    D.ROOT-SERVERS.NET.

D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90

.                        3600000      NS    E.ROOT-SERVERS.NET.

E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10

.                        3600000      NS    F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241

.                        3600000      NS    G.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4

.                        3600000      NS    H.ROOT-SERVERS.NET.

H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53

.                        3600000      NS    I.ROOT-SERVERS.NET.

I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17

.                        3600000      NS    J.ROOT-SERVERS.NET.

J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10

.                        3600000      NS    K.ROOT-SERVERS.NET.

K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129

.                        3600000      NS    L.ROOT-SERVERS.NET.

L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12

.                        3600000      NS    M.ROOT-SERVERS.NET.

M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33

(2) 正向區域文件的例子

正向區域文件主要存放指定正向區域內的信息記錄,下面是localhost正向區域的區域文件:

$TTL86400

$ORIGIN localhost.

@1D IN SOA@ root (

42; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

IN NS@

1D IN A127.0.0.1

(3) 反向區域文件的例子

反向區域文件負責存儲反向指針,下面127.0.0.0反向區域的區域文件:

$TTL86400

@       IN      SOA     localhost. root.localhost.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

              IN      NS      localhost.

1       IN      PTR     localhost.

(4) 根據以下要求建立名爲abc.zone的區域文件

管轄區域名爲abc.com,並授權給本機,管理員的mail地址爲[email protected]

授權的序列號爲48,刷新時間爲3小時,重試時間爲15分鐘,默認TTL86400秒

n abc.com區域的域名服務器的完整名稱爲www.abc.com.

n 建立主機記錄www.abc.com指向192.168.0.1

n 並且給abc.com區域定義IP地址爲192.168.0.l 

n 給www.abc.com建立別名記錄ftp.abc.com

n 建立abc.com區域的郵件服務器位置記錄指向www.abc.com

$TTL86400

$ORIGIN  abc.com.

@  1D IN SOA@  Z[email protected](

48; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

1D IN NSwww.abc.com.

1D IN A192.168.0.1

www            IN A      192.168.0.1

ftp            IN CNAME   www

abc.com.       IN  MX  10  www.abc.com.

4.啓動服務

#service  named   start

四. DNS客戶端的設置和測試方法

1.客戶端設置

(1)Linux的客戶端的設置

#vi  /etc/resolv.conf

添加以下選項:

nameserver   DNS服務器的IP地址

(2)Windows客戶端設置

右擊”網絡鄰居”----雙擊”本地連接”-----屬性-----tcp-ip---輸入DNS服務器的地址

2.測試方法

(1)Linux的客戶端可的測試方法

方法一:nslookup

方法二:dig

方法三:hosts

(2)Windows客戶端的測試方法

方法一:nslookup

五. 配置案例:

案例一:

  要求: 

利用bind軟件將主機dns.linux.net主機製作成一個dns服務器,具體要求如下:

(1) 該服務器負責正向區域linux.net的解析,且ip 地址爲192.168.3.1 

(2) linux.net 區域的域名服務器爲dns..linux.net,且該主機名的ip爲192.168.3.1

(3) 如果dns.linux.net不能解析某個域名時,該DNS服務器會轉發給192.168.3.10

(4) 在linux.net區域中分別建立記錄www指向192.168.3.1,mail主機指向192.168.3.2

(5) linux.net區域內的mail服務器爲mail.linux.net

配置過程:

1.安裝軟件包

#rpm –ivh bind-9.2.1-16.i386.rpm

#rpm –ivh  bind-utils-9.2.1-16.i386.rpm

#rpm –ivh  redhat-config-bind-1.9.0-13.noarch.rpm

#rpm –ivh  caching-nameserver-9.2-7.noarch.rpm

2.建立區域

# vi  /etc/named.conf

添加以下內容:

options {

   directory  “/var/named”;

   forwarders {192.168.3.10;};  //添加的內容

};

zone  “linux.net”  IN  {      //添加的內容

     type  master;

     file  “linux.zone”;

};

3.建立區域文件/var/named/linux.zone

#vi  /var/named/linux.zone

$TTL86400

$ORIGIN  linux.net.

@1D IN SOA@ root (

49; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

1D IN NSdns.linux.net.

1D IN A192.168.3.1

dns            IN A     192.168.3.1

www            IN A      192.168.3.1

mail           IN A      192.168.3.2

linux.net.       IN  MX  10  mail.linux.net.

4.啓動服務

#service   named   start

案例二:

要求:

利用bind軟件建立一臺linux.net區域的輔助dns服務器,主服務器ip地址爲192.168.3.1

配置過程:

輔助DNS服務器只要在DNS服務器上建立一個輔助區域指向主服務器,不用手工建立區域文件,輔助DNS服務器會自動從主服務器中複製區域文件。

1. 安裝相關軟件

#rpm –ivh bind-9.2.1-16.i386.rpm

#rpm –ivh  bind-utils-9.2.1-16.i386.rpm

#rpm –ivh redhat-config-bind-1.9.0-13.noarch.rpm

#rpm –ivh  caching-nameserver-9.2-7.noarch.rpm

2. 建立從區域

#vi   /etc/named.conf

添加如下內容:

zone  “linux.net”  IN   {

type  slave;

file  “linux.zone”;

};

3. 啓動服務

#service   named  start

案例三:

要求:

利用bind和dhcpd製作一臺動態DNS服務器; DHCPDNS同爲一臺主機,該主機的IP地址爲192.168.3.1,DHCP服務器分配作用域範圍爲192.168.3.2-192.168.3.200;DNS服務器管轄的區域爲abc.com 

配置過程:

1. DHCP服務器的配置

(1) 安裝DHCP服務相關軟件

#rpm  -ivh   dhcp-3.0pl1-23.i386.rpm

(2) 運行ddns-keygen命令產生動態更新的密鑰(當前路徑爲/etc)

#dnssec-keygen  -a  HMAC-MD5  -b 128  -n  USER  DHCP_UP

(記下生成密鑰)

(3) 建立配置文件/etc/dhcpd.conf

#vi   /etc/dhcpd.conf

添加如下內容:

ddns-update-style  interim;

ignore  client-updates;

key “DHCP_UP” {

 algorithm  hmac-md5;

 secret  qhB++OR5yWo8BTXwk/m4ng;

};

zone  abc.com {

primary  127.0.0.1;

key   “DHCP_UP”;

}

subnet 192.168.3.0   netmask   255.255.255.0

 {

defaulst-lease-time  36000;

max-lease-time  72000;

option  routes  192.168.3.1;

option  domain-name  “abc.com”;

option  domain-name-servers  192.168.3.1;

range   192.168.3.2  192.168.3.200;

}

(4) 啓動服務

#service  named  start

2.  DNS服務器的配置

(1) 安裝相關的軟件

#rpm –ivh bind-9.2.1-16.i386.rpm

#rpm –ivh  bind-utils-9.2.1-16.i386.rpm

#rpm –ivh redhat-config-bind-1.9.0-13.noarch.rpm

#rpm –ivh  caching-nameserver-9.2-7.noarch.rpm

(2) 建立區域

# vi  /etc/named.conf

添加以下內容:

options {

   directory  “/var/named”;

};

key  “DHCP_UP”  {

 algorithm  hmac-md5;

 secret  qhB++OR5yWo8BTXwk/m4ng;

};

zone  “abc.com”  IN  {

     type  master;

     file  “abc.zone”;

};

3) 建立區域文件/var/named/abc.zone

#vi  /var/named/abc.zone

$TTL86400

$ORIGIN  abc.com.

@1D IN SOA@ root (

49; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

1D IN NSwww.abc.com.

1D IN A192.168.3.1

www            IN A      192.168.3.1

(4) 啓動服務

#service  named  start

發佈了50 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章