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) 测试
相关推荐
风静如云21 分钟前
OpenBMC:BmcWeb定义service
linux
sszdzq34 分钟前
Docker
运维·docker·容器
book012138 分钟前
MySql数据库运维学习笔记
运维·数据库·mysql
leoufung42 分钟前
VIM FZF 安裝和使用
linux·编辑器·vim
bugtraq20212 小时前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu
xmweisi2 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证
VVVVWeiYee2 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
陆鳐LuLu2 小时前
日志管理利器:基于 ELK 的日志收集、存储与可视化实战
运维·elk·jenkins
CodeWithMe2 小时前
[ Vim ] 常用命令 and 配置
linux·编辑器·vim
DC_BLOG2 小时前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式