Linux网络服务之DNS服务

x33g5p2x  于2021-09-30 转载在 Linux  
字(7.9k)|赞(0)|评价(0)|浏览(420)

一、DNS简介

1.1DNS名词介绍

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

   实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。

1.2DNS系统的作用

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

IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1

IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从

3DNS查询类型及原理

一级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

1.3DNS系统类型

缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,

但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定

其他 DNS 服务器作为解析来源。
*
主域名服务器:管理和维护所负责解析的域内解析库的服务器
*
从域名服务器

从主服务器或从服务器"复制"(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

通知机制:主服务器解析库发生变化时,会主动通知从服务器

1.4本地名称解析配置文件

Linux: /etc/hosts

windows : c/windows/system32/drivers/etc/hosts

[root@localhost ~]#vim /etc/nsswitch.conf
#修改dns的优先级
hosts:      files dns myhostname
#修改 files和 dns的先后  优先级就不同。如果files在前面,那么file优先级就比较高

示例:


  

4.进入/etc/nsswitch.conf,调换优先级

1.5DNS查询方式

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

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

①先查本机的缓存记录

②查询hosts文件

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

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

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

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

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

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

二、正向解析资源记录及配置实例

2.1资源记录

2.1.1SOA记录

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

value: 有多部分组成

注意:

当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
1.
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换

例如:admin.wlw.com

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

范例:

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

2.1.2NS记录

name: 当前区域的名字

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

注意:

相邻的两个资源记录的name相同时,后续的可省略
1.
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
1.
一个区域可以有多个NS记录

范例:
master IN NS wlw.com.

master IN NS wlw.com.

2.1.3 MX记录

name: 当前区域的名字

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

注意:

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

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

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

<span style="background-color:#f8f8f8">范例:
mail  IN MX 10 mx1.wlw.org.
      IN MX 20 mx2.wlw.org.
mx1 A   192.168.59.10
mx2 A   192.168.59.10</span>

2.1.3A记录

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

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

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

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

2.1.4PTR记录

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

2.1.5CNAME别名记录

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

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

2.1.6小贴士

TTL可从全局继承
1.
使用 "@" 符号可用于引用当前区域的域名
1.
同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
1.
同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

2.2正向解析服务器配置方法

**1.安装主软件和配置包管理软件**

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

**2.关闭防火墙**

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

**3.开启服务并查看是否查看成功**

[root@localhost ~]#systemctl start named

[root@localhost ~]#netstat -ntap |grep named

**4.修改网卡的DNS服务地址并重启网卡**

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

[root@localhost ~]#systemctl restart network

[root@localhost ~]# cat /etc/resolv.conf

**5.ping测试,看是否可以解析出百度的ip**

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

**6.修改配置文件/etc/named.conf**

[root@localhost ~]#rpm -qc bind 查询安装服务的配置文件

[root@localhost ~]#vim /etc/named.conf  进入修改配置文件

<font color='cornflowerblue'>#可以修改配置,注释,或者删除这两行</font>
listen-on port 53 { any; };
allow-query     { any; };


**7.重新加载DNS服务**

[root@localhost ~]#rndc reload(也可以实验systemctl restart named)

server reload successful

**8.ping测试,看是否可以解析出百度的ip**

[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.11
www.a.shifen.com has address 180.101.49.12

**9.编写域名,在配置文件/etc/named.rfc1912.zones下 **

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

**10.切换至named文件夹,拷贝named.localhost变成根域名文件**

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

[root@localhost named]# cp -p named.localhost ./wlw.come.zone

**11.修改成根域名文件**

[root@localhost named]# vim wlw.come.zone

$TTL 1D
@       IN SOA  master.wlw.com. admin.wlw.com. (
                                     0       ; serial
                                     1D      ; refresh
                                     1H      ; retry
                                     1W      ; expire
                                     3H )    ; minimum
     NS      master.wlw.com.
master  IN            A          192.168.59.100
www     IN            A          192.168.91.20
                   MX 10      mail1.wlw.com.
                   MX 20      mail2.wlw.com.
mail1    IN            A          192.168.59.28
mail2    IN            A          192.168.59.30
ftp         IN            CNAME      www

*IN            A          192.168.59.10     泛指域名解析: 

**12.重新加载DNS服务并测试**

[root@localhost named]# rndc reload 重新加载DNS服务 

测试:

[root@localhost named]# host mail1.wlw.com 测试

2.3反向解析服务器配置方法

#先修改区域配置文件

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

zone "59.168.192.in-addr.arpa" IN {
     type master;
     file "yxp.com.zone";
     allow-update { none; };
};
[root@localhost named]#cp -p kgc.com.zone ky15.com.zone

#复制正向解析文件

[root@localhost named]# cp -p wlw.com.zone yxp.com.zone

#修改配置文件

[root@localhost named]# vim yxp.com.zone 

$TTL 1D
@       IN SOA   master.yxp.com admin.yxp.com (
                                     0       ; serial
                                     1D      ; refresh
                                     1H      ; retry
                                     1W      ; expire
                                     3H )    ; minimum
     NS      master.yxp.com.
master  IN       A    192.168.59.100
100 IN PTR      www.yxp.com.
88  IN PTR      ftp.yxp.com.

测试:

[root@localhost named]# host 192.168.59.100

2.4主从复制配置示例

#1.首先配置2.2的正向解析,这是作为主服务器

###配置从服务器
#2.配置从服务器,首先准备一台服务器,关闭防火墙并安装软件
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install bind bind-utils.x86_64 -y

#3./etc/named.conf 文件里两段注释掉
[root@localhost etc]# vim /etc/named.conf 
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };

#4./etc/named.rfc1912.zones添加从服务器配置文件
vim /etc/named.rfc1912.zones
zone "wlw.com" IN {
        type slave;
        #类型从
        file "slaves/wlw.com.zone";
        #文件地址在/var/named/slaves/ 下
        masters { 192.168.59.102; };
        #申明主服务器的地址
};

5.验证:在从服务器上
[root@localhost named]# dig www.wlw.com @192.168.59.117
192.168.59.117是从服务器的地址

6.主服务器修改的内容
[root@localhost named]# vim /var/named/wlw.com.zone 
www     IN            A          192.168.59.11
此时从服务器的刷新还是原来的 192.168.59.10

7.在主服务器中配置从服务器立刻可以拉取到修改后的地址
[root@localhost named]# vim /var/named/wlw.com.zone
 1       ; serial
slave   IN            A          192.168.59.117

1.按照2.2的步骤将正向解析做好。wlw.come.zone中配置如下:

2.准备一台从服务器。关闭防火墙并安装软件,安装软件

3./etc/named.conf 文件里两段注释掉

4./etc/named.rfc1912.zones添加从服务器配置文件

5.验证:在从服务器上

在主服务器上cat wlw.come.zone ,此时都解析出来了

2.5分离解析配置示例

2.5.1实验环境

将linux服务器配置两块网卡,都仅主机模式

ens33:192.168.100.1

ens37:12.0.0.1

win7做为外网: 12.0.0.12 255.0.0.0

win10 作为内网:192.168.100.100

1.开启一台Linux服务器,关闭防火墙并下载软件

2.添加一块网卡,并将两块网卡都设置仅主机模式


 

3.配置双网卡

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
IPADDR=192.168.100.1
NETMASK=255.255.255.0
[root@localhost network-scripts]# ip a
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens38
[root@localhost network-scripts]# vim ifcfg-ens38
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a

4.开两台windows

1)开一台win7

2)开一台win10 

5.修改Linux中的配置文件

1.修改/etc/named.conf 
[root@test5 ~]# vim /etc/named.conf 
#修改配置文件
listen-on port 53 { any; };
allow-query     { any; };
#删除文件中这段
zone "." IN {
        type hint;
        file "named.ca";
};

2.修改/etc/named.rfc1912.zones
#编写配置文件
view "lan" {
        match-clients { 192.168.100.0/24; };
		#匹配网段
        zone "wlw.com" IN {
          type master;
          file "wlw.com.lan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };

};

view "wan" {
        match-clients { 12.0.0.0/24; };
        zone "wlw.com" IN {
          type master;
          file "wlw.com.wan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };

};

3.创建wlw.com.lan和wlw.com.wan
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost wlw.com.lan
[root@localhost named]# vim wlw.com.lan 

[root@localhost named]# cp -p wlw.com.lan wlw.com.wan
[root@localhost named]# vim wlw.com.wan

4.开启服务
[root@localhost named]# systemctl start named

5.在window中验证
nslookup www.wlw.com

1.修改/etc/named.conf

  1. 修改/etc/named.rfc1912.zones

3.创建wlw.com.lan和wlw.com.wan

4.开启服务

5.在window中验证

相关文章