DNS服務的配置
DNS伺服器
- DNS伺服器概念
在網際網路上通訊需要藉助於IP地址,但人類對於數字的記憶能力遠不如文字,那麼將IP地址轉換成容易記憶的文字是個好辦法,可是計算機只能識別0、1程式碼,這時就需要一種機制來解決IP地址與主機名的轉換問題
DNS全稱為Domain Name System,即域名系統,其作用就是將我們經常使用的“網址”解析為IP地址 - DNS相關概念
DNS利用樹形目錄結構,將主機名的管理分配給不同的層級,這樣可以實現更加快速的完成主機名的查詢,修改主機名解析時也更加方便
域:
TLD:Top Level Domain (頂級域名)
組織域:.com, .org, .net, .edu,.gov,.mil,.cc,…
國家域:.cn, .us, .tw, .iq,…
反向域: .in-addr-arpa
FQDN:
FQDN全稱為Fully Qualified Domain Name,即完全合格域名
FQDN由兩個部分組成:主機名和域名。因為DNS是逐級管理的 ,所以在不同的層級中主機名與域名也是不同
的;以www.google.com為例,在第二層中,.com就是域名,google就是主機名,而到了第三層
中,.google.com就成了域名,www就成了主機名
正向解析:
從FQDN轉換為IP地址稱為正向解析
反向解析:
從IP地址轉換為FQDN稱為反向解析
區域:
正向解析或反向解析中,每個域的記錄就是一個區域
-
DNS伺服器解析
DNS的主要作用是進行主機名的解析
解析:根據使用者提供一種名稱,去查詢解析庫,以得到另一種名稱。 域名—>IP,IP—>域名
資源記錄:rr(resource record)
有型別的概念;用於此記錄解析的屬性
SOA記錄:起始授權記錄,一個區域檔案只能有一個
A記錄:用來指定主機名(或域名)對應的IP地址記錄。(AAAA ipv6)
CNAME記錄:別名解析(域名)
NS記錄:域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析。
MX記錄:郵件交換記錄,指向郵件伺服器
PTR記錄:反向DNS記錄,A記錄的反向
TTL值:生存時間,DNS記錄在DNS伺服器上快取時間 -
DNS伺服器原理
DNS採用兩種查詢機制:遞迴和迭代
客戶端向DNS伺服器發起查詢請求,DNS伺服器搜尋本地解析庫沒有結果,於是向根域發起查詢請求,根域告訴DNS伺服器.com伺服器上有它需要的資源,DNS伺服器又向.com伺服器發起查詢請求,結果被告知.google.com伺服器上有它想要的結果,最後終於在.google.com伺服器上找到了解析記錄,並返回給了客
戶端。
在上面的查詢過程中,客戶端只發起了一次請求,並得到了最後的結果,這種查詢方式被稱為遞迴 而DNS伺服器在查詢過程中不停的發起請求,直到找到想要的結果,這種查詢方式被稱為迭代 -
DNS查詢順序
本地hosts檔案
本地DNS快取
本地DNS伺服器
發起迭代查詢 -
DNS伺服器埠
TCP UDP 53 -
DNS伺服器型別
主DNS伺服器:為客戶端提供域名解析的主要區域,主DNS伺服器宕機,會啟用從DNS伺服器提供服務
從DNS伺服器 :主伺服器DNS長期無應答,從伺服器也會停止提供服務
主從區域之間的同步採用週期性檢查+通知的機制,從伺服器週期性的檢查主伺服器上的記錄情況,一旦發現修改就會同步,另外主伺服器上如果有資料被修改了,會立即通知從伺服器更新記錄
快取伺服器:伺服器本身不提供解析區域,只提供非權威應答
轉發伺服器:當DNS伺服器的解析區域(包括快取)中無法為當前的請求提供權威應答時,將請求轉發至其它的DNS伺服器,此時本地DNS伺服器就是轉發伺服器
DNS伺服器的搭建
關閉防火牆&Selinux
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled
[[email protected] ~]# getenforce
Disabled
安裝DNS伺服器軟體
[[email protected] ~]# yum -y install bind-chroot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package bind-chroot.x86_64 32:9.9.4-50.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================
Package Arch Version Repository Size
===================================================================================
Installing:
bind-chroot x86_64 32:9.9.4-50.el7 c7-media 86 k
Transaction Summary
===================================================================================
Install 1 Package
Total download size: 86 k
Installed size: 3.3 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 32:bind-chroot-9.9.4-50.el7.x86_64 1/1
Verifying : 32:bind-chroot-9.9.4-50.el7.x86_64 1/1
Installed:
bind-chroot.x86_64 32:9.9.4-50.el7
Complete!
修改主配置檔案
#主配置檔案/etc/named.conf
vi /etc/named.conf
listen-on port 53 { any; }; #伺服器上的所有IP地址均可提供DNS域名解析服務
allow-query { any; }; #允許所有人對本伺服器傳送DNS查詢請求
named-checkconf 命令檢測語法
修改區域配置檔案
#用來儲存域名和IP地址對應關係的所在位置,在這個檔案中,定義了域名與IP地址解析規則儲存的檔案位置以及服務型別等內容,而沒有包含具體的域名、IP地址對應關係等資訊。服務型別有三種,分別為hint(根區域)、master(主區域)、slave(輔助區域),其中常用的master和slave指的就是主伺服器和從伺服器
[[email protected] ~]# vi /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "bk.com" IN {
type master; #服務型別
file "bk.com.zone"; #域名與IP地址解析規則儲存檔案
allow-update { 192.168.130.200; }; #允許哪些客戶機動態更新解析資訊
also-notify { 192.168.130.200; };
}; #正向解析引數
zone "130.168.192.in-addr.arpa" IN {
type master;
file "192.168.130.arpa";
}; #反向解析引數
正向解析
修改區域配置檔案,可在原有的基礎上進行修改,也可清空,保留只用的資訊
zone "bk.com" IN {
type master;
file "bk.com.zone";
allow-update { 192.168.130.200;192.168.130.132; };
also-notify { 192.168.130.200;192.168.130.132; };
};
編輯資料配置檔案。從/var/named目錄中複製一份正向解析的模板檔案(named.localhost),然後把域名和IP地址的對應資料填寫資料配置檔案中並儲存。在複製時記得加上-a引數,這可以保留原始檔案的所有者、所屬組、許可權屬性等資訊
[[email protected] ~]# cd /var/named
[[email protected] named]# cp -a named.localhost bk.com.zone
cp: overwrite ‘bk.com.zone’? y
[[email protected] named]# vi bk.com.zone
1 $TTL 1D
2 @ IN SOA bk.com. root.bk.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 @ NS ns.c74.com.
9 ns IN A 192.168.130.128
10 IN MX 10 mail.c74.com.
11 mail IN A 192.168.130.128
12 www IN A 192.168.130.128
13 news IN A 192.168.130.200
啟動服務及測試
[[email protected] named]# systemctl restart named
[[email protected] named]# yum install -y bind-utils #bind-utils為客戶端 測試dns使用
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package bind-utils.x86_64 32:9.9.4-50.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================
Package Arch Version Repository Size
===================================================================================
Installing:
bind-utils x86_64 32:9.9.4-50.el7 c7 203 k
Transaction Summary
===================================================================================
Install 1 Package
Total download size: 203 k
Installed size: 435 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 32:bind-utils-9.9.4-50.el7.x86_64 1/1
Verifying : 32:bind-utils-9.9.4-50.el7.x86_64 1/1
Installed:
bind-utils.x86_64 32:9.9.4-50.el7
Complete!
[[email protected] named]# nslookup
> www.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: www.bk.com
Address: 192.168.130.128
> ns.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: ns.bk.com
Address: 192.168.130.128
> mail.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: mail.bk.com
Address: 192.168.130.128
反向解析
#反向解析的作用是將使用者提交的IP地址解析為對應的域名資訊,它一般用於對某個IP地址上繫結的所有域名進行整體遮蔽,遮蔽由某些域名傳送的垃圾郵件
修改區域配置檔案
[[email protected] ~]# vi /etc/named.rfc1912.zones
zone "130.168.192.in-addr.arpa" IN {
type master;
file "192.168.130.arpa";
};
編輯配置檔案
[[email protected] ~]# cd /var/named
[[email protected] named]# cp -a named.loopback 192.168.130.arpa
1 $TTL 1D
2 @ IN SOA bk.com. root.bk.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 IN NS ns.bk.com.
9 128 IN PTR www.bk.com.
10 200 IN PTR news.bk.com.
11 128 IN PTR ftp.bk.com.
啟動服務及測試
[[email protected] ~]# systemctl restart named
[[email protected] ~]# nslookup
> 192.168.130.128
Server: 192.168.130.128
Address: 192.168.130.128#53
128.130.168.192.in-addr.arpa name = ftp.bk.com.
128.130.168.192.in-addr.arpa name = www.bk.com.
128.130.168.192.in-addr.arpa name = mail.bk.com.
> 192.168.130.200
Server: 192.168.130.128
Address: 192.168.130.128#53
200.130.168.192.in-addr.arpa name = news.bk.com.
DNS高階之主從服務
#在DNS域名解析服務中,從伺服器可以從主伺服器上獲取指定的區域資料檔案,從而起到備份解析記錄與負載均衡的作用,因此通過部署從伺服器可以減輕主伺服器的負載壓力,還可以提升使用者的查詢效率。
#其中主伺服器為192.168.130.128,從伺服器為192.168.130.200,及192.168.130.132
修改主伺服器的區域配置檔案
#在主伺服器的區域配置檔案中允許該從伺服器的更新請求,即修改allow-update {允許更新區域資訊的主機地址;};引數,然後重啟主伺服器的DNS服務程式
[[email protected] ~]# vi /etc/named.rfc1912.zones
1 // named.rfc1912.zones:
2 //
3 // Provided by Red Hat caching-nameserver package
4 //
5 // ISC BIND named zone configuration for zones recommended by
6 // RFC 1912 section 4.1 : localhost TLDs and address zones
7 // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
8 // (c)2007 R W Franks
9 //
10 // See /usr/share/doc/bind*/sample/ for example named configuration files.
11 //
12
13
14 zone "localhost" IN {
15 type master;
16 file "named.localhost";
17 allow-update { none; };
18 };
19
20 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
21 type master;
22 file "named.loopback";
23 allow-update { none; };
24 };
25
26 zone "1.0.0.127.in-addr.arpa" IN {
27 type master;
28 file "named.loopback";
29 allow-update { none; };
30 };
31
32 zone "0.in-addr.arpa" IN {
33 type master;
34 file "named.empty";
35 allow-update { none; };
36 };
37
38 zone "bk.com" IN {
39 type master;
40 file "bk.com.zone";
41 allow-update { 192.168.130.200;192.168.130.132; };
42 also-notify { 192.168.130.200;192.168.130.132; };
43 };
44
45 zone "130.168.192.in-addr.arpa" IN {
46 type master;
47 file "192.168.130.arpa";
48 };
[[email protected] ~]# vi /etc/resolv.conf #在此檔案中將主從伺服器的IP地址寫入
# Generated by NetworkManager
nameserver 192.168.130.128
nameserver 192.168.130.200
修改從伺服器的區域配置檔案
#在從伺服器中填寫主伺服器的IP地址與要抓取的區域資訊,然後重啟服務。注意此時的服務型別應該是slave(從),而不再是master(主)。masters引數後面應該為主伺服器的IP地址,而且file引數後面定義的是同步資料配置檔案後要儲存到的位置,稍後可以在該目錄內看到同步的檔案
[[email protected] ~]# vi /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "bk.com" IN {
type slave;
masters { 192.168.130.128; };
file "slaves/bk.com.zone";
};
zone "130.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.130.128; };
file "slaves/192.168.130.arpa";
};
[[email protected] ~]# vi /etc/resolv.conf #在此檔案中將主從伺服器的IP地址寫入
# Generated by NetworkManager
nameserver 192.168.130.128
nameserver 192.168.130.200
啟動服務及測試
#在主伺服器上重啟服務,在從伺服器上也重啟服務,然後檢視/var/named/slaves/目錄下是否有同步了的檔案,然後使用nslookup命令在從伺服器上測試
[[email protected] ~]# systemctl restart named
[[email protected] ~]# cd /var/named/slaves/
[[email protected] slaves]# ls
192.168.130.arpa bk.com.zone
[[email protected] slaves]# nslookup
> www.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: www.bk.com
Address: 192.168.130.128
> mail.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: mail.bk.com
Address: 192.168.130.128
> news.bk.com
Server: 192.168.130.128
Address: 192.168.130.128#53
Name: news.bk.com
Address: 192.168.130.200
> 192.168.130.128
Server: 192.168.130.128
Address: 192.168.130.128#53
128.130.168.192.in-addr.arpa name = ftp.bk.com.
128.130.168.192.in-addr.arpa name = mail.bk.com.
128.130.168.192.in-addr.arpa name = www.bk.com.
> 192.168.130.200
Server: 192.168.130.128
Address: 192.168.130.128#53
200.130.168.192.in-addr.arpa name = news.bk.com.
使用Windows server 2008環境配置DNS從伺服器
配置DNS環境
安裝好Windows server 2008 環境,然後開啟伺服器管機器,點選角色→新增角色
選擇DNS伺服器並進行安裝
安裝後找到DNS伺服器,滑鼠右擊選擇配置DNS伺服器
選擇第二項
選擇輔助區域
填入主伺服器的IP地址
建立反向查詢區域,填入對應的IP地址網段
將此伺服器的IP地址配置為靜態,並將主從伺服器的IP地址填入DNS伺服器地址中