1、DNS基礎知識(先科普一下):數據庫
一、DNS出現的環境:
緩存
TCP/IP協議通訊是基於IP地址的,可是網絡管理員沒法記住那一串串單調的數字。所以你們基本上是經過訪問計算機域名,而後經過 DNS服務器將計算機域名解析爲IP地址來實現的。
服務器
二、什麼是DNS:
網絡
DNS:域名系統(Domain Name System)用於命名組織到域層次結構中的計算機和網絡服務。DNS命名用於TCP/IP網絡中,經過用戶友好的名稱查找計算機。當用戶在應用程序中輸入DNS名稱時,DNS服務能夠將此名稱解析爲與之相關的IP地址。DNS客戶端請求過程爲:本地hosts文件-------緩存--------DNS服務器(逐一查找,那一步有,就不用找下一步了,沒有就按順序查找)。客戶端查詢示例圖:負載均衡
三、DNS域命名空間簡介:
tcp
DNS域命名空間具備層次性的,通常能夠分爲根域、頂級域、二級域、子域以及主機名、其結構以下圖:
ide
(1)、根域:用「.」表示,默認狀況下不須要表示出來,全世界目前有13臺根域服務器,由INIC管理;工具
(2)、頂級域 :位於根域下層,是由三個字母組成的名稱,又可分爲國家或地區名稱和使用機構名稱(國家或地區名如:.cn,.hk,.tw,.jp等);
性能
(3)、二級域:位於頂級域下面,是在Internet上使用而註冊的域名,能夠自定(但前提是沒被別人使用);
測試
(4)、子域 :是按公司或組織的具體狀況而從已註冊到的我的或組織的域名中按部門或地理位置建立,位於二級域下面;
(5)、主機名:位於DNS域命名空間的最低層,主要是的位於Internet或公司及組織內部的計算機主機名。
四、DNS服務器類型:
根據管理的DNS區域不一樣,DNS服務也有不一樣的類型。一臺DNS服務器能夠同時管理多個區域,所以也能夠同時屬於多種DNS服務器類型。目前在企業網絡部署環境中主要有如下四類:
(1)、主DNS服務器:
當DNS服務器管理主要區域時,被稱之爲主DNS服務器,它是主要區域中的集中更新源;它的區域數據存放在本地文件中,只有本身才有寫權限。當主DNS服務器出現故障時,從服務器(只讀取主DNS服務的數據沒有寫主DNS服務器的權限)能夠指定過時時間到達以前應答DNS客戶端的請求。
(2)、從DNS服務器:
通常在DNS服務器針對實際使用中總建議至少使用兩臺,目的有兩點:一是在同一個區域能夠實現負載均衡,下降主DNS服務器的負載,同時提升性能。其次,當主DNS服務出現故障時,從DNS服務經過與主DNS服務器「複製操做」的實施方式(從DNS服務器對主DNS讀取數據進行更新區域數據),爲客戶端口DNS解析請求提供答覆(但要在指定過時時間以前)。
(3)、緩存DNS服務器:
即沒有管理任區域的DNS服務器,也不會像從DNS器同樣產生區域複製操做,它只是緩存名稱而且使用緩存信息來應答DNS客戶端的解析請求。剛安裝好的DNS服務器默認就是一臺緩存服務器,能夠用來減小DNS客戶端訪問外部DNS的網流流量,下降解析時間(目前應用普遍)。
(4)、轉發DNS服務器:
轉發DNS服務器容許當本地DNS服務器沒法對DNS客戶端的解析請求進行本地解析時,轉發DNS客戶端發送的解析請求到上游DNS服務器。此時,本地DNS服務器又稱爲轉發服務器,而上游DNS服務器又稱爲轉發器。
在Linux系統還提供了條件轉發功能,能夠針對不一樣的域名請求轉發到不一樣的轉發器(上游DNS服務器)。
五、DNS解析類型:
在部署一臺DNS服務器時,必須先考慮到DNS解析類型,以此來決定DNS服務器類型,DNS解析類型能夠分爲如下兩類:
(1)、正向查找解析:getipbyhostname
用於域名到IP地址,當DNS客戶端請求解析某個域名時,DNS服務器經過正向查找,返回給對應的IP給請求的DNS客戶端。
(2)、反向查找解析:gethostnamebyip
用於IP地址到域名,當DNS客戶端請求解析某個IP時,DNS服務器經過反向查找,返回給對應的域名給請求的DNS客戶端。
2、用到的DNS服務器軟件包及相關工具(Linux系統下)
一、所需程序包:
bind-libs:被bind和bind-utils包的程序共同用到的庫文件
bind-utils:bind客戶端程序集,例如dig,host,nslookup等;
bind:提供的dns server程序,解析器庫文件以及幾個經常使用的測試程序
bind-chroot:選裝,在互聯網上使用時,建議安裝----讓named運行在jail模式下(沙箱模式)
二、配置文件位置:
主配置文件:/etc/named.conf
區域數據文件:/var/named/ZONE_FILE.ZONE(正向)
:/var/named/ZONE_FILE.ZONE(反向)
三、所用到的工具:
語法測試工具:檢查配置文件語法錯誤
:named-checkconf;測試主配置文件
:named-checkzone;測試區域數據文件
測試工具:dig 、host、nslookup
rndc命令:named服務控制命令
:rndc reload;重載區域配件文件
:rndc status;查看服務狀態
:rndc flush;清除服務緩存
端口開放及防火牆添加:53/tcp/udp 953/tcp
:iptabls
:firewall-cmd
舒適提示:測試時千萬要注意時間同步問題,不然會出現讓你想不到的錯誤
ntpdate 172.16.0.1(可用計劃任務自動同步時間,但是其餘時間服務器地址)
3、配置文件格式:
一、全局(主)配置文件:/etc/named.conf
全局配置段:
options {………}
日誌配置段:
logging {………}
區域配置段:
zone {………}
二、區域數據庫文件:(資源記錄或解析庫文件):Resource Record,簡稱rr:
記錄類型:A,AAA,PTR,SOA,NS,CNAME,MX
SOA:Start of Authority,起始受權記錄;一個區域解析庫有且只能有一個SOA記錄,並且必須放在第一條。
NS:Name Service,域名服務記錄;一個區域解析庫能夠有多個NS記錄;其中一個爲主的; A:Address,地址記錄,從FQDN解析爲IP地址的記錄(IPv4)。
AAAA:地址記錄,從FQDN解析爲IP地址的記錄(IPv4)一個主機能夠有多個IP(實現輪巡服務),一個IP也能夠有多個IP。
CNAME:Canonical Name,別名記錄。
PTR:Pointer,從IP解析到FQDN。
MX:Mail exchanger,郵件交換器(標記郵件服務器的)可有多個,但有優先級的概念
優先級:0-99,數字越小優先級越高:
例如(SOA):aaa.com. 86400 IN SOA aaa.com. admin.aaa.com. ( 2017010801; serial 序列號
2H ;refresh 刷新時間
10M ;retry 重試時間
10W ;expire 過時時長
1D ;negative answer ttl 答案緩存時長
)
三、配置解析一個正向區域:
以aaa.com域爲例:
(1)、定義區域
在主配置文件中或主配置文件輔助配置文件中實現
zone "ZONE_NAME"
(2)、創建區域數據文件(主要記錄爲A或AAAA記錄)
在/var/named目錄下創建 區域數據文件;文件爲:/var/named/aaa.com.zone 後面的文件名爲自建的
權限及屬組修改
chgrp named /var/named/aaa.com.zone
檢查語法錯誤:
named-checkzone ZONE_NAME ZONE_FILE
named-checkconf
(3)、讓服務器重載配置文件和區域數據文件
rndc reload或者systemctl reload named.service
四、配置解析一個反區域:
示例:區域名稱38.16.172.in-addr.arpa爲例:
(1)、定義區域
主配置文件中或主配置文件輔助配置文件中實現
zone "ZONE_NAME"
注意:反向區域的名字
反寫的網段地址:.in-addr.arpa
38.16.172.in-addr.arpa
(2)、創建區域數據文件
在/var/named目錄下創建 區域數據文件;文件爲:/var/named/38.16.172.zone 後面的文件名爲自建的 權限及屬組修改
chgrp named /var/named/38.16.172.zone
chmod o= /var/named/38.16.172.zone
檢查語法錯誤:
named-checkzone ZONE_NAME ZONE_FILE
named-checkconf
(3)、讓服務器重載配置文件和區域數據文件
rndc reload或者systemctl reload named.service
上面囉嗦了半天,你們累了,來看點輕鬆愉快的。。。。。。。。。。。。。。。。。
4、架設DNS服務器實戰
安裝說明及服務器之間關係:
主DNS服務器-----CentOS 7.1
域解析 ns :
_IP:172.16.38.100
本地區域:aaa.com
主 機:www
從DNS服務器----CentOS 6.7
域解析 ns1:
_IP:172.168.38.200
本地區域:aaa.com
子域DNS服務器---CentOS 6.7
域解析 ns2:
本地區域:gayj.aaa.com
主 機:www
全局轉發:直接在子域主配置中設置轉發
架設安裝正式開始。。。。。。
(一)、主DNS服務器
系統CentOS 7.一、 域解析ns : IP:172.16.38.100 本地區域:aaa.com, 主 機:www
1、先檢測是否已經安裝:
2、開始安裝
3、設置開機啓動及開放端口和添加防火牆
設置開機啓動
添加防火牆端口 53/tcp/udp 一樣方法添加953
查看防火牆配置結果
4、查看服務運行情況
5、區域配置文件:/etc/named.conf
options 全局配置字段修改以下-------172.16.38.100的53號端口做爲主DNS監聽端口
注:下面allow-query是註釋了的,否則只能本地解析
zone區域配置段新添加兩段-------主DNS正向區域和反向區域
測試配置文件有沒有語法錯誤------沒返回值就說明正常
6、建立並配置區域數據文件:
/var/named/aaa.com.zone
正向區域數據文件------注意後面三段:ns爲主服務器自身配置,ns1爲從服務配置,ns2爲子域受權
對文件進行語法檢查
/var/named/aaa.com.zone
反向區域數據文件------注意後面三段:ns爲主服務器自身配置,ns1爲從服務配置
對文件進行語法檢查
7、更改/var/named/172.16.38.zone和/var/named/aaa.com.zone的屬組爲named
8、重載配置文件和服務
9、解析測試
正向測試:
若是測試主DNS本身主機出現下面情況,請用rndc flush清除DNS緩存
清除DNS緩存
從新解析主DNS主機
正向解析ftp.aaa.com
反向解析測試
主DNS自身反向解析(主要針對內部區域使用)
(二)、從DNS服務器
系統CentOS 6.7 域解析ns1 : IP:172.16.38.200 本地區域:aaa.com, 主 機:www
1、先檢測是否已經安裝:
2、開始安裝
3、設置開機啓動及防火牆
chkconfig --list named
添加防火牆
保存防火牆規則
查看防火牆狀態
4、查看DNS服務狀態
5、區域配置文件:/etc/named.conf(從服務通常只配置這個文件)
options 全局配置字段修改以下-------172.16.38.200的53號端口做爲從DNS監聽端口
zone區域配置段新添加兩段-------從DNS正向區域和反向區域
測試配置文件有沒有語法錯誤------沒返回值就說明正常
6、重載區域配置文件和服務
7、解析測試
正向解析主DNS上的主機到IP
反向解析主DNS上的IP到主DNS的主機
正向解析互聯網上的主機到IP
(三)、子域受權
系統CentOS 6.7 域解析ns2 : IP:172.16.38.8 本地區域:gayj.aaa.com, 主 機:www
1、先檢測是否已經安裝:
2、開始安裝
3、設置開機啓動及防火牆
chkconfig --list named
添加防火牆
保存防火牆規則
查看防火牆狀態
4、查看DNS服務狀態
5、區域配置文件:/etc/named.conf(從服務通常只配置這個文件)
options 全局配置字段修改以下-------172.16.38.8的53號端口做爲從DNS監聽端口
zone區域配置段新添加一段-------子域DNS正向區域
測試配置文件有沒有語法錯誤------沒返回值就說明正常
6、配置子域的區域數據文件:/var/named/gayj.aaa.com.zone
檢查語法錯誤
7、重載區域配置文件和服務
8、解析測試
利用主DNS正向解析解析到本身區域名主機
利用從DNS正向解析到本身區域名主機
正向解析互聯網上的主機到IP
(四)、全局定向轉發
直接在子域中實施,由於子域不能解析主DNS的主機區域到IP
1、在子域全局文件配置就行(注意CentOS7與CentOS配置方法區別在於{}和;)下圖爲CentOS6
2、測試語法錯誤
3、重載全局配置文件
4、用子域解析主DNS的主機區域
東西太多,若有點小錯請指正。