一 、dns介紹
dns(domain name system ) 域名管理系統
域名:
由特定的格式組成,用來表示互聯網中某一臺計算機或者計算機組的名稱,能夠是人更方便的訪問互聯網,而不用記住能夠被機器直接讀取的ip地址。
1. dns的作用
域名的正向解析
將主機域名轉換為對應的ip 地址,以便網絡程序能夠通過主機域名訪問到對應的服務器主機
域名——>ip a記錄
域名的反向解析
將主機的ip地址轉換為對應的域名,以便網絡(服務)程序能夠通過ip地址查詢到主機的域名
ip——>域名 ptr記錄
2. dns結構
①根域 .
在整個 dns 系統的最上方一定是 . (小數點) 這個 dns 服務器 (稱為 root),也叫”根域“。
根域 <13臺 全世界只有13臺。1個為主根服務器,放置在美國。其余12個均為輔根服務器,其中9個放置在美國,歐洲2個,位于英國和瑞典,亞洲1個,位于日本。>
②一級域名<頂級域|國家域>
com edu gov org cc io| cn uk us ru ja ko
③二級域名
qq.com baidu.com google.com
二、dns服務器的搭建
dns 的域名解析都是 udp/53 . 主從之間的數據傳輸默認使用tcp/53
dns軟件:
bind是一款開放源碼的dns服務器軟件,bind由美國加州大學berkeley(伯克利)分校開發和維護的,全名為berkeley internet name domain它是目前世界上使用最為廣泛的dns服務器軟件,支持各種unix平臺和windows平臺。bind現在由互聯網系統協會(internet systems consortium)負責開發與維護。
1、 安裝軟件
[root@dns-server ~]# yum -y install bind1
確認安裝成功
[root@dns-server ~]# rpm -q bind
bind-9.8.2-0.17.rc1.el6_4.6.x86_6412
查看文件列表
[root@dns-server ~]# rpm -ql bind
/etc/networkmanager/dispatcher.d/13-named
/etc/logrotate.d/named
/etc/named
/etc/named.conf
······
/***********************以下為重點文件*********************/
/etc/logrotate.d/named //日志輪轉文件
/etc/named //配置文件的主目錄
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones zone文件,定義域
/etc/rc.d/init.d/named 啟動腳本
/usr/sbin/named 二進制命令
/usr/sbin/named-checkconf 檢查配置文件的命令 named.conf named.rfc1912.zones
/usr/sbin/named-checkzone 檢查區域文件的命令
/var/log/named.log 日志文件
/var/named 數據文件的主目錄
/var/named/data
/var/named/named.ca 根域服務器
/var/named/named.empty
/var/named/named.localhost 正向解析區域文件的模板
/var/named/named.loopback 反向解析區域文件的模板
/var/named/slaves 從dns服務器下載文件的默認路徑
/var/run/named 進程文件
12345678910111213141516171819202122232425262728
2、 配置文件設置
主配置文件:
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; any; }; 監聽方式 ,any表示全網監聽
directory /var/named;
dump-file /var/named/data/cache_dump.db; dns緩存
statistics-file /var/named/data/named_stats.txt; 統計
memstatistics-file /var/named/data/named_mem_stats.txt; 內存統計
allow-query { localhost; any; }; 允許哪些人可以查詢;any代表任何人
recursion yes; 是否遞歸
dnssec-enable yes; dns安全擴展機制(簽名認證)//這兩個yes可以改為no,也可以不改
dnssec-validation yes;
dnssec-lookaside auto;
/* path to isc dlv key */
bindkeys-file /etc/named.iscdlv.key;
managed-keys-directory /var/named/dynamic;
};
說明:
dnssec 域名系統安全,他是dns的安全擴展協議
dlv dnssec 后備密鑰
這些安全機制的設定,是為了保護dns服務器與用戶之間的數據安全,避免惡意數據對用戶的欺騙
zone . in { 根域服務器
type hint;
file named.ca;
};
include /etc/named.rfc1912.zones;
include /etc/named.root.key;12345678910111213141516171819202122232425262728293031
總結:
①主配置文件只需要更改兩個地方,即增加全網監聽和全網查詢兩個any。
② dns安全擴展機制(簽名認證)的yes可以改為no
子配置文件介紹
vim /etc/named.rfc1912.zones
...
//定義正向域的模板
zone localhost.localdomain in {
type master;
file named.localhost;
allow-update { none; };
};
//定義反向的模板
zone 1.0.0.127.in-addr.arpa in {
type master;
file named.loopback;
allow-update { none; };
};
12345678910111213141516
子配置文件寫法
//建議不要改原文件內容,在文件末尾追加內容1
[root@dns-server etc]# vim /etc/named.rfc1912.zones
47 zone yu.net in { //只寫到二級域名
48 type master;
49 file yu.net.zone; //寫上自己定義的在/var/name目錄中的zone文件
50 allow-update { none; };
51 };
52
53 zone 221.168.192.in-addr.arpa in { //反向解析時ip倒著寫
54 type master;
55 file 221.168.192.zone; //寫上自己定義的在/var/name目錄中的zone文件
56 allow-update { none; };
57 };
1234567891011121314
zone文件介紹
[root@dns-server ~]# cd /var/named/
[root@dns-server named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@dns-server named]# cat named.loopback //反向解析模板
$ttl 1d
@ in soa @ rname.invalid. (
0 ; serial
1d ; refresh
1h ; retry
1w ; expire
3h ) ; minimum
ns @
a 127.0.0.1
aaaa ::1
ptr localhost.
[root@dns-server named]# cat named.localhost //正向解析模板
$ttl 1d
@ in soa @ rname.invalid. (
0 ; serial //更新序列號
1d ; refresh //更新間隔(從服務器下載數據)
1h ; retry //失敗重試
1w ; expire //區域文件過期時間
3h ) ; minimum //緩存的最小生存周期
ns @
a 127.0.0.1
aaaa ::1
$ttl 緩存的生存周期
@ = zonename = itcast.com 當前域
in 互聯網
soa 開始授權
ns dns服務端 nameserver
a ipv4 正向
aaaa ipv6
cname 別名
mx 郵件交互記錄 5 數字代表優先級 數字越小優先級越高 123456789101112131415161718192021222324252627282930313233343536373839
注:
不要修改原文件,復制一份再修改。
zone文件寫法
1 $ttl 1d
2 @ in soa yu.net. rname.invalid. ( //寫入域名,注意要寫根域名
3 0 ; serial
4 1d ; refresh
5 1h ; retry
6 1w ; expire
7 3h ) ; minimum
8 @ ns dns.yu.net. //dns1可以隨便指定,但要與下面的a記錄保持一致
9 dns1 a 192.168.221.129 //指定dns服務器地址
10 www a 192.168.221.139 //指定域名地址
//反向解析
1 $ttl 1d
2 @ in soa yu.net. rname.invalid. (
3 0 ; serial
4 1d ; refresh
5 1h ; retry
6 1w ; expire
7 3h ) ; minimum
8 @ ns dns1.yu.net.
9 dns1 a 192.168.221.129
10 139 ptr www.yu.net.
1234567891011121314151617181920212223
語法檢查
[root@dns-server named]# named-checkconf /etc/named.conf
[root@dns-server named]# named-checkconf /etc/named.rfc1912.zones
[root@dns-server named]# named-checkzone yu.net.zone yu.net.zone //zone文件名寫兩邊
zone yu.net.zone/in: loaded serial 0
ok
[root@dns-server named]# named-checkzone 221.168.192.zone 221.168.192.zone
zone 221.168.192.zone/in: loaded serial 0
ok
123456789
3、測試驗證
[root@dns-client ~]# echo nameserver 192.168.221.129 >/etc/resolv.conf //指明dns服務器地址
[root@dns-client ~]# nslookup www.yu.net
server: 192.168.221.129
address: 192.168.221.129#53
name: www.yu.net
address: 192.168.221.139
//測試成功
[root@dns-client ~]# nslookup 192.168.221.139
server: 192.168.221.129
address: 192.168.221.129#53
139.221.168.192.in-addr.arpa name = www.yu.net.
//測試成功12345678910111213141516
三、 dns主從服務器搭建
1、 保持時間同步
[root@dns-slave ~]# crontab -l
*/5 * * * * /usr/bin/rdate -s 192.168.221.129 &>/dev/null12
2、 搭建備用dns服務器
修改slave主配置文件
//安裝軟件
[root@dns-slave ~]# yum install -y bind
//修改配置文件
[root@dns-slave ~]# vim /etc/named.conf //允許監聽(詳細內容見前文)1234
修改slave子配置文件
[root@dns-slave ~]# vim /etc/named.rfc1912.zones
44 zone yu.net in {
45 type slave; //標明類型為slave
46 masters {192.168.221.129;}; //標明主機ip地址
47 file slaves/slave.ye.net; //標明同步過來的文件保存路徑及名字
48 };
49
50 zone 221.168.192.in-addr.arpa in {
51 type slave;
52 masters {192.168.221.129;};
53 file slaves/slave.221.168.192; //slaves在/var/named/文件夾下
54 };
12345678910111213
修改master端子配置文件
[root@dns-server ~]# vim /etc/named.rfc1912.zones
44 zone yu.net in {
45 type master;
46 file yu.net.zone;
47 };
48
49 zone 221.168.192.in-addr.arpa in {
50 type master;
51 file 221.168.192.zone;
52 };
//刪除了 allow-update { none; }; 允許其他機器進行同步
//allow-transfer {10.1.1.3;}; //可以指定允許哪個slave來下載數據123456789101112
3、 測試主從同步
slave拉取master文件測試
[root@dns-server ~]# service named restart //master重啟
stopping named: [ ok ]
starting named: [ ok ]
[root@dns-slave named]# service named start
generating /etc/rndc.key: [ ok ]
starting named: [ ok ]
[root@dns-slave named]# cd /var/named/
[root@dns-slave named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@dns-slave named]# cd slaves/
[root@dns-slave slaves]# ls
slave.221.168.192 slave.ye.net
//文件成功從master同步過來12345678910111213141516
正反解析測試
[root@server ~]# echo nameserver 192.168.221.129 >/etc/resolv.conf
[root@server ~]# echo nameserver 192.168.221.139 >>/etc/resolv.conf
[root@server ~]# cat /etc/resolv.conf
nameserver 192.168.221.129
nameserver 192.168.221.139
[root@server ~]# nslookup www.yu.net
server: 192.168.221.129
address: 192.168.221.129#53
name: www.yu.net
address: 192.168.221.139
[root@server ~]# nslookup 192.168.221.139
server: 192.168.221.129
address: 192.168.221.129#53
139.221.168.192.in-addr.arpa name = www.yu.net.
//解析成功
123456789101112131415161718192021
master宕機測試
[root@dns-server ~]# service named stop
stopping named: [ ok ]
[root@server ~]# nslookup www.yu.net
server: 192.168.221.139
address: 192.168.221.139#53
name: www.yu.net
address: 192.168.221.139
[root@server ~]# nslookup 192.168.221.139
server: 192.168.221.139
address: 192.168.221.139#53
139.221.168.192.in-addr.arpa name = www.yu.net.
//master宕機情況下,slave解析成功
123456789101112131415161718
蕪湖到揭陽物流專線網頁設計之橙色系列進階篇北京網頁設計公司:了解客戶需求 做有效益的網站合肥到衡東物流專線東莞到揚中物流專線廈門到保山物流專線seo學習論壇有哪些 哪個比較適合小白學習大連到保亭物流專線