更多內容請點擊:linux
Linux學習從入門到打死也不放棄,徹底筆記整理(持續更新,求收藏,求點贊~~~~)
web
https://blog.51cto.com/13683480/2095439數據庫
第21章,DNS服務vim
本章內容:windows
名字解析centos
DNS服務緩存
實現主從服務器安全
實現子域服務器
實現view網絡
編譯安裝bind
壓力測試
DNS排錯
DNS服務:-----------------------------------------------------------------------
DNS:Domain Name Service 應用層協議
使用C/S結構,使用端口爲 udp:53,tcp:53
其中,名字解析服務使用udp53,主從同步傳輸使用tcp53和udp53
BIND:Bekerley Internet Name Domin dns解析服務器端實現軟件
ISC維護的服務之一(www.isc.org)
本地名稱解析配置文件:hosts
linux: /etc/hosts
windows: %WINDIR%/system32/dvivers/etc/hosts
格式爲:
IPADDR FQDN1 FQDN2..
122.10.117.2 www.test2.com www.test2.com ...
...
DNS解析:
一次完整的查詢請求過程:
clint--—> 本地host文件 ---> DNS Service local cache ---> DNS Server(recursion)
---> server cache ---> iteration(迭代) ---> 根 --->頂級域名dns---> 二級域名dns...
---> 結果返回,本地local將結果緩存至本地
DNS查詢類型:
遞歸查詢:recursion
客戶機只一次申請,返回結果。須要請求的dns服務器開啓遞歸查詢。
迭代查詢:iteration
支持遞歸查詢的dns服務器,在收到解析請求以後,若是請求的解析地址
非本身提供,會從根域自頂而下,依次尋找解析服務器,獲得結果以後返回
給申請主機。
此查詢過程就稱爲迭代
名稱服務器:域內負責解析本域內的名稱的主機
根服務器:全球共13組,美國10 歐洲2 日本1
解析類型:
正向解析: FQDN ---> IP
反向解析: IP----> FQDN
注意:正反向解析是兩個不一樣的名稱空間,是兩顆不一樣的解析樹
DNS服務器類型:
主DNS服務器:
管理和維護所負責解析的域內解析庫的服務器
從DNS服務器:
從主服務器或另外一臺從服務器‘複製’(區域傳送)解析庫文件
緩存DNS服務器:
轉發器,本身不負責任何區域解析,可是收到解析請求以後,會從根域開始自上而下
尋找解析,一旦找到,提交給用戶,且會將結果暫時緩存起來,供其餘用戶查詢
必須支持遞歸
名詞解釋:
區域傳送: 從服務器從主服務器同步解析庫
徹底傳送:傳送整個解析庫
增量傳送:傳遞解析庫變化的那部份內容
序列號:
解析庫版本號,主服務器解析庫修改時,遞增其序列號
刷新時間間隔:
從服務器從主服務器請求同步解析的時間間隔
重試時間間隔:
從服務器同步失敗時,再次嘗試時間間隔
過時時長:
從服務器聯繫不到主服務器時,多久後中止服務
通知機制:
notify ,主服務器解析庫發生變化時,會主動通知從服務器
解析答案:
確定答案:dns服務器經過迭代或者本地緩存獲得確定結果返回給用戶
否認答案:請求的條目不存在等緣由致使沒法返回結果
權威答案:由負責所查詢區域的區域解析服務器返回的結果
非權威答案:經過緩存返回的結果
區域解析庫:由衆多解析記錄(RR)組成
資源記錄:Resource Record
記錄類型:
SOA: Start Of Authority,起始受權記錄,用於標記本身,一個區域解析庫有且僅能有一個
SOA記錄,必須位於解析庫的第一條記錄
A: 將 FQDN---> IP
AAAA: FQDN---> IPv6
PTR: PoinTeR, IP --> FQDN
NS: Name Server,專用於標明當前區域的DNS服務器
CNAME: Canonical Name, 別名記錄 FQDN ---> FQDN
MX: Mail eXchanger, 郵件交換器
資源記錄定義的格式:
語法: name [TTL] IN rr_tpye value
注意:
1 TTL(time to live )生存時間,可從全局繼承
2 @ 可用於引用當前區域的名字
3 同一個名字能夠經過多條記錄定義多個不一樣的值,此時DNS服務器會以
輪詢方式相應
4 同一個值也可能有多個不一樣的定義名字,經過多個不一樣的名字指向同一個值
進行定義,此僅表示經過多個不一樣的名字能夠找到同一個主機
SOA記錄:
name: 當前區域的名字,例如"alitaobao.com"
value:由多部分組成
1 當前區域的主dns服務器的fqdn,也可使用當前區域的名字
2 當前區域管理員的郵箱地址;但地址中不能使用@符號,用‘.’替換
3 主從服務區域相關定義以及否認答案的統一TTL
例如:
@ IN SOA ns1.alitaobao.com. admin.alitaobao.com. (
20180060201 ;序列號
2H ;刷新時間
10M ;重試時間
1W ;過時時間
1D ) ;否認答案的TTL值
其中";" 表示註釋
NS記錄:
name:當前區域的名字
value:當前區域的某dns服務器的名字,例如ns.alitaobao.com.
一個區域能夠有多個NS記錄
例如:
alitaobao.com. IN NS ns1.alitaobao.com.
alitaobao.com. IN NS ns2.alitaobao.com.
注意:
1 相鄰的兩個資源記錄的name相同時,後續的可省略
2 對NS記錄而言,任何一個ns記錄後面的服務器名字,都應該有一個A記錄
MX記錄:
name:當前區域的名字
value:當前區域的某郵件服務器(smtp服務器)的主機名
一個區域內,MX記錄能夠有多個,但每一個記錄的value以前應該有一個數字
(0-99,而且是5的倍數),表示此服務器的優先級,數字越小優先級越高
例如:
alitaobao.com. IN MX 5 mx1.alitaobao.com.
IN MX 10 mx2.alitaobao.com.
注意:
對MX記錄而言,任何一個MX記錄後面的服務器名字,都應該在後續有一個A記錄
A記錄:
name: 某主機的FQDN,例如www.alitaobao.com.
value: 主機名對應主機的IP地址
例如:
www.alitaobao.com. IN A 1.1.1.1
ops.alitaobao.com. IN A 2.2.2.2
mx1.alitaobao.com. IN A 3.3.3.3
mx2.alitaobao.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.alitaobao.com. IN A 5.5.5.5
alitaobao.com. IN A 6.6.6.6
* 泛域名解析,表明任意字段,
避免用戶寫錯名稱時給錯誤答案,可經過泛域名解析至某特定地址
AAAA:
name: FQDN
value:IPv6
PTR:
name: IP,有特定格式,把IP地址反過來寫,加上特定後綴 in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.apra. IN PTR a.alitaobao.com.
如1.2.3爲網絡地址,可簡寫成:
4 IN PTR a.alitaobao.com.
注意:網絡地址及後綴可省略,主機地址依然須要反着寫如:
4.3 IN PTR a.alitaobao.com.
別名記錄CNAME:
name: 別名的FQDN
value: 真正名字的FQDN
例如:
www.alitaobao. IN CNAME webserver.alitaobao.com.
子域:
子域受權:
每一個域的名稱服務器,都是經過其上級名稱服務器在解析庫進行受權
相似根域受權tld:
.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
在.com的名稱服務器上,受權alitaobao.com.,須要在解析庫中增長以下資源記錄
alitaobao.com. IN NS ns1.alitaobao.com.
alitaobao.com. IN NS ns2.alitaobao.com.
alitaobao.com. IN NS ns3.alitaobao.com.
ns1.alitaobao.com. IN A 3.3.3.1
ns2.alitaobao.com. IN A 3.3.3.2
ns3.alitaobao.com. IN A 3.3.3.3
glue record: 粘合記錄,父域受權子域的記錄
bind:----------------------------------------------------------------------------
: dns服務服務器端實現
使用yum安裝的服務腳本和名稱:
centos6: /etc/rc.d/init.d/named
centos7: /usr/lib/systemd/system/named.service
主配置文件:
/etc/named.conf
/etc/named.rfc1912.zones
/etc/rndc.key
解析庫文件:
/var/named/ZONE_NAME.zone
注意:
1 一臺物理服務器可同時爲多個區域提供解析
2 必需要有根區域文件; named.ca
生成named.ca:dig -t NS . @a.root-servers.net. > /var/named/named.ca
3 應該有兩個(若是包括ipv6的,應該更多)實現localhost和本地迴環地址的解析庫
rndc: remote name domain controller 遠程名稱域控制器
默認與bind安裝在同一主機,且只能經過127.0.0.1鏈接named進程
提供輔助性的管理功能:953/tcp
配置文件:
主配置文件:/etc/named.conf
全局配置:options {};
日誌子系統配置:logging {};
區域定義: 本機可以爲哪些zone進行解析,就要定義哪些zone
zone "zone_name" IN {};
通常定義在:/etc/named.rfc1912.zones 中
特別注意:
每一行必須以";"結尾,
{ ;}; 花括號內外結尾都必須加;
設置監聽接口與端口:
options{
listen-on port 53 { IP; };
};
默認配置爲只監聽迴環地址,可直接修改爲須要監聽的IP地址
或者localhost
也能夠刪除此行,或使用"//"將此行這注釋掉,默認監聽所有本地接口
設置zones文件目錄:
directory "/var/named"
訪問控制列表:
bind內置4個控制列表:
none: 沒有一個主機
any: 任意主機
localhost:本機
localnet:本網段,即本機的IP 同掩碼運算後獲得的網絡地址
訪問控制指令:
allow-query {}; 容許查詢的主機;白名單
一旦定義,名單之外的主機禁止訪問
allow-transfer {}; 容許區域傳送的主機;白名單
allow-recursion {};容許遞歸的主機,白名單,建議全局使用
allow-update {}; 容許動態更新數據庫中的內容
訪問控制指令能夠寫在options{};中,表示全局有效
也能夠寫在zone""{};定義中,針對指定區域
範圍越小優先級越高
其餘選項:
recursion yes|no; 是否開啓遞歸功能
dnssec-enable yes; 此兩項爲安全選項,如非特別須要,或者很是熟悉此功能配置
dnssec-validation yes; 不然建議關:閉
根區域定義:
zone "." IN {
type hint;
file "named.ca";
};
實驗1:配置緩存名稱服務器
步驟: centos7.5爲例
1 yum 安裝 bind
2 修改主配置文件,註釋掉listen-on 和 allow-query 兩行,修改dnssec 兩行值爲no
3 開啓named服務 systemctl start named;systemctl enable named
4 使用ss -tunl 查看tcp udp 53端口記憶tcp953端口是否正常開啓
5 在另一臺虛擬機上測試是否能夠正常解析
dig www.baidu.com @192.168.65.155
實驗2: 配置主dns服務器,且實現ip地址輪詢
環境配置:
仍是實驗1中的dns服務器,現須要配置區域 alitaobao.com 的正向解析區域
服務器ip地址:192.168.65.155 靜態ip 另外還一塊網卡經過dhcp鏈接外部網絡
http服務器兩臺且處於運行狀態
192.168.65.150 頁面 web1.alitaobao.com
192.168.65.128 頁面 web2.alitaobao.com
實現步驟:
1 在主配置文件中添加區域
vim /etc/named.rfc1912.zones
zone "alitaobao.com" IN {
type master;
file "alitaobao.zone";
};
2 配置區域解析庫文件
vim alitaobao.zone
$TTL 86400
@ IN SOA ns1.alitaobao.com. fun.alitaobao.com. (
2018060201
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
ns1 IN A 192.168.65.155
ns2 IN A 192.168.65.160
www IN A 192.168.65.128
IN A 192.168.65.150
@ IN A 192.168.65.128
IN MX 5 mx1
IN MX 10 mx2
mx1 IN A 192.168.65.155
mx2 IN A 192.168.65.155
* IN A 192.168.65.128
3 修改文件屬組和權限
chown :named /var/named/alitaobao.zone
chmod 640 /var/named/alitaobao.zone
4 檢查配置:
named-checkconf 檢查主配置文件語法錯誤
named-checkzone "alitaobao.com" /var/named/alitaobao.zone
檢查區域解析庫文件語法是否錯誤
5 重讀配置文件:
使用rndc reload 命令重讀配置文件
6 使用dig -t A www.alitaobao.com @192.168.65.155 測試解析
7 在另一臺虛擬機上測試打開www.alitaobao.com 是否輪詢
修改/etc/resolv.conf 默認dns爲192.168.65.155
使用curl www.alitaobao.com 測試頁面
結果:隨機打開web1 和web2 頁面
測試命令:
dig:
dig [-t type] name [@server] [query options]
只用於測試dns系統,不會查詢本地hosts文件解析
查詢選項:
+[no]trace 跟蹤解析過程:dig +trace baidu.com
不論是否制定dns服務器,始終從根開始
+[no]recurse:進行遞歸解析
測試反向解析:
dig -x IP
dig -t ptr 反寫ip.in-addr.arpa
模擬區域傳送:
dig -t axfr zone_name @server
dig -t axfr alitaobao.com @192.168.65.155
dig -t axfr 65.168.192.in-addr.arpa @192.168.65.155
dig -t NS . @a.root-servers.net
host:
host [-t tpye] name [SERVER]
例如:
host -t NS alitaobao.com 192.168.65.155
host -t axfr alitaobao.com 192.168.65.155
host alitaobao.com
nslookup:
nslookup [-option] [name|-] [server]
例如:
nslookup www.alitaobao.com [192.168.65.155]
交互式命令:
nslookup
>server IP 用於切換dns服務器
>set q=type 用於切換查詢類型
>FQDN 要查詢的名稱
rndc命令使用:
用法:rndc COMMAND
COMMAND:
reload 從在主配置文件和區域解析庫文件
reload ZONE_NAME 重載指定區域解析庫文件
retransfer ZONE_NAME 手動啓動區域傳送,而無論序列號是否增長
notify ZONE_NAME 從新對區域傳送發通知
reconfig 重載主配置文件
querylog 開啓或關閉查詢日誌文件/var/log/message
trace 遞增debug一個級別
trace LEVEL 指定使用的debug級別
notrace 將調試級別設置爲0
flush 清空dns服務器的全部緩存記錄
反向區域:
區域名稱:網絡地址反寫.in-addr.arpa.
172.15.100. ---> 100.15.172.in-addr.arpa.
1 定義區域
2 定義區域解析庫文件
注意:不須要MX 以PTR記錄爲主
實驗3:配置反向區域解析:
1 定義區域
vim /etc/named.rfc1912.zones
zone "65.168.192.in-addr.arpa" IN {
type master;
file "65.168.192.in-addr.arpa.zone";
};
2 定義區域解析庫文件
vim /var/named/65.168.192.in-addr.arpa.zone
$TTL 86400
@ IN SOA ns1.alitaobao.com. admin.alitaobao.com. (
2018060201
1H
10M
3D
1D )
IN NS ns1.alitaobao.com.
IN NS ns2.alitaobao.com.
128 IN PTR www.alitaobao.com.
150 IN PTR www.alitaobao.com.
3 修改權限並重載配置文件
chown :named /var/named/65.168.192.in-addr.arpa.zone
chmod 640 /var/named/65.168.192.in-addr.arpa.zone
rndc reload
4 測試:
dig -x 192.168.65.128 @192.168.65.155
dig -t ptr 128.65.168.192.in-addr.arpa @192.168.65.155
host -t ptr 192.168.65.128
注意:host命令查詢ptr記錄能夠不用反寫ip
容許動態更新:未復現
指定的zone語句塊中:Allow-update {any;};
chmod 770 /var/named
setsebool -P named_write_master_zones on
此命令須要開啓selinux
未復現
nsupdate
• >server 127.0.0.1
• >zone magedu.com
• >update add ftp.magedu.com 88888 IN A 8.8.8.8
• >send
• >update delete www.magedu.com A
• >send
測試:dig ftp.magedu.com @127.0.0.1
ll /var/named/magedu.com.zone.jnl
cat /var/named/magedu.com.zone
從服務器:
注意事項:
1 應該爲一臺獨立的名稱服務器
2 主服務器的區域解析庫文件中必須有一條NS記錄指向從服務器
3 從服務器只須要定義區域,而無需提供解析庫文件,解析庫文件應該放置於
/var/named/slaves/ 目錄中
4 主服務器得容許從服務器作區域傳送
5 主從服務器時間應該同步,可經過ntp進行
6 bind程序的版本應該保持一致,不然,應該從高主低
7 如主服務器down掉以後,過時時間到了過了可是服務器還沒上線
從服務器將會中止服務
定義從區域的方法:
zone "ZONE_NAME" IN {
type slave;
masters { MASTER_IP; };
file "slaves/ZONE_NAME.zone.slave";
};
實驗4:配置正反向從服務器,並實現主從同步
1 開啓另一臺虛擬機,ip爲192.168.65.160 ,做爲從dns服務器使用
2 使用yum install bind 安裝bind
3 修改主配置文件,監聽端口,容許訪問的列表,dnssec
4 定義正向區域zone
vim /etc/named.rfc1912.zones
zone "alitaobao.com" IN {
type slave;
masters { 192.168.65.155; };
file "slaves/alitaobao.com.zone.slave";
};
5 定義反向區域zone
zone "65.168.192.in-addr.arpa." IN {
type slave;
masters { 192.168.65.155; };
file "slaves/65.168.192.in-addr.arpa.zone.slave";
};
6 開啓服務,systemctl start named
7 查看區域解析庫文件是否已同步
[root@3-centos7 /var/named/slaves]#ls
65.168.192.in-addr.arpa.zone.slave alitaobao.com.zone.slave
還能夠經過日誌查看:
tail -f /var/log/messages
也能夠在主服務器中查看日誌
8 測試名字解析
dig www.alitaobao.com @192.168.65.160
dig -t MX alitaobao.com @192.168.65.160
9 主服務器修改解析,更新序列號以後,查看是否同步
使用tail -f /var/log/messages 查看已同步
主服務器修改解析,不更新序列號,查看是否同步
未同步
主服務器單獨修改序列號,未更新解析記錄,查看是否同步
會同步
主服務器設置allow-transfer { none; }; 且修改解析和序列號:
查看日誌:
主服務器端 zone transfer 'alitaobao.com/IXFR/IN' denied
從服務器端 failed while receiving responses: REFUSED
實驗5:實現子域受權
使用另一臺虛擬機192.168.65.150 做爲子域 baidu.alitaobao.com 的dns服務器
1 在父域上受權子域:
vim /var/named/alitaobao.zone
添加兩條記錄
baidu IN NS ns1.baidu
ns1.baidu IN A 192.168.65.128
2 子域服務器修改主配置文件選項
3 子域服務器修改定義區域,增長
zone "baidu.alitaobao.com" {
type master;
file "baidu.alitaobao.com.zone";
};
4 子域服務器定義區域解析庫文件:
$TTL 86400
@ IN SOA ns1.baidu.alitaobao.com. fun.baidu.taobao.com. (
2018050201
1D
30M
7D
1D )
IN NS ns1
ns1 IN A 192.168.65.150
www IN A 192.168.65.128
* IN A 192.168.65.128
5 啓動服務
6 測試:
dig www.baidu.alitaobao.com @192.168.65.150
7 注意:需關閉dnssec功能
實驗6:實現區域轉發和全局轉發
1 在測試機查詢 dig ftp.alitaobao.com @192.168.65.150
因爲alitaobao.com 這個區域只是私自定義,並未在互聯網上註冊
因此經過baidu.alibaidu.com這個區域解析服務器查詢時,因爲子域並不知道父域ip
因此會從根域開始自上而下搜尋
固然找不到
2 子域服務器設置區域轉發,在192.168.65.150服務器上將區域alitaobao.com 轉向192.168.65.155
vim /etc/named.rfc1912.zones
zone "alitaobao.com" IN {
type forward;
forward only;
forwarders { 192.168.65.155; };
};
執行rndc reload
3 測試機測試dig ftp.alitaobao.com @192.168.65.150
會發現依然沒法查看,注意此時須要子域服務器執行 rndc flush 清除緩存便可
4 設置全局轉發:
在子域dns服務器主配置文件中定義全局配置:
forward only;
forwarders { 114.114.114.114;};
同時將上一步中區域轉發註釋掉或者刪除
執行rndc reload
執行rndc flush
5 測試機上測試 dig www.baidu.com @192.168.65.150 OK
測試 dig ftp.alitaobao.com @192.168.65.150 NOT OK
證實114 沒法解析 ftp.alitaobao.com
再次開啓區域轉發,reload flush
而後再次測試 dig ftp.alitaobao.com @192.168.65.150 OK
因此: 區域轉發優先級高於全局轉發
bind 中的ACL
ACL: 訪問控制列表
把一個或多個地址歸併爲一個集合,並經過一個統一的名稱調用
格式:
acl list_name {
ip;
net;
...
};
示例:
acl mymet {
172.20.0.0/16;
10.10.10.10;
};
系統自帶列表: none,any,localhost,localnet
注意: 只能先定義,後使用
所以通常定義在配置文件中,處於options的前面
bind view:
view: 視圖,用於實現只能DNS
一個bind服務器能夠定義多個view,每一個view中能夠定義一個或多個zone
每一個view用來匹配一組客戶端
多個view內可能須要對同一個區域進行解析,但使用不一樣的區域解析庫文件
注意:
1 一旦啓用了view,全部的zone都只能定義在view中,
2 僅在容許遞歸請求的客戶端所在view定義根區域
3 客戶端請求到達時,是自上而下檢查每一個view所服務的客戶端列表
格式:
view VIEW_NAME {
match-clients { LIST ;};
zone "alitaobao.com" IN {
type master;
file "alibaidu.com.zone";
};
include "/etc/named.rfc1912.zones"
};
實驗7: 經過view實現智能dns
192.168.65.160 充當dns服務器,解析區域爲baidu.com
要求:
當192.168.65.128訪問www.baidu.com時,指向1.1.1.1
當192.168.65.150訪問www.baidu.com時,指向2.2.2.2
當192.168.65.155訪問www.baidu.com時,指向3.3.3.3
步驟:
1 修改配置文件,vim /etc/named.conf 修改 必要選項
如: listen-on allow-query dnssec
2 定義acl
acl list128 {
192.168.65.128;
};
acl list150 {
192.168.65.150;
};
acl list155 {
192.168.65.155;
};
3 定義view,以及各個view中定義的區域"baidu.com"
view huazhongnet {
match-clients { list128; };
zone "baidu.com" IN {
type master;
file "huazhongnet.zone";
};
include "/etc/named.rfc1912.zones";
};
view huanannet {
match-clients { list150; };
zone "baidu.com" IN {
type master;
file "huanannet.zone";
};
include "/etc/named.rfc1912.zones";
};
view huabeinet {
match-clients { list155; };
zone "baidu.com" IN {
type master;
file "huabeinet.zone";
};
include "/etc/named.rfc1912.zones";
};
4 將根域 "." 定義到/etc/named.rfc1912.zones中
zone "." IN {
type hint;
file "named.ca";
};
5 定義區域配置庫文件 huazhongnet.zone,以及屬組、權限修改
vim /var/named/huazhongnet.zone
$TTL 86400
@ IN SOA ns1.baidu.com. fun.baidu.com. (
2018060201
1D
1H
7D
1D )
IN NS ns1
ns1 IN A 192.168.65.160
@ IN A 1.1.1.1
www IN A 1.1.1.1
* IN A 1.1.1.1
定義區域配置庫文件 huanannet.zone,以及權限修改
$TTL 86400
@ IN SOA ns1.baidu.com. fun.baidu.com. (
2018060201
1D
1H
7D
1D )
IN NS ns1
ns1 IN A 192.168.65.160
@ IN A 2.2.2.2
www IN A 2.2.2.2
* IN A 2.2.2.2
定義區域配置庫文件 huanannet.zone,以及權限修改
$TTL 86400
@ IN SOA ns1.baidu.com. fun.baidu.com. (
2018060201
1D
1H
7D
1D )
IN NS ns1
ns1 IN A 192.168.65.160
@ IN A 3.3.3.3
www IN A 3.3.3.3
IN A 3.3.3.3
chgrp named /var/named/*
chmod 640 /var/named/*
6 啓動服務並測試
在三臺測試機上分別執行 host www.baidu.com 192.168.65.160
結果OK
編譯安裝bind:---------------------------------------------------------------------
編譯安裝步驟:
1 創建named組和named帳號
groupadd -g 53 -r named
useradd -r -g named -u 53 named
2 安裝開發包組
group install "development tools"
3 下載源碼包,並解壓,cd到解壓目錄
4 less README,執行./configure 查看安裝選項
5 執行configure程序
./configure --prefix=/usr/local/bind9 --without-openssl --without-ipv6 \
--sysconfdir=/etc/named --enable-threads --disable-chroot
6 make
7 make install
通用安裝後配置:
1 添加PATH路徑
vim /etc/profile.d/named.sh
PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH
2 添加庫文件
vim /etc/ld.so.conf.d/name.conf
/usr/local/bind9/lib
ldconfig -v
ln -sv /usr/local/bind9/include /usr/include/named
3 添加man 文檔路徑
vim /etc/man.conf man_db.conf 分別對應centos6 centos7
添加一行路徑記錄
MANPATH /usr/local/bind9/share/man
添加、編輯配置文件:
1 編輯主配置文件
vim /etc/named/named.conf
options {
directory "/var/named/";
dnssec-enable no;
dnssec-validation no;
recursion yes;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" 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; };
};
2 添加區域解析庫文件
mkdir /var/named
cd /var/named
生成named.ca
dig +norec @a.root-servers.net. > named.ca
生成named.localhost
vim named.localhost
$TTL 86400
@ IN SOA ns1.localhost. fun.localhost. (
01
1D
1H
3D
1D )
IN NS localhost.
localhost. IN A 127.0.0.1
生成named.loopback
vim named.loopback
$TTL 86400
@ IN SOA localhost. fun.localhost. (
01
1D
1H
3D
1D )
IN NS @
IN A 127.0.0.1
IN PTR localhost.
3 修改配置文件權限
chgrp -R named /etc/named/
chgrp -R named /var/named/
chmod -R 640 /etc/named/*
chmod -R 640 /var/named/*
注意:
不要修改主目錄/etc/named /var/named 權限
如需修改,也必須保持named用戶對主目錄有rx權限
啓動和測試服務:
man named 獲取使用選項
named-checkconf 檢查配置文件語法是否錯誤
named-checkzone "zone" /zonefile 檢查區域解析庫文件語法是否錯誤
named -u named -f -g 前臺啓動,查看是否正常
如無異常使用 named -u named 啓動後臺執行
如沒有添加區域,則默認爲一臺緩存dns服務器
注意:編譯安裝啓動的程序沒法經過systemctl 控制啓動和關閉
如經過後臺執行,須要關閉程序,須要使用kill命令
例如:
killall -1 named 重讀配置文件
killall named 關閉服務
若是最小化安裝,默認沒有killall的狀況下
1 直接使用kill 配合ps命令
2 yum install psmisc 安裝便可
使用rndc:
生成key:
rndc-confgen -r /dev/urandom > /etc/named/rndc.conf
寫入主配置文件:
tail /etc/named/rndc.conf >> /etc/named/named.conf
刪除註釋:
vim /etc/named/named.conf
刪除寫入key文件那幾行前面的# 最後一行 # End of named.conf 保留#
重讀配置文件:
killall -1 named
測試使用rndc
rndc status
壓力測試:
編譯壓力測試工具:
cd contrib/queryperf/
./configure
make
cp queryperf /usr/bind9/bin
編輯測試文件:
vim test.txt
www.magege.com A
....
一系列解析操做集合,視機器配置,通常10W行左右便可
測試:
queryperf -d test.txt -s 192.168.65.155
打開日誌功能測試:
rndc querylog
rndc reload
queryperf -d test.txt -s 192.168.65.155
wc -l /var/log/message
筆記整理完成時間:2018年6月5日09:33:19