DNS服務器的功能:將域名解析爲IP地址(正向解析)或者將IP地址解析爲域名(反向解析)
/etc/hosts (域名解析緩存文件)
分佈式層次型
主機名+域名
DNS的解析過程(以解析www.baidu.com.cn爲例)
1.查看本地緩存
2.默認查詢本地/etc/hosts文件進行解析(具體先使用hosts文件或DNS由/etc/nsswitch.conf文件決定)
3.由本地域名服務器(/etc/resolv.conf)查詢根域名服務器(進行迭代解析)和下級服務器
4.本地域名服務器得到結果後會進行緩存,然後再將結果告訴客戶端
查詢www.baidu.com.cn
遞歸查詢:客戶機-->本地域名服務器(查詢沒有結果,接着下面的步驟)
迭代解析:本地域名服務器-->根域名服務器(dig @a.root-servers.net . ns)(得到cn服務器的IP地址)
本地域名服務器-->cn服務器(得到com.cn服務器的IP地址)
本地域名服務器-->com.cn服務器(得到baidu.com.cn的IP地址)
本地域名服務器-->baidu.com.cn服務器(得到最終域名服務器,解析相應的主機名)
DNS服務器的類型
主域名服務器(省級代理)
負責一個或一個以上原始區域的域名解析,有自己的區域數據文件,是一個權威服務器
從域名服務器(市級代理)
區域數據文件是從主域名服務器複製過來的,從域名服務器不是一個權威服務器
緩存域名服務器(個人代理)
純粹的沒有區域數據文件(本身不能響應任何DNS請求,所有記錄全部向其它服務器查詢)
DNS的記錄類型
SOA:起始授權機構,至少是一個區域的權威服務器(主域名服務器),記錄的是權威服務器的IP地址
NS:名稱服務器,能解析特定域名的主機都是名稱服務器(主域名服務器和從域名服務器)
A:正向記錄,用於將域名解析爲IP地址
PTR:反向記錄,用於將IP地址解析爲域名(郵件服務器)
MX:郵件交換記錄,用於設置某個區域的郵件服務器地址
CNAME:別名記錄,將服務器名另外設置一個名稱
HINFO:硬件信息記錄,並不向客戶端發送迴應
TXT:域名服務器版本記錄,可以更改域名服務器的版本
DNS的客戶端工具(10.0.100.251爲DNS服務器IP)
host
host www.sjjy.com 10.0.100.251
host -t mx sjjy.com 10.0.100.251(針對沒有定義具體IP的記錄)
host -t ns sjjy.com 10.0.100.251
host 10.0.100.100 10.0.100.251
dig
dig @10.0.100.251 blogs.sjjy.com
dig @10.0.100.251 -t mx sjjy.com
nslookup
nslookup www.sjjy.com 10.0.100.251
nslookup
server 10.0.100.251
set type=mx
sjjy.com
部署DNS服務器步驟
1.安裝DNS服務器軟件
yum install bind*
2.在主配置文件裏面定義相關的區域及信息
vim /etc/named.conf(注意是以“//”作爲註釋,不是“*”)
options {
listen-on port 53 { 127.0.0.1; }; --- 監聽端口和IP地址
listen-on-v6 port 53 {};--- IPV6格式
directory "/var/named"; --- 區域數據文件
dump-file ""; --- 緩存文件
statistics-file ""; ---
memstatistics-file ""; ---
allow-query { localhost; }; --- 只允許本地查詢,可以添加網段
recursion yes; --- 允許遞歸查詢
dnssec-enable yes; --- DNS加密
dnssec
dnssec
bindkeys-file
managed-keys-directory
};
logging { ---- 日誌通道(默認/var/log/messages)
channel default_debug {
file "";
}
};
zone "." IN(internet) {
type hint; --- 類型爲緩存域名服務器(masetr(主域名服務器)|slave(從域名服務器))
file "name.ca"; --- 存在於上面配置的directory目錄下面,記錄根域名服務器的地址
};
zone "sjjy.com" IN { --- 定義正向解析
type master; --- 定義爲主域名服務器
file "sjjy.com.zone"; --- 定義具體的區域文件
};
zone "0.10.in-addr.arpa" IN { --- 定義反向解析
type master; --- 同上面定義的正向解析
file "10.0.rev"; --- 定義具體的區域文件
};
//當/etc/hosts文件刪除,纔會調用下面兩個文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
編輯具體的區域文件
vim /var/named/sjjy.com.zone
$TTL 1D --- 緩存生存時間:1天
$ORIGIN sjjy.com. --- 顯示的聲明區域名
@(代表具體的區域名稱(sjjy.com.zone)) IN SOA(權威服務器記錄) dns.sjjy.com. admin.sjjy.com.(管理員的郵件地址,“admin.”表示爲“admin@”) (
0 ; serial(序列號,用於主從域名服務器之間,爲了識別何時進行更新,常用時間表示)
1D ;refresh(刷新時間,從域名服務器刷新的頻率)
1H ;retry(間隔時間,當連接失敗後,重連的間隔)
1W(1個星期) ;expire(清除時間)
3H(3個小時) ;minimum
)
IN NS dns.sjjy.com. --- 定義名稱服務器,多個換行寫
IN NS 5(優先級,小的高,1-255) dns2.sjjy.com.
IN MX mail.sjjy.com.
dns IN A 10.0.100.251 --- 具體的主機對應的IP地址
dns IN A 10.0.100.250
mail IN A 10.0.100.100
www IN A 10.0.100.101
ftp IN A 10.0.100.102
blogs IN A 10.0.100.103
bk IN CNAME blogs
vim /var/named/10.0.rev(可以不用寫別名)
$TTL 1D --- 緩存生存時間:1天
$ORIGIN 0.10.in-addr.arpa. --- 顯示的聲明區域名
@(代表具體的區域名稱(sjjy.com.zone)) IN SOA(權威服務器記錄) dns.sjjy.com. admin.sjjy.com.(管理員的郵件地址,“admin.”表示爲“admin@”) (
0 ; serial(序列號,用於主從域名服務器之間,爲了識別何時進行更新,常用時間表示)
1D ;refresh(刷新時間,從域名服務器刷新的頻率)
1H ;retry(間隔時間,當連接失敗後,重連的間隔)
1W(1個星期) ;expire(清除時間,更新失敗後,多長時間後清除對應的緩存)
3H(3個小時) ;minimum(緩存服務器不能與主服務聯繫上後多長時間清除相應的記錄)
)
IN NS dns.sjjy.com.
251.100 IN PTR dns.sjjy.com.
100.100 IN PTR mail.sjjy.com.
101.100 IN PTR www.sjjy.com.
102.100 IN PTR ftp.sjjy.com.
103.100 IN PTR blogs.sjjy.com.
檢查主配置文件和區域文件的語法是否有錯
named-checkconf /etc/named.conf --- 檢查主配置文件語法
named-checkzone sjjy.com /var/named/sjjy.com.zone --- 檢查正向區域配置文件語法
named-checkzone 0.10.in-addr.arpa /var/named/10.0.rev --- 檢查反向區域配置文件語法
啓動域名服務器
service named start
service named reload --- 不中斷重啓(在不對主配置文件進行操作的情況下)
更改正向區域文件和反向區域文件的屬主和屬組(因爲運行named服務時是以named用戶執行的)
chown named:named /var/named/sjjy.com.zone
chown named:named /var/named/10.0.rev
根域名服務器的更新:dig @a.root-servers.net . ns > /var/named/named.ca
練習:使用自己姓名的拼音作爲域名搭建域名服務器,域名服務器要求有正反向區域,要求有soa、ns、mx、a、ptr、cname記錄的定義,部署完成後要能夠正常的提供相關域名的解析服務。
錯誤排除步驟
1.檢查配置文件語法是否正確
named-checkconf /etc/named.conf
named-checkzone zlj.com zlj.com.zone
named-checkzone 0.10.in-addr.arpa 10.0.rev
2.檢查53號端口是否處於監聽狀態,監聽什麼地址
lsof -i:53
netstat -antpul | grep named
3.查看域名服務器配置是否正確
vim /etc/resolv.conf
4.查看日誌文件
vim /var/log/messages
5.查看SELinux是否關閉
getenforce
setenforce 0
錯誤集:
dns_rdata_fromtext: zlj.com.zone:10: near 'mail.zlj.com.': not a valid number
解決辦法:郵件服務器必須設置優先級
10.0.10.rev:3: SOA record not at top of zone (10.0.10.in-addr.arpa.10.0.10.in-addr.arpa)
解決辦法:注意區域名後面需要帶上".
從域名服務器(裏面的數據是非權威數據,給主域名服務器提供容錯功能和輔助解析,當主域名服務器宕機時,就會接管服務,在生存時間內有效)
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; --- 監聽端口和IP地址
listen-on-v6 port 53 {};--- IPV6格式
directory "/var/named"; --- 區域數據文件
dump-file ""; --- 緩存文件
statistics-file ""; ---
memstatistics-file ""; ---
allow-query { localhost; }; --- 只允許本地查詢,可以添加網段
recursion yes; --- 允許遞歸查詢
dnssec-enable yes; --- DNS加密
dnssec
dnssec
bindkeys-file
managed-keys-directory
};
zone "." IN {
type hint; --- 類型爲緩存域名服務器(masetr(主域名服務器)|slave(從域名服務器))
file "name.ca"; --- 存在於上面配置的directory目錄下面,記錄根域名服務器的地址
};
zone "sjjy.com" IN {
type slave;
file "slaves/sjjy.com.zone";
master { 10.0.100.251; };
};
zone "0.10.in-addr.arpa" IN {
type slave;
file "slaves/10.0.100.rev"
masters { 10.0.100.251; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
編輯主域名服務器的正向和反向區域文件,添加從域名服務器,並且加大serial
vim /var/named/sjjy.com.zone
添加 從域名服務器
IN NS dns1.sjjy.com.
dns1 IN A 10.0.100.10
vim /var/named/10.0.0.rev
添加 從域名服務器
IN NS dns1.sjjy.com.
10 IN PTR dns1.sjjy.com.
增加安全性,指定只有這個IP才能進行傳輸
vim /etc/named.conf
zone "sjjy.com" IN {
添加 allow-transfer { 10.0.100.252; };
};
DNS的其他相關配置
1.轉發設置
vim /etc/named.conf
options { --- 全局定義,全部轉發
forward first|only; first:表示先進行轉發;only:表示先只選用轉發
};
2.acl訪問控制列表(對allow-query生效)
vim /etc/named.conf
acl mynet(列表名,自定義) { --- 不放在options裏面
10.0.0.0/16;
192.168.10.10;
172.16.0.0/24
};
特殊字符串
any 匹配任意主機
none 不匹配任何主機
localhost 匹配本機上的任何ipv4網絡接口
localnets 匹配本機上的任何ipv4的本地網絡
3.also-notify主動通知從域名服務器進行更新(當主域名服務器有更改時,但只是進行了service named reload,就需要它)
vim /etc/named.conf
options {
also-notify { 10.0.5.151; };
};
從域名服務器上進行配置允許
options {
allow-notify { 主域名服務器IP; };
};
4.黑名單配置(寫進options裏面)
blackhole {
10.0.10.100;
102.10.10.0/24;
};
------------------------------------------------------
DNS智能解析
1.視圖的基本配置語法
view 視圖名 {
match-clients { 客戶端地址列表; };
區域文件聲明;
};
示例:
view "hunan" {
match-clients { 172.16.0.0/16; }; --- 當ip地址很多時,使用acl,可以單獨對acl生成一個文件,用include進行定義
recursion yes;
zone "sxjy.com" IN {
type master;
file "hn.sxjy.com.zone";
allow-update { none; };
allow-transfer { 172.16.20.223; };
};
zone "0.10.in-addr.arpa" IN {
type master;
file "hn.10.0.100.rev";
allow-update { none; };
allow-transfer { 172.16.20.223; };
};
};
view "hubei" {
match-clients { 172.20.0.0/16; }; --- 當ip地址很多時,使用acl,可以單獨對acl生成一個文件,用include進行定義
recursion yes;
zone "sxjy.com" IN {
type master;
file "hb.sxjy.com.zone";
allow-update { none; };
allow-transfer { 172.16.20.223; };
};
zone "0.10.in-addr.arpa" IN {
type master;
file "hb.10.0.100.rev";
allow-update { none; };
allow-transfer { 172.16.20.223; };
};
};
編輯區域配置文件
vim hn.sxjy.com.zone(下面的設置是zlj.com,如果要使用的話,要修改爲hn.sxjy.com)
$TTL 1D
$ORIGIN zlj.com.
@ IN SOA dns.zlj.com. admin.zlj.com. (
2016082309; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.zlj.com.
IN NS dns1.zlj.com.
IN MX 5 mail.zlj.com.
dns IN A 10.0.10.178
dns1 IN A 10.0.10.186
mail IN A 10.0.10.178
www IN A 10.0.0.254
ftp IN A 10.0.10.178
tftp IN CNAME ftp
相應的在編輯hb.sxjy.com.zone時,保持NS服務器的IP地址不變,其他的主機IP地址作相應的改變
$TTL 1D
$ORIGIN zlj.com.
@ IN SOA dns.zlj.com. admin.zlj.com. (
2016082309; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.zlj.com.
IN NS dns1.zlj.com.
IN MX 5 mail.zlj.com.
dns IN A 10.0.10.178
dns1 IN A 10.0.10.186
mail IN A 10.0.100.178
www IN A 10.0.100.254
ftp IN A 10.0.100.178
tftp IN CNAME ftp
錯誤集:
** server can't find www.zlj.com:SERVFAIL
解決辦法:將相應的區域配置文件的屬主該爲named
擴展
TSGI事務簽名實現安全通信
首先,得要註釋掉/etc/named.conf配置文件裏面的dnssec,
第一步:在主服務器上生成密鑰(每個視圖都要生成一個密鑰)
# cd /etc
# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hunan
# cat Kchangsha.+157+36507.private
# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hubei
第二步:在所有服務器的配置文件中加載密鑰
# vim /etc/named.conf
key "hunan" {
algorithm hmac-md5;
secret "9U4I7Ft1AGIm+d+MQ/rkaw==";
};
key "hubei" {
algorithm hmac-md5;
secret "9+tJAJ1soJT0daCB5evExw==";
};
第三步:設置主服務器的named.conf配置文件,在具體視圖中使用密鑰訪問
注意:需要添加的地方有:
match-clients { key changsha(當前視圖名稱); };
server 其他服務器IP地址 { keys { changsha; }; };
zone {
allow-transfer { key changsha; };
};
第四步:設置從服務器的named.conf配置文件,在具體視圖中使用密鑰訪問
注意:需要添加的地方跟第三步差不多,但是不需要在zone中添加,添加server時,注意,添加相互通信的就可以了
DNS服務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Windows
ruzhulinux
2019-02-23 13:35:11
RestFul服務介紹
qq59cc72a7f25e5
2019-02-23 13:09:19
深入瞭解 Linux下安裝DNS+Sendmail服務
panxiao
2019-02-23 12:58:42
JEESZ分佈式框架簡介---技術介紹文檔
qq593e3b758e013
2019-02-23 12:55:03
YUM倉庫服務與PXE網絡裝機
孫瑞瑞
2019-02-23 00:43:25
DNS and BIND
maweijun3
2019-02-23 00:41:10
iscsi網絡存儲服務
qq5a3c5e337fedf
2019-02-23 00:40:06
源代碼編譯安裝Apache
kangjie1223
2019-02-23 00:39:36
部署DNS服務和管理DNS
繁星o春水
2019-02-23 00:22:06
FTP服務、Web服務
繁星o春水
2019-02-23 00:22:05