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解析工具都可以

以下都展示↓↓↓↓↓↓

相关推荐
疯狂飙车的蜗牛20 分钟前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程1 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
Michaelwubo2 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07132 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<2 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟2 小时前
centos-stream9系统安装docker
linux·docker·centos
好像是个likun3 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
LIKEYYLL4 小时前
GNU Octave:特性、使用案例、工具箱、环境与界面
服务器·gnu
云云3215 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵