linux6.4 dns 主从,dns正反解析与主从复制文件同步
去設置我們的zone:
vim named.rfc1912.zones
在最后添加:
zone "example.com" IN {(zone的名稱)
type master; ? ? ? ? ? ? ? ? ? ? ? ? ? ? (什么類型)
file "example.com.zone"; ? ? ? ? (數據庫文件在哪)
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "example.com.local";
allow-update { none; };
};
再去配置我們的數據庫文件:
cd/var/named/chroot/var/named
cp -p named.localhost example.com.zone
cp -p named.loopback ?example.com.local
切記,不要將這兩個文件復制到跟我們的named.conf在同一個目錄,不然重啟服務的時候會以下出錯(實驗在這里浪費好多時間):
Error in named configuration:
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone example.com/IN: loading from master file example.com.zone failed: file not found
zone example.com/IN: not loaded due to errors.
_default/example.com/IN: file not found
zone 0.168.192.in-addr.arpa/IN: loading from master file example.com.local failed: file not found
zone 0.168.192.in-addr.arpa/IN: not loaded due to errors.
_default/0.168.192.in-addr.arpa/IN: file not found
由于我是用物理機做的DNS去給虛擬機用,方便用虛擬機做實驗嘛=。=所以下面這兩個文件是我的配置:
vim ? example.com.zone
$TTL 1D
@ ? ? ? IN SOA ?silence.example.com. ? ?root.example.com. (
0 ? ? ? ; serial
1D ? ? ?; refresh
1H ? ? ?; retry
1W ? ? ?; expire
3H ) ? ?; minimum
NS ? ? ?silence.example.com.
silence ?A ? ? ? 192.168.0.100
A ? ? ? 192.168.0.100
vm1 ? ? A ? ? ? 192.168.0.201
vm2 ? ? A ? ? ? 192.168.0.202
vm3 ? ? A ? ? ? 192.168.0.203
vm4 ? ? A ? ? ? 192.168.0.204
vm5 ? ? A ? ? ? 192.168.0.205
vm6 ? ? A ? ? ? 192.168.0.206
vm7 ? ? A ? ? ? 192.168.0.207
vm8 ? ? A ? ? ? 192.168.0.208
vim example.com.local
$TTL 1D
@ ? ? ? IN SOA ?silence.example.com. ? ?root.example.com. (
0 ? ? ? ; serial
1D ? ? ?; refresh
1H ? ? ?; retry
1W ? ? ?; expire
3H ) ? ?; minimum
NS ? ? ?silence.example.com.
100 ? ? PTR ? ? example.com.
100 ? ? PTR ? ? silence.example.com.
201 ? ? PTR ? ? vm1.example.com.
202 ? ? PTR ? ? vm2.example.com.
203 ? ? PTR ? ? vm3.example.com.
204 ? ? PTR ? ? vm4.example.com.
205 ? ? PTR ? ? vm5.example.com.
206 ? ? PTR ? ? vm6.example.com.
207 ? ? PTR ? ? vm7.example.com.
208 ? ? PTR ? ? vm8.example.com.
下面來說說這兩個文件的內容:
@ :代表zone的意思,在example.com,zone中代表example.com在example.com.local中代表0.168.192.in-addr.arpa
.:這個點很重要,代表一個完整的主機名而不是hostname,如果沒有.則vm1.example.com代表vm1.example.com.example.com
A ?:Address 域名向ip地址轉換的記錄;
PTR:Printer ip地址向域名轉換的記錄;
NS:代表域內的dns服務器;
MX:代表域內的郵件服務器;
CNAME:域名的別名;
SOA:start of authority用于標示域內主DNS服務器。
Serial﹕其格式通常會是“年月日+修改次序”(但也不一定如此﹐您自己能夠記得就行)。當 slave 要進行數據同步的時候﹐
會比較這個號碼。如果發現在這里的號碼比它那的值“大”﹐?就進行更新﹐否則忽略。不過設 serial 有一個地方您要留意﹕不能超過 10 位數字﹗
Refresh﹕這里是是告訴 slave 要隔多久要進行數據同步(是否同步要看 Serial 的比較結果)。
Retry﹕如果 slave 在進行更新失敗后﹐要隔多久再進行重試。
Expire﹕這是記錄逾期時間﹕當 slave 一直未能成功與 master 取得聯絡﹐那到這里就放棄 retry﹐同時這里的數據也將標識為過期( expired )。
Minimum﹕這是最小預設 TTL 值﹐如果您在前面沒有用“$TTL”來定義﹐就會以此值為準。
OK,文件配置來之后,重啟服務,開啟客戶機進行測試吧~(注意更改你的測試機的DNS)
下面是我的測試情況:
[root@vm3 named]# dig vm1.example.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> vm1.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;vm1.example.com.INA
;; ANSWER SECTION:
vm1.example.com.86400INA192.168.0.201
;; AUTHORITY SECTION:
example.com.86400INNSsilence.example.com.
;; ADDITIONAL SECTION:
silence.example.com.86400INA192.168.0.100
;; Query time: 2 msec
;; SERVER: 192.168.0.100#53(192.168.0.100)
;; WHEN: Sat Oct 11 19:21:45 2014
;; MSG SIZE ?rcvd: 87
[root@vm3 named]# dig -x 192.168.0.204
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 192.168.0.204
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;204.0.168.192.in-addr.arpa.INPTR
;; ANSWER SECTION:
204.0.168.192.in-addr.arpa. 86400 INPTRvm4.example.com.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.86400INNSsilence.example.com.
;; ADDITIONAL SECTION:
silence.example.com.86400INA192.168.0.100
;; Query time: 1 msec
;; SERVER: 192.168.0.100#53(192.168.0.100)
;; WHEN: Sat Oct 11 19:23:24 2014
;; MSG SIZE ?rcvd: 111
再來折騰下主從復制與文件同步吧~~
去主DNS(我的物理機)上進行配置:
cd /var/named/chroot/etc
對于name.conf這個文件暫時還不需要配置
vim ?name.rfc1912zones
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
allow-transfer { 192.168.0.203; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "example.com.local";
allow-update { none; };
allow-transfer { 192.168.0.203; };
};
在原來的每個域中加來一條參數而已!
現在需要一臺虛擬機作為我的輔助DNS,馬上開一臺虛擬機 IP:192.168.0.203(DNS設置為自身)
在虛擬機中安裝好bind bind-chroot
yum install bind bind-chroot -y
/etc/init.d/named start
cd /var/named/chroot/etc
vim named.conf
整個文件大致被我糟蹋成這個樣子:
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;
// ? ? ?dnssec-enable yes;
// ? ? ?dnssec-validation yes;
// ? ? ?dnssec-lookaside auto;
/* Path to ISC DLV key */
// ? ? ?bindkeys-file "/etc/named.iscdlv.key";
// ? ? ?managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
recursion yes;
include "/etc/named.rfc1912.zones";
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type slave;
masters { 192.168.0.100; };
file "slaves/example.com.zone"; ? ? ?(從主DNS復制過來的數據保存在/var/named/chroot/var/named/slaves)
};
zone "0.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.0.100; };
file "slaves/example.com.local";
};
};
include "/etc/named.root.key";
在這個文件中,由于我們用到view來聲明,所以所有的域都應該在view中包含,不然重啟服務會出現以下錯誤:
Error in named configuration:
/etc/named.conf:37: when using 'view' statements, all zones must be in views
[FAILED]
OK,重啟我的輔助DNS。看下我們要的兩個數據文件復制過來了嗎?文件同步:
在主DNS中配置
cd /var/named/chroot/etc
vim named.rfc1912.zones
修改我們的zone
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
allow-transfer { 192.168.0.203; };
also-notify { 192.168.0.203; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "example.com.local";
allow-update { none; };
allow-transfer { 192.168.0.203; };
also-notify { 192.168.0.203; };
};
在原來的配置加上also-notify參數!
然后就是我們兩個數據庫文件的修改:
vim ?/var/named/chroot/var/named/example.com.zone
$TTL 1D
@ ? ? ? IN SOA ?silence.example.com. ? ?root.example.com. (
2014101204 ? ? ?; serial(d. admas)
2H ? ? ? ? ? ? ?; refresh
20M ? ? ? ? ? ? ; retry
1W ? ? ? ? ? ? ?; expire
1D) ? ? ? ? ? ? ; minimum
NS ? ? ?silence.example.com.
silence A ? ? ? 192.168.0.100
A ? ? ? 192.168.0.100
vm1 ? ? A ? ? ? 192.168.0.201
vm2 ? ? A ? ? ? 192.168.0.202
vm3 ? ? A ? ? ? 192.168.0.203
vm4 ? ? A ? ? ? 192.168.0.204
vm5 ? ? A ? ? ? 192.168.0.205
vm6 ? ? A ? ? ? 192.168.0.206
vm7 ? ? A ? ? ? 192.168.0.207
vm8 ? ? A ? ? ? 192.168.0.208
依樣畫葫蘆,example.com.local會修改了嗎?
在每次修改我們的數據庫文件時我們一定要記住修改serial的值,然后reload服務,查看下輔助DNS的文件數據有沒有同步吧~~~
總結
以上是生活随笔為你收集整理的linux6.4 dns 主从,dns正反解析与主从复制文件同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中南林科大c语言程序设计,2017年中南
- 下一篇: linux适应环境,Linux从入门到适