前言:DNS,耳熟能詳的東西,內容太多,小編也不太好講清,只能寫幾個實驗詳解,供大家參考。 一、簡單介紹 1、DNS:通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。 埠號:53/udp, 53/tcp 2、等級 根域 :世界有13個ip地址管理,有10個在美國,1個 ...
前言:DNS,耳熟能詳的東西,內容太多,小編也不太好講清,只能寫幾個實驗詳解,供大家參考。
一、簡單介紹
1、DNS:通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。
埠號:53/udp, 53/tcp
2、等級
根域 :世界有13個ip地址管理,有10個在美國,1個在日本,3個在歐洲,荷蘭,瑞典
一級功能變數名稱:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三類:組織域、國家域(.cn, .ca, .hk, .tw)、反向域
3、DNS伺服器類型
從DNS 伺服器:從主伺服器或從伺服器"複製"(區域傳輸)解析庫副本
4、資源記錄
SOA :Start Of Authority ,起始授權記錄;一個區域解析庫有且僅能有一個SOA 記錄,必須位於解析庫的第一條記錄,同步主從數據
A :internet Address ,作用,FQDN --> IP(名字到ip)
PTR: PoinTeR ,IP --> FQDN 全稱功能變數名稱(ip到名字)
NS: Name Server ,專用於標明當前區域的DNS 伺服器,誰是域的伺服器
5、資源記錄定義的格式:(5項,如果下一條和上一天一樣,可以繼承)
語法:name [TTL(緩存生存期)] IN rr_type value (5列)
(1) TTL 可從全局繼承 (緩存生存期),例:$TTL 1D 一天 設為變數,下邊全部使用
(2) @ 可用於引用當前區域的名字,因為有特殊含義,所以後邊不能用,例如郵箱.
(3) 同一個名字可以通過多條記錄定義多個不同的值;此時DNS 伺服器會以輪詢方式響應
(4) 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義;此僅表示通過多個不同的名字可以找到同一個主機
二、BIND安裝及named服務的介紹
DNS的實現就是named服務,named服務需要安裝bind包
1、BIND 的安裝配置:yum install bind -y
2、主配置文件:/etc/named.conf
區域定義:本機能夠為哪些zone 進行解析,就要定義哪些zone
zone "ZONE_NAME" IN {}; 資料庫文件最好不寫在這個主配置文件,寫在/etc/named.rfc1912.zones中
原理:就是在配置文件中設置區域定義zone,然後在zone指定的文件中建立資料庫,這些文件都放在/var/named下
3、options {};需要改的4個地方
① listen-on port 53 { 127.0.0.1; }; 埠上只綁定自己ip
改為:listen-on port 53 { localhost; }; 或 // 註釋掉
② allow-query { localhost; }; 只允許自己訪問
改為:allow-query { any; };也可以不用any,公司內部允許哪些就加哪些,或 // 註釋掉
③ allow-transfer 是安全策略,為了防止任何人傳輸下載自己的dns信息,只允許自己的從dns同步
改為:allow-transfer { 允許傳輸的ip;};
④ 緩存名稱伺服器的配置:dnssec: 建議關閉dnssec ,設為no,影響委派和轉發
dnssec-enable no;
dnssec-validation no;
三、測試命令及rndc命令
dig [-t type] name [@SERVER] [query options]
dig 只用於測試dns 系統,不會查詢hosts 文件進行解析
+[no]trace程 :跟蹤解析過程 : dig +trace magedu.com
+[no]recurse :進行遞歸解析
測試反向解析:dig -x IP = dig -t ptr reverseip.in-addr.arpa
模擬區域傳送:
dig -t axfr ZONE_NAME @SERVER 抓區域資料庫,可以被allow-transfer { 192.168.30.106;}; 防止
dig -t axfr magedu.com @10.10.10.11
dig -t axfr 100.1.10.in-addr.arpa @172.16.1.1
dig -t NS . @114.114.114.114 測試郵件記錄
dig -t NS . @a.root-servers.net 查根的伺服器,13個
host -t NS magedu.com 172.16.0.1
3、nslookup: (windows和linux都有這個命令)
命令: nslookup [-option] [name | -] [server]
nslookup>
server IP: 指明使用哪個DNS server 進行查詢
set q=RR_TYPE: 指明查詢的資源記錄類型
NAME: 要查詢的名稱
rndc --> rndc (953/tcp)
rndc COMMAND
retransfer zonename: 手動啟動 區域傳送, 而不管序列號是否增加
notify zonename: 重新對區域傳送發通知,當主從同步過程發生意外時,
querylog: 開啟或關閉查詢日誌文件/var/log/message(預設不啟用日誌),排錯的時候才開啟,要不訪問一條加一條記錄,量太大了;關閉,執行同樣的命令
tail -f /var/log/messages 動態查詢日誌
trace LEVEL: 指定使用的級別,日誌級別,日誌的詳細程度
實驗:
實驗一:建立正向解析資料庫,實現域的解析,如:magedu.com
systemctl start named centos 7開啟服務
service named start centos 6開啟服務
listen-on port 53 { localhost; };
3、vim /etc/named.rfc1912.zones(最好在這個文件中修改,也可在/etc/named.conf總配置文件中修改)
4、vim /var/named/magedu.com.zone 建立修改資料庫文件(這個文件名一定要和上邊的對應,可以自己寫,也可以複製模板)
@ IN SOA dns1 mail.magedu.com. ( 2017100901 ; serial
下麵都是記錄的例子:
[websrv A 192.168.37.107] 可以加多個,訪問時隨機,平衡負載
$GENERATE 1-100 server$ A 1.1.1.$
@ A 192.168.30.102 解決前面不輸入東西的問題,例:mage.com
* A 192.168.30.101 泛功能變數名稱解析,電商前面輸錯了ww.taobao.com,也能進淘寶網頁
註意:chgrp named /var/named/magedu.com.zone 如果不是cp -p 模板的,要註意修改許可權
named-checkzone magedu.com /var/named/magedu.com.zone 檢查這個資料庫文件有沒有錯
dig websrv.magedu.com @192.168.30.107
dig -t mx magedu.com @192.168.30.107 檢查郵件記錄
host adaf23.magedu.com 192.168.30.107 檢測泛功能變數名稱記錄
dig magedu.com @192.168.30.107
實驗二:建立反向解析資料庫(配置文件中都有例子)
3、vim /etc/named.rfc1912.zones
zone "30.168.192.in-addr.arpa" IN { (倒過來寫,反過來讀)
4、vim /var/named/192.168.30.zone
@ IN SOA dns1 rname.invalid. (
100.30.168.192.in-addr.arpa. PTR dbsrv
實驗三:建立主從伺服器
listen-on port 53 { localhost; };
listen-on port 53 { localhost; };
2、vim /etc/named.rfc1912.zones
file "slaves/magedu.com.zone.slave";
3、vim /var/named/magedu.com.zone
從:不用創建這個文件,重新載入數據會在/var/named/slaves 自動生成一個文件,內容和主dns一樣
dig www.magedu.com @192.168.30.106
實驗四:建立子域
子域訪問量不大,主dns可以幫它管理,在主資料庫加一條A記錄,實際不是建立子域,只是用戶當做子域
listen-on port 53 { localhost; };
3、vim /var/named/magedu.com.zone
5、檢測 dig www.henan.magedu.com @192.168.30.107
(2)在自己的建立獨機器上立的域,當子域
3、vim /var/named/henan.magedu.com.zone 複製模板,自己寫都行
cp -p /var/named/magedu.com.zone /var/named/henan.magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
2、vim /var/named/magedu.com.zone
在另一個機器6上:子域主機創建henan.magedu.com的master區域
4、vim /etc/named.rfc1912.zones
5、vim /var/named/henan.magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
7、檢測 dig www.henan.magedu.com @192.168.30.107 因為是委派,所以直接測107
實驗五:伺服器轉發
原理:要訪問www.qq.com,beijing的dns伺服器給zhengzhou、shanghai轉發
1、vim /etc/named.rfc1912.zones
2、vim /var/named/qq.com.zone 自己寫(改許可權)或cp -p一個模板
@ IN SOA dns1 mail.magedu.com. (
named-checkconf 寫完可以檢測總配置文件的語法
dig www.qq.com @192.168.30.107
dig www.baidu.com @192.168.30.107 only的情況下,如果6的資料庫沒有記錄,就不再詢問根;first的情況下,如果6的資料庫沒有記錄,7自己去詢問根
實驗六:包含子域、主從、委派的模擬dns整個過程的實驗
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
listen-on port 53 { localhost; };
allow-transfer { 192.168.30.103;};
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
② vim /etc/named.rfc1912.zones 資料庫配置文件
③ vim /var/named/magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
dig www.magedu.com @192.168.30.107
allow-transfer { none;}; 為了安全,不允許任何人傳輸信息
② vim /etc/named.rfc1912.zones
file "slaves/magedu.com.zone";
dig www.magedu.com @192.168.30.103
3、102 com:是被根委派,委派magedu的主107、從103
② vim /etc/named.rfc1912.zones
@ IN SOA dns1 rname.invalid. (
dig www.magedu.com @192.168.30.102
4、101 根:委派com
@ IN SOA dns1 rname.invalid. (
dig www.magedu.com @192.168.30.101
5、104 第一個dns伺服器:委派
② vim /var/named/named.ca 修改根伺服器資料庫
A.ROOT-SERVERS.NET. 3600000 A 192.168.30.101
dig www.magedu.com @192.168.30.104
實驗七:智能dns
原理:ACL的實現,和view視圖來匹配acl中的設置和zone資料庫信息
1、vim /etc/named.conf 在總配置文件中,加2條acl設置,acl設置要
2、vim /etc/named.conf 還是在主配置文件中,設置view關聯:acl和zone區域
方法二:在主配置文件中指向/etc/named.rfc1912.zones中,在這個文件中設置zone資料庫
zone "." IN { //加個根zone,是為了能訪問外網
include "/etc/named.rfc1912.zones.beijing";
zone "." IN { //加個根zone,是為了能訪問外網
view otherview { //加一個other,不在那兩個view的也要能訪問
include "/etc/named.rfc1912.zones";
vim /etc/named.rfc1912.zones.beijing
file "magedu.com.zone.beijing";
4、在資料庫中隨便配置點設置,為了試驗測試結果明顯,可以把三個解析的地址寫為不同的
vim /var/named/magedu.com.zone
vim /var/named/magedu.com.zone.henan
vim /var/named/magedu.com.zone.beijing
@ IN SOA dns1 mail.magedu.com. (
dig www.magedu.com @192.168.30.107 測試henan
dig www.magedu.com @172.17.252.107 測試beijing
dig www.magedu.com @127.0.0.1 測試other
實驗有點多,中間也會有很多錯誤,如果有什麼不懂可以留言~