linux网络服务[DNS域名系统服务]——————简单的正反解析DNS服务器、主从DNS服务

本文介绍了如何在Linux环境中配置简单的正反解析DNS服务器,包括安装DNS服务、编辑配置文件、设置正反向解析记录,并进行测试。接着详细讲解了主从DNS服务的搭建,确保在主服务器停机时,从服务器仍能提供域名解析服务。总结了配置过程中需要注意的要点,如区域配置文件中的反向解析模块IP的书写规则以及主从DNS的交互配置。
摘要由CSDN通过智能技术生成

1.简单的正反解析DNS服务器

实验准备:

  • 一台虚拟机server,作为dns服务器
  • 一台虚拟机作为,web网页服务器。
  • 一台虚拟机进行测试。
  • 关闭防火墙和selinux

1)web服务器安装httpd服务:

[root@web-server ~]# yum install httpd -y

Installed:
  httpd.x86_64 0:2.4.6-45.el7                                                                  

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7                         apr-util.x86_64 0:1.5.2-6.el7               
  httpd-tools.x86_64 0:2.4.6-45.el7                mailcap.noarch 0:2.1.41-2.el7               

Complete!

2)编辑web服务器的默认发布页面:

[root@web-server ~]# vim /var/www/html/index.html

DNS test. # 写入内容

3)启动网络服务:

[root@web-server ~]# systemctl start httpd

4)客户端通过IP地址测试web网页:

[root@client1 ~]# curl 172.25.5.15
DNS test. # 内容正确

5)DNS安装软件:

[root@server ~]# yum install bind -y
Installed:
  bind.x86_64 32:9.9.4-37.el7                                                   

Complete!

6)修改主配置文件:

[root@dns-server ~]# vim /etc/named.conf

options {
        listen-on port 53 { any; }; # 监听本机的所有网卡
        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";
        allow-query     { any; }; # 监听所有询问的客户端
:wq

7)修改区域配置文件(正向和反向的标签记录):

[root@dns-server ~]# vim /etc/named.rfc1912.zones
# 删除文件中的其他模版,我们只留下一个正向一个反向
# 正向
zone "song.com" IN { # 写入要指定的域
        type master; # 不做主从不修改
        file "song.localhost"; # 正向配置文件
        allow-update { none; }; # 不做主从不更新
};

zone "5.25.172.in-addr.arpa" IN { # 反写解析网段
        type master;# 不做主从不修改
        file "song.loopback"; # 反向解析配置文件
        allow-update { none; }; # 不做主从不更新
};

8)生成配置文件:

[root@dns-server ~]# cp -a /var/named/named.localhost /var/named/song.localhost
[root@dns-server ~]# cp -a /var/named/named.loopback /var/named/song.loopback
[root@dns-server ~]# ll /var/named/
total 24
drwxrwx--- 2 named named    6 Sep 26  2016 data
drwxrwx--- 2 named named    6 Sep 26  2016 dynamic
-rw-r----- 1 root  named 2076 Jan 28  2013 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx--- 2 named named    6 Sep 26  2016 slaves
-rw-r----- 1 root  named  152 Jun 21  2007 song.localhost # 模版文件复制成功
-rw-r----- 1 root  named  168 Dec 15  2009 song.loopback

9)修改正向配置文件:

[root@dns-server ~]# vim /var/named/song.localhost

$TTL 1D
@       IN SOA  song.com. rname.invalid. ( # 将第二行的@修改为要解析的域+根域(.)
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.song.com. # 写入DNS服务器的域名+根域(.)
dns     A       172.25.5.10   # 必须由一个关于自己的解析,解析三级域dns对应的IP为172.25.5.10
www     A       172.25.5.15   # 解析web服务器三级域dns对应的IP为172.25.5.15

:wq

10)修改反向解析记录:

[root@dns-server ~]# vim /var/named/song.loopback

$TTL 1D
@       IN SOA  song.com. rname.invalid. (# 将第二行的@修改为要解析的域+根域(.)
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.song.com. # 写入DNS服务器的域名+根域(.)
10      PTR     dns.song.com. # 反向解析网络位已经写在了区域文件中,所以只用表明主机位和对应的域名+根域(.)
15      PTR     www.song.com. # 还有web服务器的主机位和对应的域名+根域(.)

:wq

11)启动dns服务:

[root@dns-server ~]# systemctl start named

12)客户端写入dns服务器的IP:

[root@client1 ~]# nmtui

                             ┌───────────────────────────┤ Edit connection ├───────────────────────────┐
                             │                                                                        ↑│ 
                             │         Profile name eth0____________________________________          ▮│ 
                             │               Device eth0 (52:54:00:00:05:0B)________________          ▒│ 
                             │                                                                        ▒│ 
                             │ ═ ETHERNET                                                    <Show>   ▒│ 
                             │                                                                        ▒│ 
                             │ ╤ IPv4 CONFIGURATION <Manual>                                 <Hide>   ▒│ 
                             │ │          Addresses 172.25.5.2/24____________ <Remove>                ▒│ 
                             │ │                    <Add...>                                          ▒│ 
                             │ │            Gateway _________________________                         ▒│ 
                             │ │        DNS servers 172.25.5.10______________ <Remove>                ▒│ 
                             │ │                    <Add...>                                          ▒│ 
                             │ │     Search domains <Add...>                                          ▒│ 
                             │ │                                                                      ▒│ 
                             │ │            Routing (No custom routes) <Edit...>                      ▒│ 
                             │ │ [ ] Never use this network for default route                         ▒│ 
                             │ │                                                                      ▒│ 
                             │ │ [X] Require IPv4 addressing for this connection                      ▒│ 
                             │ └                                                                      ▒│ 
                             │                                                                        ▒│ 
                             │ ═ IPv6 CONFIGURATION <Automatic>                              <Show>   ▒│ 
                             │                                                                        ▒│ 
                             │ [X] Automatically connect                                              ▒│ 
                             │ [X] Available to all users                                             ▒│ 
                             │                                                                        ↓│ 
                             └─────────────────────────────────────────────────────────────────────────┘

13)不重启网络进行测试:

[root@client1 ~]# curl www.song.com
curl: (6) Could not resolve host: www.song.com; Unknown error

14)重启网络进行测试:

[root@client1 ~]# systemctl restart network
[root@client1 ~]# curl www.song.com
DNS test. # 测试结果正确

14)正向测试:

[root@client1 ~]# nslookup www.song.com
# DNS的IP与地址
Server:		172.25.5.10
Address:	172.25.5.10#53

# 访问网站的IP
Name:	www.song.com
Address: 172.25.5.15

15)反向测试:

[root@client1 ~]# nslookup 172.25.5.15
Server:		172.25.5.10
Address:	172.25.5.10#53
# 反向告诉我们域名成功。
15.5.25.172.in-addr.arpa	name = www.song.com.

总结:

  • 网页的域名不用保存在网页服务器中,只需要DNS服务器知道就可以了。
  • 在主配置文件中不能将;忘记。
  • 区域配置文件中的反向解析模块IP要反写。
  • 正反解析配置文件中域名后都要+根域(.),只要有顶级域出现都要+根域(.);而像正向解析中的三级域就不需要写入。
  • 正反解析配置文件中必须含有DNS服务器自己的域名解析。

2.主从DNS服务

通过搭建从DNS服务器,可以减轻主服务器的压力。

实验准备:

  • 一台虚拟机master-server,作为主dns服务器
  • 一台虚拟机slave-server,作为从dns服务器。
  • 一台虚拟机web-server,作为web服务器。
  • 一台虚拟机进行测试。
  • 关闭防火墙和selinux

1)主服务器修改主配置文件:

[root@master-server ~]# vim /etc/named.conf

options {
        listen-on port 53 { 172.25.5.10; }; # 只有这个网卡可以开启53端口接收询问
        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";
        allow-query     { any; };
:wq

2)主服务器修改区域配置文件:

[root@master-server ~]# vim /etc/named.rfc1912.zones
# 删除所有,保留一个正向解析
zone "song.com" IN { # 写入解析的域
        type master; # 主服务器
        file "song.localhost"; # 正向解析文件
        allow-update { 172.25.5.25; }; # 从服务器允许更新,从服务器的IP
};

:wq

3)主服务器修改正向解析文件:

[root@master-server ~]# vim /var/named/song.localhost

$TTL 1D
@       IN SOA  song.com. rname.invalid. (
                                        20200820        ; serial # 写一个时间标识,表示自己更新了
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.song.com.
dns     A       172.25.5.10
www     A       172.25.5.15

4)启动主服务器:

[root@master-server ~]# systemctl restart named

5)从服务器修改主配置文件:

[root@slave-server ~]# vim /etc/named.conf

options {
        listen-on port 53 { 172.25.5.25; }; # 通过自己的网卡监听,写入网卡的IP
        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";
        allow-query     { any; }; # 所有用户可询问

:wq

6)从服务器修改区域配置文件:

[root@slave-server ~]# vim /etc/named.rfc1912.zones
# 删除其他只留下,正向模块

zone "song.com" IN { # 修改为与主相同
        type slave; # 类型为从
        masters { 172.25.5.10; }; # 写入主的IP
        file "slaves/song.localhost"; # 正向配置文件名称(所以加上slaves/与主配置文件对应)
        allow-update { none; }; # 不用修改,他就是从
};

:wq
  • 从服务器正向配置文件默认保存在/var/named/slaves目录下。

7)从服务器查看/var/named/slaves目录为空:

[root@slave-server named]# cd /var/named/slaves
[root@slave-server slaves]# ls
[root@slave-server slaves]# 

8)从服务器启动服务:

[root@slave-server slaves]# systemctl start named
[root@slave-server slaves]# pwd
/var/named/slaves
[root@slave-server slaves]# ls
song.localhost # 已经含有主发给他的正向配置文件,二进制文件不能查看

9)在测试接中填写DNS从服务器的ip最为自己的DNS:

[root@client ~]# nmtui

               ┌───────────────────────────┤ Edit connection ├───────────────────────────┐
               │                                                                        ↑│ 
               │         Profile name eth0____________________________________          ▮│ 
               │               Device eth0 (52:54:00:00:05:0B)________________          ▒│ 
               │                                                                        ▒│ 
               │ ═ ETHERNET                                                    <Show>   ▒│ 
               │                                                                        ▒│ 
               │ ╤ IPv4 CONFIGURATION <Manual>                                 <Hide>   ▒│ 
               │ │          Addresses 172.25.5.2/24____________ <Remove>                ▒│ 
               │ │                    <Add...>                                          ▒│ 
               │ │            Gateway _________________________                         ▒│ 
               │ │        DNS servers 172.25.5.25______________ <Remove>                ▒│ 
               │ │                    <Add...>                                          ▒│ 
               │ │     Search domains <Add...>                                          ▒│ 
               │ │                                                                      ▒│ 
               │ │            Routing (No custom routes) <Edit...>                      ▒│ 
               │ │ [ ] Never use this network for default route                         ▒│ 
               │ │                                                                      ▒│ 
               │ │ [X] Require IPv4 addressing for this connection                      ▒│ 
               │ └                                                                      ▒│ 
               │                                                                        ▒│ 
               │ ═ IPv6 CONFIGURATION <Automatic>                              <Show>   ▒│ 
               │                                                                        ▒│ 
               │ [X] Automatically connect                                              ▒│ 
               │ [X] Available to all users                                             ▒│ 
               │                                                                        ↓│ 
               └─────────────────────────────────────────────────────────────────────────┘

[root@client ~]# systemctl restart network

10)测试网址解析:

[root@client ~]# nslookup www.song.com
# 通过从服务器解析
Server:		172.25.5.25 
Address:	172.25.5.25#53

# 网站服务器域名与IP
Name:	www.song.com
Address: 172.25.5.15

[root@client ~]# curl www.song.com
Master-DNS test. # 网页内容正确

11)测试如果主服务器停止了:

[root@master-server ~]# systemctl stop named

10)客户端测试网址解析依旧可以工作:

[root@client ~]# curl www.song.com
Master-DNS test.

总结:

  • 主服务器简易配置:区域配置文件中,写入从服务器的IP,允许这个从更新服务器;正向解析配置文件中,写入更新标识。
  • 从服务器的区域配置文件中:正向解析模版解析域与主相同;类型为从;显示主服务器的ip;以及正向解析配置文件保存位置在slaves下。
  • 从服务器不需要配置正向解析配置文件,会有主服务器将文件二进制形式发送过来,也无法修改。
  • 主从服务器相对独立,主服务器停止从服务器没有到更新期限之前都可以独立使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值