DNS域名解析

BIND域名结构基础

DNS系统的作用

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

DNS系统的分布式数据结构

DNS系统类型

缓存域名服务器

也称为DNS高速缓存服务器

通过向其他域名服务器查询获得域名->IP地址记录

将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

特定DNS区域的权威服务器,具有唯─性

负责维护该区域内所有域名->IP地址的映射记录

需要自行建立所负责区域的地址数据文件

从域名服务器

也称为辅助域名服务器,是对主域名服务器的热备份

其维护的域名->IP地址记录来源于主域名服务器

需要从主域名服务器自动同步区域地址数据库

DNS查询类型及原理

查询方式

递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)。

迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)。

查询原理过程

正向解析查询过程:
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理
以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

正向解析

区域解析库:由众多资源记录RR(Resource Record)组成

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解

析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

A(internet Address):作用,域名解析成IP地址

AAAA(FQDN): IPV6

PTR(PoinTeR):反向解析,ip地址解析成域名

NS(Name Server):专用于标明当前区域的DNS服务器,服务器类型为域名服务器

CNAME : Canonical Name,别名记录

MX(Mail eXchanger):邮件交换器,数字(0-99),数值越大优先级越低

TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等

serial:更新序列号,可以是10位以内的整数

refresh:刷新时间,重新下载地址数据的间隔

retry:重试延时,下载失败后的重试间隔

expire:失效时间,超过该时间仍无法下载则放弃#

minimum:无效解析记录的生存周期

使用bind构建域名服务器

正向解析

主软件和配置包管理软件

[root@localhost ~]# yum  install bind bind-utils -y

关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# setenforce 0

开启服务

[root@localhost ~]# systemctl start named

编辑服务器的网卡配置文件更改DNS

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
DNS1=127.0.0.1

重启网卡

[root@localhost ~]# systemctl restart network

测试

[root@localhost ~]# ping www.baidu.com

编辑/etc/named.conf/文件

[root@localhost ~]# vim /etc/named.conf

更改删除或者注释这两行

listen-on port 53 { any; };
allow-query     { any; };

在这里插入图片描述

重新加载DNS服务

[root@localhost ~]# rndc reload

[root@localhost ~]# systemctl restart named

编写域名

[root@localhost ~]# vim /etc/named.rfc1912.zones 
zone "kgc.com" {
   type master;
   file "kgc.com.zone";
};

切换目录

[root@localhost ~]# cd /var/named/

[root@localhost named]#ls

data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

保留权限复制

[root@localhost named]#cp named.localhost ./kgc.com.zone -p

编辑数据库文件,解析记录对应关系

[root@localhost named]#vim kgc.com.zone
$TTL 1D
@       IN SOA  master.kgc.com. admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.47.200
www     A       192.168.47.101
db      A       192.168.47.103
IN      MX 10   mail.kgc.com.
mail    A       192.168.47.10
@       A       192.168.47.200

反向解析

先修改区域配置文件

[root@localhost named]#vim /etc/named.rfc1912.zones 
zone "47.168.192.in-addr.arpa" IN {
        type master;
        file "ky15.com.zone";
        allow-update { none; };
};

复制正向解析文件

[root@localhost named]#cp -p kgc.com.zone ky15.com.zone

编辑文件

[root@localhost named]#vim ky15.com.zone
TTL 1D
@       IN SOA  master.yun.com. admin.yun.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.yun.com.
master   A      192.168.47.200
200 IN PTR      www.yun.com.
88  IN PTR      ftp.yun.com.

主从复制

实验环境:

主服务器地址:192.168.47.200

从服务器地址:192.168.47.100

主服务器配置

[root@localhost etc]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-transfer { 192.168.47.103; };
        #添加从服务器的地址
};
[root@localhost etc]#rndc reload

从服务器的配置

关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# setenforce 0

从服务器先安装bind软件

[root@localhost ~]# yum install bind bind-utils.x86_64 -y

两段改成any

[root@localhost ~]# vim /etc/named.conf 
listen-on port 53 { any; };
allow-query     { any; }; 

添加从服务器的配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
        type slave;
        file "slaves/kgc.com.zone";
        masters { 192.168.91.100; };
[root@localhost ~]# ls /var/named/slaves

kgc.com.zone
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值