Linux —— DNS服务器部署

目录

1. 关于dns的名词解释

1.1 客户端

1.2 服务端

1.3 报错信息

2. dns服务的安装与启用

3. 高速缓存dns

4. dns的正向解析

5. dns的反向解析

6. dns的双向解析

7. dns集群

8. dns的更新

8.1 dns基于ip地址的更新 

8.2 dns基于key更新 

9. ddns(dhcp+dns)


1. 关于dns的名词解释

dns:domain name service(域名解析服务)

1.1 客户端

/etc/resolv.conf ##dns指向文件 
host www.baidu.com ##地址解析命令 
dig www.baidu.com ##地址详细解析信息命令 
A记录 ##ip地址叫做域名的Address 记录 

/etc/resolv.conf 指向文件【指向文件即我们地址解析动作时会访问该文件下指定的IP完成操作】: 

 地址解析命令'host':

地址详细解析信息命令'dig': 

 

SOA ##授权起始主机 
dns顶级 
. 13
次级 
.com .net .edu .org ....
## 举例:首先从.com中找,如果没有找到便退到.中分级别寻找

1.2 服务端

bind ##安装包 
named ##服务名称 
/etc/named.conf ##主配置文件 
/var/named ##数据目录 
53   ## 数据目录端口

1.3 报错信息

1.no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?) 
2.服务启动失败 ##配置文件写错 journalctl -xe查询错误 
3.dig 查询状态 
NOERROR ##表示查询成功 
REFUSED ##服务拒绝访问 
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存) 
NXDOMAIN ##此域名A记录在dns中不存在

测试一:在dns_node1主机中我们没有让防火墙允许dns服务端口,在dns_node2主机中设置nameserver为dns_node1的IP地址:192.168.43.20,查看地址详细解析命令报错。 

 测试二:接上个测试,我们在dns_node1主机中让火墙允许该服务,这个时候我们服务已开启、火墙已经允许、网络也已经配置ok,再来试下。

结果我们还是无法正常的解析,这是为什么呢?

查看并对比

查看状态后我们发现并没有开启192.168.43.20的53端口

 接下来我们配置一下

 

 配置完成之后,我们再去执行dig www.baidu.com查看结果

测试三:接上个测试最终结果,我们注意看标红部分,只有问题而没有回答,这是因为我们现在所处的状态是REFUSED

我们来看下正常显示内容,会发现正常显示时状态为NOERROR

 这个时候我们在dns_node1中查看配置文件我们发现它只允许了本地主机,我们将其修改为any

在dns_node2中再次解析www.baidu.com,查询记录失败。 结果如下 

2. dns服务的安装与启用

#安装# 
dnf install bind.x86_64 -y
#启用# 
systemctl enable --now named 
firewall-cmd --permanent --add-service=dns   ## 设定火墙策略
firewall-cmd --reload

启用:

火墙中允许该服务:

 

vim /etc/named.conf 
11         listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口 
19         allow-query     { any; }; ##允许查询A记录的客户端列表 
32         dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
systemctl restart named 

3. 高速缓存dns

20         forwarders { 114.114.114.114; };

 

4. dns的正向解析

vim /etc/named.rfc1912.zone 
zone "dsd.com" IN { ##维护的域名        
        type master; ##当前服务器位主dns        
        file "dsd.com.zone"; ##域名A记录文件        
        allow-update { none; }; ##允许更新主机列表 
};

 

cd /var/named/ 
cp -p named.localhost dsd.com.zone 
$TTL 1D 
@       IN SOA  dns.dsd.com. root.dsd.com (                                          
                                        0       ; serial                                        
                                        1D      ; refresh                                        
                                        1H      ; retry                                        
                                        1W      ; expire                                        
                                        3H )    ; minimum                
                NS      dns.dsd.com. 
dns             A       192.168.0.20 
www                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     CNAME   dsd.a.dsd.com. ##规范域名 
dsd.a        A       192.168.0.111 ##正向解析记录 
dsd.a        A       192.168.0.112 
dsd.com.     MX 1    192.168.0.20. ##邮件解析记录
systemctl restart named 
dig www.dsd.com #查询正向解析 
dig -t mx dsd.com #邮件解析记录查询

dig www.dsd.com #查询正向解析

dig -t mx westos.com #邮件解析记录查询

5. dns的反向解析

vim /etc/named.rfc1912.zones 
zone "43.168.192.in-addr.arpa" IN { 
        type master; 
        file "192.168.43.ptr"; 
        allow-update { none; }; 
};

 

cd /var/named/ 
cp -p named.loopback 192.168.43.ptr
vim 192.168.43.ptr  
$TTL 1D 
@ IN SOA dns.dsd.com. root.dsd.com. ( 
                                0  ; serial 
                                1D ; refresh 
                                1H ; retry 
                                1W ; expire 
                                3H ) ; minimum 
            NS     dns.dsd.com. 
dns         A      192.168.43.20 
11         PTR     www.dsd.com. 
12         PTR     bbs.dsd.com. 
13         PTR     news.dsd.com.
14         PTR     wenku.dsd.com
systemctl restart named 
测试: 
dig -x 192.168.43.14

 

dig -x 192.168.43.14

6. dns的双向解析

实验环境:
## 客户端2台 
192.168.43网段 
172.25.254网段     ##ifconfig ens160 172.25.254.30 netmask 255.255.255.0
## 服务端1台2个网段的ip 
192.168.43.20 
172.25.254.20     ##ifconfig ens160 172.25.254.20 netmask 255.255.255.0

【外网】客户端主机1(dns_node2): 

【内网】客户端主机2(rhel7):

服务端(dns_node1): 

在192.168.43网段的客户主机rhel7中 
vim /etc/resolv.conf 
nameserver 192.168.43.20

在172.25.254网段的客户主机dns_node2中 
vim /etc/resolv.conf 
nameserver 172.25.254.20
配置方式: 
cd /var/named/ 
cp -p dsd.com.zone dsd.com.inter 
vim dsd.com.inter 
$TTL 1D 
@         IN SOA dns.dsd.com. root.dsd.com ( 
                                        0 ; serial 
                                        1D ; refresh 
                                        1H ; retry 
                                        1W ; expire 
                                        3H ) ; minimum 
              NS     dns.dsd.com. 
dns           A      172.25.254.20 
www           CNAME  dsd.a.dsd.com. 
dsd.a         A      172.25.254.111 
dsd.a         A      172.25.254.112 
dsd.com.      MX 1   172.25.254.20.

cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.inters 
vim /etc/named.rfc1912.inters 
zone "dsd.com" IN { 
        type master; 
        file "dsd.com.inter"; 
        allow-update { none; };
};

vim /etc/named.conf 
view localnet {        
        match-clients { 192.168.0.0/24; };        
        zone "." IN {                
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key"; };
view internet {
        match-clients { any; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.inters";
        include "/etc/named.root.key"; };
systemctl restart named 

 

测试:
分别在2个网段的主机中作同样域名的地址解析 
得到的A记录不同

7. dns集群

DNS集群:在一台主机中做的任何操作,会同步到其他所有的主机中。

主dns:
zone "dsd.com" IN {
        type master;
        file "dsd.com.zone";
        allow-update { none; };
        also-notify { 192.168.43.30; }; ##主动通知的辅助dns主机
};
vim /var/named/dsd.com.zone 
$TTL 1D 
@       IN SOA  dns.dsd.com. root.dsd.com (                                                                
                                          2020031402      ; serial ##每次修改A记录文件需要                                                        
                                          1D      ; refresh ##变更此参数的值                                        
                                          1H      ; retry                                        
                                          1W      ; expire                                        
                                          3H )    ; minimum
             NS      dns.dsd.com. 
dns          A       192.168.43.20 
www          CNAME   dsd.a.dsd.com. 
dsd.a        A       192.168.43.211
dsd.a        A       192.168.43.212
dsd.com.     MX 1    192.168.43.20.

slave dns: 
dnf install bind -y 
firewall-cmd --add-service=dns

vim /etc/named.conf 
listen-on port 53 { any; }; 
allow-query     { any; };
dnssec-validation no;
vim /etc/named.rfc1912.zone 
zone "westos.com" IN {
        type slave; ##dns状态位辅助dns
        masters { 192.168.0.20; }; ##主dns
        file "slaves/westos.com.zone"; ##同步数据文件
};
systemctl restart named 

8. dns的更新

8.1 dns基于ip地址的更新 

在dns中设定: 
vim /etc/named.rfc1912.zones

zone "dsd.com" IN {
        type master;
        file "dsd.com.zone";
        allow-update { 192.168.43.10; }; ##允许指定客户端更新dsd域
        also-notify { 192.168.43.30; };
}; 
测试: 在192.168.0.10 
[root@rhel7_node1 ~]# nsupdate 
> server 192.168.43.20 
> update add hello.dsd.com 86400 A 192.168.43.111 ##新曾A记录 
> send 
> update delete hello.dsd.com ##删除A记录 
> send 

  • 新增A记录 

  • 删除A记录

8.2 dns基于key更新 

dns基于key更新的方式: 
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST dsd
cp -p /etc/rndc.key /etc/dsd.key 
vim /etc/dsd.key 
key "dsd" { 
         algorithm hmac-sha256; 
         secret "4EVMXogJevsnJ5vW/0E7bw=="; 
};

vim /etc/named.conf 
43 include "/etc/dsd.key"; 
vim /etc/named.rfc1912.zones 
zone "dsd.com" IN {
        type master;
        file "dsd.com.zone";
        allow-update { key dsd; };
        also-notify { 192.168.43.30; };
};
systemctl restart named

这个时候由于我们没有设置两台主机时间同步,因此会报错,这里我们直接将时间同步设置好。

  • dns_node1主机192.168.43.20中
vim /etc/chrony.conf
###
23 allow 192.168.43.0/24
26 local stratum 10
###
systemctl restart chronyd.service
systemctl stop firewalld

  • 在rhel7主机192.168.43.10中
vim /etc/chrony.conf
###
server 192.168.43.20 iburst
###
systemctl restart chronyd.service

[root@rhel7_node1 ~]# nsupdate -k /mnt/Kdsd.+163+26695.private 
> server 192.168.43.20 
> update add hello.dsd.com 86400 A 192.168.43.111 
> send 
> quit

9. ddns(dhcp+dns)

  • 设定测试主机网络工作方式为dhcp

  • 配置dns_node1的dhcp服务
cd /etc/dhcp/
cp /usr/share/doc/dhcp-server/dhcpd.conf.example dhcpd.conf
vim dhcpd.conf
###
7 option domain-name "dsd.com";
8 option domain-name-servers 192.168.43.20;
27 #subnet 10.152.187.0 netmask 255.255.255.0 {
28 #}
32 subnet 192.168.43.0 netmask 255.255.255.0 {
33   range 192.168.43.50 192.168.43.80;
34   option routers 192.168.43.1;
35 }
###
  • 在测试主机中,通过dhcp动态获取IP

 

 

key westos {
         algorithm hmac-sha256;
         secret SB1tQcLaWeroU9lGW21zeA==;
       };
zone westos.com. {
         primary 127.0.0.1;
         key westos; }
 
dns的key更新
测试:
 
设定测试主机网络工作方式为dhcp 
设定主机名称test.westos.com
重启网络
dig test.westos.com
可以得到正确解析

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值