> 文章列表 > 回炉重造九---DNS服务器

回炉重造九---DNS服务器

回炉重造九---DNS服务器

1、DNS服务器的相关概念和技术

1.1 DNS服务器的类型

  • 主DNS服务器
  • 从DNS服务器
  • 缓存DNS服务器(forward DNS服务器{转发器})

1.1.1 主DNS服务器的作用

管理和维护所负责解析的域内解析库的服务器

1.1.2 从DNS服务器的作用

从主服务器或从服务器“复制”解析库副本

1.2 解析形式

  • 正向解析:域名------>IP地址
  • 反向解析:IP地址------->域名

1.3 各种资源记录

注意:区域解析库是由各种资源记录组成的(一般只有SOA记录、NS记录、A记录)

  • SOA资源记录: SOA 记录表示此域名的权威解析服务器地址。 当要查询的域名在所有递归解析服务器中没要域名解析的缓存时,就会回源来请求此域名的SOA记录,也叫权威解析记录 。
  • A记录(正向解析):把域名解析成IP
  • PTR(反向解析):把IP解析成域名
  • NS:name server,用于标明当前区域的DNS服务器

2.DNS的相关配置

(DNS服务器软件:bind,powerdns,dnsmasq,coredns,unbund**)

1.1 bind安装包相关文件

  • BIND主程序:/usr/sbin/named
  • 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
  • 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
  • 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且
    只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
  • 解析库文件:/var/named/ZONE_NAME.ZONE
    注意:
    (1) 一台物理服务器可同时为多个区域提供解析
    (2) 必须要有根区域文件;named.ca
    (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

1.3 相关命令

1.3.1 相关文件检查的命令

1、主配置文件语法检查
named-checkconf
2、解析库文件语法检查
named-checkzone “域名”  区域解析文件
3、使DNS配置文件生效
(1)rndc  reload
(2)systemctl reload named
(3)service named reload
4、测试和管理
(1)dig
(2)nslookup

1.3.2 测试和管理的命令—rndc

rndc COMMAND
COMMAND:status: 查看状态
reload: 重载主配置文件和区域解析库文件
reload zonename: 重载区域解析库文件
retransfer zonename: 手动启动区域传送,而不管序列号是否增加
notify zonename: 重新对区域传送发通知
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志文件/var/log/message
trace: 递增debug一个级别
trace LEVEL: 指定使用的级别
notrace:将调试级别设置为 0
flush:清空DNS服务器的所有缓存记录

2、DNS的相关案例

2.1 DNS正向域名解析

回炉重造九---DNS服务器

服务器名称 IP地址
dns-server 172.17.8.101
web-server 172.17.8.102
clint 172.17.8.103

(1)环境初始化

1、关闭防火墙和selinux
2、时间同步

(2)DNS服务器的配置

1、安装dns服务(安装bind包)
yum -y install bind bind-utils
2、修改named的配置文件
vim /etc/named.conf      
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
allow-transfer { none;};
3、创建dns区域解析库文件
vim /etc/named.rfc1912.zones
zone "qiange.com" {type master;file "qiange.com.zone";
};
4、配置区域解析库
cp -a /var/named/named.localhost /var/named/qiange.com.zone
#如果没有-a,需要改权限。chgrp named wang.org.zone
vim /var/named/qiange.com.zone
@  IN SOA qiange.com admin.wang.org. (2019042214 ; serial1D ; refresh1H ; retry1W ; expire3H )  ; minimum@  NS  ns.qiange.comns.qiange.com A 172.17.8.101www    A  172.17.8.1025、检查配置文件和域名解析库文件是否有错
named-checkconf
named-checkzone qiange.com /var/named/qiange.com.zone6、启动服务
systemctl start named      #第一次启动服务
rndc reload           #不是第一次启动服务

(3)web服务器的配置

(1)安装http服务
yum -y install httpd            
(2)配置主页面
echo www.wang.org > /var/www/html/index.html
(3)启动服务
systemctl start httpd

(4)客户端的配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.17.8.101
#有以下记录,算是成功
cat /etc/resolv.conf          
# Generated by NetworkManager
nameserver  172.17.8.101
#测试网页,能显示就是成功
curl www.wang.org         

2.2 DNS主从搭建

回炉重造九---DNS服务器

服务器名称 IP地址
master-dns 172.17.8.10
salve-dns 172.17.8.11
web-server 172.17.8.13
client 172.17.8.12

(1)主DNS的配置

[root@dns-master ~]# yum -y install bind bind-utils
[root@dns-master ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };   #注释listen-on-v6 port 53 { ::1; };directory       "/var/named";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";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";
//      allow-query     { localhost; };  #注释allow-transfer  { 172.17.8.11; #配置从DNS的IP };  #只允许从服务器进行区域传输
[root@dns-master ~]# vim /etc/named.rfc1912.zones
zone "qiange.com" IN {type master;file "qiange.com.zone";
};
[root@dns-master ~]# cp -a /var/named/named.localhost /var/named/qiange.com.zone
[root@dns-master named]# cat qiange.com.zone 
$TTL 1D
@	IN SOA	ns.qiange.com admin.qiange.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimum
@	NS	master.qiange.com.
@       NS      salve.qiange.com.master  A       172.17.8.10
salve   A       172.17.8.11
www     A       172.17.8.12
[root@dns-master ~]#named-checkconf 
[root@dns-master ~]#named-checkzone qiange.com /var/named/qiange.com.zone
[root@dns-master ~]#systemctl start named

(2)从DNS的配置

[root@dns-salve ~]#yum -y install bind bind-utils
[root@dns-salve ~]#vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };  #注释listen-on-v6 port 53 { ::1; };
//      allow-query     { localhost; };  #注释allow-transfer     { none; };  #不允许其他主机进行区域传输[root@dns-salve ~]#vim /etc/named.rfc1912.zoneszone "qiange.com" IN {type  slave;   #服务器的类型masters { 172.17.8.10;};  #主服务器的IPfile "slaves/qiange.com.slave"; #注意:存放从主服务器节点同步过来的区域解析文件的路径不能写错};[root@dns-salve ~]#systemctl start named[root@dns-salve slaves]# ll qiange.com.slave  #看此文件是否生成
-rw-r--r-- 1 named named 326 421 15:41 qiange.com.slave

(3)web-server的配置

(1)安装http服务
[root@web-server ~]#yum -y install httpd            
(2)配置主页面
[root@web-server ~]#echo hello > /var/www/html/index.html
(3)启动服务
[root@web-server ~]#systemctl start httpd

(4)客户端配置

[root@client ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.17.8.10
DNS2=172.17.8.11#测试
[root@client ~]# curl www.qiange.com
hello
[root@client ~]# nslookup www.qiange.com
Server:		172.17.8.10
Address:	172.17.8.10#53Name:	www.qiange.com
Address: 172.17.8.12#关闭主DNS服务
[root@client ~]# nslookup www.qiange.com
Server:		172.17.8.11
Address:	172.17.8.11#53Name:	www.qiange.com
Address: 172.17.8.12

实验报错总结

(1)存放从主服务器节点同步过来的区域解析文件的路径不能写错,报错显示没有读到区域解析库文件

回炉重造九---DNS服务器

(2)用named-checkzone qiange.com /var/named/qiange.com.zone检测出区域文件格式有错

回炉重造九---DNS服务器

2.3 实现DNS父域和子域服务

回炉重造九---DNS服务器

服务器的名称 IP地址
dns-qiange 172.17.8.10
dns-nj 172.17.8.11
web-server1 172.17.8.100
web-server2 172.17.8.110
client 172.17.8.6

(1)172.17.8.10 父域DNS的配置

yum install bind -y
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 172.17.8.11;};
#建议关闭加密验证
dnssec-enable no;
dnssec-validation no;
vim /etc/named.rfc1912.zones  
#加上这段
zone "qiange.com" {type master;file  "qiange.com.zone";
};
cp -p /var/named/named.localhost /var/named/qiange.com.zone
#如果没有-p,需要改权限。chgrp named wang.org.zone
vim /var/named/wang.org.zone
$TTL 1D
@ IN SOA qiange.com admin.qiange.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum@      NS   qiangenj       NS  nj
qiange   A   172.17.8.10
nj       A   172.17.8.11
www     A    172.17.8.100       
systemctl start named      #第一次启动服务
rndc reload                #不是第一次启动服务

(2)172.17.8.11 子域DNS的配置

yum install bind -y
vim /etc/named.conf      
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone "nj.qiange.com" {type master;file "nj.qiange.com.zone";
};
cp -p /var/named/named.localhost /var/named/nj.qiange.com.zone
#如果没有-p,需要改权限。chgrp named wang.org.zone
vim /var/named/nj.qiange.com.zone
$TTL 1D
@  IN SOA master admin.wang.org. (2019042214 ; serial1D ; refresh1H ; retry1W ; expire3H )  ; minimumNS  njnj   A   172.17.8.11www  A      172.17.8.110
systemctl start named      #第一次启动服务
rndc reload           #不是第一次启动服务

named wang.org.zone
vim /var/named/nj.qiange.com.zone
$TTL 1D
@ IN SOA master admin.wang.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS nj
nj A 172.17.8.11
www A 172.17.8.110
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务