linux基础第7节 ----配置与管理DNS服务器

目录

一.了解DNS服务

1.认识域名空间

2.了解DNS服务的分类

Ⅰ.主DNS服务器

Ⅱ.辅助DNS服务器

Ⅲ.转发DNS服务器

Ⅳ.唯高速缓存DNS服务器

3.掌握DNS查询模式

Ⅰ.递归查询

Ⅱ.转寄查询(又称迭代查询)

4.掌握域名解析过程

Ⅰ.DNS域名解析的工作原理

Ⅱ.正向解析和反向解析

二.安装DNS服务(IP地址192.168.10.1)

1 .安装BIND软件包(实现DNS服务器的开放源码软件)

 2.DNS服务的启动,停止和重启,加入开机自启动

 三.掌握BIND配置文件

1.认识全局配置文件

2.认识主配置文件

1.Zone区域声明

 2.跟区域文件/var/named/named.ca

3.缓存DNS服务器的配置

四.配置主DNS服务器实例

1.案例环境及需求

2.配置过程

Ⅰ.配置全局配置文件/etc/named.conf文件

Ⅱ.配置主配置文件

Ⅲ.修改bind的区域配置文件

 Ⅳ.设置防火墙放行,设置主配置文件和区域文件的属组为named

 Ⅴ.重启DNS服务,并加入开机自启

五.配置DNS客户端

1.配置Windows客户端

 2.配置Linux客户端(ip地址192.168.10.2)

六.使用nslookup测序DNS

1.nslookup命令<前提是客户端与服务端通信畅通>

 2.dig命令

 3.host命令


一.了解DNS服务

       DNS(Domain Name Service,域名解析服务)是Internet/Intarnet中最基本也是非常重要的一项服务,他提供了网络访问域中域名和IP地址地相互转化   

1.认识域名空间

        DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一棵倒置的树。这个逻辑的树形结构称为域名空间。由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息,如图

linux基础第7节 ----配置与管理DNS服务器_第1张图片
        DNS树的每个节点代表一一个域, 通过这些节点,对整个域名空间进行划分,成为一一个层次结构。域名空间的每个域的名字通过域名进行表示。域名通常由一个完全正( FullyQualified Domain Name, FQDN )标识。FQDN能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根地完整表述方式,从节点到树根采用反向书写,并将每个节点用"."分隔

        一个DNS域可以包括主机和其他域(子域),每个机构都拥有名称空间地某一部分的授权,负责该部分名称空间的管理和换份,并用它来命名DNS域和计算机。例如:163为com域的子域,其表示方法为163.com,而WWW为163域的Web主机,可以使用www.163.com表示

2.了解DNS服务的分类

Ⅰ.主DNS服务器

       主DNS服务器( Master或Primary)负责维护所管辖域的域名服务信息。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。配置主域服务器需要一整套的配置文件,包括主配置文件(/etc/named.conf )、正向域的区文件、反向域的区文件、高速缓存初始化文件(/var/named/named.ca)和回送文件(/var/named/named.local)

Ⅱ.辅助DNS服务器

       辅助DNS服务器(Slave或Secondary )用于分担主DNS服务器的查询负载。区文件是从主服务器中转移出来的,并作为本地磁盘文件存储在辅助服务器中。这种转移称为“区文件转移”。在辅助DNS服务器中有一个所有域信息的完整复制, 可以有权威地回客对该过中查询请求。配置辅助DNS服务器不需要生成本地区文件,因为可以从主服务器下载该区文件,所以只需配置主配置文件、高速缓存文件和回送文件就可以了。

Ⅲ.转发DNS服务器

        转发DNS服务器( Forwarder Name Server )可以向其他DNS转发解析请求。在DNS服务器收到客户端的解析请求后,它首先会尝试从其本地数据库中查找;若未能找到,则需要向其他指定的DNS服务器转发解析请求;其他DNS服务器完成解析后会返回解析结果,转发DNS服务器将该解析结果缓存在自己的DNS缓存中,并向客户端返回解析结果。在缓存期内,如果客户端请求解析相同的名称,则转发DNS服务器会立即回应客户端;否则,将会再次发生转发解析的过程。

       目前网络中所有的DNS服务器均被配置为转发DNS服务器,向指定的其他DNS服务器或根域服务器转发自已无法完成的解析请求。

Ⅳ.唯高速缓存DNS服务器

       供本地网络上的客户机用来进行域名转换。它通过查询其他DNS服务器并将获得的信息存放在它的高速缓存中,为客户机查询信息提供服务。唯高速缓存DNS服务器( Caching-nonly DNS server)不是权威性的服务器,因为它提供的所有信息都是间接信息。

3.掌握DNS查询模式

Ⅰ.递归查询

     在收到DNS工作站的查询请求后,DNS服务器在自己的缓存或区域数据库中查找。如果DNS服务器本地没有存储查询的DNS信息,那么,该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

Ⅱ.转寄查询(又称迭代查询)

       在收到DNS工作站的查询请求后,如果在DNS服务器中没有查到所需数据,该DNS服务器便会告诉DNS工作站另外-台DNS服务器的IP地址,然后,再由DNS工作站自行向此DNS服务器查询,以此类推,直到查到所需数据为止。如果到最后一台DNS服务器都没有查到所需数据,则通知DNS工作站查询失败。

       “转寄” 的意思就是,若在某地查不到,该地就会告诉你其他地方的地址,让你转到其他地方去查。 一般在DNS服务器之间的查询请求便属于转寄查询( DNS服务器也可以充当DNS工作站的角色)。

4.掌握域名解析过程

Ⅰ.DNS域名解析的工作原理

如图:

linux基础第7节 ----配置与管理DNS服务器_第2张图片

 假设客户机使用电信ADSL(Asymmetric Digital SubscriberLine,非对称数字用户线路)接入Internet,电信为其分配的DNS服务地址为210.111.110.10,域名解析如下:

1.客户端向本地DNS服务器210.111.110.10直接查询www.163.com的域名

2.本地DNS无法解析此域名,它先向根域服务器发出请求,查询.com的DNS地址

3.根域DNS管理.com,.net,.org等顶级域名的地址解析,他收到请求后,把解析结果返回给本地DNS。

4.本地DNS服务器210.111.110.10得到查询结果后,接着向管理.com的域的DNS服务器发出进一步的查询请求,要求得到163.com的DNS地址

5..com域把解析结果返回给本地DNS服务器210.111.110.10

6.本地DNS服务器210.111.110.10得到查询结果后,接着向管理163.com域的DNS服务器发出查询具体主机IP地址的请求(WWW),要求得到满足要求的主机IP地址。

7.163.com把解析结果返回给了本地DNS服务器210.111.110.10

8.本地DNS服务器得到了最终的查询结果,他把这个结果返回给客户端,从而使客户端能够和远程主机通信。

Ⅱ.正向解析和反向解析

正向解析:正向解析是指域名到IP地址的解析过程

反向解析:反向解析是从IP地址到域名的解析过程。反向解析的作用:服务器的身份验证

二.安装DNS服务(IP地址192.168.10.1)

       在linux下架设DNS服务器通常使用BIND(Berkeley Internet Name Domain)程序来实现,守护进程是named

1 .安装BIND软件包(实现DNS服务器的开放源码软件)

[root@localhost ~]# rpm -qa | grep bind

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

[root@localhost ~]# rpm -qa | grep bind

linux基础第7节 ----配置与管理DNS服务器_第3张图片linux基础第7节 ----配置与管理DNS服务器_第4张图片

linux基础第7节 ----配置与管理DNS服务器_第5张图片

 2.DNS服务的启动,停止和重启,加入开机自启动


[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl enable named

 三.掌握BIND配置文件

1.认识全局配置文件

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

linux基础第7节 ----配置与管理DNS服务器_第6张图片options {
    listen-on port 53 { 127.0.0.1; };      //指定BIND侦听的DNS查询请求的本机IP地址及端口
    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";
    secroots-file    "/var/named/data/named.secroots";
    recursing-file    "/var/named/data/named.recursing";
    allow-query     { localhost; };            //指定接收DNS查询请求的客户端


    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;                  //改为no可以忽略SElinux影响

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";

   
    include "/etc/crypto-policies/back-ends/bind.config";
};

//以下用于指定BIND服务的日志参数

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {                        //用于指定根服务器的配置信息,一般不能改动

    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";       //指定主配置文件按,一定要根据实际修改
include "/etc/named.root.key";
 

  • directory:用于指定named守护进程的工作目录,各区域正反向搜索解析文件和DNS根服务器地址列表文件(named.ca)应放在该配置项指定的目录中。
  • allow-query{}:与allow-query{localhost;}功能相同。另外,还可以使用地址匹配符来表达允许的主机。例如,any可匹配所有的IP地址,none不匹配任何的IP地址,localhost匹配本地主机使用的所有IP地址,localnets匹配本地主机相连的网络中所有主机。例如:仅允许127.0.0.1和192.168.1.0/24网段的主机查询该DNS服务器,则命令为:allow-query {127.0.0.1;192.168.1.0/24};
  • listen-on:设置named守护进程监听的IP地址和监听端口。若未指定,默认监听DNS服务器所有的IP地址的53号端口。若要设置DNS服务器监听192.168.1.2这个IP地址,端口使用标准的5353端口,则配置命令:listen-on port 5353 {192.168.1.2};
  • forwarders{}:用于定义DNS转发器。在设置了转发器后,所有非本域的和在缓存中无法找到的域名查询,可由指定的DNS转发器来完成解析工作并做缓存。foward用于指定转发方式,仅在forwarders转发器列表不为空时有效,其用法为“foward first l only;”。forward first为默认方式,DNS服务器会将用户的域名查询请求先转发给forwarders设置的转发器,由转发器来完成域名的解析工作,若指定的转发器无法完成解析或无响应,则再由DNS服务器自身来完成域名的解析。若设置为“forward only;”则DNS服务器仅将用户的域名查询请求转发给转发器,若指定的转发器无法完成域名解析或无响应,DNS服务器自身也不会试着对其进行域名解析。例如,某地区的DNS服务器为61.128.192.68和61.128.128.68,若要将其设置                                                                                          options{                                                                                                                                                  forwarders {61.128.192.68;61.128.129.68;};                                                              forward first;                                                                                                              }

2.认识主配置文件

[root@localhost ~]# cat /etc/named.rfc1912.zones 
linux基础第7节 ----配置与管理DNS服务器_第7张图片

zone "localhost.localdomain" IN {
    type master;                                                          //主要区域
    file "named.localhost";                                           //指定正向查询区域配置文件
    allow-update { none; };
};

......../省略/

zone "1.0.0.127.in-addr.arpa" IN {                              //反向解析区域
    type master;                                                           //指定反向解析区域配置文件
    file "named.loopback";
    allow-update { none; };
};

1.Zone区域声明

(1)主域名服务器的正向解析区域声明为(样本文件为named.localhost)

zone "区域名称" IN {
    type master;                                                                           //主要区域
    file "实现正向解析的区域文件名";                                           //指定正向查询区域配置文件
    allow-update { none; };
};

(2)从域名服务器的正向解析区域声明格式为

zone "区域名称" IN {                                                //反向解析区域
    type slave;                                                           //指定反向解析区域配置文件
    file "实现正向解析的区域文件名"; 

     masters {主域名服务器的IP地址;}
    
};

 2.跟区域文件/var/named/named.ca

       包含了Internet的定义域名服务器的名字和资质。利用该文件可以让DNS服务器找到根DNS服务器,并初始化DNS的缓冲区。当DNS服务器街道客户端主机的查询请求时,如果在Cache中找不到相应的数据,就会通过跟服务器进行逐级查询

linux基础第7节 ----配置与管理DNS服务器_第8张图片   

3.缓存DNS服务器的配置

缓存域名服务器配置很简单,不需要区域文件,只需要配置好/etc/named.conf就可以了。一般电信的DNS都是缓存域名服务器。重要的是配置好以下两项内容。

(1):用“forward only”命令指明这个服务器是缓存域名服务器

(2):用"forwarders {转发dns请求到哪个服务器IP;};"的命令格式设置转发dns请求到哪个服务器

四.配置主DNS服务器实例

1.案例环境及需求

某校园网要架设一台DNS服务器负责long.com域的域名解析工作。DNS服务器的FQDN为dns.long.com,IP地址为192.168.10.1.要求为以下域名实现正反域名解析服务。

dns.long.com                                                              192.168.10.1

mail.long.com                                                             192.168.10.2

slave.long.com                                                           192.168.10.3

www.long.com                                                            192.168.10.4

ftp.long.com                                                                192.168.10.5

另外为www.long.com设置别名为web.long.com

2.配置过程

配置过程包括全局配置文件,主配置文件和正反区域解析文件的配置

Ⅰ.配置全局配置文件/etc/named.conf文件

第一步:把options选项中的侦听IP(127.0.0.1)改为any

第二步:把dnssec-vaildation yes 改为 no

第三步:把允许网段allow-query 后面的localhost改为any。

linux基础第7节 ----配置与管理DNS服务器_第9张图片

Ⅱ.配置主配置文件

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

添加以下内容:

zone "long.com" IN{
type master;
file "long.com.zone";
allow-update { none; };
}
zone "10.168.192.in-addr.arpa" IN{
type=master;
file "192.168.10.zone";
allow-update { none; };
}

linux基础第7节 ----配置与管理DNS服务器_第10张图片

Ⅲ.修改bind的区域配置文件

①创建long.com.zone正向区域文件

正向区域文件位于/var/named目录下,为编辑方便可先将样本文件named.localhost复制到long.com.zone,再对long.com.zone编辑修改

linux基础第7节 ----配置与管理DNS服务器_第11张图片

 ②创建192.168.10.zone反向区域文件

反向区域文件位于/var/named目录下,为编辑方便可先将样本文件named.loopback复制到192.168.10.zone,再对192.168.10.zone编辑修改

linux基础第7节 ----配置与管理DNS服务器_第12张图片

 Ⅳ.设置防火墙放行,设置主配置文件和区域文件的属组为named

linux基础第7节 ----配置与管理DNS服务器_第13张图片

 Ⅴ.重启DNS服务,并加入开机自启

五.配置DNS客户端

DNS客户端的配置非常简单,假设本地首选DNS服务器的IP地址为192.168.10.1,备用DNS的服务器IP地址为192.168.10.2,则DNS客户端设置如下。

1.配置Windows客户端

linux基础第7节 ----配置与管理DNS服务器_第14张图片

打开"Internet协议(TCP/IP)"属性对话框,输入以下DNS服务器的IP地址即可

 2.配置Linux客户端(ip地址192.168.10.2)

在linux系统中修改/etc/resolv.conf文件来设置DNS客户端

六.使用工具测试DNS

BIND软件包提供了三个DNS测试工具,nslookup,dig和host。 

1.nslookup命令<前提是客户端与服务端通信畅通>

linux基础第7节 ----配置与管理DNS服务器_第15张图片

linux基础第7节 ----配置与管理DNS服务器_第16张图片

 2.dig命令

linux基础第7节 ----配置与管理DNS服务器_第17张图片

 3.host命令

linux基础第7节 ----配置与管理DNS服务器_第18张图片

 //正向查询主机IP地址

[root@localhost~]#host www.long.com

//反向查询IP地址对应的域名

[root@localhost~]#host 192.168.10.3

//查询不同类型的资源记录配置,-t参数后可以为SOA,MX,CNAME,A,PTR等

[root@localhost~]#host -t NS long.com

//列出整个long.com域的信息

[root@localhost~]#host -l long.com

//列出与指定主机资源记录相关的详细信息

[root@localhost~]#host -a web.long.com

你可能感兴趣的:(linux,linux,服务器,运维)