linux下構建DNS服務器BIND
DNS:域名解析。
域名分類
v 頂級域由兩三個字母組成的名稱用於指示國家地區或使用名稱的單位的類型。如
v 組織域.net, .com, .org,.mil, .edu, .gov, .cc, .mobi
v 國家域.jp, .tw, .hk, .iq,.ir, .cn, .uk, .us
全球有13臺根服務器
v A INTERNIC.NET美國弗吉尼亞州 198.41.0.4
v B 美國信息科學研究所美國加利弗尼亞州 128.9.0.107
v C PSINet公司美國弗吉尼亞州 192.33.4.12
v D 馬里蘭大學美國馬里蘭州 128.8.10.90
v E 美國航空航天管理局美國加利弗尼亞州 192.203.230.10
v F 因特網軟件聯盟美國加利弗尼亞州 192.5.5.241
v G 美國國防部網絡信息中心美國弗吉尼亞州 192.112.36.4
v H 美國陸軍研究所美國馬里蘭州 128.63.2.53
v I Autonomica公司瑞典斯德哥爾摩 192.36.148.17
v J VeriSign公司美國弗吉尼亞州 192.58.128.30
v K RIPE NCC英國倫敦 193.0.14.129
v L IANA美國弗吉尼亞州 198.32.64.12
v M WIDE Project日本東京 202.12.27.33
DNS服務器類型有
緩存域名服務器
也稱爲唯高速緩存服務器
通過向其他域名服務器查詢獲得域名->IP地址記錄
將域名查詢結果緩存到本地提高重複查詢時的速度
主域名服務器
特定DNS區域的官方服務器具有唯一性
從域名服務器
也稱爲輔助域名服務器
DNS查詢方式
遞歸查詢
一般客戶機和服務器之間屬遞歸查詢即當客戶機向DNS服務器發出請求後,若DNS服務器本身不能解析,則會向另外的DNS服務器發出查詢請求得到結果後轉交給客戶機
迭代查詢
一般DNS服務器之間屬迭代查詢如若DNS2不能響應DNS1的請求則它會將DNS3的IP給DNS2以便其再向DNS3發出請求
DNS解析過程
v DNS服務器的主從如何協調
v 區域數據文件有版本號(序列號): serial
v 刷新時間(檢查週期)refresh --從服務器刷新數據到主服務器拿文件的時間間隔
v 重試時間(重試周期): retry --從服務器拿數據失敗後多長時間後重試
v 過期時間(失效時長): expire --如果主服務器掛了從服務器頂上後過多久失效
v 否定應答的TTL值 --多長時間內不接受客戶端的某個地址解析請求
v 協調過程從服務器在間隔達到refresh指定的時長後發起同步請求至主服務器主服務器響應serial從服務器與本地的serial進行比較如果主服務器serial大於本地意味主服務器區域數據文件更新了因此請求同步
DNS服務使用53號端口
TCP 53端口 服務器與服務器之間的連接
UDP 53 端口 客戶端與DNS服務器的連接
zone 區域
type 類型
master 主
slave 從
include 包含鏈接到另一個文件
實例一搭建DNS正向和反向解析服務器。
主DNS ip:172.16.1.232
從DNS ip:172.16.1.231
1 系統環境(兩臺機一樣)
[root@yy slaves]# cat/etc/redhat-release CentOS release 6.7 (Final) [root@yy slaves]# uname -r 2.6.32-573.el6.x86_64 [root@yy slaves]# iptables -F [root@yy slaves]# setenforce 0
2.安裝bind程序包兩臺機一樣
[root@yy slaves]# rpm -qa bind [root@yy slaves]# yum install -y bind
3.配置DNS配置文件在主DNS上
[root@yy named]# vim /etc/named.conf options { listen-on port 53 { 172.16.1.232; }; --監聽本一IP listen-on-v6 port53 { ::1; }; forwarders { 202.96.134.133; }; --DNS轉發指向 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 { 0.0.0.0/0; }; --允許哪些客戶端請求。 recursion yes; dnssec-enable yes; dnssec-validationyes; dnssec-lookasideauto; /* Path to ISC DLVkey */ bindkeys-file"/etc/named.iscdlv.key"; managed-keys-directory"/var/named/dynamic"; }; logging { channeldefault_debug { file"data/named.run"; severitydynamic; }; }; zone "." IN { type hint; file"named.ca"; }; zone "yy.com" IN { type master; 數據庫類型 file"yy.com.zone"; allow-transfer {172.16.1.231; }; 允許哪個主機同步數據庫文件 allow-update { none; }; 是否允許更新。 }; zone "1.16.172.in-addr.arpa" IN { type master; file"172.16.1.zone"; allow-transfer {172.16.1.231; }; allow-update { none; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
[root@yy yy]# vim yy.com.zone
$TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1H ; refresh 1H ; retry 1D ; expire 3D ) ; minimum NS ns.yy.com. MX 5 mail.yy.com. mail IN A 172.16.1.100 ns IN A 172.16.1.232 www IN A 172.16.1.100 file IN A 172.16.1.110 ftp IN A 172.16.1.120
[root@yy yy]# vim192.168.1.zone
$TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H) ; minimum NS ns.yy.com. ns IN A 172.16.1.232 232 IN PTR ns.yy.com. 100 IN PTR www.yy.com. 110 IN PTR file.yy.com. 120 IN PTR ftp.yy.com. 100 IN PTR mail.yy.com.
4.檢查配置文件語法錯誤
[root@yy named]# named-checkzone yy.com yy.com.zone zone yy.com/IN: loaded serial 0 OK
[root@yy named]# named-checkzone yy.com 172.16.1.zone zone yy.com/IN: loaded serial 0 OK
[root@yy named]# named-checkconf /etc/named.conf
5.啓動服務
[root@yy named]# service named restart 停止 named [確定] 啓動 named [確定]
6.配置主從同步
從服務器配置文件
[root@yy named]# vim /etc/named.conf options { listen-on port 53{ 127.0.0.1; }; listen-on-v6 port53 { ::1; }; forwarders { 202.96.134.133; }; 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 { localhost; }; recursion yes; dnssec-enable yes; dnssec-validationyes; dnssec-lookasideauto; /* Path to ISC DLVkey */ bindkeys-file"/etc/named.iscdlv.key"; managed-keys-directory"/var/named/dynamic"; }; logging { channeldefault_debug { file"data/named.run"; severitydynamic; }; }; zone "." IN { type hint; file"named.ca"; }; zone "yy.com" IN { type slave; file"slaves/yy.com.zone"; masters {172.16.1.232; }; }; zone "1.16.172.in-addr.arpa" IN { type slave; 數據庫類型爲從 file"slaves/172.16.1.zone"; masters {172.16.1.232; }; 指定從哪個主服務器下載數據 }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
啓動從DNS服務器
[root@yy named]# chown -R named.named /var/named/slaves/ [root@yy named]# service named restart
檢查是否同步成功了區域數據庫文件
[root@yy named]# ls slaves/ 172.16.1.zone yy.com.zone
看到文件同步過來主從成功。
剩下就是找臺客戶機試驗啦!!!