一、分析目标及各主机作用
1.目标
客户端访问www.muzigan.com时
本地DNS服务器向根DNS转发;
com域实现主从域的搭建
2.各主机作用及IP地址
作用
对应ip地址
二、不同层级DNS服务器的实现
前提:关掉所有主机的防火墙
iptables -F
1.客户端
#让客户端的DNS时本地DNS服务器
#dns1=172.17.16.100
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:d6:62:c3
IPADDR=172.17.253.46
NETMASK=255.255.0.0
DNS1=172.17.16.100
2.www主机的httpd服务
vim /var/www/html/index.html
welcome to www.muzigan.com
systemcl start httpd
3.muzigan域配置
#全局配置文件修改
vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
#域配置文件添加
vim /etc/named.rfc1912.zones
zone "muzigan.com" IN {
type master;
file "muzigan.com.zone"
};
#域数据库文件
要保证named可以对 /var/named/muzigan.com.zone 有读权限
cp /var/named/named.localhost /var/named/muzigan.com.zone -p
vim muzigan.com.zone
$TTL 1D
@ IN SOA dns1 mail.muzigan.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
dns1 A 172.17.16.104
www CNAME websrv
websrv A 172.17.16.105
#检查配置文件
named-checkconf
named-checkzone muzigan.com.zone /var/named/muzigan.com.zone
#开启named服务
systemctl start named
测试
dig www.muzigan.com @172.17.16.104
4.com主域配置
#全局配置文件修改
vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
#域配置文件添加
#allow-transfer { 172.17.16.103;};
#只允许172.17.16.103可以获取com域的数据
#如果是在/etc/named.conf中加这一句
#只允许172.17.16.103可以进行获取该主机所有域的数据
vim /etc/named.rfc1912.zones
zone "com" IN {
type master;
file "com.zone";
allow-transfer { 172.17.16.103;};
};
#com域的数据库文件
cp -p /var/named/named.localhost /var/named/com.zone
vim /var/named/com.zone
$TTL 1D
@ IN SOA dns1 mail.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
@ NS dns2
dns1 A 172.17.16.102
dns2 A 172.17.16.103
muzigan NS dns3
dns3 A 172.17.16.104
#检查配置文件
named-checkconf
named-checkzone com.zone /var/named/com.zone
#开启named服务
systemctl start named
测试
dig www.muzigan.com @172.17.16.102
5.com从域配置
在主域服务器
数据库文件/var/named/com.zone中加上
@ NS dns2
dns2 A 172.17.16.103
在从域服务器
#全局配置文件修改
vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
#域配置文件添加
vim /etc/named.rfc1912.zones
zone "com" IN {
type slave;
masters { 172.17.16.102;};
file "slaves/com.zone.slave";
allow-transfer { none;};
};
#com从域的数据库文件
在服务开启后会自动复制主域的
注意:
在修改完主域的数据库文件后,应手动把序列号变大
主从复制借助序列号判断
测试
dig www.muzigan.com @172.17.16.103
6.根域配置
#全局配置文件修改
vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
zone "." IN {
type master;
file "name.zone";
};
#根域的数据库文件
vim /var/named/name.zone
$TTL 1D
@ IN SOA dns1 rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
com NS dns2
dns1 A 172.17.16.101
dns2 A 172.17.16.102
#检查配置文件
named-checkconf
named-checkzone name.zone /var/named/name.zone
#开启named服务
systemctl start named
测试
dig www.muzigan.com @172.17.16.101
7.本地DNS服务器
#全局配置文件修改
vim /etc/name.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
#本地域指向根域的库文件
cp /var/named/named.ca /var/named/named.ca.bak
vim /var/named/named.ca
; <<>> DiG 9.9.2-P1-RedHat-9.9.2-6.P1.fc18 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25828
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 23
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 172.17.16.101
三、最终测试
四、注意
1.主从域配置时
主域需要加上从域的NS和A记录
从域需要写明
type slave
masters 主域的IP
file 在slave目录下的文件名
从域的数据库文件会自动生成
安全:防止DNS解析数据泄露
在主域中声明传输限制;
只能由从域IP可以获取本域数据
在 /etc/named.rfc1912.zones 的单独域处声明
allow-transfer { 从域的IP;};
只能由从域IP可以获取本服务器的数据
在 /etc/named.conf 中声明
allow-transfer { 从域的IP;};
在从域的/etc/named.conf或/etc/named.rfc1912.zones 的单独域处声明
allow-transfer { none;};
2.子域配置时
子域配置文件不需要修改
只需要在父域中添加子域的NS和A记录
3.根域配置时
全局配置文件/etc/named.conf
zone "." IN {
type master;
file "name.zone";
};
type 需要把 hint 改为 master
并且需要手工写数据库文件
与named.localhost文件格式类似
4.本地DNS服务器配置
修改全局配置文件中的限制和策略后
修改 /var/named/named.ca
仿照格式:
修改对应根域的NS和A记录