DNS与BIND

一次完整的查询请求经过的流程

  1. client启动dns
  2. hosts文件
  3. DNS本地缓存
  4. DNS服务器(递归查询
    1. 自己负责解析的域:直接查询数据库并返回答案
    2. 不是自己负责的域:服务器缓存迭代查找

解析答案(都进行缓存)

  • 肯定答案
  • 否定答案
  • 权威答案:由直接负责的DNS服务器返回的答案
  • 非权威答案:不是由直接负责的DNS服务器返回的,而是从缓存中返回的

DNS主-辅服务器

  • 主DNS服务器:维护所负责解析的域中的数据库服务器;读写操作
  • 从DNS服务器:从主DNS服务器或其他的从DNS服务器那里复制一份数据库;只能进行读操作
    • 负责操作的方式
      • 序列号serial:即数据库的版本号;主DNS服务器数据库内容发生变化时其版本号进行递增
      • 刷新时间间隔refresh:从DNS服务器间隔多久到主DNS服务器检查序列号更新状况
      • 重试时间间隔retry:若从DNS服务器无法连接到主DNS服务器时,再次发起请求连接的时间间隔要小于refresh
      • 过期时长expire:从DNS服务器始终联系不到主DNS服务器,多久之后放弃与主DNS服务器同步数据,并停止服务
      • 否定答案的缓存时长
    • 主DNS服务器通知从DNS服务器随时更新数据
    • 区域传送
      • 全量传送:传送整个数据库
      • 增量传送:进传送变量的数据

区域zone和域domain

  • tff.com域
    • FQDN->IP
      • 正向解析库:区域
    • IP->FQDN
      • 反向解析库:区域

DNS可能遭到的安全攻击

  • DNS劫持
  • 缓存毒化

区域数据库文件

  • 资源记录:Resource Record,简称RR

  • 记录类型:A、AAAA、PTR、SOA、NS、CNAME、MX

    • SOA:start of authority,起始授权记录;一个区域解析库有且只能有一个SOA记录,且必须放在第一条
    • NS:name service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的
    • A:address,地址记录,FQDN->IPv4
    • AAAA:地址记录,FQDN->IPv6
    • CNAME:canonical name,别名记录
    • PTR:pointer,指针;IP->FQDN实现反向解析
    • MX:mail exchanger,邮件交换器
      • 优先级:0-99,数字越小优先级越高
  • 资源记录的定义格式

    • 语法:name [TTL] IN RR_TYPE value

    • SOA:

      • name:当前区域名字;例如“tff.com.”,或者"2.3.4.In-addr.arpa."

      • value:由多部分组成

        • 当前区域的区域名称(也可以使用主DNS服务器名称)
        • 当前区域管理员的邮箱地址,但是@符号要用.取代
        • 主从服务协调属性的定义以及否定答案的TTL
      • 例:

        • tff.com. 86400 IN SOA tff.com.{

          20220501 ;serial

          2H ;refresh

          10M ;retry

          1W ;expire

          1D ;negative answer ttl

          };

    • NS:

      • name:当前区域的区域名称
      • value:当前区域的某DNS服务器的名字,如ns.tff.com.;一个区域可以哟多个NS记录
      • 例如:
        • tff.com. 86400 IN NS ns1.tff.com.
        • tff.com. 86400 IN NS ns2.tff.com.
    • MX:

      • name:当前区域的区域名称
      • value:当前区域某邮件交换器的主机名;MX记录可以有多个,但每个记录的value之前有一个数字表示优先级
      • 例如:
        • tff.com. IN MX 10 mx1.tff.com.
        • tff.com. IN MX 20 mx2.tff.com.
    • A:

      • name:FQDN,如www.tff.com.
      • value:IPv4地址
      • 例如:
        • www.tff.com. IN A 1.1.1.1
        • www.tff.com. IN A 1.1.1.2
        • bbs.tff.com. IN A 1.1.1.1
    • AAAA:

      • name:FQDN,如www.tff.com.
      • value:IPv6地址
    • PTR:

      • name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录写成4.3.2.1.In-addr.arpa.
      • value:FQDN
      • 例如:
        • 4.3…2.1.In-addr.arpa. IN PTR www.tff.com.
    • CNAME:

      • name:FQDN格式的别名
      • value:FQDN格式的正式名字
      • 例如:
        • web.tff.com. IN CNAME www.tff.com.
  • 注意📢

    • TTL可以从全局继承
    • @表示当前区域的名称
    • 相邻的两条记录的name相同时,后面的可省略
    • 对于正向区域而言,MX、NS等类型的记录的value为一个FQDN,此FQDN应有一个A记录

P.S.:一个域名可以有多个IP以实现负载均衡

​ 一个IP可以有多个域名,可以通过不同端口来访问不同服务

BIND的安装配置

BIND:Berkeley Name Domain

  • dns:协议
  • bind:dns协议的一种实现
  • named:bind程序运行的进程名

程序包

yum info bind在这里插入图片描述

  • bind-libs:被bind和bind-utils包中的程序共同用到的库文件

  • bind-utils:bind客户端程序集,如dig、host、nslookup

  • bind:提供dns server程序、以及几个常用的测试程序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7WqpiUqj-1651389856471)(/Users/apple/Library/Application Support/typora-user-images/image-20220501102151746.png)]

  • bind-chroot:选装,让named运行在jail模式下

bind

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

    • /etc/named.iscdlv.key
      /etc/named.rfc1912.zones
      /etc/named.root.key
  • 解析库文件:/var/named目录下

    • 一般名字为:ZONE_NAME.zone
    • 注意📢
      • 一台DNS服务器可以同时为多个区域提供解析

      • 必须要有根区域解析库文件,告诉根节点服务器地址:named.ca

      • 还应该有两个区域解析库文件:localhost和127.0.0.1正反向解析[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ATLv4o0H-1651389856474)(/Users/apple/Library/Application Support/typora-user-images/image-20220501103819317.png)]

        • 正向:named.localhost
        • 反向:named.loopback
  • rndc:remote name domain controller

    • 端口:953/tcp,但默认监听127.0.0.1,仅允许本地使用
  • bind程序安装完成之后,默认既可做缓存名称服务器使用;如果没有专门负责解析的区域,即可直接启动服务

    • centos6:service named start
    • centos7:systemctl start named.service[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMRaf4Ih-1651389856476)(/Users/apple/Library/Application Support/typora-user-images/image-20220501104417830.png)]
  • 主配置文件格式

    • 全局配置段options{}

    • 日志配置段logging{}

    • 区域配置段zone{}:由本机负责解析的区域,或转发的区域

    • 缓存名称服务器的配置:

      • 监听能与外部主机通信的地址[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0waBdvjH-1651389856478)(/Users/apple/Library/Application Support/typora-user-images/image-20220501105459532.png)]

      • 学习时建议关闭dnssec[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PsJUIVb4-1651389856479)(/Users/apple/Library/Application Support/typora-user-images/image-20220501105214193.png)]

      • 检测配置文件的语法错误:named-checkconf

      • 测试工具:

        • digdig [-t RR_TYPE] name [@SERVER] [query options]

          • 用于测试dns系统,不会查询hosts文件
          • 查询选项
            • +[no]trace:跟踪解析过程
            • +[no]recurse:进行递归解析
          • 注意:反向解析IP:dig -x IP
          • 模拟完全区域传送:dig -t axfr domain [@SERVER]
        • hosthost [-t RR_TYPE] name SERVER_IP[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qqll1jgc-1651389856480)(/Users/apple/Library/Application Support/typora-user-images/image-20220501113513874.png)]

        • nslookup:nslookup [-options] [name] [server]

          • 交互模式:nslookup>
            • server ip:以指定的IP为DNS服务器进行查询
            • set q=RR_TYPE:要查询的资源记录类型
            • name:要查询的名称
        • rndc:named服务控制命令

          • rndc status
          • rndc stats
          • rndc flush
    • 配置解析一个正向区域

      以tff.com域为例:vim named.rfc1912.zones

      1. 定义区域:在主配置文件中或主配置文件辅助配置文件中实现

        zone “tff.com” IN {

        ​ type {master|slave|hint|forward};

        ​ file “tff.com.zone”;

        };

      2. 建立区域数据文件(主要记录为A或AAAA):在/var/named目录下建立区域数据文件

        cat tff.com.zone 
        $TTL 1D
        @	IN 	SOA	tff.com. root.tff.com. (
        					0	; serial
        					1D	; refresh
        					1H	; retry
        					1W	; expire
        					3H )	; minimum
        		NS	tff.com.
        		A	192.168.1.17
        		AAAA	::1
        		MX 10   mail.tff.com.
        mail		A	172.16.15.5
        web		A	172.16.15.6
        ftp		A	172.16.15.7
        
      3. 让服务器重载配置文件和区域数据文件

        rndc reload

        配置区域数据库文件:vim /var/named/tff.com.zone[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUT0tHSq-1651389856481)(/Users/apple/Library/Application Support/typora-user-images/image-20220501120112914.png)]

        检查语法错误[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vXDNlydk-1651389856482)(/Users/apple/Library/Application Support/typora-user-images/image-20220501120549671.png)]

        尝试解析[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7cGCRdJ6-1651389856482)(/Users/apple/Library/Application Support/typora-user-images/image-20220501120902158.png)]

    • 配置解析一个反向区域

      1. 定义区域:在主配置文件中或主配置文件辅助配置文件中实现

        zone “tff.com” IN {

        ​ type {master|slave|hint|forward};

        ​ file “tff.com.zone”;

        };

        注意:反向区域的名字

        ​ 反写的网段地址 .In-addr.arpa 1.168.192.In-addr.arpa

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yCmYcJHL-1651389856483)(/Users/apple/Library/Application Support/typora-user-images/image-20220501145922776.png)]

      2. 建立区域数据文件(主要记录为PTR)

        $TTL 1D
        $ORIGIN 1.168.192.in-addr.arpa.
        @       IN      SOA     tff.com. root.tff.com. (
                                                0       ; serial
                                                1D      ; refresh
                                                1H      ; retry
                                                1W      ; expire
                                                3H )    ; minimum
                        NS      tff.com.
        5     PTR     mail.tff.com.
        6     PTR     web.tff.com.
        7     PTR     ftp.tff.com.
        
      3. 让服务器重载配置文件和区域数据文件

        named-checkconf
        named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone
        rndc reload
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值