DNS
DNS(Domain Name System浸锨,域名系統(tǒng))撞牢,因特網(wǎng)上作為域名和IP地址相互映射的一個分 布式數(shù)據(jù)庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng)臼闻,而不用去記住能夠被機(jī)器直接讀取的IP數(shù) 串读恃。通過主機(jī)名隧膘,最終得到該主機(jī)名對應(yīng)的IP地址的過程叫做域名解析(或主機(jī)名解析)。 DNS協(xié)議運(yùn)行在UDP協(xié)議之上寺惫,使用端口號53疹吃。在RFC文檔中RFC 2181對DNS有規(guī)范說明, RFC 2136對DNS的動態(tài)更新進(jìn)行說明西雀,RFC 2308對DNS查詢的反向緩存進(jìn)行說明互墓。
DNS域名
- 根域
- 一級域名:Top Level Domain: tld,com, edu, mil, gov, net, org, int,arpa 三類:組織域蒋搜、國家域(.cn, .ca, .hk, .tw)、反向域
- 二級域名
- 三級域名
- 最多127級域名
- ICANN(The Internet Corporation for Assigned Names and Numbers)互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu)判莉,負(fù)責(zé)在全球范圍內(nèi)對互聯(lián)網(wǎng)通用頂級域名(gTLD)以及國家和地區(qū)頂級域名(ccTLD)系統(tǒng)的管理豆挽、以及根服務(wù)器系統(tǒng)的管理
-
域名結(jié)構(gòu)如下圖:
cat /var/named/named.ca
查看DNS 13個根(需要先安裝bind)
DNS解析
- 一次完整的查詢請求經(jīng)過的流程:
Client -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名DNS…
- 解析答案:
- 肯定答案:
- 否定答案:請求的條目不存在等原因?qū)е聼o法返回結(jié)果
- 權(quán)威答案:
- 非權(quán)威答案:
相關(guān)配置文件
名字解析,僅本地有效
vi /etc/hosts
ISP的DNS服務(wù)器IP記錄處券盅。
vi /etc/resolv.conf
設(shè)置優(yōu)先選擇使用hosts還是resolv.conf的配置
vi /etc/nsswitch.conf
-
一般來說帮哈,Linux的默認(rèn)主機(jī)名和ip的對應(yīng)解析都是以hosts文件為優(yōu)先,因?yàn)樵趎sswitch.conf里已經(jīng)配置好了锰镀。當(dāng)然你可以選擇更改娘侍,查看nsswitch.conf文件,找到hosts選項(xiàng):
上面files就是使用hosts泳炉,DNS則是使用resolv.conf憾筏,你調(diào)換一下,就可以更改優(yōu)先順序花鹅。
搭建DNS
首先搭建DNS之前需要安裝DNS所需要的軟件氧腰,這里我們使用“BIND”的這個軟件,他是有伯克萊大學(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ù)過多桅打,容易出錯是嗜,可以選擇禁止一些服務(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ī)啟動
systemctl start named
啟動服務(wù)
systemctl enable name
查看端口號是否開啟(53端口號)
ss -nutl
查看ip是否正常叠纷,如果不正常手動修改文本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)括號里改為{ localhost(這是允許本機(jī)連接);加上你要連接的機(jī)器的ip,比如172.16.XX.XXX(這樣你的機(jī)器就可以訪問了)锰蓬;如果你是公司訪問幔睬,就將公司的ip地址段加進(jìn)去;如果你想所有人訪問就加上any;或者直接注釋掉芹扭,在開頭加上#}
(2)然后重新加載配置文件麻顶,
systemctl reload named
上述步驟做完之后,本機(jī)器就已經(jīng)是一個DNS服務(wù)器了舱卡,然后可以將DNS指向自己辅肾,就是剛剛修改配置文件里,添加DNS1=127.0.0.1指向自己轮锥。(127.0.0.1是本機(jī)的意思矫钓,如果是另一臺服務(wù)器,就直接指向DNS服務(wù)器就可以了)
當(dāng)然現(xiàn)在DNS做完了舍杜,很簡單新娜,但是這里是什么都沒有的...后面還要做主從服務(wù)器,子域既绩,view,當(dāng)然還要自己編譯安裝一個DNS概龄,那么下次在寫...bye!