一、學習路線如下
二、DNS介紹
1.域名的概念
域名由特定的格式組成,用來表示互聯網中某一台計算機或者計算機組的名稱,能夠使人更方便的訪問互聯網,而不用記住能夠被機器直接讀取的IP地址。
2.DNS(domain name system ) 域名解析服務
域名解析是把域名指向網站IP,人們通過注冊的域名可以方便地訪問到網站的一種服務。IP地址是網絡上標識站點的數字地址,為了方便記憶,采用域名來代替IP地址標識站點地址。域名解析就是域名到IP地址的轉換過程。域名的解析工作由DNS服務器完成。
3.域的構成
1.根域.(root)
在整個DNS系統的上方一定是’.’這個服務器,也稱根服務器。全球共有13台。
2.一級域名、頂級域、國家域
例如com、edu、cn
3.二級域名
例如qq.com baidu.com
三、DNS工作原理
1.遞歸查詢
遞歸查詢是最常見的查詢方式,域名服務器將代替提出請求的客戶機(下級DNS服務器)進行域名查詢,若域名服務器不能直接回答,則域名服務器會在域各樹中的各分支的上下進行遞歸查詢,最終將返回查詢結果給客戶機,在域名服務器查詢期間,客戶機將完全處於等待狀態。
2.迭代查詢
迭代查詢又稱重指引,當服務器使用迭代查詢時能使其他服務器返回一個最佳的查詢點提示或主機地址,若此最佳的查詢點中包含需要查詢的主機地址,則返回主機地址信息,若此時服務器不能夠直接查詢到主機地址,則是按照提示的指引依次查詢,直到服務器給出的提示中包含所需要查詢的主機地址為止,一般每次指引都會更靠近根服務器(向上),查尋到根域名服務器后,則會再次根據提示向下查找。
3.DNS工作原理
如果DNS詢問一次得到了結果,那么屬於遞歸查詢;若果詢問多次得到了結果,那么屬於迭代查詢。
NDS工作方式是一次遞歸,多次迭代
四、Linux下配置DNS服務的軟件和相關配置文件
1.DNS默認使用的端口是tcp/53(主從之間的數據傳輸),udp/53(域名解析)
2.Lin使用的是DNS軟件是:bind
相關的配置文件如下:
/etc/logrotate.d/named 日志輪轉文件 /etc/named 配置文件的主目錄 /etc/named.conf 主配置文件 /etc/named.rfc1912.zones zone文件,定義域 /etc/rc.d/init.d/named 啟動腳本 /usr/sbin/named 二進制命令 /usr/sbin/named-checkconf 檢查配置文件的命令 named.conf和named.rfc1912.zones /usr/sbin/named-checkzone 檢查區域文件的命令,區域文件自己創建 /var/log/named.log 日志文件 /var/named 數據文件的主目錄 /var/named/data /var/named/named.ca 根域服務器 /var/named/named.empty /var/named/named.localhost 正向解析區域文件的模板 /var/named/named.loopback 反向解析區域文件的模板 /var/named/slaves 從dns服務器下載文件的默認路徑 /var/run/named 進程文件
五、實驗之配置DNS正反向解析
1.實驗要求
配置本地DNS服務器,實現本地通過域名訪問到web服務器
2.任務分析
需要三台服務器,一台配置為web服務器,一台配置為DNS服務器,一台服務器作為測試機
3.實驗環境介紹
web服務器IP:192.168.189.128 主機名:web ,已開啟web服務
DNS服務器IP:192.168.189.132 主機名:DNS, 沒有安裝bind服務
測試機IP:192.168.189.129 主機名:test
4.實驗具體步驟
DNS服務器端進行配置:
[root@DNS ~]# yum install bind ………… 已安裝: bind.x86_64 32:9.8.2-0.62.rc1.el6 完畢!
[root@DNS ~]# vim /etc/named.conf //修改主配置文件 ………… options { listen-on port 53 { 127.0.0.1;any; }; //定義監聽方式,any代表全網監聽 listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost;any; }; //允許任何人查詢 recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; };
[root@DNS ~]# vim /etc/named.rfc1912.zones //定義DNS管理哪些域 //在文件里追加如下內容 zone "web.jiangfeng" IN { type master; file "web.jiangfeng"; allow-update { none; }; }; zone "189.168.192.in-addr.arpa" IN { type master; file "189.168.192"; allow-update { none; };
[root@DNS named]# tail /etc/named.rfc1912.zones zone "web.jiangfeng" IN { type master; file "web.jiangfeng.zone"; allow-update { none; }; }; zone "189.168.192" IN { type master; file "189.168.192.zone"; allow-update { none; }; }; [root@DNS named]# cp -p named.localhost web.jiangfeng //復制模板文件時文件的屬主屬組也要一致 [root@DNS named]# cp -p named.loopback 189.168.192 [root@DNS named]# ll 總用量 36 -rw-r----- 1 root named 168 12月 15 2009 189.168.192.zone drwxrwx--- 2 named named 4096 3月 23 2017 data drwxrwx--- 2 named named 4096 3月 23 2017 dynamic -rw-r----- 1 root named 3171 1月 11 2016 named.ca -rw-r----- 1 root named 152 12月 15 2009 named.empty -rw-r----- 1 root named 152 6月 21 2007 named.localhost -rw-r----- 1 root named 168 12月 15 2009 named.loopback drwxrwx--- 2 named named 4096 3月 23 2017 slaves -rw-r----- 1 root named 152 6月 21 2007 web.jiangfeng.zone
修改相應的區域文件(正向和反向)
[root@DNS named]# vim web.jiangfeng.zone $TTL 1D @ IN SOA web.jiangfeng. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.web.jiangfeng. dns A 192.168.189.132 www A 192.168.189.128
[root@DNS named]# vim 189.168.192.zone $TTL 1D @ IN SOA web.jiangfeng. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.web.jiangfeng. 128 PTR www.web.jiangfeng.
編寫好配置文件后,可以使用命令檢查文件的語法是否正確
[root@DNS named]# named-checkconf /etc/named.conf [root@DNS named]# named-checkconf /etc/named.rfc1912.zones [root@DNS named]# named-checkzone web.jiangfeng.zone web.jiangfeng.zone zone web.jiangfeng.zone/IN: loaded serial 0 OK [root@DNS named]# named-checkzone 189.168.192.zone 189.168.192.zone zone 189.168.192.zone/IN: loaded serial 0 OK
啟動服務
[root@DNS named]# service named start
啟動 named: [確定]
在測試機上進行驗證
[root@test ~]# vim /etc/resolv.conf nameserver 192.168.189.132 [root@test ~]# nslookup 192.168.189.128 Server: 192.168.189.132 Address: 192.168.189.132#53 128.189.168.192.in-addr.arpa name = www.web.jiangfeng. [root@test ~]# nslookup www.web.jiangfeng Server: 192.168.189.132 Address: 192.168.189.132#53 Name: www.web.jiangfeng Address: 192.168.189.128
六、實驗之主從DNS搭建
大前提兩台服務器時間必須保持一致,最好具有(軟硬件)高同步性。
1.實驗要求
一台服務器為master,另一台服務器為slave,實現slave同步master上的區域文件。
3.實驗環境介紹
master服務器IP:192.168.189.132
slave服務器IP:192.168.189.129
兩台服務器時間不准確
4.實驗具體步驟
1)同步時間
//安裝xinetd軟件 yum install -y xinetd //修改相應配置文件 vim /etc/xinetd.d/time-stream disable = no vim /etc/xinetd.d/time-dgram disable = no //啟動服務 [root@master ~]# service xinetd restart 停止 xinetd: [失敗] 正在啟動 xinetd: [確定] 查看端口是否監聽 [root@master ~]# netstat -nltup|grep 37 tcp 0 0 :::37 :::* LISTEN 3268/xinetd udp 0 0 0.0.0.0:68 0.0.0.0:* 1337/dhclient udp 0 0 :::37 :::* 3268/xinetd service端同步時間 [root@master ~]# rdate -s time.nist.gov [root@master ~]# date 2019年 07月 24日 星期三 16:23:49 CST //客戶端同步時間,可制定定時任務 [root@slave ~]# yum install rdate -y [root@slave ~]# rdate -s 192.168.189.132 [root@slave ~]# date 2019年 07月 24日 星期三 16:24:29 CST
2)bind相關的配置
在master上的配置 [root@master ~]# vim /etc/named.conf options { listen-on port 53 { 127.0.0.1;any; }; allow-transfer {192.168.189.129;}; 添加這行的意義是允許哪個slave來同步下載區域文件 listen-on-v6 port 53 { ::1; }; …………
在slave上的配置 [root@slave ~]# yum install -y bind [root@slave ~]# vim /etc/named.conf ………… options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1;any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost;any; }; ………… [root@slave ~]# vim /etc/named.rfc1912.zones //加入如下內容 zone "web.jiangfeng" IN { type slave; file "slaves/web.jiangfeng.zone"; allow-update { none; }; masters {192.168.189.132;}; }; zone "189.168.192.in-addr.arpa" IN { type slave; file "slaves/189.168.192.zone"; allow-update { none; }; masters {192.168.189.132;}; };
5.測試
[root@slave ~]# service named start 啟動 named: [確定] [root@slave named]# ll /var/named/slaves/ 總用量 8 -rw-r--r-- 1 named named 344 7月 24 16:36 189.168.192.zone -rw-r--r-- 1 named named 342 7月 24 16:36 web.jiangfeng.zone
注:/var/named/slaves下的文件是通過主從DNS自動同步的