bind9是个DNS服务器软件

DNS服务概述


DNS ( Domain Name System ) 域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务

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

注:DNS 域名空间中,树的最大深度不得超过127 层,树中每个节点最长可以存储63 个字符。

图

顶级域、分类:组织域(.com,.net,org,…)。国家域(.cn,.hk,.tw,.jp)。

举例: .com顶级域 。solo90.com二级域名。www.solo90.com三级域名

例如,google为com域的子域,其表示方法为google.com,而www为google域中的子域,可以使用www.google.com表示

由最顶层到下层,可以分成:根域、顶级域、二级域、子域。

网络购买的域名就是FQDN域名(Full Qualified Domain Name 完全限定域名) 例如:blog.solo90.com

正向解析与反向解析

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

图

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

反查IP的网站:https://site.ip138.com/121.42.148.69/

图

反向解析非常困难、因为DNS服务器是分布式的。反向解析在邮件服务器领域中是验证IP地址是不是垃圾服务器。来验证是否接受邮件的重要手段。

注意:正反向解析是两个不同的名称空间,是两棵不同的解析树。可以放在不同的服务器上。

DNS服务器的类型

DNS服务器一般而言、一般都有主从。DNS服务器的类型:1、主DNS服务器。2、辅(从)DNS服务器。3、缓存DNS服务器。4、转发器。

主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;

从DNS服务器:从主DNS服务器或其它的从DNS服务器哪里赋值“复制”(区域传递)一份解析库;因为解析库分为正向和反向的解析。所以叫区域传送

  • 序列号:解析库的版本号;主服务器解析库内容发生变化;其序列递增
  • 刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔
  • 重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;
  • 过期时长:从服务器始终联系不到主服务器时,多久后放弃从服务器角色、停止提供服务。


注:正常解析成功后在电脑主机上会有改域名的IP地址记录、也就是缓存。所以web程序员常常更新自己的缓存。

如果单独做一个DNS服务器不做任何解析、那么可以做缓存服务器。这样同局域网的机器都可以使用缓存。

域和区域

站在DNS的角度,域是逻辑概念,区域是一个物理概念

区域:Zone。区域和域没有必然的包含关系(大小之分),因为域是从上级得到授权(正向区域的授权和反向区域的授权是分开进行的),但它的上级又是从区域文件中定义的,那么域就来自于区域文件,那么这个域又包含在区域中,故域和区域没有必然的包含关系。但从某一个具体的域来看,区域比域小一些。 

DNS区域(ZONE):DNS域名空间中连续的树,将域名空间按照需要划分为若干较小的管理单位。

在DNS服务器中,必须先建立区域,在区域中建立子域,在区域或者子域中添加主机记录。存储区域数据的文件,称为区域文件。一台DNS服务器上可以存放多个区域文件,同一个区域文件也可以存放在多台DNS服务器上。

例如,域Microsoft.com可能包含Microsoft.com、Marketing.microsoft.com和Development.microsoft.com的所有数据。但是,Microsoft.com区域仅包含Microsoft.com的信息和对子域权威名称服务器的引用。如果Microsoft.com的子域尚未委托给其他服务器,则Microsoft.com区域可以包含这些子域的数据。例如,Marketing.microsoft.com可以管理自己的委托区域,Development.microsoft.com可能由母公司Microsoft.com管理。如果没有子域,则区域和域本质上是相同的。在这种情况下,区域包含域的所有数据。

区域解析库

区域解析库。也就是解析域名的数据库文件、数据库文件中,每一个条目都称作一个资源记录(Resource Record,RR

资源记录的类型(RR_TYPE)

分为:A、AAAA、PTR、SOA、NS、CNAME、MX

SOA:Start Of Authority,起始授权记录:一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录。

A:internet Address ,作用FQDN(域名)–>IPv4

AAAA:域名–>IPv6

PTR:IP–>FQDN

NS:Name Server,专用于表明当前区域的DNS服务器

CNAME:Canonical Name,别名记录

MX:Mail eXchanger,邮件交换器

资源记录定义的格式

通用语法:name [TTL] IN rr_type(A,AAAA,CNAME…..) value

注意:

  • TTL可以从全局集成:
  • @可以用于当前区域的名字;
  • 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式相应;
  • 同一个值也可能有多个不同的定义名字;通过多个不同的名字定义同一个值

SOA:

SOA:
name:当前区域的名字,例如"solo90.com"
value:有多部分组成;
      (1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
      (2)当前区域管理员的邮箱;但不能使用@符号,一般用.替换
          例如email.solo90.com;
      (3)(主从服务协调属性的定义以及否定的答案的统一的TTL)
下面 email.solo90.com. 为邮箱地址 、在DNS服务器一定不能忽略. 这个代表根  
例如:
solo90.com.   86400 IN SOA ns.solo90.com.  email.solo90.com.  {
        2018080822 ;序列号
        2H         ;刷新时间
        10M        ;重试时间
        1W         ;过期时间
        1D         ;否定答案的TTL值

}

NS:

NS:
   name:当前区域的名字
   value:当前区域的某DNS服务器的名字,例如ns.solo90.com.;
        
       注意:一个区域可有多个NS记录
   例如:
       solo90.com.  IN  NS  ns1.solo90.com.
       solo90.com.  IN  NS  ns2.solo90.com.
                    IN  NS  ns3.solo90.com.
    注意:
       (1)相邻的两个资源记录的name相同时,后续的可省略
       (2)对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录

MX:

MX:
  name:当前区域的名字
  value:当前区域的某邮件服务器(smtp服务器)的主机名;
         一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),
         表示此服务器的优先级;数字越小优先级越高
  例如:
     solo90.com.  IN  MX  10 mx1.solo90.com.
                  IN  MX  20 mx2.solo90.com.
  注意:
     (1)对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

A:

A:
  name:某主机的FQDN,例如:blog.solo90.com.
  value:主机名对应主机的IP地址:

  例如:
      blog.solo90.com.  IN  A  1.1.1.1
      blog.solo90.com.  IN  A  1.1.1.2

      www.solo90.com.   IN  A  1.1.1.3
      api.solo90.com.   IN  A  1.1.1.3
  注意:
      泛域名解析
      *.solo90.com.   IN   A  1.1.1.4   
      
      避免用户写错名称时给错误答案,可通过泛域名解析进行解析制名特定地址;

AAAA:

AAAA: 于A记录一样、就是IPV6
     name:FQDN
     value:IPv6

PTR:

PTR:
   name:IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1:而有特定的后缀
         为:in-addr.arpa.
         完整写法:4.3.2.1.in-addr.arpa.
   value:FQDN
   
   例如:
       4.3.2.1.in-addr.arpa.  IN PTR blog.solo90.com.

CNAME:

CNAME:
     name:别的FQDN
     value:正式名字的FQDN;

例如:
    web.solo90.com.  IN CNAME  blog.solo90.com.

子域授权

子域授权:每个域的名称服务器,都是通过其上级服务器的解析库进行授权:

图

类似根域授权
     .com  IN   NS   ns1.com.
     .com  IN   NS   ns2.com.
    ns1.com.  IN  A  2.2.2.1
    ns2.com.  IN  A  2.2.2.2

solo90.com.  在.com的名称服务器上;解析库中添加资源记录;
   solo90.com.   IN   NS  ns1.solo90.com.
   solo90.com.   IN   NS  ns2.solo90.com.
   ns1.solo90.com.  IN A  3.3.3.1
   ns2.solo90.com.  IN A  3.3.3.2

BIND的安装配置

dns服务,程序包名bind、程序名named。

安装的程序包:bind bind-libs bind-utils bind-chroot

bind-chroot: /var/named/chroot/

bind:
    服务脚本: /etc/rc.d/init.d/named
    主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key
    解析库文件:/var/named/ZONE_NAME.ZONE
        注意:
         (1)一台物理服务器可同时为多个区域提供解析;
         (2)必须要有根区域文件;
         (3)应该有两个(如果包括ipv6的,应该更多)实现localhost和本地
             回环地址的解析库.
 
    rdnc:remote name domain controller,默认与bind安装在同一主机,
         且只能通过127.0.0.1来链接named远程,提供辅助性的管理功能;953/tcp
    

主配置文件:

全局配置:options{}
日志子系统配置:loggin{}
区域定义:本机能够为那些zooe进行解析,就要定义那些zone;
    zone

注意:如果默认安装好(不添加区域配置)、修改仅接受本地监听53端口,步骤:更改named.conf的配置options选项。在listen-on加上外部可以访问自己本机的地址。注意必须在结尾加;号

options {
        listen-on port 53 { 
         127.0.0.1; 
         192.168.205.10;
         // 为局域网其它机器提供Named服务,必须监听向本机IP发出的请求  
        };
//      listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        allow-query     { any }; //改为any 这样任何主机可以查询

dessec:它是DNS服务器的安全扩展、配置起来非常复杂,自己配置关闭较好。

    //   dnssec-enable yes;
    //   dnssec-validation yes;
    //   bindkeys-file "/etc/named.iscdlv.key";
    //   managed-keys-directory "/var/named/dynamic";
把options 里面的这几个配置项关掉;

上述的全部做完、就可以最为一个DNS缓存服务器。

主DNS服务器

在缓存服务器上加“zone”的定义就可以了。

1、在主配置文件中定义区域

zone "zone_name" IN {
    type {master|slave|hint|forward};
    file "ZONE_NAME.zone";
}
master: 主要伺服器,在網域中負責名稱解析。
slave: 為了避免master發生故障時影響網路上的名稱解析工作,可以安裝其他的DNS伺服器,並且會定期複製master中的資料。
stub: 與slave類似,但只會複製master的NS紀錄,而非所有區域(zone)資訊。
hint: 表示為root伺服器。
forward: 可將來自用戶端的名稱解析要求代為轉送至其他伺服器。

2、定义区域解析库文件

文件内容就是资源记录。正向解析一个域名

$TTL 86400
@    IN    SOA    ns.solo90.com. 893797758.qq.com (
            20180808
            1H
            5M
            7D
            1D

)

@    IN    NS    ns.solo90.com.
bs.solo90.com.    IN    A    192.168.205.10
ns.solo90.com.    IN    A    127.0.0.1
Last modification:February 4, 2020
如果觉得我的文章对你有用,请随意赞赏