云计算百科
云计算领域专业知识百科平台

Lesson 7 DNS域名解析服务器

域名服务器说明

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

    • 根域名服务器知道 *.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记录,不然新增的数据有时能更新有时无法更新

赞(0)
未经允许不得转载:网硕互联帮助中心 » Lesson 7 DNS域名解析服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!