DNS域名解析服务

Posted 他和晚风一样温柔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS域名解析服务相关的知识,希望对你有一定的参考价值。

DNS的定义:

  • DNS是"域名系统"的英文缩写
  • DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNs服务器,UDP的53端口用于解析
  • DNS每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS系统的作用

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名
  • DNS系统的分布式数据结构

域名结构

注:DNS系统的结构为分布式数据结构
例如:
http: // www . sina. com. cn./
http://主机名.子域.二级域.顶级域.根域/

各域名解释

  • 根域:位于域名空间最顶层,一般用一个".”表示
  • 顶级域:一般代表一种类型的组织机构或国家地区,如.net (网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn (中国国家域名)
  • 二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如.cn顶级域名下面设置的二级域名: .com.cn、.net.cn、.edu.cn
  • 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
  • 主机:主机位于域名空间最下层,就是一台具体的计算机,如ww、mail都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn.来表示,这种表示方式称为FODM(完全合格域名),也是这台主机在域名中的全名

DNS服务器类型

  • 主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主城名服务器时,需要自行建立所负责区域的地址数据文件。
  • 从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务都的位置,以便服务器能自动同步区域的地址数据库。
  • 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他Dws服务器作为解析来源。
  • 转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

BIND软件安装

BIND (Berkeley Internet Name Daemon)

  • BIND是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/
    相关软件包
  • obind-9.9.4-37.el7.x86_64.rpm
  • bind-utils-9.9.4-37.el7.x86_64.rpm
  • bind-libs-9.9.4-37.el7.x86_64.rpm
  • bind-chroot-9.9.4-37.el7.x86_64.rpm

BIND服务

BIND服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口:53
  • 主配置文件:letc/named.conf
  • 保存DNS解析记录的数据文件位于lvar/named/

BIND服务控制
systemctl [status|start[stop|restart] named.servic

构建DNS域名解析服务器步骤

命令
先安装bind软件包

yum install -y bind

配置正向解析

rpm -qc bind      #查询bind软件配置文件所在路径
letc/named.conf          #主配置文件
/etc/ named.rfc1912.zones           #区域配置文件
/var/named/named.localhost              #区域数据配置文件

在这里插入图片描述
修改主配置文件例如

vim letc/ named.conf

options {
listen-on port 53 { 192.168.80.10; };              监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { : :1; };                      #ipv6行如不使用可以注释掉或者删除
directory       " / var/ named" ;                     #区域数据文件的默认存放位置
dump-file      "/var/named/data/cache dump. db";                    #域名缓存数据库文件的位置
statistics-file       "/var/named/data/named _stats.txt";             #状态统计文件的位置
memstatistics-file       "/var/named/data/named mem stats.txt";           #内存统计文件的位置
allow-query { 192.168.80.0/24;172.16.100.0/24; };               允许使用本DNS解析服务的网段,也可用any代表所存
…….…
}

zone "."IN {                           #正向解析"."根区域
type hint;                              #类型为根区域
file "named.ca" ;                 #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include " /etc/named.rfc1912.zones" ;                  #包含区域配置文件里的所有配置

修改区域配置文件,添加正向区域配置

vim /etc/ named.rfc1912.zones             #文件里有模版,可复制粘贴后修改
zone "benet. com"IN {                           #正向解析"benet.com"区域
type master;                                          #类型为主区域
file "benet.com. zone" ;                         #指定区域数据文件为benet.com. zone
allow-update { none; };
};

配置正向区域数据文件

cd /var/ named/
cp -p named. localhost benet .com. zone             #保留源文件的权限和属主的属性复制
vim /var / named/ benet. com . zone
$TTL  1D                                              #有效解析记录的生存周期
@           IN SoA benet. com. admin.benet .com.(             #"@"符号表示当前的DNs区域名
                                      0            ; serial                #更新序列号,可以是10位以内的整数
                                      1D         ; refresh              #刷新时间,重新下载地址数据的间隔
                                      1H         ; retry                  #重试延时,下载失败后的重试间隔   
                                      1w         ; expire                 #失效时间,超过该时间仍无法下载则放弃
                                      3H)        ; minimum         #无效解析记录的生存周期
                                      
         NS               benet. com.                #记录当前区域的DNS服务器的名称
         A                  192.168.80.10            #记录主机工P地址
工N   MX   10       mail.benet.com.         #MX为邮件交换记录,数字越大优先级越低
www  IN     A       192.168.80.10             #记录正向解析www . benet.com对应的IP
mail   IN     A        192.168.80.11             
ftp IN CNAME         www                     #CNAME使用别名,ftp是www的别名
 *    IN           A         192.168.80.100      #泛域名解析,“太"代表任意主机名
          

注:

  • #"@"这里是一个变量,当前DNS区域名
  • #SoA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
  • #"benet.com.“此为完全合格域名(FQDN),后面有个”."不能漏掉
  • #"admin.benet.com.“表示管理员邮箱,这里的”@“符号已有其他含义,所以用”."代替

启动服务,关闭防火墙

systemctl start named
systemctl stop firewalld
setenforce o

注:
如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/ log/messages
如果服务启动卡往,可以执行下面命令解决
rndc-confgen -r l dev /urandom -a

配置 反向DNS解析

命令:

vim /etc/named.rfc1912.zones		  #进行复制区域配置文件
zone "31.168.192.in-addr.arpa" IN {	  #反向解析的地址倒过来写,代表解析192.168.31.0段的地址
            type master;
            file "duan.com.zone.local";	  #指定区域数据文件为duan.com.zone.local
            allow-update { none; };
};

#创建duan.com.zone.local
cd /var/named/
cp -p named.localhost duan.com.zone.local
vim /var/named/duan.com.zone.local

...
200 IN PTR  www.bao.com.

# PTR 表示是反向解析,反向解析192.168.31.200 的域名为:www.bao.com.

以上是关于DNS域名解析服务的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本实现批量解析域名IP地址(支持多DNS)

DNS分离解析和智能解析 1构建DNS域名服务器的分离解析 DNS分离解析域名服务器概述 DNS分离解析域名服务器实际也是主域名DNS服务器,这里所说的分离解

CentOS7 搭建 DNS 域名解析服务器

DNS解析原理

Linux网络——DNS域名解析服务(正向解析实验)

DNS域名解析服务