從零構建DNS主從服務器
從頭構建主從dns
我們沒有外網ip地址和域名。為了做實驗,假設我們有一個網段地址192.168.0.0/24和一個域名:zhuxu.co
準備工作
物理機一臺,ip :192.168.0.111/24 gw:192.168.0.1 dns:8.8.8.8
二臺虛擬機,系統為redhat7,一臺虛擬機(ns1.zhuxu.co)做成主dns服務器。網卡類型為自動橋接. ip:192.168.0.118/24 gw:192.168.0.1
另一臺(ns2.zhuxu.co)做成從dns服務器,網絡類型為自動橋接。ip:192.168.0.119/24 gw:192.168.0.1
1,配置主機名(把192.168.0.1主機名該成ns1.zhuxu.co)
[root@server ~]# hostnamectl set-hostname ns1.zhuxu.co
[root@server ~]# hostname ns1.zhuxu.co
2,配置yum源,(我選擇掛載光盤的方式)
在touch /etc/yum.repos.d/server.repo 文件。添加一下內容
[base]
name=redhat7.repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
掛載光盤(請確保光盤鏡像是連接狀態)
[root@ns1 ~]# mount /dev/cdrom /mnt/cdrom
3,安裝bind(提供dns服務的軟件包名為bind)
[root@ns1 ~]# yum install -y bind
bind包安裝後生成的文件。我簡單的介紹一下(本文用到的文件和命令)
[root@ns1 ~]# rpm -ql bind /etc/named.conf ---named服務主配置文件 /etc/sysconfig/named---named服務腳本配置文件 /usr/lib/systemd/system/named.service ---named服務 /usr/sbin/rndc ---遠程域名控制器(命令) /usr/sbin/named-checkconf ---檢查配置文件有沒有語法錯誤的命令 /usr/sbin/named-checkzone ---檢查zone文件有沒有語法錯誤的命令 /var/named ---存放zone文件的目錄 /var/named/named.ca ---根zone 文件 /var/named/named.localhost ---本機zone 文件 /var/named/named.loopback --本機的反向 zone 文件 /var/named/slaves ---從服務器放區域文件的位置
4,配置dns服務
4.1修改配置文件(系統自帶的配置文件,我們不用,完全自己編寫)
4.1.1查看配置文件named.conf的屬主,屬組和權限
[root@ns1 etc]# ll named.conf
-rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2把named.conf 重命名named.bak
[root@ns1 etc]# mv named.conf named.conf.bak ---備份配置文件是一種好習慣(職業病)
4.1.3創建一個named.conf 屬主,屬組和權限和原來一樣的文件
[root@ns1 etc]# touch named.conf
[root@ns1 etc]# chmod 640 named.conf
[root@ns1 etc]# chown root.named named.conf
[root@ns1 etc]# ll named.conf
-rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4編寫配置文件
[root@ns1 etc]# vim named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "zhuxu.co" IN {
type master;
file "zhuxu.co.zone";
allow-transfer { 192.168.0.119; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.zone";
allow-transfer { 192.168.0.119; };
};
4.1.5添加兩個zone
添加zhuxu.co.zone
vim /var/named/zhuxu.co.zone
~[root@ns1 named]# vim zhuxu.co.zone
$TTL 600
@ IN SOA ns1.zhuxu.co mail.zhuxu.co (
20180731
1H
15M
1D
6H )
IN NS ns1
ns1 IN A 192.168.0.118
IN MX 8 mail
mail IN A 192.168.0.114
www IN A 192.168.0.120
~ 添加192.168.0.zone
[root@ns1 named]# vim 192.168.0.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
12H)
NS ns1.zhuxu.co.
118 PTR ns1.zhuxu.co.
120 PTR www.zhuxu.co.
4.1.6檢查配置文件。和zone的語法
檢查配置文件語法:[root@ns1 named]# named-checkconf
檢查zhuxu.co.zone
[root@ns1 named]# named-checkzone zhuxu.co.zone /var/named/zhuxu.co.zone
zone zhuxu.co.zone/IN: loaded serial 20180731
OK
檢查192.168.0.zone
[root@ns1 named]# named-checkzone 192.168.0.zone /var/named/192.168.0.zone
zone 192.168.0.zone/IN: loaded serial 20180731
OK
4.1.7主服務配置完成。開放防火墻。啟動named服務.
[root@ns1 named]# firewall-cmd --permanent --add-service=dns
success
[root@ns1 named]# firewall-cmd --reload
success
[root@ns1 named]# systemctl start named
[root@ns1 named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-08-01 00:08:50 CST; 28s ago
主DNS服務器,就完全搭建好了。我們把物理主機的dns.換成192.168.0.118,經過檢驗完全可以上網。
搭建輔助DNS服務器
1,配置主機名(把192.168.0.119這臺主機名改為ns1.zhuxu.co)
[root@client ~]# hostnamectl set-hostname ns2.zhuxu.co
[root@client ~]# hostname ns2.zhuxu.co
2,配置yum源,(我選擇掛載光盤的方式)
在touch /etc/yum.repos.d/server.repo 文件。添加一下內容
[base]
name=redhat7.repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
掛載光盤(請確保光盤鏡像是連接狀態)[root@ns1 ~]# mount /dev/cdrom /mnt/cdrom
3,安裝bind(提供dns服務的軟件包名為bind)
[root@ns2 ~]# yum install -y bind
4,配置dns服務
4.1修改配置文件(系統自帶的配置文件,我們不用,完全自己編寫)
4.1.1查看配置文件named.conf的屬主,屬組和權限
[root@ns2 etc]# ll named.conf
-rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2把named.conf 重命名named.bak
[root@ns2 etc]# mv named.conf named.conf.bak
---備份配置文件
4.1.3創建一個named.conf 屬主,屬組和權限和原來一樣的文件
[root@ns2 etc]# touch named.conf
[root@ns2 etc]# chmod 640 named.conf
[root@ns2 etc]# chown root.named named.conf
[root@ns2 etc]# ll named.conf
-rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4編寫配置文件
[root@ns2 etc]# vim named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "zhuxu.co" IN {
type slave;
masters { 192.168.0.118; };
file "slaves/zhuxu.co.zone";
allow-transfer { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.0.118; };
file "slaves/192.168.0.zone";
allow-transfer { none; };
};
~
## 5,修改主NDS zone的配置文件
### 5.1修改zhuxu.co zone 文件
[root@ns1 named]# vim zhuxu.co.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
6H )
IN NS ns1
IN NS ns2 ;新增加的NS 記錄
ns1 IN A 192.168.0.118
ns2 IN A 192.168.0.119 ;新增加的A 記錄
IN MX 8 mail
mail IN A 192.168.0.114
www IN A 192.168.0.120
5.2 修改 192.168.0 zone 文件
[root@ns1 named]# vim 192.168.0.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
12H)
IN NS ns1.zhuxu.co.
IN NS ns2.zhuxu.co. ;新增加的NS 記錄
118 IN PTR ns1.zhuxu.co.
120 IN PTR www.zhuxu.co.
## 6,輔助DNS服務器配置完成。防火墻放行DNS服務。重啟主DNS服務,啟動輔助dns服務器。
[root@ns2 etc]# firewall-cmd --permanent --add-service=dns
success
[root@ns2 etc]# firewall-cmd --reload
success
[root@ns1 named]# systemctl restart named
[root@ns2 etc]# systemctl start named
## 7,檢驗輔助DNS是否能工作。
方法很多種,隨便介紹兩種
### 簡單直接修改物理機的dns為192.168.119,看能否正常打開網頁
### 用命令驗證:
dig -t A www.baidu.com @192.168.0.119
[root@ns1 ~]# dig -t A www.baidu.com @192.168.0.119
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.baidu.com @192.168.0.119
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41911
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 27
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1110 IN CNAME www.a.shifen.com.
www.a.shifen.com. 600 IN A 183.232.231.172
www.a.shifen.com. 600 IN A 183.232.231.173
......看到這些內容說明輔助dns服務器工作正常
dig 命令很強大,具體用法請自行查找。
如果我們現在配置一臺主機名為www.zhuxu.co 安裝httpd服務,可以使用基於主機名的虛擬主機(我會做一件關於httpd的實驗)
本文裏面配置沒有太多註解。請見諒。最近時間太少,等空下來。我會寫一個基礎篇。
從零構建DNS主從服務器