如今使用最爲普遍的DNS服務器軟件是BIND(Berkeley Internet Name Domain),最先有伯克利大學的一名學生編寫,如今最新的版本是9,有ISC(Internet Systems Consortium)編寫和維護。html
BIND支持先今絕大多數的操做系統(Linux,UNIX,Mac,Windows)vim
BIND服務的名稱稱之爲named安全
DNS默認使用UDP、TCP協議,使用端口爲53(domain),953(mdc,遠程控制使用)服務器
本例使用的環境是CentOS 7.0的Linux操做系統(非CentOS 7.0系統,安裝會有所區別),因此直接採用命令:yum install -y bind bind-chroot bind-utils
其中bind-chroot和bind-utils是bind的相關包。
dom
一、BIND配置文件保存在兩個位置:
/etc/named.conf - BIND服務主配置文件
/var/named/ - zone文件(域的dns信息)測試
若是安裝了bind-chroot(其中chroot是 change root 的縮寫),BIND會被封裝到一個僞根目錄內,配置文件的位置變爲:
/var/named/chroot/etc/named.conf - BIND服務主配置文件
/var/named/chroot/var/named/ - zone文件
chroot是經過相關文件封裝在一個僞根目錄內,已達到安全防禦的目的,一旦程序被攻破,將只能訪問僞根目錄內的內容,而不是真實的根目錄spa
二、BIND安裝好以後不會有預製的配置文件,可是在BIND的文檔文件夾內(/usr/share/doc/bind-9.9.4),BIND爲咱們提供了配置文件模板,咱們能夠直接拷貝過來:
cp -r /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc/
cp -r /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var/操作系統
三、配置BIND服務的主配置文件(/var/named/chroot/etc/named.conf),命令:vim /var/named/chroot/etc/named.conf;
內容不少使用簡單配置,刪除文件中logging如下的所有內容,以及option中的部份內容,獲得以下配置.net
1 /* 2 Sample named.conf BIND DNS server 'named' configuration file 3 for the Red Hat BIND distribution. 4 5 See the BIND Administrator's Reference Manual (ARM) for details about the 6 configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html 7 */ 8 9 options 10 { 11 // Put files that named is allowed to write in the data/ directory: 12 directory "/var/named"; // "Working" directory 13 14 15 //listen-on port 53 { any; }; 16 listen-on port 53 { 127.0.0.1; }; 17 18 //listen-on-v6 port 53 { any; }; 19 listen-on-v6 port 53 { ::1; }; 20 21 };
四、在主配置文件(/var/named/chroot/etc/named.conf )中加入,zone參數
3d
五、新建example.net.zone文件,example.net的域名解析文件,zone文件放在/var/named/chroot/var/named/下,zone文件能夠已/var/named/chroot/var/named/named.localhost爲模板。
命令:cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/example.net.zone
文件example.net.zone的內容以下:
六、禁用bind默認方式啓動,改用bind-chroot方式啓動。命令以下:
[root@iZ2806l73p6Z named]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on
[root@iZ2806l73p6Z named]# systemctl stop named
[root@iZ2806l73p6Z named]# systemctl disable named
[root@iZ2806l73p6Z named]# systemctl start named-chroot
[root@iZ2806l73p6Z named]# systemctl enable named-chroot
[root@iZ2806l73p6Z named]#
圖:
注意:若是是CentOS 6.5的系統,這個步驟回有所區別,直接使用默認的service named start 啓動服務,bind就直接運行在chroot包中,以下圖:
七、查看是否啓動,命令:ps -ef|grep named
八、測試DNS服務,本例在本機上測試,也可在其餘電腦上測試,修改DNS服務的ip地址便可(命令:vim /etc/resolv.conf ),而後使用命令dig(命令:dig www.example.net)測試
內容以下:
測試結果:
注:非本機測試須要修改主配置文件named.conf,容許任何ip訪問,而後重啓服務器