Linux搭建主从DNS服务器

DNS简介:

DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。

DNS产生的原因:

互联网的不同计算机之间通信是通过IP地址来进行实现的,每台联网计算机都需要通过 IP 地址来互相联系,但由于 IP 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 IP 地址,这样对于我们日常工作生活访问不同网站是很困难的。

对此,人们在IP地址的基础上有发展出了一种更易识别的符号化标识,标识由人们自行选择的字母和数字构成,相比 IP 地址更易被识别和记忆,逐渐代替 IP 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。

域名虽然好记更易于被用户所接受,但计算机只能识别纯数字的IP地址,不能直接识别域名,因此就需要将域名翻译成IP地址,DNS域名解析服务就担任这种翻译工作

作用:

DNS用于将域名和IP地址进行相互映射,使人更方便的访问互联网

  • 正向解析:域名 --> IP地址
  • 反向解析:IP地址 --> 域名

连接:

DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53。

域名服务器类型划分

Linux搭建DNS主从服务器

需求:

利用两台linux主机,配置dns主从服务器,能够实现正常的正反向解析

配置思路:

配置文件:

  • /etc/named.conf --> 主配置文件
  • /etc/named.rfc1912.zones --> 域配置文件(此配置文件会默认加载到主配置文件)
  • /var/named/ --> 所有的域名解析文件所在目录

主服务器:

  1. 在主服务器上对主配置文件 配置对本服务器进行监听IP地址和端口号53 ,允许至少' 从服务器**'** 主机可以访问,允许对从服务器的IP进行"传送数据"
  2. 对主服务器的域配置文件,进行相应域的配置
  3. 在 /var/named/ 文件下创建域名解析文件,并对其进行相应编写

从服务器:

  1. 在主配置文件对本服务器进行监听IP地址和端口号53,允许相应主机进行访问,
  2. 对域配置文件,进行相应域的配置
  3. 重启DNS服务后,观察 /var/named/slaves/ 文件目录下的变化

配置过程:

准备工作:

主从服务器关闭防火墙、关闭selinux,安装DNS相应软件包(bind)

bash 复制代码
# 关闭防火墙、selinux
systemctl status firewalld.service
setenforce 0

# 安装DNS软件包
yum install bind -y
主服务器:
bash 复制代码
vim /etc/named.conf        # 编辑主配置文件

# 对主配置文件进行"局部"的修改
options {
        listen-on port 53 { 192.168.217.132; };        # 监听本机ip地址和端口
        allow-query     { any; };                      # 允许所有主机的访问
        allow-transfer  { 192.168.217.133; };          # 允许对从服务器的 "传送数据"
        }


vim /etc/named.rfc1912.zones        # 编辑与配置文件(对其模板进行修改即可)

# 正向解析
zone "openlab.com" IN {        # 域在此写二级域名
        type master;            # 类型为主
        file "named.openlab";    # 解析文件路径(默认在/var/named/目录下)
};

# 反向解析
zone "217.168.192.in-addr.arpa" IN {        # 此处IP反着写
        type master;                       # 类型为主
        file "named.openlab.arpa";          # 解析文件路径(默认在/var/named/目录下)
};

对域名解析文件模板进行复制再配置

对模版完全复制加-a

cp -a /var/named/named.localhost /var/named/named.openlab

cp -a /var/named/named.localhost /var/named/named.openlab.arpa

域名解析文件配置

bash 复制代码
# 正向解析
vim /var/named/named.openlab

# 内容:↓↓↓
$TTL 1D
@       IN SOA  @ dragon.163.com. (               # SOA起始授权,对openlab.com的主机进行授权
                                        0       ; serial
                                        1M      ; refresh
                                        1M      ; retry
                                        3M      ; expire
                                        1M )    ; minimum

        NS      dns.openlab.com.                # NS:管理这个域名的服务器主机名字,即由哪一台主机去解析当前所定义的域主机    
        NS      ns.opnelab.com.        # 从服务器的主机名
dns     A       192.168.217.132                 # 主机的IPv4的IP地址 
ns      A       192.168.217.133
www     A       192.168.217.136
ftp     A       192.168.217.111
mstp    A       192.168.217.110    
stp     CNAME   mstp                            # 代表这个主机别名的主机名字

--------------------------------------------------------------------------------------------

# 反向解析
vim /var/named/named.openlab.arpa 

# 内容:↓↓↓
$TTL 1D
@       IN SOA  @ dragon.163.com. (
                                        0       ; serial
                                        1M      ; refresh
                                        1M      ; retry
                                        3M      ; expire
                                        1M )    ; minimum
        NS      dns.openlab.com.
        NS      ns.openlab.com.
133     PTR     ns.openlab.com.
132     PTR     dns.openlab.com.
136     PTR     www.openlab.com.
111     PTR     ftp.openlab.com.
110     PTR     mstp.openlab.com.
110     PTR     stp.openlab.com.

配置完后在本机对其进行测试

DNS的ip地址文件:vim /etc/resolv.conf(可对其进行修改,对配置的DNS服务器进行测试)

解析工具:

nslookup 、 dig

bash 复制代码
systemctl restart named        # 重启DNS服务器(start是开启)

测试:
[root@openEuler ~]# nslookup 
> server 192.168.217.132            # 临时让本机IP地址为DNS服务器
Default server: 192.168.217.132
Address: 192.168.217.132#53
> www.openlab.com                    # 测试正向解析
Server:		192.168.217.132
Address:	192.168.217.132#53

Name:	www.openlab.com
Address: 192.168.217.136
> 192.168.217.111                    # 测试反向解析
111.217.168.192.in-addr.arpa	name = ftp.openlab.com.
从服务器:
bash 复制代码
vim /etc/named.conf        # 编辑主配置文件

# 对主配置文件进行"局部"的修改
options {
        listen-on port 53 { 192.168.217.132; };        # 监听本机ip地址和端口
        allow-query     { any; };                      # 允许所有主机的访问
        }


vim /etc/named.rfc1912.zones        # 编辑与配置文件(对其模板进行修改即可)

# 正向解析
zone "openlab.com" IN {        # 域在此写二级域名
        type slave;            # 类型为主
        file "slaves/named.openlab";    # 解析文件路径(默认在/var/named/目录下)
        masters { 192.168.217.132; };    # 主DNS的IP地址
        
};

# 反向解析
zone "217.168.192.in-addr.arpa" IN {        # 此处IP反着写
        type slave;                       # 类型为主
        file "slaves/named.openlab.arpa";          # 解析文件路径(默认在/var/named/目录下)
        masters { 192.168.217.132; };    # 主DNS的IP地址
};

启动DNS服务,观察域名解析文件是否拉取过来

watch ls /var/named/slaves/ --> 监控文件变化

bash 复制代码
# 再开启一台窗口实时监控
watch ls /var/named/slaves/

#  然后在开启DNS服务
systemctl start named

以此可见拉取成功

在主服务器上修改DNS的IP地址为从服务器的IP,测试是否可以解析成功

bash 复制代码
 vim /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.217.133        # 修改DNS地址

测试:

nslookup、dig解析工具都可以

以下都展示↓↓↓↓↓↓

相关推荐
川石课堂软件测试9 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境17 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
九河云4 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零5 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq6 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端