(1)dns介紹
1.基本介紹
名字解析:
NetBIOS名:localhost wins hosts
FQDN:完全限定域名,www.baidu.com
hosts文件:
作用:實現名字解析,主要為本地主機名丶集群節點提供快速解析,集中式數據庫
dns服務器:
作用:實現名字解析(將主機名解析成ip地址),分布式數據庫
2.dns解析流程:客戶端解析www.baidu.com
1)客戶端查詢自己的緩存(windows中的hosts文件也是緩存),如果沒有將查詢發送到/etc/resolv.conf中的dns服務器
2)如果本地DNS服務器對於請求的信息具有權威性,會將權威答案發送到客戶端
3)如果dns服務器在其緩存中有請求信息,則將(非權威答案)發送到客戶端
4)如果緩存中沒有該查詢信息,dns服務器將搜索權威DNS服務器以查找信息
從根區域開始,按照dns層次結構向下搜索,直至對於信息具有權威的名稱服務器,為客戶端獲取答案,dns服務器將信息傳遞給客戶端,並在自己的緩存中保留一個副本
轉發到其它服務器
3.權威服務器和非權威服務器
權威服務器:存儲並提供某個區域的實際數據,例如126.com的DNS服務器,記錄了126.com域中的所有主機的記錄;是權威服務器返回的dns解析結果就是權威服務器返回的結果
master:主dns服務器,包含原始區域的數據
slave:備dns服務器,通過區域傳輸從master服務器獲取區域數據的副本
非權威服務器:不存儲某個區域的實際數據,僅緩存dns服務器,雖然可以提供查詢,但查詢的內容不具有權威性
4.正向區域和反向區域
正向解析:域名解析為ip
反向解析:ip地址解析成域名
(2)配置僅有緩存功能的dns服務器
0.關閉防火牆和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
setenforce 0
1.安裝bind和啟動服務
yum install bind bind-chroot -y
systemctl restart named
systemctl enable named
2.修改配置文件
#vim /etc/named.conf
zone "." IN {
type hint;
file "named.ca"; //根區域,文件在選項directory(var/named)配置的目錄下,全球13台根服務器
};
options {
listen-on port 53 { any; }; //監聽端口在所有ipv4接口上
listen-on-v6 port 53 { any; }; //監聽端口在所有ipv6接口上
directory "/var/named"; //數據庫文件存儲位置
allow-query { any; }; //允許任意主機查詢
forward first; //當客戶端發起查詢,不是自己的區域,首先向forwarders服務器發起查詢
forwarders { 114.114.114.114;114.114.115.115; }; //轉發到上一級的DNS服務器
};
3.語法檢測重啟服務和驗證測試
#named-checkconf /etc/named.conf //檢查主配置文件
#systemctl restart named
說明:當客戶端的dns服務器為這台服務器的時候,如果該配置里面沒有forward參數,默認發起查詢會向根節點發起查詢,全球有13台根服務器;如果配置forward選項,客戶端發起的請求會轉發forward的dns
測試:客戶端dns服務器指向這台服務器,dig www.baidu.com ;然后在dns服務器上tcpdump -i ens33 -nn port 53
(3)配置dns服務器正向區域:dnstest.com
1.主配置文件 :相當於在域名服務商申請域名
#vim /etc/named.conf
options {
directory "/var/named"; //數據庫文件存儲位置
};
zone "testdns.com" IN { //創建域dnstest.com
type master;
file "testdns.com.zone"; //數據文件在/var/named目錄下
};
2.數據庫文件(區域文件),在域名服務提供的頁面上做解析
#vim /var/named/testdns.com.zone
$TTL 600 //設置緩存記錄10分鍾
@ IN SOA @ root( 2018051600 1H 15M 1W 1D) //起始授權記錄,用於指出DNS服務器,必須配置,()里面的內容用於主從復制使用
@ IN NS dns //指區域所授權的主機是ns主機,必須配置
dns IN A 192.168.1.31 //dns服務器本機ip
www 100 IN A 192.168.1.32 //www.testdns.com解析成192.168.1.32
@ IN A 192.168.1.32 //直接對域名進行解析,這里對域名testdns.com解析成192.168.1.32這個ip
說明:緩存時間有三種,優先級最大生效
$TTL 600 //緩存時間10分鍾;優先級中
( 2018051600 1H 15M 1W 1D) //這里1D是緩存時間1天;優先級最低
www 300 IN A 192.168.1.32 //緩存時間5分鍾;優先級最大生效
3.檢測語法和重啟服務
named-checkconf /etc/named.conf //檢查配置文件
named-checkzone testdns.com /var/named/testdns.com.zone //檢查區域數據文件,
systemctl restart named
在客戶端測試:dig www.testdns.com //如果從權威服務器獲取的解析結果,flags標志位有aa記錄
(4)客戶端工具詳解
1.dig(linux工具)
dig www.baidu.com //使用/etc/resolv.conf設置的dns
dig @114.114.114.114 //使用指定的dns
2.host(linux工具)
host www.baidu.com //等同於host -t A www.baidu.com ,正向解析,查詢A記錄
host 114.114.114.114 //反向解析,查詢PTR記錄
host www.baidu.com 114.114.114.114 //使用指定的dns服務器114.114.114.114 解析
host -t SOA baidu.com //查詢某個域的SOA記錄
host -t NS baidu.com //查詢某個域的NS記錄
host -t MX baidu.com //查詢某個域的郵件服務器
3.nslookup(linux/windows工具)
nslookup www.baidu.com
nslookup 114.114.114.114
#nslookup //進入nslookup交互界面
set q=soa //設置查詢soa記錄
baidu.com
set q=a //設置查詢A記錄
www.baidu.com
4.ipconfig(windows工具)
ipconfig /flushdns //清空dns緩存
ipconfig /displaydns //顯示dns緩存信息
ipconfig /release //釋放ipv4地址
ipconfig /renew //更新ipv4地址
(5)配置主從復制
1.從服務器配置
#vim /etc/named.conf
zone "testdns.com" IN {
type slave; //類型從
masters { 192.168.1.32; }; //指定master服務器ip地址
file "slaves/testdns.com.zone"; //數據文件放置在哪里
};
#systemctl restart named
2.主服務器配置
#vim /etc/named.conf
zone "testdns.com" IN {
type master;
file "testdns.com.zone";
allow-transfer { 192.168.1.33; };
};
