前言
本文重點在于后面的完整搭建步驟,前面會簡單的說明一下用到的概念胡嘿,如果有偏差處蛉艾,歡迎各位批評指教。謝謝大家衷敌。
基本理論說明
DNS概述
DNS(Domain Name System勿侯,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫缴罗,能夠使用戶更方便的訪問互聯(lián)網(wǎng)助琐,而不用去記住能夠被機器直接讀取的IP數(shù)串。通過主機名面氓,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)兵钮。
DNS協(xié)議及端口
- TCP 53(主從同步)
- UDP 53(正常查詢)
- 啟動腳本:/etc/init.d/named
DNS解析的作用
- 正向解析:域名---->IP
- 反向解析: IP---->域名
DNS相關配置文件
- /etc/named.conf
- /etc/named.rfc1912.zones
- /var/named
- /var/named/chroot
主配置文件片段:
listen-on port 53 { 192.168.4.5; }; //監(jiān)聽地址和端口
allow-query { any; }; //允許任何客戶機查詢
zone "wolf.com" IN { //定義正向區(qū)域
type master; //區(qū)域類型為主DNS
file "wolf.com.zone"; //區(qū)域數(shù)據(jù)文件
};
區(qū)域文件內容
$TTL 86400 //有效記錄的生存周期
@ IN SOA dns1.tarena.com. root.tarena.com. (
2013090901 //更新序號
3H //刷新時間
15M //重試間隔
1W //失效時間
1D //無效記錄的生存周期
)
/*
站點名 類型 值
@ IN NS DNS 1的完整域名.
@ IN NS DNS 2的完整域名.
DNS 1的完整域名. IN A DNS 1的IP地址
DNS 2的完整域名. IN A DNS 2的IP地址
www IN A IP地址
IP地址主機位 IN PTR 完整的域名.
*/
語法檢查工具:
named-checkconf //主配置文件的路徑
named-checkzone //目標區(qū)域名 地址庫文件的路徑
DNS負載均衡,泛域名解析
- DNS輪詢(一個域名--> 多個IP地址)
www A IP地址1
www A IP地址2
www A IP地址3
.. ..
- 泛域名解析(多個域名 <--> 多個IP地址)
$GENERATE 100-200 station$ A 192.168.4.$
$GENERATE 100-200 $ PTR station$.tarena.com.
- 泛域名解析(多個域名 --> 一個IP地址)
* A IP地址
主從DNS(從服務器主要用來備份數(shù)據(jù))
options {
directory "默認的地址庫文件保存位置";
allow-transfer { 從DNS服務器的IP地址; };
};
zone "區(qū)域名" { [tarena.com舌界、4.168.192.in-addr.arpa]
type 類型; [master掘譬、slave]
file "地址庫文件的文件名";
masters { 主DNS服務的IP地址; };
};
實例操作
基本的DNS正向及反向解析
//安裝DNS服務包,其中bind是主要實現(xiàn)DNS解析功能的包呻拌,bind-chroot則是禁錮解析目錄的服務包
[root@server-2-99 ~]# yum -y bind bind-chroot
//修改DNS服務主配置文件
[root@server-2-99 ~]# vim /etc/named.conf
[root@server-2-99 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; }; //監(jiān)聽地址和端口葱轩,any表示任意地址
directory "/var/named"; //地址庫文件所在目錄
allow-query { any; }; //允許任意客戶機查詢
};
zone "wolf.com" IN { //定義正向區(qū)域
type master; //區(qū)域類型為主DNS
file "wolf.com.zone"; //地址庫文件
};
zone "2.168.192.in-addr.arpa" IN { //定義反向區(qū)域
type master;
file "192.168.2.arpa";
};
//檢查配置語法,可以不進行此步操作
[root@server-2-99 ~]# named-checkconf /etc/named.conf
//編輯DNS地址庫文件
[root@server-2-99 ~]# cd /var/named/
[root@server-2-99 named]# ls -l
total 32
drwxr-x---. 6 root named 4096 Dec 18 18:26 chroot
drwxrwx---. 2 named named 4096 Dec 18 18:26 data
drwxrwx---. 2 named named 4096 Dec 18 18:26 dynamic
-rw-r-----. 1 root named 2075 Apr 23 2014 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost //注意所屬組藐握,地址庫模板文件
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 4096 May 11 2015 slaves
//地址庫文件需要保留所屬組靴拱,來保證有相應的權限,這里使用-p選項保留對應的權限猾普,也可是使用chown命令修改文件所有組
[root@server-2-99 named]# cp -p named.localhost wolf.com.zone
[root@server-2-99 named]# ll wolf.com.zone named.localhost
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 152 Jun 21 2007 wolf.com.zone
//修改地址庫文件
[root@server-2-99 named]# hostname
server-2-99.wolf.com
[root@server-2-99 named]# vim wolf.com.zone
[root@server-2-99 named]# cat wolf.com.zone
$TTL 1D //有效記錄生存周期袜炕,目前表示1天
@ IN SOA @ rname.invalid. (
0 ; serial //更新序號,在主從DNS上會有作用抬闷,我們后面介紹
1D ; refresh //刷新時間
1H ; retry //重試間隔
1W ; expire //失效時間
3H ) ; minimum //無效記錄的生存周期
// @ 表示站點名妇蛀,在這里表示在主配置文件寫的"wolf.com."
// NS 表示類型
// A 表示正向解析
NS server-2-99.wolf.com. //當前DNS服務器主機名
www A 192.168.2.99 //www后面的內容會由“@”自動補全
ftp.wolf.com. A 192.168.2.98 //這是完整的域名耕突,注意要以“.”結尾
* A 200.0.0.1 //當遇到不能識別的內容時,按此條記錄解析 (一般只用在正向解析值中)
server A 192.168.2.1 //DNS輪詢——基于DNS的負載均衡
server A 192.168.2.2 //一個域名 --> 多個不同的IP地址
server A 192.168.2.3 //每個IP提供鏡像服務內容
$GENERATE 10-90 pc$ A 192.168.2.$ //簡化有規(guī)律的地址(A或PTR)記錄
//$GEENRATE 和 “*”都屬于泛域名解析
//檢測配置語法评架,可不進行此操作
[root@server-2-99 named]# named-checkzone wolf.com wolf.com.zone
zone wolf.com/IN: loaded serial 0
OK
//配置反向域名解析配置文件
[root@server-2-99 named]# cp -p named.localhost 192.168.2.arpa
[root@server-2-99 named]# vim 192.168.2.arpa
[root@server-2-99 named]# cat 192.168.2.arpa
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS server-2-99.wolf.com.
100 PTR www.wolf.com.
101 PTR vsftp.wolf.com.
$GENERATE 110-200 $ PTR pc$.wolf.com.
//重啟named服務
[root@server-2-99 named]# service named restart
停止 named: [確定]
啟動 named: [確定]
服務端的操作就基本上到此為止眷茁,接下來就是測試驗證了,當然也可以在服務端的這臺機器操作纵诞,但模擬真實上祈,這次我們新建一臺客戶端的機器來進行操作。
下面就是在客戶端上的測試和驗證:
// 配置客戶機DNS地址文件浙芙,也可以不指定使用臨時的方法進行測試
[root@pc-2-97 ~]# vim /etc/resolv.conf
[root@pc-2-97 ~]# cat /etc/resolv.conf
nameserver 192.168.2.99
//正向解析結果驗證
[root@pc-2-97 ~]# nslookup www.wolf.com
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: www.wolf.com
Address: 192.168.2.99
[root@pc-2-97 ~]# nslookup ftp.wolf.com
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: ftp.wolf.com
Address: 192.168.2.98
//泛域名解析驗證
[root@pc-2-97 ~]# nslookup wwwwww.wolf.com
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: wwwwww.wolf.com
Address: 200.0.0.1
[root@pc-2-97 ~]# nslookup pc19.wolf.com
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: pc19.wolf.com
Address: 192.168.2.19
//DNS輪詢驗證
[root@pc-2-97 ~]# nslookup server.wolf.com
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: server.wolf.com
Address: 192.168.2.1
Name: server.wolf.com
Address: 192.168.2.2
Name: server.wolf.com
Address: 192.168.2.3
//臨時測試方法
[root@pc-2-97 ~]# nslookup pc12.wolf.com 192.168.2.99
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: pc12.wolf.com
Address: 192.168.2.1
//反向解析驗證
[root@pc-2-97 ~]# nslookup 192.168.2.100
Server: 192.168.2.99
Address: 192.168.2.99#53
100.2.168.192.in-addr.arpa name = www.wolf.com.
[root@pc-2-97 ~]# nslookup 192.168.2.101
Server: 192.168.2.99
Address: 192.168.2.99#53
101.2.168.192.in-addr.arpa name = vsftp.wolf.com.
[root@pc-2-97 ~]# nslookup 192.168.2.119
Server: 192.168.2.99
Address: 192.168.2.99#53
119.2.168.192.in-addr.arpa name = pc119.wolf.com.
DNS服務的正向解析和反向解析登刺,就基本上是這樣了,還有一個是多區(qū)域解析嗡呼,就是在/etc/named.conf文件中再添加一塊配置文件纸俭,然后添加對應的地址庫文件,在這里就不做演示了南窗。
接下來揍很,進行構建主/從DNS
主/從DNS服務搭建
操作流程:
//在主DNS服務器,即剛才搭建的server-2-99服務機上万伤,修改DNS主配置文件
[root@server-2-99 named]# vim /etc/named.conf
//這里我只顯示了修改的一部分窒悔,其它地方和之前保持一致即可
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
allow-transfer { 192.168.2.98; }; //添加從服務器地址,注意ip和“{}”的前后都需要有一個空格敌买,沒有的話简珠,可能會報錯,不能啟動服務器
};
//測試主從服務器新添加的區(qū)域虹钮,也可以使用之前的“wolf.com”
zone "war.com" IN {
type master;
file "war.com.zone";
};
//配置地址庫文件聋庵,和之前一致
[root@server-2-99 named]# pwd
/var/named
[root@server-2-99 named]# cp -p wolf.com.zone war.com.zone
[root@server-2-99 named]# vim war.com.zone
[root@server-2-99 named]# cat war.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS server-2-99.wolf.com.
www A 192.168.2.99
ftp.war.com. A 192.168.2.98
* A 200.0.0.1
server A 192.168.2.1
server A 192.168.2.2
server A 192.168.2.3
$GENERATE 10-90 pc$ A 192.168.2.$
[root@server-2-98 ~]# yum -y install bind bind-chroot
[root@server-2-98 ~]# vim /etc/named.conf
[root@server-2-98 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
};
zone "war.com" IN {
type slave;
file "slaves/war.com.zone"; //注意路徑發(fā)生了改變,地址庫文件在從服務器不需要配置芜抒,會自動從主服務器同步
masters { 192.168.2.99; }; //主服務器地址
};
[root@server-2-98 ~]# service named restart
停止 named: [確定]
啟動 named: [確定
[root@server-2-98 ~]# ls /var/named/slaves/
war.com.zone //文件已經(jīng)同步
[root@server-2-98 ~]# cat /var/named/slaves/war.com.zone
$ORIGIN .
$TTL 86400 ; 1 day
war.com IN SOA war.com. rname.invalid. (
0 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS server-2-99.wolf.com.
$ORIGIN war.com.
* A 200.0.0.1
ftp A 192.168.2.98
pc10 A 192.168.2.10
pc11 A 192.168.2.11
pc12 A 192.168.2.12
……
pc88 A 192.168.2.88
pc89 A 192.168.2.89
pc90 A 192.168.2.90
server A 192.168.2.1
A 192.168.2.2
A 192.168.2.3
www A 192.168.2.99
那么現(xiàn)在主從DNS服務器的配置已經(jīng)全部完成珍策,現(xiàn)在我們去客戶機上進行驗證
//這里就簡單寫兩個驗證結果就好,其它的就不一一貼出了
[root@pc-2-97 ~]# nslookup www.war.com 192.168.2.99
Server: 192.168.2.99
Address: 192.168.2.99#53
Name: www.war.com
Address: 192.168.2.99
[root@pc-2-97 ~]# nslookup www.war.com 192.168.2.98
Server: 192.168.2.98
Address: 192.168.2.98#53
Name: www.war.com
Address: 192.168.2.99