安裝DNS(bind軟件)
[root@webserver ~]# yum -y install bind bind-utils bind-libs
配置DNS服務
bind安裝完畢,主程序目錄默認爲/var/named,而bind的主配置文件named.conf路徑爲/etc/named.conf,還有默認自帶的一些配置文件/etc/named.rfc1912.zones、/etc/named.root,key等
1.)named.conf文件詳解
默認情況下,named.conf文件權限設置爲root:named,不要隨意修改此文件的權限,否則DNS無法正常工作。
[root@webserver ~]# vim /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
再named.conf配置文件中主要使用“//”和“/**/”來進行註釋
options {
listen-on port 53 { 127.0.0.1; }; //指定ipv4監控的端口和IP,默認端口53,IP爲127.0.0.1,其中0.0.0.0/0,表示監控所有IP
listen-on-v6 port 53 { ::1; }; //指定IPv6監聽的端口和IP
directory "/var/named"; //指定named從/var/named目錄讀取DNS數據文件,用戶可以自定義,指定後所有的DNS數據文件都存放此目錄
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 { localhost; }; //設定允許DNS查詢的客戶端地址,any表示所有,192.168.0.0/24表示網段,
/*
- 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; //用來設置遞歸查詢,yes表示允許,no表示不允許,默認是允許
dnssec-enable yes; //用來設置是否啓動DNSSEC支持,DNSSEC用來驗證DNS數據的有效性,該選項有yes和no,默認yes
dnssec-validation yes; //是否啓用DNSSEC確認
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; //用來設置內置信任的祕鑰文件
managed-keys-directory "/var/named/dynamic"; //指定目錄中的文件存儲位置,跟蹤管理DNSSEC祕鑰
pid-file "/run/named/named.pid"; //
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug { //channel用來定義日誌輸出方式,有syslog、文本文件、標準錯誤輸出或/dev/null多種方式
file "data/named.run"; //file 表示輸出到純文本文件
severity dynamic; //消息的嚴重性等級,有critical、error、warning、notice、info、debug[level]、dynamic多種級別可選,對於系統管理員來說,一般設置爲info
};
};
zone "." IN {
type hint;
file "named.ca";
};zone "flypie.cc" IN { //定義正向區域
type master; //三種類型master主域名服務器 slave輔助域名服務 hint 互聯網中根域名服務器
file "flypie.cc"; //指定存放DNS記錄的數據文件名稱,對於這裏指定的文件,默認的路徑爲/var/named
allow-update { none; }; //定義是否允許客戶主機或服務器自行更新DNS記錄,none表示不允許更新DNS記錄
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
vim /var/named/flypie.zone
$TTL 86400
@ IN SOA ns.flypie.cc. andy.flypie.cc. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.flypie.cc.
IN MX 10 mail
IN A 192.168.0.112
ns IN A 192.168.0.112
www IN A 192.168.0.112
linux IN CNAME www
第1行 TTL設定 默認86400 缺少此行不影響使用,但是會出現警告消息
第2行是一個SOA記錄的設定 其中@代表相應的域名,也就是再named.conf中設定zone,如在這裏表示flypie.cc IN表示後面的數據使用的是Internet標準。在SOA後面分別指定了這個區域的授權主機名稱和管理者的郵箱
serial 表示配置文件的修改版本
refresh 用來設定輔助DNS與主DNS進行同步的間隔時間
retry 如果輔助DNS在進行更新失敗後,要隔多久再進行重試
expiry 設定輔助DNS在與主DNS同步失敗後,多長時間後清除對應的記錄
minimum 這是默認的最小TTL值,如果沒有指定TTL值,就以這個爲基準
以上數字都是以秒爲單位
IN後面指令的含義
NS 用來定義這個主機是個域名服務器
MX 定義一個郵件交換器
A 定義一個A記錄 即 域名到IP
CNAME 定義域名的別名
vim 0.168.192.zone
$TTL 86400
@ IN SOA ns.flypie.cc. andy.flypie.cc. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.flypie.cc.
112 IN PTR www.flypie.cc.