一、簡(jiǎn)介
DNS服務(wù)器的作用就是為各種網(wǎng)絡(luò)程序找到對(duì)應(yīng)目標(biāo)主機(jī)的IP地址或?qū)?yīng)的主機(jī)域名。
DNS系統(tǒng)的作用:
正向解析:根據(jù)主機(jī)名稱(chēng)(域名)查找對(duì)應(yīng)的IP地址(實(shí)際應(yīng)用中最多的)
反向解析:根據(jù)IP地址查找對(duì)應(yīng)的主機(jī)域名(不常用,一般用于搭建郵件服務(wù)器時(shí))
1、DNS的主配置文件
/etc/named.conf
2、區(qū)域的配置文件模板
/var/named/named.rfc1912.zones
3、默認(rèn)的正向解析的模板文件(正向解析的模板文件)
/var/named/localhost.zone
4、默認(rèn)的反向解析的模板文件(反向解析的模板文件)
/var/named/named.local
二、安裝DNS服務(wù)器組件
1. 安裝
Linux下的dns功能是通過(guò)bind軟件實(shí)現(xiàn)的。
在配置DNS服務(wù)器前,先檢查系統(tǒng)中是否安裝了BIND域名服務(wù)器
#rpm -qa | grep bind
如果沒(méi)有則安裝bind軟件
yum install -y bind bind-chroot bind-utils
bind:bind的主程序軟件包,進(jìn)程名為named
bind-chroot:為bind提供chroot功能,將bind進(jìn)程限制在自己的家目錄下,防止錯(cuò)誤的權(quán)限設(shè)置影響到整個(gè)系統(tǒng)。
bind-utils:提供一些工具。如dig
bind軟件安裝后,會(huì)產(chǎn)生幾個(gè)固有文件,分為兩類(lèi),一類(lèi)是配置文件在/etc目錄下,一類(lèi)是dns記錄文件在/var/named目錄下。
2. bind配置
全局配置文件:named.conf
如果沒(méi)有使用chroot機(jī)制的話(huà),則全局配置文件位于/etc/named.conf,如果使用了chroot機(jī)制的話(huà),則全局配置文件位于/var/named/chroot/etc/named.conf。有沒(méi)有使用chroot,對(duì)于bind的配置都是一樣的,唯一的不同就是配置文件所在的路徑不同了。
named的啟動(dòng),停止以及重啟命令
# service named start
# service named stop
# service named restart
(1)修改主配置文件/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
? ? ? ? listen-on port 53 { 127.0.0.1; };
? ? ? ? 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";
? ? ? ? recursing-file? "/var/named/data/named.recursing";
? ? ? ? secroots-file? "/var/named/data/named.secroots";
? ? ? ? allow-query? ? { localhost; };
? ? ? ? /*
? ? ? ? - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
? ? ? ? - If you are building a RECURSIVE (caching) DNS server, you need to enable
? ? ? ? ? recursion.
? ? ? ? - If your recursive DNS server has a public IP address, you MUST enable access
? ? ? ? ? control to limit queries to your legitimate users. Failing to do so will
? ? ? ? ? cause your server to become part of large scale DNS amplification
? ? ? ? ? attacks. Implementing BCP38 within your network would greatly
? ? ? ? ? reduce such attack surface
? ? ? ? */
? ? ? ? recursion yes;
? ? ? ?dnssec-enable yes;
? ? ? ? dnssec-validation yes;
? ? ? ? /* Path to ISC DLV key */
? ? ? ? bindkeys-file "/etc/named.root.key";
? ? ? ? managed-keys-directory "/var/named/dynamic";
? ? ? ? pid-file "/run/named/named.pid";
? ? ? ? session-keyfile "/run/named/session.key";
};
logging {
? ? ? ? channel default_debug {
? ? ? ? ? ? ? ? file "data/named.run";
? ? ? ? ? ? ? ? severity dynamic;
? ? ? ? };
};
“directory”指定了dns記錄文件的存放目錄是/var/named。
"recursion yes" 指定了是否遞歸。
可以在“diretory”下添加一行:forwarders {IP}。IP是dns服務(wù)器的地址,forwarders參數(shù)指明了其后的ip所在的服務(wù)器作為備選的dns服務(wù)器。也就是說(shuō),把本機(jī)的dns不能解析的主機(jī)發(fā)送到這個(gè)備選的dns服務(wù)器上,讓它來(lái)進(jìn)行解析。
named.conf文件的這一部分內(nèi)容,不必去改動(dòng)它。
三個(gè)“zone”語(yǔ)句定義了dns服務(wù)器的根、一個(gè)域名為localhost的正向查詢(xún)域及其對(duì)應(yīng)的反向查詢(xún)域,并指出根的記錄文件是“name.ca”,正向查詢(xún)域的記錄文件是”localhost.zone”,反向查詢(xún)域的記錄文件是“named.local”。這三個(gè)記錄文件也是系統(tǒng)自帶的,不用去改動(dòng)它。
(2)dns服務(wù)器的根
zone "." IN {
? ? ? ? type hint;
? ? ? ? file "named.ca";
};
(3)正向解析
zone "localhost" IN {
? ? ? ? type master;
? ? ? ?file "localhost.zone" ;
? ? ? ?allow-update { none; };
};
(4)反向解析
zone "0.0.127.in-addr.arpa" IN {
? ? ? ?type master;
? ? ? ?file "named.local";
? ? ? ?allow-update { none; };
};
(5)修改named.rfc1912.zones文件
增加兩個(gè),例如:
zone “jsj.qhmu.com”{//開(kāi)啟域名
? ? ? ??type master; //類(lèi)型為主域
? ? ? ??file "named.jsj.qhnu.com" ; //域配置文件
? ? ? ? ?。。。
}
zone"1.168.192.in-addr.arpa"? {
? ? ? ??type master;
? ? ? ??file "named.1.68.192.rev"; (反解zone,由于DNS域名是由后向前查找,須將IP反過(guò)來(lái)寫(xiě))
? ? ? ? ? ?。。。
}
3. 常用命令
(1)啟動(dòng)DNS服務(wù)器
service named start
(2)測(cè)試檢測(cè)域信息是否正常
檢查bind文件配置過(guò)程中容易出錯(cuò)
named-checkconf /etc/named.conf? //默認(rèn)檢查的配置文件
named-checkzone szlpt.cn? //檢查一個(gè)zone文件的配置
/var/named/ szlpt.cn.zone
(3)啟動(dòng)重啟DNS服務(wù),查看服務(wù)狀態(tài)
service named restart
service network restart
(4)用戶(hù)端測(cè)試解析,通過(guò)nslookup進(jìn)行測(cè)試
# nslookup
4. 參數(shù)配置說(shuō)明
常用子句說(shuō)明
(1)type master| hint |slave,指出服務(wù)器的類(lèi)型。
(2)master:此服務(wù)器為主DNS服務(wù)器。
(3)hint:此服務(wù)器作啟動(dòng)時(shí)初始化為高速緩存DNS服務(wù)器。
(4)slave:此服務(wù)器作為輔助DNS服務(wù)器。
(5)file:存放該zone數(shù)據(jù)的文件名。
(6)allow-update:允許動(dòng)態(tài)更新該zone數(shù)據(jù)的客戶(hù)機(jī)。?
(7)反向解析的域名,它的名字必須.in-addr.arpa來(lái)結(jié)尾。
資源記錄
(1)$TTL:這個(gè)域的保留時(shí)間。
(2)$ORIGIN localhost.:默認(rèn)的域。
(3)NS:指定域名服務(wù)器,每一個(gè)主域名服務(wù)器和從域名服務(wù)器都應(yīng)該用有一條NS記錄,以防止主服務(wù)器在出現(xiàn)故障后,從服務(wù)器不能及時(shí)提供服務(wù)。
(4)A:將一個(gè)域名解析成其后的IP。
(5)CNAME:將一個(gè)域名設(shè)置為另一個(gè)域名的別名。
(6)PTR:將一個(gè)IP地址指向一個(gè)域名。
(7)MX:指定域名服務(wù)器,一般用于定義某一個(gè)域里負(fù)責(zé)的郵件服務(wù)器,并且每一條MX記錄前都需要指定優(yōu)先級(jí)別。
(8)SOA(Start of Authority):起始授權(quán)(每個(gè)域文件中都應(yīng)該有一個(gè)SOA段)。
起始授權(quán)SOA
serial-序列號(hào):用于DNS數(shù)據(jù)庫(kù)文件的版本控制。每當(dāng)數(shù)據(jù)被改變,這個(gè)序列號(hào)就應(yīng)該被增加。
refresh-刷新:從服務(wù)器向主服務(wù)器查詢(xún)最新數(shù)據(jù)的間隔周期。每一次檢查時(shí)從服務(wù)器的數(shù)據(jù)是否需要更改,則根據(jù)序列號(hào)來(lái)判別。
retry-重試:一旦從服務(wù)器嘗試連接主服務(wù)器失敗,下一次查詢(xún)主服務(wù)器的延遲時(shí)間。
expiry-過(guò)期:如果從服務(wù)器無(wú)法連通主服務(wù)器,則在經(jīng)過(guò)此時(shí)間后,宣告其數(shù)據(jù)過(guò)期。
minimum-生存期:服務(wù)器回答“無(wú)此域名”的間隔時(shí)間