自建域名dns解析服務(wù)器(如何搭建自己的DNS域名解析服務(wù)器)
最近有粉絲私信我,很多做技術(shù)開發(fā)的工程師在開發(fā)某個(gè)程序時(shí),或者測(cè)試人員在做程序測(cè)試時(shí),經(jīng)常需要測(cè)試DNS域名解析,那么今天就為大家介紹一下如何搭建自己的DNS域名解析服務(wù)器 。

文章插圖
如果你對(duì)DNS域名解析原理還不夠了解,建議你首先去閱讀一下我上篇關(guān)于DNS基本概念的講解文章《DNS域名解決原理你真的了解嗎?》
現(xiàn)在我們進(jìn)入主題,Linux上搭建DNS服務(wù)的軟件有bind9、NSD(Name server domain)和unbound,其中bind9是市場(chǎng)占有率最高的軟件 。本文也以此軟件來(lái)介紹DNS服務(wù) 。bind實(shí)現(xiàn)DNS的最佳最詳細(xì)說(shuō)明文檔是"DNS & BIND"和"Bind97 Manual" , 網(wǎng)上都有中文版本的資源,推薦大家可以去讀一讀 。

文章插圖
一、BIND簡(jiǎn)介
現(xiàn)在使用最為廣泛的DNS服務(wù)器軟件是BIND(Berkeley Internet Name Domain),最早有伯克利大學(xué)的一名學(xué)生編寫,現(xiàn)在最新的版本是9,有ISC(Internet Systems Consortium)編寫和維護(hù) 。
BIND支持先今絕大多數(shù)的操作系統(tǒng)(Linux,UNIX,Mac,Windows) 。
BIND服務(wù)的名稱稱之為named 。
DNS默認(rèn)使用UDP、TCP協(xié)議,使用端口為53(domain),953(mdc,遠(yuǎn)程控制使用) 。

文章插圖
二、BIND安裝
本例使用的環(huán)境是CentOS 7.0的Linux操作系統(tǒng)(非CentOS 7.0系統(tǒng),安裝會(huì)有所區(qū)別),所以直接采用命令:
yum install -y bind bind-chroot bind-utils
其中bind-chroot和bind-utils是bind的相關(guān)包 。

文章插圖

文章插圖
二、BIND配置
1、BIND配置文件保存在兩個(gè)位置:
/etc/named.conf- BIND服務(wù)主配置文件/var/named/- zone文件(域的dns信息)
如果安裝了bind-chroot(其中chroot是 change root 的縮寫) , BIND會(huì)被封裝到一個(gè)偽根目錄內(nèi) , 配置文件的位置變?yōu)椋?br /> /var/named/chroot/etc/named.conf- BIND服務(wù)主配置文件/var/named/chroot/var/named/- zone文件
chroot是通過(guò)相關(guān)文件封裝在一個(gè)偽根目錄內(nèi),已達(dá)到安全防護(hù)的目的,一旦程序被攻破,將只能訪問(wèn)偽根目錄內(nèi)的內(nèi)容,而不是真實(shí)的根目錄 。
2、BIND安裝好之后不會(huì)有預(yù)制的配置文件,但是在BIND的文檔文件夾內(nèi)(/usr/share/doc/bind-9.9.4),BIND為我們提供了配置文件模板 , 我們可以直接拷貝過(guò)來(lái):
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/
3、配置BIND服務(wù)的主配置文件(/var/named/chroot/etc/named.conf) , 命令:
vim/var/named/chroot/etc/named.conf;
內(nèi)容很多使用簡(jiǎn)單配置 , 刪除文件中l(wèi)ogging以下的全部?jī)?nèi)容,以及option中的部分內(nèi)容,得到如下配置:
/*Sample named.conf BIND DNS server 'named' configuration filefor the Red Hat BIND distribution.See the BIND Administrator's Reference Manual (ARM) for details about the configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html*/options{ // Put files that named is allowed to write in the data/ directory: directory "/var/named"; // "Working" directory //listen-on port 53 { any; }; listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { any; }; listen-on-v6 port 53 { ::1; }; };
4、在主配置文件(/var/named/chroot/etc/named.conf )中加入,zone參數(shù):

文章插圖
5、新建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的內(nèi)容如下:

文章插圖
6、禁用bind默認(rèn)方式啟動(dòng),改用bind-chroot方式啟動(dòng) 。命令如下:
[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的系統(tǒng),這個(gè)步驟回有所區(qū)別 , 直接使用默認(rèn)的service named start 啟動(dòng)服務(wù) , bind就直接運(yùn)行在chroot包中,如下圖:

文章插圖
7、查看是否啟動(dòng),命令:
ps -ef|grep named

文章插圖
8、測(cè)試DNS服務(wù),本例在本機(jī)上測(cè)試,也可在其他電腦上測(cè)試,修改DNS服務(wù)的ip地址即可(命令:vim /etc/resolv.conf ) , 然后使用命令dig(命令:dig www.example.net)測(cè)試 。

文章插圖
內(nèi)容如下:

文章插圖
測(cè)試結(jié)果:

文章插圖
注:非本機(jī)測(cè)試需要修改主配置文件named.conf , 允許任何ip訪問(wèn),然后重啟服務(wù)器 。

文章插圖

文章插圖
三、BIND從服務(wù)器
從服務(wù)器就是在bind的主配置文件中添加從域example.net的配置信息即可:
1、配置文件位置
/var/named/chroot/etc/named.conf
2、在主配置文件中添加一行域的zone定義:
zone "example.net" {type slave; masters { 120.27.99.64; }; file "slaves/example.net.zone";
3、由于bind是以named用戶來(lái)運(yùn)行的,所以要給存放zone文件的文件夾(/var/named/chroot/var/named/slaves)授權(quán) 。未授權(quán)前:

文章插圖
授權(quán):

文章插圖
4、啟動(dòng)bind服務(wù),service named start,在存放zone文件夾(/var/named/chroot/var/named/slaves)中查看,已經(jīng)把example.net.zone文件下下來(lái)了 。

文章插圖
5、修改DNS服務(wù)器ip地址,測(cè)試dig www.example.net 。

文章插圖
四、緩存服務(wù)器及轉(zhuǎn)發(fā)服務(wù)器
一個(gè)DNS服務(wù)器可以即不是某個(gè)域的master服務(wù)器,也不是某個(gè)域的slave服務(wù)器,一個(gè)服務(wù)器可以不包含任務(wù)域的配置信息,它將接手到所有DNS查詢進(jìn)行遞歸解析,將解析結(jié)果返回給查詢客戶端,并且將查詢結(jié)果緩存下來(lái) , 這樣的DNS服務(wù)器稱之為caching name server 。
通常一個(gè)局域網(wǎng)中配置緩存服務(wù)器是為了加速網(wǎng)絡(luò)訪問(wèn) 。
也可以為緩存服務(wù)器配置一個(gè)上游DNS服務(wù)器地址,緩存服務(wù)器可以給客戶提供一個(gè)上游DNS服務(wù)器的地址,我們可以通過(guò) 以下設(shè)置完成:
在主配置文件中的option中加入:
forwarders { 192.168.0.168;};
還可以通過(guò)一下選項(xiàng)讓服務(wù)器轉(zhuǎn)發(fā)所有DNS查詢到forwarders服務(wù)器:
在主配置文件中的option中加入:
forward only;

文章插圖
到此DNS域名解析搭建教程結(jié)束 , 你學(xué)會(huì)了嗎?
如果你喜歡本文章,請(qǐng)幫忙關(guān)注、轉(zhuǎn)發(fā)、點(diǎn)贊,本人將定期更新一些技術(shù)“干貨”分享給大家 , 希望能幫助大家解決工作中的一些問(wèn)題,謝謝!
下期預(yù)告:
《如何開發(fā)自己的DNS服務(wù)系統(tǒng)》

文章插圖
【如何搭建自己的DNS域名解析服務(wù)器 ?自建域名dns解析服務(wù)器】,
- 教你如何計(jì)算自己的生辰八字 ?怎么算自己的生辰八字
- 如何挑選紅豆?
- 大數(shù)據(jù)時(shí)代如何進(jìn)行輿情分析?
- 智能溫室發(fā)展趨勢(shì)如何
- 如何用空間設(shè)計(jì) ?空間設(shè)計(jì)與品牌賦能
- 被捧上天的10式主戰(zhàn)坦克性能如何 ?99式主戰(zhàn)坦克有多厲害
- 如何才能更好發(fā)展寶寶的觸覺呢?
- 用紅包DIY一個(gè)紅紅火火的新年燈籠 ?如何用紅包制作一個(gè)春節(jié)燈籠
- ?地震如何逃生,住在高層地震怎么逃生?
- 孩子中考成就連個(gè)三百分都沒有,只有兩百多分如何擇校。
