DNS服務介紹:
DNS(domain name system): 域名系統 , 記錄的是域名 和 IP的對應關係 , 實現將域名解析成IP , IP解析成域名 .
正向解析 : 實現將域名解析成IP
反向解析 : 實現將IP解析成域名
DNS服務器的身份:
1. 主DNS服務器(master): DNS系統中用來記錄域名和IP地址對應關係(資源配置文件)的權威服務。
2. 輔助DNS服務器(slave備):輔助DNS服務器上的資源配置文件來源於主DNS服務器。會自動從主DNS服務器上下載資源配置文件,或定期跟主DNS服務器同步資源配置文件數據。輔助DNS服務器可以幫助主DNS服務器分擔一定的域名解析壓力。
3. 緩存DNS服務器(cache緩存):用來緩存域名解析的數據。可以用來作爲DNS解析加速器。
4. 端口號 : 53
域名的命名規則:
格式: 主機名 . 二級域名 .一級域名.[根域] 例如: www.baidu.com
根域:用.點表示。根域是域名系統的最頂層。全球有13臺根域服務器。大部分的根域服務器在美國。
一級域名:用於標識組織機構的類別。例如:
com企業、公司 net網絡機構 org非盈利組織 cn中國 hk香港 gov政府機構 edu教育機構
二級域名:用於標識組織機構名稱。通常有公司或個人向域名系統管理機構申請一個用於標識身份的名稱。常見的互聯網公司二級域名代號例如:
阿里:ali 淘寶 taobao 58同城 58 騰訊 qq、tencent 網易163 新浪sina
三級域名(或主機名):集團公司通常用於標識不同地區的公司。如58同城的公司有:
wh.58.com、hz.58.com、bj.58.com。(wh武漢 ,hz 杭州 ,bj 北京)
DNS工作原理及解析過程:
1、client客戶機向本地的DNS 服務器發出解析請求:“你知道www.baidu.com”的IP地址嗎?服務器就在自己的DNS數據庫中查詢是否有www.baidu.com的區域記錄和資源記錄。
2 、如果本地的DNS服務器上有記錄,則直接將www.baidu.com的IP地址告訴給客戶機。否則,本地DNS服務器就回去問“根”DNS服務器。
3、根DNS服務器告訴本地DNS服務器.com的DNS服務器IP地址。
4、本地DNS服務器向.com服務器發出請求:“你知道www.baidu.com”的IP地址嗎?
5、.com的DNS服務器告訴本地DNS服務器baidu.com的DNS服務器IP地址。
6、本地DNS服務器向baidu.com服務器發出請求:“你知道www.baidu.com”的IP地址嗎?
7、baidu.com的DNS服務器告訴本地DNS服務器www.baidu.com的服務器IP地址。
8、本地DNS服務器告訴Client客戶機:"www.baidu.com"的IP地址是180.97.33.107。
DNS服務器的部署流程:
環境 : systemctl stop firewall #關閉防火牆 setenforce #關閉selinux
1. 查看軟件是否安裝 : rpm -q bind bind-utils
2. 安裝DNS服務器所需要的軟件: yum install -y bind bind-utils(客戶端軟件)
3. 啓動服務並設置開機自啓動: systemctl restart named
systemctl enable named
4. 查看配置文件: rpm -qc bind
其中, /etc/named.conf 爲主配置文件 , /etc/named.rfc1912.zones 爲DNS的區域配置文件(正向解析、反向解析的區域設置)
主配置文件 /etc/named.conf 內容:
options {
listen-on port 53 { any; }; # 監聽端口爲 53 , any 允許爲ipv4 的任意IP訪問
listen-on-v6 port 53 { ::1; };
directory "/var/named"; # DNS服務的工作目錄
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; # 允許查詢,localhost表示僅允許本機自己查,如果要讓網絡中的任何主機查詢就用any。(白名單)
recursion yes; # 允許遞歸查詢
dnssec-enable yes; # 啓用DNS安全功能
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid"; # DNS的pid文件
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { # 根域設置
type hint; #類型爲hint
file "named.ca"; 文件路徑是/var/named/named.ca #主機名和IP映射關係的資源記錄文件名
};
include "/etc/named.rfc1912.zones"; # 指定包含的配置文件 , 區域配置文件
include "/etc/named.root.key";
區域配置文件內容, 以/var/named/named.localhost 爲例:
$TTL 1D #緩存數據的生命週期值爲一天
@ IN SOA @ rname.invalid. ( #soa記錄 , 指權威的DNS服務器名稱和管理員郵箱
0 ; serial #文件的版本編號 , 通常用年月日來編寫 , 例20190218001
1D ; refresh #刷新時間爲一天
1H ; retry #重試時間爲一小時
1W ; expire #過期時間爲一週
3H ) ; minimum #默認緩存時間爲三分鐘
NS @ #ns記錄 ,即name server記錄 ,記錄是dns服務器的名稱
A 127.0.0.1 # A 記錄指定域名對應的IP
AAAA ::1
配置DNS服務的正向解析(域名-->ip):
以自身IP爲例(192.168.11.11) , 搭建一個名稱爲gj.com的正向解析服務
第一步 : 首先將主配置文件 /etc/named.conf 中的localhost 和 127.0.0.1 改爲 any
第二步 : 編輯區域配置文件 /etc/named.rfc1912.zones , 創建 gj.com 的正向解析配置文件 ,在文件最後一行寫入如下所示:
zone "gj.com" IN { # 配置名稱區域
type master; # 類型爲master 主
file "gj.com.zone"; #資源記錄文件名 , 完整路徑爲 /var/named/gj.com.zone
allow-update { none; }; # 允許跟新 , none 爲不允許跟新
};
第三步 : 創建qf.com正向解析區域的資源記錄(域名和IP地址的映射關係)文件gj.com.zone。
cd /var/named # 進入到 /etc/named 目錄下面
cp -av named.localhost gj.com.zone #複製 named.localhost 文件裏面的內容到 gj.com.zone 文件中
vim gj.com.zone #編輯此文件 ,添加圖中最後四行內容
第四步 : 重啓服務 ,用nslookup 命令進行本地檢測:
mail.gj.com 同上www.gj.com , 解析出來的IP爲192.168.11.22
*在區域配置文件 /var/named/gj.com.zone 中添加 * A 192.168.11.23 , 即爲泛域名解析 , * 代表任意主機名
配置DNS服務的反向解析(ip-->域名):
第一步 : 同上正向解析
第二步 : 編輯區域配置文件 /etc/named.rfc1912.zones , 創建 gj.com 的反向解析配置文件 ,在文件最後一行寫入如下所示:
zone "12.168.192.in-addr.arpa" IN { #配置ip區域 , IP反正寫
type master; #類型爲master 主
file "192.168.12.zone"; #資源記錄文件名 , 完整路徑爲 /var/named/192.168.12.zone
allow-update { none; }; # 允許跟新 , none 爲不允許跟新
};
第三步 : 創建gj.com反向解析區域的資源記錄(域名和IP地址的映射關係)文件192.168.12.zone。
cd /var/named # 進入到 /etc/named 目錄下面
cp -av named.localhost 192.168.12.zone #複製 named.localhost 文件裏面的內容到 192.168.12.zone 文件中
vim 192.168.12.zone #編輯此文件 ,添加內容如圖所示:
第四步 : 重啓服務 , 用nslookup 進行本來檢測 :
使用nslookup 切換服務器到192.168.11.11 上 , 輸入IP:192.168.12.2 ,從圖看出成功解析出www.gj.com , ip:192.168.12.3 解析出相對應的 mail.gj.com
輔助DNS服務器配置:
功能及作用 : 輔助DNS服務器上的資源配置文件來源於主DNS服務器。會自動從主DNS服務器上下載資源配置文件,或定期跟主DNS服務器同步資源配置文件數據。輔助DNS服務器可以幫助主DNS服務器分擔一定的域名解析壓力 .
部署實驗環境 : 準備第二臺虛擬機主機(IP:192.168.11.13) , 按上述文章內容創建好正向解析區域和反向解析區域並測試成功之後 , 在192.168.11.13開始部署輔助DNS服務:
第一步,安裝軟件:
rpm -q bind bind-utils
yum install -y bind bind-utils
systemctl restart named && systemctl enable named
rpm -qc bind
第二步,備份指定的配置文件:
cd /etc
ls named*
cp -v named.conf{,.bak}
cp -v named.rfc1912.zones{,.bak}
第三步,修改/etc/named.conf主配置文件,將文件中的127.0.0.1和localhost全部改成any。
vim /etc/named.conf 修改如下兩行內容的{}中的內容爲any
listen-on port 53 { any; };
allow-query { any; };
------- 以上操作不做過多解釋 , 上文有詳細解釋-----------------------------------
第四步 : 編輯區域配置文件 /etc/named.rfc1912.zones , 創建 gj.com 的輔助DNS解析配置文件 ,在文件最後一行寫入如下所示:
type slave #設置類型爲從
file "slaves/gj.com.zone" #聲明輔助配置區域文件
masters { 192.168.11.11;}; #聲明主DNS服務器爲192.168.11.11這臺機器
第五步 : 重啓服務 , 查看 /var/named/slaves 下面是否存在文件:
可以看出一開始沒有 , 重啓服務後 , /var/namd/slaves 下面存在 gj.com.zone 區域配置文件 , 這個文件是從主DNS服務器192.168.11.11下載過來的
從輔助DNS服務器檢測也能解析出www.gj.com ,如上圖
DNS服務器視圖功能及部署:
視圖功能作用 : 通過視圖功能可以實現內網、外網解析出不同的IP地址。即解析同一個域名時,對於不同網段的客戶機查詢出不同結果的IP地址。
(警告:在使用DNS視圖功能的 DNS服務器上要在/etc/named.conf中刪除或註釋掉根域的配置信息,註釋掉named.rfc1912.zones和root.key這些代碼.否則會出錯.)
---------------------------------------------------------------------------------------------------------------
附: dns視圖配置代碼:
acl dianxin { #定義訪問控制列表名稱爲dianxin電信
192.168.11.0/24; #指定網絡地址和子網掩碼,24是255.255.255.0這個子網掩碼
};
view "dianxin" { # 定義視圖名稱爲dianxin電信
match-clients { dianxin; }; #匹配客戶端的網段爲dianxin(即acl定義的名稱)
recursion yes; # 啓用遞歸查詢
zone "test.com" IN { # 登記test.com匹配配置
type master; #類型爲master主DNS服務器
file "dianxin.test.com.zone"; #區域的解析資源配置文件
};
};
-----------------------------------------------------------------------------------------------------------------
實驗:給192.168.11.11[電信]這臺主機的ens33網卡臨時添加2個IP地址(192.168.100.7[移動]、192.168.110.7[聯通])。創建一個dianxin的視圖,在視圖中定義test.com區域,並創建解析資源記錄文件,主機名和IP地址隨便定,但IP必須是192.168.11.0這個網段的。做解析測試。
部署如下:
首先 ,修改主配置文件 : /etc/named.conf , 如圖所示 ,註釋文件並添加視圖代碼:
臨時添加網卡並用ifconfig 查看::
ifconfig ens33:1 192.168.100.9 up
ifconfig ens33:1 192.168.110.9 up
創建/var/named/dianxin.test.com.zone這個解析區域配置文件:
cd /var/named
cp -av named.localhost dianxin.test.com.zone
vim dianxin.test.com.zone 編輯此文件輸入以下內容 ,如圖:
本地測試 : nslookup dns1.test.com 192.168.11.11
而其他網段解析不了 , 同上原理可創建移動dns , 聯通dns服務 ,實現不同網段解析不同網段的功能
DNS子域授權:
子域 : 出了根域之外的服務器都稱爲子域 ,一般在公司內部使用 ,
爲什麼使用子域? 爲的是能夠減輕父域的負擔 , 且不受dns服務商的影響
父域只需解析出自己的子域即可 , 子域解析的是子域中的所有主機 .
實驗 : 搭建父域和子域
實驗拓撲 : 配置二級域名(子域)服務器 qq.com . (ip:192.168.11.13)
配置一級域名(子域)服務器 www. (ip:192.168.11.11)
首先 , 在兩臺虛擬主機(192.168.11.11 192.168.11.12)上安裝好DNS服務 , 安裝詳細部署見上文(記得關閉防火牆和seLinux):
配置二級域名: vim /etc/named.rfc1912.zones 編輯此文件添加內容如圖:
再創建區域配置文件 /var/named/qq.com.zone , 內容如下
重啓服務 , 用nslookup www.qq.com 192.168.11.13 檢測是否解析成功
配置一級域名服務器:
vim /etc/named.rfc1912.zones 編輯文件添加如圖所示內容:
再創建區域配置文件 /var/named/com.zone , 內容如下
重啓服務 , 再父域上檢測 : nslookup www.qq.com 192.168.11.13
到此 ,子域授權結束