Lesson 7 DNS域名解析服务器

发布于:2025-04-23 ⋅ 阅读:(67) ⋅ 点赞:(0)

域名服务器说明

  • 根域名服务器: 全球总计只有十三台服务器,记录了所有顶级域名服务器服务器的地址。

    • 根域名服务器知道 *.com,*.net,*.uk,*.jp..... 等等这些服务器的地址。

  • 顶级域名服务器:记录了所有权威域名服务器的地址 (区域:*.com)

  • 权威域名服务器:记录了所有区域内站点的ip地址。(区域:*.网站名.com )

  • 本地域名服务器: 缓存访问过的网站的域名信息。

域名解析的过程

搭建DNS域名解析服务器

dns服务相关软件安装

  • 安装 

# 如果不知道dns服务器的软件包的名称 可以去搜索dns关键字
[root@server ~]# dnf search dns // 搜索
...
bind.aarch64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System)
             : server
...
dnf install bind -y #软件即可完成安装

/etc/named.conf :该文件是主配置文件

  • options:dns服务器选项设置

  • logging: 日志的配置

  • zone : 区域管理配置

  • include:引用到的子配置

options{
	listen-on port 53 { 172.25.254.100; }; #监听的端口号和ip
	...
	allow-query     { 172.25.254.0/24; }; #允许访问的网段
}
  • /etc/named.rfc1912.zones :这里区域管理配置文件

  • /var/named : 该目录存放着详细的域名解析配置文件

正向解析服务器搭建

1.设置主配置文件

[root@server ~]# vim /etc/named.conf
...
 9
 10 options {
 11     listen-on port 53 { 192.168.25.100; };
 12     listen-on-v6 port 53 { ::1; };
 13     directory   "/var/named";
 14     dump-file   "/var/named/data/cache_dump.db";
 15     statistics-file "/var/named/data/named_stats.txt";
 16     memstatistics-file "/var/named/data/named_mem_stats.txt";
 17     secroots-file   "/var/named/data/named.secroots";
 18     recursing-file  "/var/named/data/named.recursing";
 19     allow-query     { 192.168.25.0/24; };
 20
...
[root@server ~]# systemctl enable --now named.service
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@server ~]#

2.设置区域文件  

[root@Server ~]# vim /etc/named.rfc1912.zones
...
 28
 29 zone "zhangsan.org" IN{
 30         type master;
 31         file "zhangsan.org.zone" # 文件的绝对路径 /var/named/heroliu.org.zone
 32 };
...

3.设置域名解析文件

[root@server ~]# cd /var/named
[root@Server named]# cp -p named.localhost heroliu.org.zone # 通过复制模创建区域解析文件
[root@server named]# vim zhangsan.org.zone
...
1 $TTL 1D  # 域名存活时间是一天
  2 @   IN SOA  dns.zhangsan.org. mail.admin.zhangsan. (
  3                     2025042002  ; serial
  4                     1D  ; refresh
  5                     1H  ; retry
  6                     1W  ; expire
  7                     3H )    ; minimum
  8         NS  dns.zhangsan.org.
 11 dns     A   192.168.25.100
 13 image   A   192.168.25.101
 14 www     A   192.168.25.102
...

4.开启/重启服务

[root@Server named]# systemctl start/restart named

 5.将客户端的网络设置中dns指向本地dns服务器

//4.客户端修改dns指向自己的dns服务器
# [root@Client ~]# dnf install bind-utils -y #安装测试工具
# [root@Client ~]# nmcli connection modify xxxx(你的会话文件名,如ens160) ipv4.dns # 172.25.254.100
# [root@Client ~]# nmcli connection reload
# [root@Client ~]# nmcli connection up xxxx(你的会话文件名,如ens160) 
# 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@Client ~]# dnf install bind -y
[root@client ~]# nmcli connection modify ens160 ipv4.dns 192.168.25.100
[root@client ~]# nmcli connection reload
[root@client ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@client ~]#

6.在客户端验证能否解析

[root@client ~]# nslookup www.zhangsan.org
Server:         192.168.25.100
Address:        192.168.25.100#53

Name:   www.zhangsan.org
Address: 192.168.25.102

[root@client ~]# nslookup dns.zhangsan.org
Server:         192.168.25.100
Address:        192.168.25.100#53

Name:   dns.zhangsan.org
Address: 192.168.25.100

反向解析服务器

如果说 正向解析:通过 域名 -> ip

那么 反向解析: 通过 ip -> 域名

1.设置主配置文件

[root@Server ~]#vim /etc/named.conf
..
options{
    listen-on port 53 { 172.25.254.100; };
    ...
    allow-query     { 172.25.254.0/24; };
}

2.设置区域文件 

    # 创建反向解析的区域配置
    [root@Server named]# vim /etc/named.rfc1912.zones
    ...
     46 zone "25.168.192.in-addr.arpa" IN {
     47         type master;
     48         file "192.168.25.arpa";
     49 };
     50
    ...
    
    # 检查etc下的配置文件是否ok
    [root@server named]# named-checkconf
    

    3.设置反向解析的解析文件 

      [root@Server named]# cd /var/named
      
      [root@server named]# cp -p named.loopback 192.168.25.arpa
      
      [root@server named]# vim 192.168.25.arpa
      ...
      1 $TTL 1D
        2 @   IN SOA  dns.zhangsan.org. rname.invalid. (
        3                     0   ; serial
        4                     1D  ; refresh
        5                     1H  ; retry
        6                     1W  ; expire
        7                     3H )    ; minimum
        8                         NS  dns.zhangsan.org.
        9 dns.zhangsan.org.       A   192.168.25.100
       10 101                     PTR image.zhangsan.org.
       11 102                     PTR www.zhangsan.org.
       12 100                     PTR dns.zhangsan.org.
      ...
      [root@server named]# named-checkzone 25.168.192.in-addr.arpa 192.168.25.arpa
      192.168.25.arpa:9: ignoring out-of-zone data (dns.zhangsan.org)
      zone 25.168.192.in-addr.arpa/IN: loaded serial 0
      OK
      

      4.重启服务 

      [root@server named]# systemctl restart named
      

       5.在客户端使用nslookup 通过ip后去域名

      
      [root@client ~]# nslookup 192.168.25.100
      100.25.168.192.in-addr.arpa     name = dns.zhangsan.org.
      
      [root@client ~]# nslookup 192.168.25.101
      101.25.168.192.in-addr.arpa     name = image.zhangsan.org.
      
      [root@client ~]# nslookup 192.168.25.102
      102.25.168.192.in-addr.arpa     name = www.zhangsan.org.
      

      主从DNS服务

      主服务器设置

      1.DNS指向自己

      [root@server named]# nmcli connection modify ens160 ipv4.dns 192.168.25.100
      [root@server named]# nmcli connection reload
      [root@server named]# nmcli connection up ens160
      连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
      [root@server named]#
      

      2.每一个区域配置文件中添加一个 转发从服务器的设置allow-transfer { 192.168.25.200; };

      
      [root@server named]# vim /etc/named.rfc1912.zones
      ...
       28
       29 zone "zhangsan.org" IN{
       30         type master;
       31         file "zhangsan.org.zone";
       32         allow-transfer{192.168.25.200;};
       33 };
      
       47 zone "25.168.192.in-addr.arpa" IN {
       48         type master;
       49         file "192.168.25.arpa";
       50         allow-transfer{192.168.25.200;};
       51 };
      ...

      3.在正/反数据解析配置文件中,添加从服务器dns设置

      # 正向数据解析配置文件中
      [root@server named]# vim zhangsan.org.zone
      ...
        8         NS  dns.zhangsan.org.
        9         NS  slave.zhangsan.org.# 新增
       10 dns     A   192.168.25.100
       11 slave   A   192.168.25.200# 新增
      ...
      # 反向数据解析配置文件中
      [root@server named]# vim 192.168.25.arpa
      ...
       8                         NS  dns.zhangsan.org.
       9                         NS  slave.zhangsan.org.
       13 200                     PTR slave.zhangsan.org.
      ...

      4.重启

      [root@server named]# systemctl restart named
      从服务器设置

      1.安装bidn及DNS指向自己

      [root@Client ~]# dnf install bind -y
      [root@client ~]# nmcli connection modify ens160 ipv4.dns 192.168.25.200
      [root@client ~]# nmcli connection reload
      [root@client ~]# nmcli connection up ens160
      连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
      [root@client ~]#
      

      2.设置主配置文件

      [root@Client ~]# vim /etc/named.conf
      ...
         11     listen-on port 53 { 192.168.25.200; };
         19     allow-query     { 192.168.25.0/24; };
      ...
      

      3.添加区域信息 type slave;设置masters {172.25.254.100;};设置正反向数据解析配置文件的保存位置,必须在slaves(/var/named/slaves)

      
      [root@client ~]# vim /etc/named.rfc1912.zones
      ...
      zone "zhangsan.org" IN {
              type slave;
              file "slaves/zhangsan.org.zone";
              masters {192.168.25.100;};
      };
      
      zone "25.168.192.in-addr.arpa" IN {
              type slave;
              file "slaves/192.168.25.arpa";
              masters {192.168.25.100;};
      };
      ...

      4.重启

      [root@client ~]# systemctl restart named
      检测主从是否生效
      # 从服务器因为dns设置的是自己 如果也可以实现域名解析说明,主从设置成功
      [root@client ~]# nslookup www.zhangsan.org
      Server:         192.168.25.200
      Address:        192.168.25.200#53
      
      Name:   www.zhangsan.org
      Address: 192.168.25.102
      
      [root@client ~]# nslookup dns.zhangsan.org
      Server:         192.168.25.200
      Address:        192.168.25.200#53
      
      Name:   dns.zhangsan.org
      Address: 192.168.25.100
      
      [root@client ~]# nslookup 192.168.25.101
      101.25.168.192.in-addr.arpa     name = image.zhangsan.org.
      
      [root@client ~]# dig @192.168.25.100 dns.zhangsan.org
      
      ; <<>> DiG 9.16.23-RH <<>> @192.168.25.100 dns.zhangsan.org
      ; (1 server found)
      ;; global options: +cmd
      ;; Got answer:
      ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63011
      ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
      
      ;; OPT PSEUDOSECTION:
      ; EDNS: version: 0, flags:; udp: 1232
      ; COOKIE: 06506cea86bf21e3010000006804f093cc70e23d363ee556 (good)
      ;; QUESTION SECTION:
      ;dns.zhangsan.org.              IN      A
      
      ;; ANSWER SECTION:
      dns.zhangsan.org.       86400   IN      A       192.168.25.100
      
      ;; Query time: 2 msec
      ;; SERVER: 192.168.25.100#53(192.168.25.100)
      ;; WHEN: Sun Apr 20 21:03:15 CST 2025
      ;; MSG SIZE  rcvd: 89
      
      [root@client ~]#
      
      增量区域传送
      • 功能:仅复制区域里变化的文件

      • 第一步:主服务端操作,修改数据配置文件

      [root@server ~]# vim  /var/named/openlab.com.zone
        1 $TTL 1D
        2 @   IN SOA  dns.zhangsan.org. mail.admin.zhangsan. (
        3                     2025042002  ; serial
        4                     1D  ; refresh
        5                     1H  ; retry
        6                     1W  ; expire
        7                     3H )    ; minimum
        8         NS  dns.zhangsan.org.
        9         NS  slave.zhangsan.org.
       10         MX  8 mail.zhangsan.org
       11 dns     A   192.168.25.100
       12 slave   A   192.168.25.200
       13 image   A   192.168.25.101
       14 www     A   192.168.25.102
       15 www1    CNAME www #添加
       16 mail    A   192.168.25.103 # 添加
      
      # 注意:1 ; serial 处的序号数字必须加1,否则从服务端不更新
      • 第二步:主服务端操作,重启服务

      [root@server named]# systemctl restart named
      • 第三步:从服务端操作,重启服务

      [root@client ~]# systemctl restart named
      
      • 第四步:从服务端操作,测试

      [root@client ~]# nslookup mail.zhangsan.org
      Server:         192.168.25.200
      Address:        192.168.25.200#53
      
      Name:   mail.zhangsan.org
      Address: 192.168.25.103
      
      [root@client ~]# nslookup www1.zhangsan.org
      Server:         192.168.25.200
      Address:        192.168.25.200#53
      
      www1.zhangsan.org       canonical name = www.zhangsan.org.
      Name:   www.zhangsan.org
      Address: 192.168.25.102
      
      [root@client ~]#
      注意:
      • 序号需要比原序号大(一般改一次加一)

      • 更新频率可以改小一点,这样比较快看到实验结果(如 1D  ; refresh>>3S ; refresh)

      • 需要写一条关于从服务器的NS和A记录,不然新增的数据有时能更新有时无法更新


      网站公告

      今日签到

      点亮在社区的每一天
      去签到