DNS服務及相關實驗

DNS(Domain Name Server,域名服務器)是進行域名(domain name)和與之相對應的IP地址 (IP address)轉換的服務器。

本節索引:

一、DNS服務相關介紹

二、實驗:搭建正向主DNS服務器

三、實驗:泛域名解析,提高訪問感受

四、實驗:利用DNS實現web服務器負載均衡

五、實驗:實現反向解析

六、實驗:搭建正向從DNS服務器

七、實驗:實現子域

八、實驗:forward轉發

九、實驗:實現智能DNS

timg_image&quality=80&size=b9999_10000&sec=1528194054665&di=8763291c489274bb9113

一、DNS服務相關介紹

DNS:Domain Name Service 應用層協議

C/S,53/udp, 53/tcp

BIND:Bekerley Internat Name Domain

ISC (www.isc.org)

 

名字解析服務:將全稱域名解析為IP地址

FQDN:Fully Qualified Domain Name,完整主機名

www.magedu.com???????? 完整主機名(FQDN)

www?? ????????? 主機名,或者別名

magedu.com ???????? domain域名

 

分散式解決方案:小環境,特定應用內部集群

/etc/hosts

集中式解決方案:NIS,適合中小型環境

分布式(既分散又集中)解決方案:DNS

 

 

本地名稱解析配置文件:hosts

Linux:??? /etc/hosts

Windows:%WINDIR%/system32/drivers/etc/hosts

???????? 122.10.117.2? www.magedu.com

???????? 93.46.8.89??? www.google.com

 

 

權威DNS服務器:查詢FQDN所在的DNS服務器

13組服務器,13個IP地址存放根域

IPv6,25組跟服務器

 

DNS查詢類型:

?? 遞歸查詢:負責到底

? 迭代查詢:不負責到底

解析類型:

正向解析:FQDN –> IP

反向解析:IP –> FQDN

注意:正反向解析是兩個不同的名稱空間是兩棵不同的解析樹

 

DNS服務器的類型:

主DNS服務器

從DNS服務器

緩存DNS服務器(轉發器)

主DNS服務器:管理和維護所負責解析的域內解析庫的服務器

從DNS服務器:從主服務器或從服務器“復制”(區域傳輸)解析庫副本

序列號:解析庫版本號,主服務器解析庫變化時,其序列遞增 刷新時間間隔:

服務器從主服務器請求同步解析的時間間隔

重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔

過期時長:從服務器聯系不到主服務器時,多久后停止服務

“通知”機制:主服務器解析庫發生變化時,會主動通知從服務器

 

bind

相關文件:

/etc/named.conf????????????????????????????? 主配置文件

/usr/sbin/named?????????????????????????????? 主程序

/usr/lib/systemd/system/named.service????? 服務

/var/named?????????????????????????????? 存放數據庫

/var/named/named.localhost??????????????? 區域解析庫參考文件

 

cat /var/named/named.localhost??

$TTL 1D ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?一天作為緩存期

@?????? IN SOA? @ rname.invalid. (?????????????????????????????????? 第一個@表示當前域名,第二個@表示主DNS服務器,rname.invalid表示管理員郵箱

0?????? ; serial ? ? ? ? ? ?版本序列號,序列號越大表示數據越新,需手動更改

1D????? ; refresh??????? 刷新時間

1H????? ; retry??????????? 重試時間

1W????? ; expire??????? 過期時間

3H )??? ; minimum????? 否定答案的TTL值

NS????? @

A?????? 127.0.0.1

AAAA??? ::1

 

資源記錄:

區域解析庫:由眾多RR組成:

資源記錄:Resource Record, RR

記錄類型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄,

必須位于解析庫的第一條記錄,定義了誰是主DNS服務器,管理員郵箱及刷新時間(從屬DNS服務器拉取

主DNS服務器數據的時間)、重試時間、過期時間及否定答案的TTL值

A:internet Address,作用,FQDN –> IP

AAAA:FQDN –> IPv6

PTR:PoinTeR,IP –> FQDN

NS:Name Server,專用于標明當前區域的DNS服務器

CNAME:Canonical Name,別名記錄,如www

MX:Mail eXchanger,郵件交換器

 

資源記錄定義的格式:

語法:name [TTL] IN rr_type value

注意:

(1) TTL可從全局繼承

(2) @可用于引用當前區域的名字

(3) 同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務器會以輪詢

方式響應

(4) 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值

進行定義;此僅表示通過多個不同的名字可以找到同一個主機

 

 

二、實驗:搭建正向主DNS服務器

前期準備:

主DNS服務器:192.168.30.10

web服務器:192.168.30.16

客戶端:192.168.30.11

實驗預期:

客戶端訪問通過主DNS解析訪問http服務器搭建的網頁

具體步驟:

1主DNS服務器安裝bind包:

yum install bind

2 備份主配置文件,注意保留屬性

cp /etc/named.conf? /etc/named.conf.bak? -a

3.開啟named服務

Systemctl? start? named

Systemctl? enable? named

4.修改主配置文件:

vim /etc/named.conf

options {

???????? listen-on port 53 { localhost; };

???????? allow-query???? { local;any; };

};

named.conf

5.修改區域配置文件:

區域配置文件

6創建區域解析數據庫文件

可參照named.localhost文件進行創建

cp named.localhost? magedu.com.zone -a

vim magedu.com.zone

$TTL 1D

@????? ?IN SOA? dns1.magedu.com. admin.magedu.com. (

??????????????????????????????????????? 0?????? ; serial

??????????????????????????????????????? 1D????? ; refresh

??????????????????????????????????????? 1H????? ; retry

?????????????????????????????????????? ?1W????? ; expire

??????????????????????????????????????? 3H )??? ; minimum

magedu.com.??????? NS????? dns1

dns1 ? ? ? ? ? ? ? ? ? ? ? ? A??????? 192.168.30.10

www???????????????? ?? ????A??????? 192.168.30.16

區域數據庫解析文件

7重新加載named服務:

Systemctl reload named?? 或?? rndc? reload

 

8如啟動失敗,可使用語法檢查

named-checkconf????????? 主配置文件語法檢查

named-checkzone “magedu.com” /var/named/magedu.com.zone?????? 解析庫文件語法檢查

 

9切換至客戶端進行測試:

dig www.magedu.com ?@192.168.30.10??????????? 指定從192.168.30.10解析www.magedu.com

4dig測試

10切換到web服務器:

echo welcome to Magedu > /var/www/html/html.index

service httpd start

 

11.切換至客戶端:

添加DNS到網卡配置文件

5修改網卡dns

重啟網絡服務

Service httpd restart

12.測試訪問www.magedu.com

我們看到,客戶端已經由主DNS服務器解析成功訪問到我們自己搭建的http網頁!

6訪問成功

 

三、實驗:泛域名解析,提高訪問感受

前期準備:

實驗環境承接上

實驗預期:

客戶端訪問網頁時,即使將主機名輸出,也可正常訪問

具體步驟:

1修改主DNS服務器端區域數據庫解析文件:

增加此行:泛域名解析,如wwwww.magedu.com也可正常訪問

*? A? 192.168.30.7

修改區域解析庫文件

2客戶端測試:

我們看到即時主機名輸出,也可正常訪問到www.magedu.com的http頁面

訪問成功

 

四、實驗:利用DNS實現web服務器負載均衡

前期準備:

主DNS服務器:192.168.30.10

web服務器1:192.168.30.16

web服務器2:192.168.30.12

客戶端:192.168.30.11

實驗預期:

當客戶端訪問網頁時,由主DNS服務器隨機指向一臺web服務器

具體步驟:

1修改區域解析庫數據文件:

添加下列行:

websrv A 192.168.30.17

websrv A 192.168.30.27

www? CNAME? websrv

修改區域解析庫文件

重新加載named服務:

rndc reload

2切換至客戶端測試:

我們看到當ping測www.magedu.com時,將隨機指向一臺web服務器

測試成功

 

五、實驗:實現反向解析

前期準備:

DNS服務器:192.168.30.10

測試客戶端:192.168.30.11

具體步驟:

1修改DNS服務器區域配置文件,添加反向解析區域

反向解析1

2添加方向區域解析數據庫文件

反向解析2

重啟named服務

rcdn reload

3切換客戶端建測試

dig -x? IPaddr 是一個專門測試反向解析的命令

dig -x 192.168.30.16

我們看到192.168.30.16反向解析到了websrv.magedu.com

反向解析3

dig -x 192.168.30.17

192.168.30.16反向解析到了appsrv.wxlinux.com

反向解析4

dig -x 192.168.30.100

192.168.30.16反向解析到了mail.magedu.com

與DNS服務器區域解析文件對應關系相一致

反向解析5

 

六、實驗:搭建正向從DNS服務器

前期準備:

主DNS服務器:192.168.30.10

從DNS服務器:192.168.30.12

web服務器:192.168.30.16

客戶端:192.168.30.11

實驗預期:

搭建從DNS服務器,當主DNS服務器宕機時,由從DNS實現地址解析

具體步驟:

1.修改主DNS服務器主配置文件,

vim /etc/named.conf

options {

???????? listen-on port 53 { localhost; };

???????? allow-query???? { local;any; };

???????? allow-transfer? { 從DNS的IP };????????????????????????? 加此行

};

1修改主dns主配置

2修改主DNS服務器區域數據庫解析文件

將從DNS服務器同步進去

5主dns區域解析庫

3修改從DNS服務器主配置文件

vim /etc/named.conf

allow-transfer { none; };???????? 加此行

2修改從dns主配置

4修改從DNS服務器區域配置文件

sda

重啟named服務

rndc reload

5確認從DNS服務器slave區域文件同步成功

4生成slave文件

6模擬主DNS服務器宕機,將虛擬機網卡斷開連接

6模擬宕機

7添加從服務器地址到客戶端的DNS列表中:

7客戶端添加dns

8.客戶端測試

ping www.magedu.com

經過短暫的等待(dns切換時間),從DNS服務器解析地址成功!

?8測試成功

 

七、實驗:實現子域

實驗預期:

www.bj.magedu.com

www.zz.magedu.com??????? ???? 使能正常訪問

方法一:修改主DNS區域解析文件

直接將子域指向子域web服務器:

www.bj? A?????? 192.168.30.17

www.zz? A?????? 192.168.30.27

方法1

方法二:本機獨立子域

適用場景:訪問量不大,較小規模,由同一個主DNS服務器管理

vim /etc/named.rfc1912.zones

zone “bj.magedu.com” IN {

???????? type master

???????? file “bj.magedu.com.zone”;

 

zone “zz.magedu.com” IN {

???????? type master

???????? file “zz.magedu.com.zone”;

方法2.1

cp magedu.com.zone bj.magedu.com.zone? -a

vim bj.magedu.com.zone

方法2.2

cp magedu.com.zone zz.magedu.com.zone? -a

vim zz.magedu.com.zone

方法2.3

方法三:委派給另一臺主機維護子域,實現分布式DNS管理

前期準備:

主域magedu.com: 192.168.30.10

子域bj.magedu.com: 192.168.30.16

web服務器1:www.magedu.com: 192.168.30.17

web服務器2:www.bj.magedu.com: 192.168.30.27

測試客戶端:192.168.30.11

1關閉dnssec功能

vim /etc/named.conf

dnssec-enable no;

dnssec-validation no;

方法3.1

 

2修改主域DNS區域解析文件,主域web服務器指向192.168.30.17

vim /var/named/magedu.com.zone

$TTL 1D

@?????? IN SOA? dns1.magedu.com. admin.magedu.com. (

??????????????????????????????????????? 0?????? ; serial

??????????????????????????????????????? 1D????? ; refresh

??????????????????????????????????????? 1H????? ; retry

??????????????????????????????????????? 1W????? ; expire

??????????????????????????????????????? 3H )??? ; minimum

???? NS???? ?dns1.magedu.com.

bj????????????? ?? NS????? dns2.magedu.com. ??? ##新增

dns1?????? A??????? 192.168.30.10

dns2????????????????? ?? A??? 192.168.30.17???????????????? ??????? ##新增

方法3.2

3切換至子域DNS服務器,添加bj.magedu.com的區域配置

vim /etc/named.rfc1912.zones

3.3

4添加子域DNS區域解析文件,將web服務器指向192.168.30.27

3.4

重啟named服務

rndc reload

5切換客戶端進行測試

dig? www.bj.magedu.com @192.168.30.10

ping www.bj.magedu.com

我們看到www.bj.magedu.com將通過主域DNS轉發至子域DNS,再經子域DNS解析指向web服務器

3.5

dig? www.magedu.com @192.168.30.10

ping www.magedu.com

而www.magedu.com還是由主域DNS負責解析,這樣就實現了主域和子域DNS簡單的分布式管理

3.6

 

八、實驗:forward轉發

(一)全局性轉發:

對非本機所負責解析區域的請求,全轉發給指定的服務器

注意:被轉發的服務器需要能夠為請求者做遞歸否則轉發請求不予進行

前期準備:

DNS服務器1: 192.168.30.10

DNS服務器2: 192.168.30.16

Web服務器:192.168.30.100

測試訪問端: 192.168.30.11

實驗預期:

當FQDN在DNS1服務器無法解析時,直接指向到DNS2服務器進行轉發

1在DNS2服務器上建立www.wxlinux.com的區域文件及解析數據庫文件,并將www.wxlinux.com指向web服務器:192.168.30.100

全局轉發1

全局轉發2

2切換到訪問端用DNS2服務器解析www.wxlinux.com,可以解析成功

dig www.wxlinux.com @192.168.30.16

全局轉發3

3切換至DNS1服務器修改主配置文件

vim /etc/named.conf

options {

?????? forward first|only;????????? ????????????????????????? ##first優先在指向DNS服務器解析,only表示只在

???????? forwarders { 192.168.30.17; }???????????????????????? ##指向的DNS服務器解析

};

全局4

注意確定主配置文件recursion yes;并且關閉dnssec功能否則也將導致實驗失敗

重啟named服務

rndc reload

4切換至客戶端進行測試:

首先清除dns緩存記錄

rndc flush

進行ping測,解析成功(由于未搭建web服務器,所以顯示主機不可達)

ping www.wxlinux.com

全局5.0

指定DNS1服務器解析地址,發現DNS1直接指向了DNS2服務器進行解析

dig www.wxlinux.com @192.168.30.10

全局5

 

(二)特定區域轉發:

僅轉發對特定的區域的請求,比全局轉發優先級高

前期準備:

同全局轉發實驗

實驗預期:

只有在訪問wxlinux.com域時,才優先指向DNS2服務器進行解析

1在DNS1刪除剛才的全局配置,新增加區域配置文件內容如下:

只有當訪問wxlinux.com域時,才優先轉發DNS2服務器解析

vim /etc/named.rfc1912.zones

zone “wxlinux.com” IN {

???????? type forward;

???????? forward first|only;

???????? forwarders {192.168.30.16;};

特定域1

清理DNS1服務器的DNS緩存

rndc flush

2切換至客戶端測試:

解析成功,只在訪問wxlinu.com優先指向DNS2服務器進行解析

dig www.wxlinux.com @192.168.30.10

特定域轉發2

 

九、實驗:實現智能DNS

前期準備:

DNS服務器:兩塊網卡地址分別為172.20.113.242和192.168.30.10

模擬192.168.30.0/24網段為北京地區地址段

模擬172.20.0.0/16?? 網段為上海地區地址段

實驗預期:

北京用戶訪問時返回192.168.30.1

上海用戶訪問時返回192.168.30.2

其他地區用戶訪問時防護192.168.30.3

 

1在主配置文件中添加ACL

智能1

2建立與ACL映射的數據庫

區域解析配置

view4

3建立view,一但采用viwe,必須把所有區域信息放到view語句塊中,否則將失效,為了便于管理,我們將主配置文件中此段內容剪切至/etc/named.rfc19212.zones中

view1

view2

vim /etc/named.conf

添加view:如圖

view3

4創建view對應的區域數據信息

cp? /etc/named.rfc1912.zone??? /etc/named.rfc1912.zone.beijing –a

cp? /etc/named.rfc1912.zone??? /etc/named.rfc1912.zone.shanghai –a

vim /etc/named.rfc1912.zone.beijing

zone “wxlinux.com” IN {

???????? type master

???????? file “wxlinux.com.zone.beijing”;

viww6

vim /etc/named.rfc1912.zone.shanghai

zone “wxlinux.com” IN {

???????? type master

???????? file “wxlinux.com.zone.beijing”;

view5

最終生成三個獨立的區域數據信息

view7

重啟named服務

rndc reload

5切換到客戶端進行測試:

(1)192.168.30.0/24測試

dig www.wxlinux.com @192.168.30.10

當地址為192.168.30.0/24段時,web服務器指向192.168.30.1

測試2

(2)172.20.0.0/16測試

dig www.wxlinux.com @172.20.113.242

當地址為172.20.0.0/16段時,web服務器指向192.168.30.2

測試3

(3)其他網段測試

切換回DNS服務器端:

dig www.wxlinux.com @127.0.0.1

由于127.0.0.1不屬于上述兩個網段之一,所以DNS服務器將web服務器地址指向192.168.0.3

測試4

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100091

(1)
wangxczwangxcz
上一篇 2018-06-02 16:39
下一篇 2018-06-02 19:52

相關推薦

欧美性久久久久