架構師成長之路-DNS伺服器搭建(部署單台DNS)
1.安裝bind
yum -y install bind-utils bind bind-devel bind-chroot bind-libs
2.編輯/etc/named.conf
- 全局配置:options {};
- 日志子系統配置:logging {};
-
區域定義:本機能夠為哪些zone進行解析,就要定義哪些zone。
zone "ZONE_NAME" IN {};
注意:任何服務程式如果期望其能夠通過網絡被其它主機訪 問,至少應該監聽在一個能與外部主機通信的IP位址上。
options {
version "1.1.1";
listen-on port 53 {any;}; #表示使用53端口
directory "/var/named/chroot/etc/";#用來指定zone(A記錄/MX記錄等)檔案配置路徑,注意chroot加強安全性
pid-file "/var/named/chroot/var/run/named/named.pid"; #當服務起來的時候,pid的位置
allow-query { any; };#允許解析通路的權限,可以是ip位址或ip段
Dump-file "/var/named/chroot/var/log/binddump.db";
Statistics-file "/var/named/chroot/var/log/named_stats";#可以看到解析數量/成功率等,用于監控
zone-statistics yes;# 配置yes,才能寫入
memstatistics-file "log/mem_stats";
empty-zones-enable no; #不允許配置zone,卻沒有記錄
forwarders {202.106.196.115;8.8.8.8; };#外部轉發至以下IP位址
};
key "rndc-key" { # 生成rndc控制指令的key檔案,rndc與bind之間使用md5認證
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
controls {
inet 127.0.0.1 port 953 #連接配接的實際是953,不是53
allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging { #指定日志記錄分類和他們的目标位置
channel warning {
file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;#日志輪轉10次,每次10M
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns {
file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;#日志輪轉10次,每次100M
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default {
warning;
};
category queries {
general_dns;
};
};
include "/var/named/chroot/etc/view.conf"; # viem簡單實作智能DNS功能
3.編輯/etc/rndc.key
内容需要與/etc/named.conf中的key一樣
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
4.編輯/etc/rndc.conf
預設沒有此檔案。
key "rndc-key" {
algorithm hmac-md5;
secret "Eqw4hClGExUWeDkKBX/pBg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
5.編輯/var/named/chroot/etc/view.conf
view "View1" { #View1隻是一個view名稱
allow-transfer {
#dns-ip-list;
};
notify yes;
also-notify {
#dns-ip-list;
};
# ixfr-from-differences yes;
zone "carlos.com" {
type master; #master:表示定義的是主域名伺服器,slave :表示定義的是輔助域名伺服器
file "carlos.com.zone"; #與檔案對應的zone檔案
allow-transfer { #允許誰同步資訊
192.168.56.14;
};
notify yes; #當我的master配置檔案發生變更時,通知以下IP
also-notify {
192.168.56.14;
};
};
zone "forward.com" {
type forward;
forwarders { 10.255.253.220; };
};
};
6.編輯/var/named/chroot/etc/com.zone
\$ORIGIN . #zone生效的域
\$TTL 3600 ; 1 hour
carlos.com IN SOA op.Carlos.com. dns.carlos.com. (
2000 ; serial #多DNS時候,以數量增加确認同步是否正常
900 ; refresh (15 minutes)#同步資料超15min失敗
600 ; retry (10 minutes)#同步失敗後10min重傳一次
86400 ; expire (1 day)# 過期時間1day
3600 ; minimum (1 hour)#TTL
)
NS op.carlos.com.
\$ORIGIN carlos.com.
shanks A 1.2.3.4
op A 1.2.3.4
7.修改目錄權限
cd /var && chown -R named.named named/ #修改目錄權限
/etc/init.d/named start #啟動
chkconfig named on #加開機啟動