一、簡介
DNS域名解析
服務(Domain Name System)是用于解析域名與IP地址對應關系的服務,功能上可以實現正向解析與反向解析:
正向解析:根據主機名(域名)查找對應的IP地址。
反向解析:根據IP地址查找對應的主機名(域名)。
應用場景:正向解析較好理解,為域名解析為ip地址;反向解析主要用于垃圾郵件攔截,例如使用xx@xx.com的郵箱給用戶發送郵件,用戶郵箱所在服務器會查詢該郵件的ip地址,進行反向解析,若對應的域名是xx.com則接收郵件,否則放棄接收。
由于在域名系統中,一個IP地址可以對應多個域名,因此從IP出發去找域名,理論上應該遍歷整個域名樹,但是這在internet上是不現實的。為了完成逆向域名解析,系統提供一個特別域,該特別域稱為逆向解析域in-addr.arpa.這樣欲解析的IP地址就會被表達城一種像域名一樣的可顯示串形式,后綴以逆向解析域域名“in-addr.arpa”結尾。
二、安裝配置
安裝bind軟件包
yum install bind -y
systemctl start named
systemctl enable named
修改配置文件vi /etc/named.conf
options {
? ? ? ? # 默認放行地址均修改成any
? ? ? ? listen-on port 53 { 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";
? ? ? ? recursing-file ?"/var/named/data/named.recursing";
? ? ? ? secroots-file ? "/var/named/data/named.secroots";
? ? ? ? allow-query ? ? { any; };
? ? ? ? recursion yes;
? ? ? ? dnssec-enable yes;
? ? ? ? # 服務器不備案,這里寫no
? ? ? ? dnssec-validation no;
? ? ? ? /* Path to ISC DLV key */
? ? ? ? bindkeys-file "/etc/named.root.key";
? ? ? ? managed-keys-directory "/var/named/dynamic";
? ? ? ? pid-file "/run/named/named.pid";
? ? ? ? session-keyfile "/run/named/session.key";
};
logging {
? ? ? ? channel default_debug {
? ? ? ? ? ? ? ? file "data/named.run";
? ? ? ? ? ? ? ? severity dynamic;
? ? ? ? };
};
zone "." IN {
? ? ? ? type hint;
? ? ? ? file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
解析示例:
# 正向解析
# 這個位置實際要填寫的是解析的完整域,就是要解析的域名
zone "localhost" IN {
? ? ? ? # 表示dns類型,如果是type hint ,表明是根dns。這里的master,表明是主dns,還有一個值是slave,表明是從dns
? ? ? ? type master;
? ? ? ? # 解析的記錄文件。這個named.localhost可以自己定義,定義完成后需要在 /var/named/ 目錄下有一個名稱相同的文件與之匹配
? ? ? ? file "named.localhost";
? ? ? ? # 是否允許客戶端動態更新,none表明不允許
? ? ? ? allow-update { none; };
};
# 反向解析
zone "1.0.0.127.in-addr.arpa" IN {
? ? ? ? type master;
? ? ? ? file "named.loopback";
? ? ? ? allow-update { none; };
};
三、新建正向解析實例
修改 vi /etc/named.rfc1912.zones
文件,新增以下內容:
zone "mytest.com" IN {
? ? ? ? type master;
? ? ? ? file "mytest.com.zone";
? ? ? ? allow-update { none; };
};
在/etc/named
目錄下,新增mytest.com.zone
文件,可用同目錄模板,復制使用cp -a
命令帶權限復制操作
# 定義DNS服務器查詢緩存數據的時間為1天
$TTL 1D
# @符表示該文件的父域名稱 “mytest.com“
# IN代表類型屬于ininternet類,因為現在的互聯網就是TCP/IP協議的應用,DNS服務在TCP/IP中的位置是應用層,所以這里寫的IN,這一般來說是不可改變的
# SOA表示設置授權主機名,上圖中定義了負責該區域域名解析的授權主機名,該主機必須在區域文件中有一個A資源記錄
# dns.mytest.com :表示聲明的服務器主機名稱,即這臺DNS服務器的完整域名
# ptm.mytest.com :代表設置DNS服務器系統管理員的電子郵箱所對應主機的域名為ptm.life.net
@ ? ? ? IN SOA ?dns.mytest.com. ptm.mytest.com (
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 正向解析區域的序列號。若當你更改過主DNS服務器的數據后,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 要將該數值加大,這樣輔DNS服務器才會更新數據
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ; serial
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # refresh的功能主要是高速輔DNS服務器多長時間與主DNS
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 服務器做一次serial的序列號對比
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1D ? ? ?; refresh
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # retry表示在refresh失敗后,經過指定的時間再去嘗試
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1H ? ? ?; retry
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1W ? ? ?; expire
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3H ) ? ?; minimum
? ? ? ? # 定義mytest.com域的域名解析服務器為 dns.mytest.com
? ? ? ? NS ? ? ?dns.mytest.com.
# 定義域名解析服務器的地址為 120.10.10.10
dns ? ? A ? ? ? 120.10.10.10
# 定義home二級域名的正向解析記錄
home ? ?A ? ? ? 120.10.10.11
# 定義mu.mytest.com的別名music.mytest.com
mu ? ? ?CNAME ? music
music ? A ? ? ? 120.10.10.10
重啟服務,systemctl restart named
驗證:局域網客戶端安裝dig,yum install bind-utils
使用dig mu.mytest.com
查詢解析情況
四、新建反向解析實例
修改 vim /etc/named.rfc1912.zones
zone "10.10.120.in-addr.arpa" IN {
? ? ? ? type master;
? ? ? ? file "mytest.com.ptr";
? ? ? ? allow-update { none; };
};
新增反向解析實例,cp -a /var/named/named.loopback /var/named/mytest.com.ptr
$TTL 1D
@ ? ? ? IN SOA ? ns.myexample.com. root.myexample.com. (
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ; serial
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1D ? ? ?; refresh
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1H ? ? ?; retry
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1W ? ? ?; expire
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3H ) ? ?; minimum
? ? ? ? NS ? ? ?ns.myexample.com.
ns ? ? ?A ? ? ? 120.10.10.12
12 ? ? ?PTR ? ? ns.myexample.com.
12 ? ? ?PTR ? ? www.myexample.com.
100 ? ? PTR ? ? test.myexample.com