DNS
DNS(Domain Name System,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分 布式數(shù)據(jù)庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù) 串。通過主機(jī)名,最終得到該主機(jī)名對(duì)應(yīng)的IP地址的過程叫做域名解析(或主機(jī)名解析)。 DNS協(xié)議運(yùn)行在UDP協(xié)議之上,使用端口號(hào)53。在RFC文檔中RFC 2181對(duì)DNS有規(guī)范說明, RFC 2136對(duì)DNS的動(dòng)態(tài)更新進(jìn)行說明,RFC 2308對(duì)DNS查詢的反向緩存進(jìn)行說明。
DNS域名
- 根域
- 一級(jí)域名:Top Level Domain: tld,com, edu, mil, gov, net, org, int,arpa 三類:組織域、國家域(.cn, .ca, .hk, .tw)、反向域
- 二級(jí)域名
- 三級(jí)域名
- 最多127級(jí)域名
- ICANN(The Internet Corporation for Assigned Names and Numbers)互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu),負(fù)責(zé)在全球范圍內(nèi)對(duì)互聯(lián)網(wǎng)通用頂級(jí)域名(gTLD)以及國家和地區(qū)頂級(jí)域名(ccTLD)系統(tǒng)的管理、以及根服務(wù)器系統(tǒng)的管理
-
域名結(jié)構(gòu)如下圖:
DNS1.png
cat /var/named/named.ca
查看DNS 13個(gè)根(需要先安裝bind)
DNS解析
- 一次完整的查詢請(qǐng)求經(jīng)過的流程:
Client -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級(jí)域名DNS-->二級(jí)域名DNS…
- 解析答案:
- 肯定答案:
- 否定答案:請(qǐng)求的條目不存在等原因?qū)е聼o法返回結(jié)果
- 權(quán)威答案:
- 非權(quán)威答案:
相關(guān)配置文件
名字解析,僅本地有效
vi /etc/hostsISP的DNS服務(wù)器IP記錄處。
vi /etc/resolv.conf設(shè)置優(yōu)先選擇使用hosts還是resolv.conf的配置
vi /etc/nsswitch.conf-
一般來說,Linux的默認(rèn)主機(jī)名和ip的對(duì)應(yīng)解析都是以hosts文件為優(yōu)先,因?yàn)樵趎sswitch.conf里已經(jīng)配置好了。當(dāng)然你可以選擇更改,查看nsswitch.conf文件,找到hosts選項(xiàng):
DNS2.png
上面files就是使用hosts,DNS則是使用resolv.conf,你調(diào)換一下,就可以更改優(yōu)先順序。
搭建DNS
首先搭建DNS之前需要安裝DNS所需要的軟件,這里我們使用“BIND”的這個(gè)軟件,他是有伯克萊大學(xué)發(fā)展出來的,全名為“Berkeley Internet Name Domain”,首先查詢是否安裝bind包。
- BIND的安裝配置
dns服務(wù)程序包:bind
程序名:named
程序包:yum list all bind*
1. bind:服務(wù)器
2. bind-libs:相關(guān)庫
3. bind-utils:客戶端
4. bind-chroot:/var/named/chroot/ 默認(rèn)將根鎖在/var/named/chroot目錄中
安裝bind
查詢是否安裝bind包
rpm -qa | grep '^bind'查看安裝包信息
yum info bind安裝bind包
yum install bind查看當(dāng)前文件包的文件列表(配置文件,數(shù)據(jù)庫,日志,服務(wù)器軟件,等...)
rpm -ql bind測試環(huán)境下,如果服務(wù)過多,容易出錯(cuò),可以選擇禁止一些服務(wù),關(guān)閉防火墻
(1)getenforce
顯示Enforcing
(2)vim /etc/selinux/config
修改禁用服務(wù):
SELINUX=permissive
SELINUXTYPE=targeted

(3)setenforce 0
重啟生效
(4)iptables -vnL
查看防火墻
(5)systemctl disable firewalld
(6)systemctl stop firewlld
關(guān)閉防火墻,清空
設(shè)置開機(jī)啟動(dòng)
systemctl start named啟動(dòng)服務(wù)
systemctl enable name查看端口號(hào)是否開啟(53端口號(hào))
ss -nutl查看ip是否正常,如果不正常手動(dòng)修改文本ip(正常忽略)
cdnet | vim ifcfg-eth1
(1)測試拼包,檢查能否訪問網(wǎng)絡(luò)
ping www.baidu.com
(2)備份配置文件
cp -p /etc/named.conf{,.bak}
(3)修改配置文件
vi /etc/named.conf

將127.0.0.1;后面加上自己的Ip地址,或則嫌麻煩直接改成localhost;就可以了,localhost是機(jī)器里的關(guān)鍵字,代表機(jī)器所有ip。
將allow-query這一項(xiàng)括號(hào)里改為{ localhost(這是允許本機(jī)連接);加上你要連接的機(jī)器的ip,比如172.16.XX.XXX(這樣你的機(jī)器就可以訪問了);如果你是公司訪問,就將公司的ip地址段加進(jìn)去;如果你想所有人訪問就加上any;或者直接注釋掉,在開頭加上#}
(2)然后重新加載配置文件,
systemctl reload named
上述步驟做完之后,本機(jī)器就已經(jīng)是一個(gè)DNS服務(wù)器了,然后可以將DNS指向自己,就是剛剛修改配置文件里,添加DNS1=127.0.0.1指向自己。(127.0.0.1是本機(jī)的意思,如果是另一臺(tái)服務(wù)器,就直接指向DNS服務(wù)器就可以了)
當(dāng)然現(xiàn)在DNS做完了,很簡單,但是這里是什么都沒有的...后面還要做主從服務(wù)器,子域,view,當(dāng)然還要自己編譯安裝一個(gè)DNS,那么下次在寫...bye!

