Linux网络——DNS域名解析服务

一、DNS域名系统

域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。

1.1 DNS作用

  • 正向解析: 根据域名查找对应的IP地址
  • 反向解析: 根据IP地址查找对应的域名
  • 53端口,tcp(域名传送)/udp(域名解析)

1.2 DNS系统的类型

1)主域名服务器:

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
具有唯一性

2)从域名服务器:

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

DNS系统的分布式数据结构:

在这里插入图片描述

1.3 DNS系统的查询方式

  • 递归查询: 一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
  • 迭代查询: 一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需 要发起多次查询。(需要自己动手)

二、DNS的域名结构

2.1 域名结构

http://www.sina.com.cn.
    主机名 子域 二级域 顶级域 根域

2.2 域名分布式结构

类型原理
根域位于树状结构最顶层,用"."表示
顶级域一般代表一种类型的组织机构或国家地区;如.net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)
二级域用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理
子域二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
主机主机位于域名空间最下层,就是一台具体的计算机
  • 一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区):
一级域名
.com(工商企业)
.net网络供应商
.edu(教育机构)
.cn中国国家域名
.org团体组织
.gov政府部门

  • 二级DNS服务器:专门负责二级域名的解析
二级域名
.net.cn
.edu.cn
.com.cn
  • 子域名DNS服务器:专门负责子域名的解析也称为三级域名
三级域名
ina.com.cn
.pku.edu.cn
  • 主机站点
主机名
tts9
tts6
mail
www

2.3 DNS服务器类型

2.5 DNS正向解析查询原理过程

先查本机的缓存记录

  1. 查询hosts文件

  2. 查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果

  3. 这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步

  4. 求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器

  5. 求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器

  6. 求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器

  7. 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

三、DNS域名解析服务器步骤

3.1 资源记录

SOA记录

name: 当前区域的名字,例如"kiro.com."

value: 有多部分组成

注意:

当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字

当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换

例如:admin.kiro.com

主从服务区域传输相关定义以及否定的答案的统一的TTL

范例:
$TTL 1D
@       IN SOA  master.kiro.com. admin.kiro.com (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

NS记录

name: 当前区域的名字

value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.

注意:

相邻的两个资源记录的name相同时,后续的可省略

对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

一个区域可以有多个NS记录

范例:
master IN NS kiro.com.
 
master IN NS kiro.com.

MX记录

name: 当前区域的名字

value: 当前区域的某邮件服务器(smtp服务器)的主机名

注意:

一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的

优先级;数字越小优先级越高

对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

范例:
        MX 10   mail1.kiro.com
        MX 20   mail2.kiro.com
mail    A       192.168.61.50

A记录

name: 某主机的域名解析,例如:www.kiro.com

value:主机名对应主机的IP地址

避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址

范例:
www.kiro.com. IN   A 1.1.1.1
www.kiro.com. IN   A 2.2.2.2
www.kiro.com. IN   A 3.3.3.3
www.kiro.com. IN   A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@            IN   A 6.6.6.6
#代表不需要名字

PTR记录

name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN

CNAME别名记录

name: 别名的FQDN value: 真正名字的FQDN

ftp.wlw.com. IN CNAME www.wlw.com

3.2 正向解析步骤

1. 正向解析

#systemctl stop firewalld.service  //关闭防火墙
#setenforce 0   //关闭selinux
#yum install -y bind bind-utils  //安装bind包
#rpm -qc bind  //查看bind软件配置文件所在路径
/etc/logrotate.d/named
/etc/named.conf  #修改主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #修改区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost #配置区域数据文件
/var/named/named.loopback
[root@kiro named]# systemctl start named

2. 修改主配置文件——/etc/named.conf

修改主配置文件
#vim /etc/named.conf
12 options {
 13         listen-on port 53 { any; };          ##端口监听
 14         listen-on-v6 port 53 { ::1; };
 15         directory       "/var/named";
 16         dump-file       "/var/named/data/cache_dump.db";
 17         statistics-file "/var/named/data/named_stats.txt";
 18         memstatistics-file "/var/named/data/named_mem_stats.txt";
 19         recursing-file  "/var/named/data/named.recursing";
 20         secroots-file   "/var/named/data/named.secroots";
 21         allow-query     { any; };        ##允许访问权限
 
[root@kiro named]# rndc reload  //刷新服务

3. 修改区域配置文件——/etc/named.rfc1912.zones

# vim named.rfc1912.zones 
 13 zone "kiro.com" IN {
 14         type master;          ##服务器类型:主服务器
 15         file "kiro.com.zone";   ##给数据库文件定义名字
 16         allow-update { none; };
 17 };
 
 [root@localhost named]# rndc reload  //刷新服务

4. 修改区域配置文件,添加正向区域配置——/var/named

[root@kiro etc]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves     ##都可以拿来做模板
[root@kiro named]# cp -a named.localhost kiro.com.zone  ##-a才有root权限
[root@kiro named]# ls
data     named.ca     named.localhost  kiro.com.zone
dynamic  named.empty  named.loopback   slaves
[root@kiro named]# vim kiro.com.zone 
 $TTL 1D  ##1 day 的生命周期
@       IN SOA  kiro.com. admin.kiro.com. (   ##管理员kiro的邮箱
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kiro.com.
        A       192.168.61.100   ##本机ip
        AAAA    ::1
        MX 10   mail.kiro.com.   
mail    A       192.168.100.200
web     A       192.168.100.201
ftp     A       192.168.100.202

 [root@localhost named]# rndc reload  //刷新服务

-----将服务器的dns指定到本机IP-----
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 
DNS1=192.168.61.100
 
[root@localhost ~]#systemctl restart network
 
[root@localhost ~]# cat /etc/resolv.conf
 

在这里插入图片描述

在这里插入图片描述

5. 结果:

在这里插入图片描述

3.3 反向解析法配置

1. 修改区域配置文件——/etc/named.rfc1912.zones

# vim named.rfc1912.zones 
52 zone "61.168.192.in-addr.arpa" IN {
 53         type master;
 54         file "kiro1.com.zone";
 55         allow-update { none; };
 56 };
 57 


[root@kiro named]# rndc reload  //刷新服务

2. 修改区域配置文件,添加反向区域配置——/var/named

[root@Kiro named]# cp -p kiro.com.zone kiro1.com.zone   ##复制正向解析文件
[root@Kiro named]# vim kiro1.com.zone   ##修改配置文件

$TTL 1D
@       IN SOA  kiro.com. admin.kiro.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      kiro.com.
master  IN      A       192.168.61.100   ##本机ip
100     IN      PTR     www.kiro.com.    ##192.168.61.100指向www.kiro.com

[root@localhost named]# rndc reload  //刷新服务

在这里插入图片描述

在这里插入图片描述

反向文件配置的验证 [root@localhost named]# host 192.168.68.100
100.68.168.192.in-addr.arpa domain name pointer www.oyyy1.com. [root@localhost named]# host 192.168.68.99
99.68.168.192.in-addr.arpa domain name pointer ftp.oyyy1.com.

3.验证结果

在这里插入图片描述

3. 主从复制配置

沿用上面的配置环境,需要的东西已经配制出来了:

3.1 修改主域名服务器的区域配置文件

1.将我们前2和3配置的服务器作为主服务器,只要把kiro.com.zone区域数据文件中的配置简化以下就好

2.重新打开一台虚拟机作为从服务器配置:
1)安装bind服务,并且关闭防火墙和增强功能(selinux)
[root@pxw kiro]# yum install bind bind-utils -y
[root@pxw kiro]# systemctl stop firewalld.service
[root@pxw kiro]# setenforce 0

2)/etc/name.conf 修改主配置文件,注释掉以下两行
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };

3)/etc/named.rfc1912.zones 添加从服务器配置文件
zone "kiro.com" IN {
        type slave;   ##从区域类型
        file "slaves/kiro.com.zone";    ##文件在/var/named/slaves下
        masters { 192.168.61.100; };   ##申明主服务器的ip地址
};

4)验证:在从服务器上
[root@pxw slaves]# dig www.kiro.com @192.168.61.110   ##从服务器的ip地址

5)主服务器修改一下内容:
[root@Kiro named]# vim /var/named/kiro.com.zone
www     IN      A     192.168.61.100 ##更改为192.168.61.101

[root@Kiro named]# host www.kiro.com
www.kiro.com has address 192.168.61.100   ##此时服务器解析出来还是之前的ip

6)在主服务器中配置从服务器后立刻可以获取到修改后的地址
[root@Kiro named]# vim /var/named/kiro.com.zone
                             1       ; serial
slave   IN      A       192.168.61.110

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4) 验证一下:从服务器上
在这里插入图片描述
5)在主服务器中原本的192.168.61.100修改为192.168.61.101

在这里插入图片描述
6)主服务器中添加从服务器后,
在这里插入图片描述
在这里插入图片描述

【总结】

  • IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
  • IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
  • cat /etc/resolv.conf ##查询所用域名解析地址
  • TCP是用来做区域传送,UDP是DNS域名解析
将此背景设置为紫色:#FF00FF
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值