DNS:Domain Name System:域名系統
域名和IP地址相互映射的一個分佈式數據庫,使用戶使用域名更方便的訪問互聯網,不用去記更利於機器讀取的IP地址,域名解析由DNS服務器提供。
DNS服務器的類型:
主DNS服務器:管理和維護所負責解析的域內解析庫的服務器
從DNS服務器:從主服務器或從服務器“複製”(區域傳輸)解析庫副本
緩存DNS服務器(轉發器)
一次完整的查詢請求經過的流程:
Client –>hosts文件–>DNS Service Local Cache –> DNS Server (recursion) –>
Server Cache –> iteration(迭代) –> 根–> 頂級域名DNS–>二級域名DNS…
搭建域名解析服務器:
1.安裝bind:
相關軟件包:bind、bind-chroot ]# yum install bind bind-chroot
BIND的服務名是 named,DNS默認協議是TCP與UDP協議,啓動後會佔用53/udp/tcp,953/tcp這兩個端口號
953是rndc的端口,rndc是控制Bind啓動、關閉等行爲的工具
rndc status|reload若安裝了bind-chroot,此時BIND的主配置文件會被封裝到一個僞根目錄內(安全目的),此時配置文件(鏈接)位置爲:
/var/named/chroot/etc/named.conf BIND服務主配置文件
/var/named/chroot/var/named/*.zone 域的zone配置文件默認配置文件:
主配置文件:/etc/named.conf
區域配置文件:/var/named/*.zone
2.配置DNS服務器:
主配置文件:/etc/named.conf
options {
listen-on port 53 { 1localhost; }; 監聽的端口及地址;localhost表監聽本機所有地址
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";
allow-query { any; }; 特定主機可發起查詢,any表所有可查
allow-transfer { none; }; 設置允許指定主機抓取所有記錄
recursion yes;
// dnssec-enable yes; 安全相關可註釋
// dnssec-validation yes; 安全相關可註釋
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
// 根服務器定義
zone "." IN {
type hint;
file "named.ca";
};
// 包含配置文件
include "/etc/named.rfc1912.zones"; 可在該文件中定義域
include "/etc/named.root.key";
配置一個域名的解析:
在配置文件中添加域定義 /etc/named.conf 或 /etc/named.rfc1912.zones中
添加該域的zone文件至/var/named/xx.zone
主配置文件添加域定義: ]# vi /etc/named.rfc1912.zones
添加:
//正向解析域定義
zone "rick.com" IN {
type master; 類型 master|slave|hint|forward
file "rick.zone"; 必須與/var/named/ 目錄下區域解析文件名相同
};
//反向解析域定義,反寫的網段地址.in-addr.arpa
zone "1.10.in-addr.arpa" IN {
type master;
file "10.1.zone";
};
創建正向區域配置文件:
區域數據庫文件各指令解釋:
$TTL:允許客戶端緩存來自查詢的數據的默認時間,單位秒
$ORIGIN:自動補全
資源記錄類型:
A,AAAA,PTR,SOA,NS,CNAME,MX
SOA:Start Of Authority,起始授權記錄;一個區域有且只能有一個SOA記錄,須爲第一條
NS:Name Service,域名服務器記錄;一個區域解析庫可以有多個NS記錄,其中一個爲主
A:Address,地址記錄,FQDN > IPv4
AAAA:FQDN > IPv6
CNAME:Canonical Name,別名記錄
PTR:Pointer,IP > FQDN 反向解析
MX:Mail eXchanger,郵件交換器;郵件記錄必須有優先級:0-99,小優先級高
]# vi /var/named/rick.zone
$TTL 86400
$ORIGIN rick.com.
IN SOA ns1.zz.com root.zz.com. (
16102204;序列號,可自定義;主服務器解析庫變化時序列遞增
2H;與主服務器同步時間間隔
20M;同步失敗重試時長
1W;無法聯繫主服務器時,多久後停止服務
1D )否定答案TTL
IN NS ns1.zz.com.
ns1.zz.com. IN A 10.1.235.6
www IN A 10.1.235.54
1.TTL可以從全局繼承
2.@可表示當前區域的名稱
3.相鄰兩條記錄name相同時,後面可省略
4.同一個名字可以有多條記錄定義多個不同的值;DNS服務器會以輪詢方式響應
5.區域文件屬性應修改爲
-rw-r—– 1 root named 149 Sep 22 16:02 NAME.zone
反向解析: ]# vi /var/named/10.1.zone
主要爲PTR記錄
$TTL 86400
$ORIGIN 1.10.in-addr.arpa.
@ IN SOA ns1.zz.com. root.zz.com. ( 16101602 2H 10M 1W 1D )
IN NS ns1.zz.com.
6.235 IN PTR ns1.zz.com.
54.235 IN PTR www.rick.com.
主配置文件語法檢查: ]# named-checkconf
解析庫文件語法檢查: ]# named-checkzone rick.com /var/named/rick.com
]# named-checkzone 1.10.in-addr.arpa /var/named/10.1.zone
啓動服務: service named start
對DNS配置完成後就可以測試了,linux下有下列幾個測試工具:
dig
host
nslook
# dig [+trace] [-t A|AAAA..] name [@server]
@server:指定主機解析
+trace:跟蹤解析過程
-t:指定類型
-x:反向解析 不一定存在
]# dig -t axfr .1.10.in-addr.arpa @10.1.252.54
]# dig -t ptr 33.252.1.10.in-addr.arpa @10.1.252.54
# host [-t RR_type] name [server_IP]
]# host -t NS zjj.com @127.0.0.0
# nslookup [-options] [name] [server] lnx/win
交互模式:
nslookup
>server IP 指明使用哪個DNS server進行查詢
>set q=RR_type 指明查詢的資源記錄類型
>NAME 要查詢的名稱
管理: # rndc named服務控制命令:start|stop|reload|status 狀態|flush 清空緩存