一、简介:

1、DNS的原理:

  在Linux系统中,DNS(Domain Name System)是一个重要的网络服务,它负责将域名解析为IP地址以进行网络通信。 Linux DNS是通过域名服务控制器(DNS服务器)实现的,该服务器存储了域名和对应的IP地址,以及其他相关信息。

2、DNS常见的用法和作用:

当Linux系统需要访问某个域名时,它会向DNS服务器发送请求,获取对应的IP地址,然后使用该IP地址进行网络通信。在Linux系统中,常用的DNS服务器软件包括BIND(Berkeley Internet Name Domain)和NSD(Name Server Daemon)。用户可以使用dig命令来测试DNS解析和性能。

二、实验目的:

1、熟悉域名服务器的各种角色

2、学会构建主域名服务器

三、准备:

挂源:

在配置DNS之前要先安装好bind,安装要提前挂源,我们在挂源的时候可用先用

df -h

 来看源的挂在路径,然后更改挂源路径

mount /dev/sr0 /XXX/XX

 从此可用看出我们已经把源挂在home里面的aa文件中,我们可以再次检测一次挂源路径

df -h

四、安装:

 然后我们就可以安装bind服务

yum install bind -y

五、配置: 

1、配置准备:

在安装成功后,我们需要先知道我们的ip地址

ifconfig

可以用这个命令来查询我们的ip地址

我们看ens33,ens33` 是 Linux 系统下的一个网络设备标识符。它用于标识系统中的物理或虚拟网卡设备,以便系统能够识别和管理它们。 

在 Linux 以及一些基于 Linux 的操作系统(如 CentOS、Ubuntu 等)中,网络设备名称通常由 udev 程序进行动态管理。系统根据硬件设备、驱动程序和网络规则等因素,为每个网络设备分配一个唯一的名称。 作用是让系统可以准确地找到网络设备并为其分配相应的 IP 地址、DNS 信息、路由规则等网络配置。当你连接到网络时,你的系统需要知道使用哪个网卡来发送和接收数据。`ens33` 标识即告诉系统“我是这个网卡”,这样让系统很容易地分配和管理网络配置信息。

 所以ens33后面的那个IP是我们的本机ip。

2、配置DNS服务器的全局参数:

然后我们就可以在主配置文件/etc/named.conf中设置DNS服务器的全局参数

  1. vi /etc/named.conf

  2. listen-on port 53 { 127.0.0.1; };

  3. allow-query { localhost; };

进来后,我们只需要修改这两个参数,port修改为我们的本机IP,allow修改为我们的网段

 修改全局参数后我们可以设置主域名服务器,我们要先确认本机IP地址、主机映射、DNS服务器地址

 
  1. 1、hostname ns1

  2. 2、vi /etc/hosts

  3. 3、vi /etc/resolv.cof

  4. 4、在修改hosts文件时要注意要有类似192.168.168.131 ns1.zhangsan.com ns1的内容

  5. 5、在修改resolv文件时要注意要有nameserver 192.168.168.131的内容

  6. 6、在配置resolv文件时建议最好指定多个DNS服务器:可以在配置文件中指定多个DNS服务器,以提高系统的DNS解析性能和容错性。

3、 设置区域配置文件

 
  1. vi /etc/named.rfc1912.zones

  2. zone "zhangsan.com" IN {

  3. type master;

  4. file "zhangsan.com.zone";

  5. allow-update { none; };

  6. };

  7. zone "168.168.192.in-addr.arpa" IN {

  8. type master;

  9. file "168.168.192.arpa";

  10. allow-update { none; };

  11. };

4、建立正向解析数据库文件

注意:在2022这里有长度限制的,如果超出10位数时,在开启dns服务时会报错,显示开启失败

 
  1. vi /var/named/zhangsan.com.zone

  2. $TTL 86400

  3. @ IN SOA zhangsan.com. admin.zhangsan.com. (

  4. 2022115037

  5. 4H

  6. 30M

  7. 12H

  8. 1D

  9. )

  10. NS @

  11. A 192.168.168.131

  12. ns1 A 192.168.168.131

  13. www A 192.168.168.10

  14. mail A 192.168.168.20

5、建立反向解析数据库文件

注意:在2022这里有长度限制的,如果超出10位数时,在开启dns服务时会报错,显示开启失败如下图

报错内容:

 
  1. vi /var/named/168.168.192.arpa

  2. $TTL 86400

  3. @ IN SOA zhangsan.com. admin.zhangsan.com. (

  4. 2022115037

  5. 4H

  6. 30M

  7. 12H

  8. 1D

  9. )

  10. NS @

  11. A 192.168.168.128

  12. 10 PTR ns1.zhangsan.com.

  13. 10 PTR www.zhangsan.com.

  14. 20 PTR mail.zhangsan.com.

六、验证:

1、启动DNS:

当这些都配置好后就可以启动dns服务

systemctl start named

没有报错就算是成功,并且可以用

systemctl status named

 命令来查看服务开启状态,开启状态如下:

2、测试DNS:

然后测试dns(或者用Windows系统在浏览器上面进行测试)

(1)、Centos 7的测试方法 :

  1. nslookup ns1.zhangsan.com

  2. nslookup www.zhangsan.com

  3. nslookup 192.168.168.131

(2)、Windows10的测试方法:

 

七、 总结以及错误注意点:

在配置dns中,我们的文件配置很容易配置错误,当我们配置错误时,可以用

 
  1. named-checkconf /etc/named.rfc1912.zones

  2. named-checkconf /etc/named.conf

  3. systemctl stop firewalld.service

  4. systemctl disable firewalld.service

  5. setenforce 0

来检测全局配置是否有语法的错误,如果有语法的错误会返回错误,还有就是正向解析和反向解析是很容易出错的,发现错误时要检查域名是否与全局配置文件相同,IP地址是否是本机IP等问题来检测全局配置是否有语法的错误,如果有语法的错误会返回错误,还有就是正向解析和反向解析是很容易出错的,发现错误时要检查域名是否与全局配置文件相同,IP地址是否是本机IP等问题,还有就是防火墙要关闭

 
  1. netstat -anp | grep :53

  2. lsof -i :53

还有一种就是53端口占用问题,可以用上面两种中的任意一种查看53端口是否被占用。

八、心得体会:

在配置DNS是提高系统性能和避免网络故障的重要步骤。最好指定多个DNS服务器,并启用本地DNS缓存。应避免DNS污染,正确配置防火墙规则以确保DNS服务器正常通信。在修改配置文件后要确认修改已生效,最好使用工具或命令来配置DNS,避免手动导致错误。正确配置DNS有助于提高系统性能,确保网络连接畅通。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐