Linux之DNS与BIND

  DNS简介

  DNS(Domain Name System),即域名系统。它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统。DNS采用CS架构,服务器端工作在UDP协议端口53和TCP协议端口53上。FQDN(Fully Qualified Domain Name)完全限定域名,它是使用DNS的树状层级结构的完全路径域名来表示一个准确位置对应的主机,提供正向解析(FQDN-->IP)和反向解析(IP-->FQDN)的功能。目前DNS已经成为了互联网通讯的基础服务。

  正向解析:根据主机名称(域名)查找对应的IP地址  

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

  DNS域名称空间:它指定用于组织名称的域的层次结构

  资源记录(RR):它将DNS域名映射到特定类型的资源信息,以供在名称空间中注册或解析名称时使用。在Linux系统中,通常“名称解析库(文本文件,位于/var/named/)”中的每一行称作一个资源记录。

  DNS服务器:它存储和应答资源记录的名称查询  

  DNS客户端(解析程序):它查询从服务器来的搜索及将名称解析为查询中指定的资源记录类型

  DNS系统的分布式数据结构如下

Linux之DNS与BIND_dns

  顶级域:由两三个字母组成的名称,用于指示国家(地区)或使用名称的单位的类型。如:

组织域(.net, .com, .org, .mil, .edu, .gov, .cc, .mobi)国家域(.jp, .tw, .hk, .iq, .ir, .cn, .uk, 

.us)

  全球13个根节点

  A INTERNIC.NET(美国,弗吉尼亚州) 198.41.0.4

  B 美国信息科学研究所(美国,加利弗尼亚州) 128.9.0.107

  C PSINet公司(美国,弗吉尼亚州) 192.33.4.12

  D 马里兰大学(美国马里兰州) 128.8.10.90  

  E 美国航空航天管理局(美国加利弗尼亚州) 192.203.230.10

  F 因特网软件联盟(美国加利弗尼亚州) 192.5.5.241

  G 美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4

  H 美国陆军研究所(美国马里兰州) 128.63.2.53  

  I Autonomica公司(瑞典,斯德哥尔摩) 192.36.148.17

  J VeriSign公司(美国,弗吉尼亚州) 192.58.128.30  

  K RIPE NCC(英国,伦敦) 193.0.14.129  

  L IANA(美国,弗吉尼亚州) 198.32.64.12

  M WIDE Project(日本,东京) 202.12.27.33

  DNS服务器解析的客户端数据原理图

Linux之DNS与BIND_正向解析、反向解析_02

  DNS查询方式:递归查询(大多数客户机向DNS服务器解析域名的方式)、迭代查询(大多数DNS服务器向其他DNS服务器解析域名的方式

  以下是简要描述

  客户端发起对www.baidu.com的解析请求

 (1)客户端首先查看查找本地hosts文件,如果有则返回,否则进行下一步

 (2)客户端查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。

 (3)将请求转发本地DNS服务器。

 (4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。

 (5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。

 (6)向全球某一个根域服务器发起DNS请求,根域返回com域的地址列表。

 (7)使用某一个com域的IP地址,发起DNS请求,com域返回shifen域服务器地址列表。

 (8)使用某一个shifen域IP地址,发起DNS请求,shifen域返回www.a.shifen.com主机的IP地址,本地DNS服务收到后,返回给客户机。

  DNS的分类

  主DNS服务器:就是一台存储着原始资料的DNS服务器。

  从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。

  缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。

  转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

  DNS服务器的主从协调工作,主要包含一下参数:  

区域数据文件有版本号(序列号): serial  

  刷新时间(检查周期):refresh  

  重试时间(重试周期): retry 

过期时间(失效时长): expire 

  否定应答的TTL值

 

  协调过程:从服务达到refresh指定的时长后发起同步请求至主服务器;主服务器响应serial,从服务器与本地的serial进行比较;如果主服务器serial大于本地,意味主服务器区域数据文件更新了,因此请求同步;


  列出一些概念术语

  域和区域

  域(domain):深圳市是一个大域

  区域(zone):南山区是一个区域

  区域解析数据库

  资源记录:resource record(rr)  资源记录类型:resource record type  SOA: Start Of Authority,起始授权记录;一个区域文件有且只能一个SOA记录;SOA还必须是第一条资源记录;

     资源记录的定义格式

     语法:name [ttl] IN rr_type   value

      例如:test.com. 60 IN   SOA  

            test.com.  dns.test.com. (

                        2015092701  ;serial number  

                        1H  

                        5M  

                        7D  

                        1D )   

NS:Name Server,名称服务器(注意:一个区域数据文件可以有多个NS记录)

       如:test.com.      IN   NS   dns1.test.com.                   

                      IN   NS dns2.test.com.  

MX:Mail eXchanger,邮件交换器(注意:一个区域数据文件可以有多个MX记录)

       如:@ IN MX  10   mx1.test.com.

               IN   MX  20   mx2.test.com.

       注:区域名称,可使用@表示,10或20表示优先级,数字越小优先级越高    

A: Address,FQDN-->IPv4  应用于正向区域文件,也称A记录

       如:www.test.com. IN   A 1.1.1.1(ip) 

AAAA: Address, FQDN-->IPv6  

PTR: Pointer,指针,IP-->FQDN,应用于反向区域文件

       如:1.1.1.1.in-addr.arpa. IN   PTR www.test.com. 

CNAME: Cononical NAME,正式名称

       如:web.test.com. IN CNAME www.test.com.


   BIND最为广泛的DNS服务软件,该软件含三个部分:域名服务器、域名解析器库、软件测试工具。可以

使用yum -y install bind,rpm安装软件。

   安装成功生成以下主要的目录和文件:

   服务脚本:/etc/rc.d/init.d/named

   主配置文件:/etc/named.conf

   区域解析库文件:/etc/named.rfc1912.zones

   服务根目录:/var/named/


   练习:

   1、配置test.com正向解析

     配置named.conf配置文件

Linux之DNS与BIND_bind_03

     配置/etc/named.rfc1912.zones

Linux之DNS与BIND_dns_04

     配置test.com正向解析

Linux之DNS与BIND_dns_05

     /var/named目录下新增test目录,配置test.com.zone区域的SOA以及A记录等

Linux之DNS与BIND_bind_06

     检查配置信息,并且验证

Linux之DNS与BIND_bind_07

     重启dns服务

     service named restart

   2、配置test.com反向解析

      配置named.conf增加反向解析域

Linux之DNS与BIND_bind_08

      var/named/test目录下新增配置1.168.192.zone区域的SOA以及A记录等

Linux之DNS与BIND_bind_09

      检查配置信息,重启named服务器,并且验证

Linux之DNS与BIND_正向解析、反向解析_10Linux之DNS与BIND_bind_11

   3、智能DNS解析

      named.conf增加配置两个view视图(dingxin\liangtong)

Linux之DNS与BIND_bind_12

      注:测试方便注释include "/etc/named.rfc1912.zones"

      var/named/test目录下新增配置test.com.zone.dianxin、test.com.zone.liantong区域的SOA以及A记录等

Linux之DNS与BIND_dns_13Linux之DNS与BIND_dns_14

      检查配置信息,重启named服务器,并且验证

Linux之DNS与BIND_bind_15Linux之DNS与BIND_dns_16

   4、主从DNS解析

      主DNS:2.11,编辑它的dns主配置文件,定义工作目录,添加两个区域,一个正向解析,一个反向解

Linux之DNS与BIND_bind_17

      配置正向解析文件test1.com.zone

Linux之DNS与BIND_bind_18

      配置反向解析文件192.168.zone

Linux之DNS与BIND_bind_19

      检查配置文件,并且启动named服务

Linux之DNS与BIND_正向解析、反向解析_20

      配置从服务器192.168.2.10,编辑它的主配置文件named.conf

Linux之DNS与BIND_正向解析、反向解析_21

      配置从服务器named.rfc1912.zones 文件,增加正反向解析

Linux之DNS与BIND_bind_22

      配置主从服务器关闭防火墙,并重启named服务,注意版本不同

      [root@localhost test]# systemctl stop firewalld.service (centos7)

      [root@10 slaves]# service iptables stop    (centos6)

       iptables:将链设置为政策 ACCEPT:filter                    [确定]

       iptables:清除防火墙规则:                             [确定]

       iptables:正在卸载模块:                              [确定]

      [root@10 slaves]# service named restart    启动服务器

      停止 named:                                               [确定]

      启动 named:                                               [确定]

      从服务器上日志查看同步情况,并且查看/var/ves目录是否自动生成对应的区域解析文件

Linux之DNS与BIND_正向解析、反向解析_23