DNS 正反向解析、主從同步配置數據庫
1、介紹
1.1全世界現有三個大的網絡信息中心:vim
一、位於美國的 Inter-NIC,負責美國及其餘地區;緩存
二、位於荷蘭的RIPE-NIC,負責歐洲地區;服務器
三、位於日本的APNIC ,負責亞太地區。markdown
1.2DNS的分佈式數據結構網絡
223812746.png數據結構
緩存域名服務器app
·經過想其餘域名服務器查詢得到域名——》ip 地址記錄tcp
·講域名查詢結果緩存到本地,提升重複查詢時的速度分佈式
主域名服務器
·特定DNS區域的官方服務器,具備惟一性
·負責維護該區域內全部域名——》ip地址的映射記錄
從域名服務器
·也稱爲輔助域名服務器
·其維護的域名——》ip 地址記錄來源與主域名服務器
bind-utils
bind
bind-libs
bind-chroot
/etc/named.conf mount
/var/named/chroot/etc/named.conf
主從DNS同步的兩種方式:
一、主服務器發送指令讓從服務器同步
二、從服務器根據序列號同步主服務器數據庫文件
簡單DNS配置:
[root@DNS~]# yum install bind bind-utils bind-chroot bind-libs
[root@DNS~]# mount
/dev/mapper/VolGroup-lv_rooton / type ext4 (rw)
proc on/proc type proc (rw)
sysfs on/sys type sysfs (rw)
devpts on/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on/dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1on /boot type ext4 (rw)
/dev/sr0on /media/cdrom type iso9660 (ro)
none on/proc/sys/fs/binfmt_misc type binfmt_misc (rw)
[root@DNS~]# service named start
Generating/etc/rndc.key: [ OK ] //加密處理,有時候或許會在這裏卡住,能夠在該系統上移動鼠標。
Startingnamed: [ OK ]
[root@DNS~]# mount
/dev/mapper/VolGroup-lv_rooton / type ext4 (rw)
proc on/proc type proc (rw)
sysfs on/sys type sysfs (rw)
devpts on/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on/dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1on /boot type ext4 (rw)
/dev/sr0on /media/cdrom type iso9660 (ro)
none on/proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/etc/named on/var/named/chroot/etc/named type none (rw,bind)
/var/named on/var/named/chroot/var/named type none (rw,bind)
/etc/named.conf on/var/named/chroot/etc/named.conf type none (rw,bind)
/etc/named.rfc1912.zones on/var/named/chroot/etc/named.rfc1912.zones type none (rw,bind)
/etc/rndc.key on/var/named/chroot/etc/rndc.key type none (rw,bind)
/usr/lib64/bind on/var/named/chroot/usr/lib64/bind type none (rw,bind)
/etc/named.iscdlv.key on/var/named/chroot/etc/named.iscdlv.key type none (rw,bind)
/etc/named.root.key on/var/named/chroot/etc/named.root.key type none (rw,bind)
能夠看出,是利用mount的方式
[root@DNS ~]# ps aux|grep named
named 1316 0.0 3.0 162844 15172 ? Ssl 20:20 0:00 /usr/sbin/named -unamed -t /var/named/chroot
查看啓動進程,運行在chroot的環境中
[root@DNS ~]#netstat -nutpl |grep named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1316/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1316/named
tcp 0 0 ::1:53 :::* LISTEN 1316/named
tcp 0 0 ::1:953 :::* LISTEN 1316/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1316/named
udp 0 0 ::1:53 :::* 1316/named
監聽53號端口
配置:
在全局定義裏,把監聽端口和容許訪問段都改成any
options {
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"; allow-query { any; }; recursion yes;
添加一個正向區域名
zone"zhang.com" IN{
type master; file "zhang.com.zone";
};
[root@MASTER ~]#named-checkconf named.conf
none:0: open:named.conf: file not found
[root@MASTER ~]# cd/var/named/chroot/etc/
[root@MASTER etc]#named-checkconf named.conf
[root@MASTER etc]#
檢查語法錯誤
224950495.png
其所屬的組爲named
[root@MASTER named]#ll
total 36
drwxr-x---. 6root named 4096 Oct 12 20:57 chroot
drwxrwx---. 2 namednamed 4096 Oct 12 21:01 data
drwxrwx---. 2 namednamed 4096 Oct 12 21:01 dynamic
-rw-r-----. 1root named 1892 Feb 18 2008 named.ca
-rw-r-----. 1root named 152 Dec 15 2009 named.empty
-rw-r-----. 1root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 namednamed 4096 Dec 5 2012 slaves
-rw-r--r--. 1root root 120 Oct 12 21:15 zhang.com.zone
[root@MASTER named]#chgrp named zhang.com.zone
[root@MASTER named]#ll
total 36
drwxr-x---. 6root named 4096 Oct 12 20:57 chroot
drwxrwx---. 2 namednamed 4096 Oct 12 21:01 data
drwxrwx---. 2 namednamed 4096 Oct 12 21:01 dynamic
-rw-r-----. 1root named 1892 Feb 18 2008 named.ca
-rw-r-----. 1root named 152 Dec 15 2009 named.empty
-rw-r-----. 1root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 namednamed 4096 Dec 5 2012 slaves
-rw-r--r--. 1root named 120Oct 12 21:15 zhang.com.zone
配置正向域
[root@MASTER named]#vim zhang.com.zone
$TTL 1D //緩存時間
@ IN SOAdns.zhang.com. root.zhang.com. (
0 ;serial
3H ;minimum
15M ;
1W ;expire
1D) ;refresh
@ ns dns.zhang.com.
dns IN A 192.168.1.1
www IN A 192.168.1.2
$TTL 1D:設置郵箱地址解析記錄的默認緩存時間,默認爲1天(1D)
@IN SOA @ rname.invalid. (設置SOA標記、域名、域管理郵箱rname@invalid,因爲 @ 有其餘含義,因此用「.」代替。注意: @ 在正向區域文件中表明的是「dns.zhang.com. 和 root.zhang.com.」)
0 :更新序列號,用於標示數據庫的表換,能夠在10位之內,若是存在從dns區域,建議每次更新完數據庫,手動加1.
1D :刷新時間,從域名服務器更新該地址數據庫文件的間隔時間,默認爲1天;
1H :重試延時,從域名服務器更新地址數據庫失敗之後,等待多長時間,默認爲1小時;
1W :失效時間,超過該時間仍沒法更新地址數據庫,則再也不嘗試,默認爲1周;
3H ;設置無效地址解析記錄(該數據庫中不存在的地址)
NS @ :域名服務器記錄,用於設置當前域的DNS服務器的域名地址;
A 127.0.0.1 :設置域名服服務器的A記錄,地址爲ipv4的地址127.0.0.1;
AAAA ::1 :設置域名服務器的A 記錄,地址爲ipv6的地址。
每次配置完後重啓服務:
[root@MASTER named]#service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
測試:
[root@MASTER named]#nslookup www.zhang.com
Server: 192.168.41.146
Address: 192.168.41.146#53
Name: www.zhang.com
Address: 192.168.1.2
CNAME 的做用
若在zone文件中添加:
blog IN CNAME www
則會定向到原來的www中,即:
www IN A 192.168.1.2
[root@MASTER named]#nslookup blog.zhang.com
Server: 192.168.41.146
Address: 192.168.41.146#53
blog.zhang.com canonicalname = www.zhang.com.
Name: www.zhang.com
Address: 192.168.1.2
配置反向解析:
格式:通常格式爲「ip.arpa」,ip不包含最後一位。
[root@MASTER named]#vim /etc/named.conf
zone"1.168.192.in-addr.arpa" IN {
type master; file "zhang.com.zone.db";
};
[root@MASTER named]#vim zhang.com.zone.db
$TTL 1D
@ IN SOAdns.zhang.com. root.zhang.com. (
1 ; 3H;minimum 15M ; 1W ;expire 1D);refresh
@ ns dns.zhang.com.
1 IN PTR dns.zhang.com. //建立反向PTR指針
2 IN PTR www.zhang.com.
重啓服務:
[root@MASTER named]#service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
測試:
[root@MASTER named]#nslookup 192.168.1.1
Server: 192.168.41.146
Address: 192.168.41.146#53
1.1.168.192.in-addr.arpa name= dns.zhang.com.
[root@MASTER named]#nslookup 192.168.1.2
Server: 192.168.41.146
Address: 192.168.41.146#53
2.1.168.192.in-addr.arpa name= www.zhang.com.
配置從服務器:
[root@SLAVE ~]# yuminstall bind bind-chroot bind-utils bind-libs
[root@SLAVE ~]#service named start
Generating/etc/rndc.key: [ OK ]
Starting named: [ OK ]
跟主服務器同樣:
在全局定義裏,把監聽端口和容許訪問段都改成any
listen-on port 53 {any; };
allow-query { any; };
添加正向和反向區域:
zone"zhang.com" IN {
type slave;
masters{ 192.168.41.146; };注意格式
file "slaves/zhang.com.zone";
};
zone"1.168.192.in-addr.arpa" IN {
type slave; masters { 192.168.41.146; }; file"slaves/zhang.com.zone.db";
};
/var/named/chroot/var/named/slaves
重啓服務。
[root@SLAVE slaves]#ls
[root@SLAVE slaves]#
沒有同步到主服務器的文件
因此主服務器要配置防火牆:
防火牆配置:
[root@MASTER etc]#iptables -I INPUT 4 -m state --state NEW -p tcp --dport 53 -j ACCEPT
[root@MASTERetc]# iptables -I INPUT 4 -m state --state NEW -p udp --dport 53 -j ACCEPT
[root@MASTER etc]#service iptables save
[root@SLAVE slaves]#ls
zhang.com.zone zhang.com.zone.db
能夠同步。
本地測試:
[root@SLAVE slaves]#nslookup www.zhang.com
Server: 192.168.41.147
Address: 192.168.41.147#53
Name: www.zhang.com
Address: 192.168.1.2
[root@SLAVE slaves]#nslookup
192.168.1.1
Server: 192.168.41.147
Address: 192.168.41.147#53
1.1.168.192.in-addr.arpa name= dns.zhang.com.
遠地測試:
先修改/etc/resolv.conf
[root@DNS etc]#nslookup
www.zhang.com
;; connection timedout; trying next origin
;; connection timedout; no servers could be reached
修改從服務器防火牆配置:
iptables-I INPUT 4 -m state --state NEW -p udp --dport 53 -j ACCEPT
[root@SLAVE slaves]#service iptables save
iptables: Savingfirewall rules to /etc/sysconfig/iptables:[ OK ]
遠地測試:
[root@DNS etc]#nslookup 192.168.1.2
Server: 192.168.41.147
Address: 192.168.41.147#53
2.1.168.192.in-addr.arpa name= www.zhang.com.
配置自動同步:
主服務器配置:
須要在option選項中添加:
allow-transfer { 192.168.41.147; }; also-notify { 192.168.41.147; }; notify yes;
小結:
一、master slave 使用udp 53號端口進行通信。
二、BIND域名服務器的文件會所有掛載到/var/named/chroot/目錄下,即便***鏈接上了DNS服務器,他怎麼修改,都是修改/var/named/chroot/中的文件,並不會影響系統 / 下面其餘文件的狀況。
三、
當咱們主DNS服務器上修改完成後重啓服務,會主動傳送notify值,若是輔助DNS服務器沒有收到才參考Refresh,Refresh不成功,則參考Retry ,Retry 一直不成功, 則參考 Expire,若是Expire也不成功,則選擇放棄zone transfer的過程。