DNS域名解析服务器

一、dns简介及域名

  • DNS(Domain Name System) : 作为将域名和IP地址相互映射的一个分布式数据库,能便捷互联网的访问。使用53端口,通常以UDP较快的数据传输协议来查询,如果没有查询到,将再次启动TCP重新查询,两者同时启动port53.

  • 因特网在采取命名的时候采用层次树状结构命名方法。

  • 国家顶级域名(cn代表中国等)、通用顶级域名(com公司企业)

二、域的划分

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的 顶级域名服务器的域名和IP地址。全世界只有13台。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限域名服务器:负责一个"区"的域名服务器。

本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个 主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

三、解析过程

当DNS服务器收到查询请求后,首先在浏览器/系统缓存中找,接着在host文件中找,再在本地DNS服务器找(先找区域记录---->再找DNS服务器缓存),如果查不到,可能是因为该服务器不是请求域的授权服务器,并且以前查询的缓存中没有需要的记录,这时DNS服务器必须向转发域名服务器(转发域名服务器负责所有非本地域名的查询)发送请求。如果没有转发域名服务器则找根域名服务器(采用迭代查询)。

当主域名服务器关闭、出现故障或负载过重时,辅助域名服务器作为备份服务器提供域名解析服务。辅助服务器从主域名服务器获得授权,并定期向主服务器询问是否有新数据,如果有则调入并更新域名解析数据,以达到与主域名服务器同步的目的。

四、服务器配置

1.相关服务端

|-------|-----------------|
| 软件安装包 | bind |
| 服务名称 | named |
| 主配置文件 | /etc/named.conf |
| 数据目录 | /var/named |
| 端口 | tcp/53 udp/53 |

2.安装启用

bash 复制代码
dnf install bind -y

systemctl enable --now named

3.开放服务

bash 复制代码
[root@dns-sever ~]# vim /etc/named.conf

options {
        listen-on port 53 { any; };                 # 本地所有网络接口开启53端口
        listen-on-v6 port 53 { ::1; };     
        allow-query     { any; };                   # 允许查询A记录的客户端列表
        forwarders     {114.114.114.114;};          #  非本域的DNS查询请求将被转发
        dnssec-validation no;          # 禁用DNS检测使dns能够缓存外部信息到本记录

4.高速缓存

(1)含义

是一个非权威的dns,在dns服务器中本身并没有数据,当客户需要解析解析域名十四首先查询缓存中是否有数据,如果没有就会从指定的dns服务器中缓存;它可以大大节省内网在做地址解析上所需要花费的时间。

(2)配置参数
bash 复制代码
[root@dns-sever ~]# vim /etc/named.conf 

>      forwarders { 114.114.114.114; };

[root@dns-sever ~]# systemctl restart named
bash 复制代码
[root@hai ~]# vim /etc/resolv.conf 
>  namserver  172.25.254.100

测试:

5.DNS正向解析

(1) 在zones文件中设定维护的域
bash 复制代码
[root@dns-sever ~]# vim /etc/named.rfc1912.zones
 
#配置文件内容
  zone "long.org" IN {
        type master;
        file "long.org.zone";
        allow-update { none; };
};
(2)指定生成A记录文件
bash 复制代码
[root@dns-sever ~]# cd /var/named/

[root@dns-sever named]# cp -p named.localhost  long.org.zone


$TTL 1D                              # dns地址保存时间默认"S"
@       IN SOA dns.ling.org.  root.long.org. (               #SOA授权起始
                                        0       ; serial     # 域名版本序列号
                                        1D      ; refresh    # 刷新时间(辅助dns)
                                        1H      ; retry      # 重试时间
                                        1W      ; expire     # 过期时间
                                        3H )    ; minimum    # A记录最短有效时间
        NS      dns.long.org.          # nameserver 域名
haha    A      172.25.254.100          # A 记录
dns     A      172.25.254.100          
www     CNAME  long.a.long.org.        # Canonical Name (规范名称,A记录别名)
long.a   A      172.25.254.100
long.a   A      172.25.254.200
long.org. MX 1 172.25.254.111.         # 邮件解析记录
(3)测试:

查询邮件记录

(4)查询结果反馈值

|----------|--------|
| 状态码 | 状态码含义 |
| NOERROR | 查询成功 |
| REFUSED | 查询被拒绝 |
| SERVFAIL | 查询失败 |
| NXDOMAIN | 查询无此结果 |

6.DNS反向解析

(1) 作用

当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录 客户提供域名,dns服务器负责把域名解析成对应IP

(2) zones文件设定要维护的域
bash 复制代码
[root@dns-sever ~]# vim /etc/named.rfc1912.zones

 zone "254.25.172.in-addr.arpa" IN {
        type master;
        file "172.25.254.ptr";
        allow-update { none; };
 };
(3) 指定生成A记录文件
bash 复制代码
[root@dns-sever ~]# cd /var/named/
[root@dns-sever named]# cp -p named.loopback 172.25.254.ptr
[root@dns-sever named]# vim 172.25.254.ptr

$TTL 1D
@       IN SOA dns.long.org. root.long.org. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.long.org.
dns     A       172.25.254.100
        AAAA    ::1
111     PTR     www.long.org.
(4) 测试

7.DNS多向解析方案

(1) 作用

在企业中服务器不可能在同一个网段,不同网段的服务器是不是需要用多台dns来满足服务器需求? 根据这一企业需求我们可以在DNS中通过访问设置,让不同网段的服务器都解析到自己网段的相应地址 这就是DNS多项解析

(2) 配置实验环境

本实验需要用到一台服务器以及两个客户端,服务器需要双网卡配置不同网段IP,两台客户端配置服务器的不同网段IP地址。本次实验服务器为172.25.254.0/24和192.168.0.0/24网段,客户端long为192.168.0.0/24网段。

(3) 主配置文件
bash 复制代码
# 注释在主配置文件中默认的zone语句块
vim /etc/named.conf

/*
 zone "." IN {
 type hint;
 file "named.ca";
 };
 include "/etc/named.rfc1912.zones";
 */



# 添加view语句块来限制访问数据走向


view localnet {
           match-clients { 192.168.0.0/24;};     #  匹配访问来源的,匹配访问来源可以填写多个,每个之间用空格分隔
           zone "."IN {
           type hint;
           file "named.ca";
            };
           include "/etc/named.rfc1912.localnets";
};
view  any{
           match-clients { any; };
           zone "."IN {
           type hint;
           file "named.ca";
            };
           include "/etc/named.rfc1912.zones";
};
(4) 生成并配置zones文件
bash 复制代码
[root@dns-sever ~]# cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.localnets

[root@dns-sever ~]# vim /etc/named.rfc1912.localnets

zone "long.org" IN {
 type master;
 file "long.org.zone";
 allow-update { none; };
 };
(5) 生成并配置A记录文件
bash 复制代码
[root@dns-sever ~]# cp -p /var/named/long.org.zone  /var/named/long.org.localnet


[root@dns-sever ~]# vim /var/named/long.org.localnet
(6) 测试

分别在两台客户端主机中修改dns

bash 复制代码
# 客户端1

[root@hai ~]# vim /etc/resolv.conf

nameserver  172.25.254.100

# 客户端2
[root@long ~]# vim /etc/resolv.conf

nameserver  192.168.0.100

8.主从DNS服务器(两台服务器)

(1) 作用

为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就 是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器 (Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅 助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中, 而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性

(2) 对辅助DNS进行配置
bash 复制代码
#  修改zones文件设定要做主从的域

[root@hai ~]# vim /etc/named.rfc1912.zones

zone "long.org" IN {
        type slave;
        masters { 172.25.254.100;};
        file "slaves/long.org.zone";

};

[root@hai ~]# systemctl  restart  named
(3) 解决数据同步问题(决下数据同步的延迟问题)
bash 复制代码
[root@dns-sever ~]# vim /etc/named.rfc1912.zones

zone "long.org" IN {
        type master;
        file "long.org.zone";
        allow-update { none; };

        also-notify { 172.25.254.200;};    # 在主dns中设置数据更改后主动通知对象
};


[root@dns-sever ~]# vim /var/named/long.org.zone #serial 更改A记录后一定要更新serial值
(4) 测试
相关推荐
wanhengidc22 分钟前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain37 分钟前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG1 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss1 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish1 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个1 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱1 小时前
【linux】NFS实验
linux·服务器
王铁柱子哟-1 小时前
解决 正在下载VS Code 服务器... 问题
运维·服务器
Ven%1 小时前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip