DNS服务基础

DNS服务:是一种工作在应用层的特定应用,也是.c/s架构模式的,DNS的是一种应用层协议,他的端口是UPD协议的53号端口,()根据应用场景不同也会用到tcp协议)这就意味着DNS是默认通过UDP协议进行通信的

我们访问任何一个网站都是通过主机名的方式进行访问的;例如www.baidu.com,这是个主机名.称之为FQDN(完全限定域名)

常见的顶级域中的组织域有:.com,.net,.org,.gov,.edu,.mil

常见的顶级域中的国家域有:.iq,.tw,.jp,.cn…

DNS查询类型:
递归查询:
迭代查询:
DNS名称解析方式:
名称 --> IP:正向解析
IP --> 名称:单向解析
注意:二者的名称空间,非为同一个空间;即非为同一颗树,因此,也不是同一个解析库
DNS服务器类型:
负责解析至少一个域:
    主名称服务器
    辅助名称服务器
不负责域解析:
    缓存名称服务器
一次完整的查询请求经过的流程:
client --> hosts文件 --> DNS Loscal Cache --> DNS Server(recursion,递归) -->
自己负责解析的域:直接查询数据库并返回答案;
不是自己负责域:server cache --> iteration(迭代)

解析答案:
    肯定答案:
    否定答案:不存在查询的键,因此,不存在与其查询对应的值

    权威答案:由直接负责的DNS服务器返回的答案
    非权威答案:

主-辅DNS服务器

主DSN服务器:维护所负责解析的域的数据库的那台服务器,读写操作均可进行
从DNS服务器:从主DNS服务器那里或其他的从服务器那里"复制"一份解析库,但只能进行读操作
    "复制"操作的实施方式
        序列号:也即是数据库的版本号,主服务器数据库内容发生变化时,其版本号递增
        刷新时间间隔:从服务器每多久到主服务器检查序列号更新状况
        重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔
        过期时长:从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据,停止提供服务
        否定答案的缓存时长:

        注意:主服务器数据发送更新以后,主服务器会"通知"从服务器随时更新数据,忽略刷新时间间隔机制进行
    同步方式:
        区域传送:
            全量传送:传送整个数据库;
            增量传送:仅传送变化的数据
区域和域的区别:
    以magedu.com域为例
        FQDN --> IP 
            正向解析库:正向解析区域
        IP --> FQDN
            反向解析库:反向解析区域
区域数据库文件:
资源记录:简称rr
    记录有类型:A,AAA,PTR,SOA,NS,CHAME,MX
    SOA:起始授权记录,一个区域解析库有且只能有一个SOA记录;而且只能放在第一条
    NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主
    A:地址记录,从FQDN解析为IPV4地址记录
    AAAA:地址记录,从FQDN解析为IPV6地址记录
    CNAME:别名记录
    PTR:把IP地址解析成FQDN,所以PTR记录是用来反向解析的记录
    MX:邮件交换器
        优先级:0-99,数字越小优先级越高
资源记录的定义格式:
    语法: name    [ttl]   IN  RR_TYPE value
多种不同的资源记录他们的名称和值的特点要求,如下;
SOA:
    name:当前区域的名字;例如"magedu.com",或者"2.3.4.in-addr.arpa"
    value:有多部分组成
        1)当前区域的区域名称(也可以使用主DNS服务器名称)
        2)当前区域的管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代
        3)(朱从的服务协调属性的定义以及否定答案的TTL)

            例如:
                magedu.com. 86400   IN  SOA magedu.com. admin.magedu.com. (
                    2017010801 ;serial
                    2H         ;refresh
                    10m        ;retry
                    1w         ;expire
                    1D         ;negative answer ttl
                )
NS:
    name:当前区域的区域名称
    value:当前区域的某DNS服务器的名字,例如ns.magedu.com
        注意:一个区域可以用多个ns记录
    例如:
        magedu.com. 86400   IN  NS  ns1.magedu.com.
        magedu.com. 86400   IN  NS  ns2.magedu.com.

MX:
    name:当前区域的区域名称
    value:当前区域某邮件交换器的主机名
        注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级
    例如:
        magedu.com. 86400   IN  MX  10  mx1.magedu.com.
        magedu.com. 86400   IN  MX  20  mx2.magedu.com.
A:
    name:某FQDN,例如www.magedu.com.
    value:某IPV4地址
    例如:
        www.magedu.com. IN  A   1.1.1.1
        www.magedu.com. IN  A   1.1.1.2
        bbs.magedu.com. IN  A   1.1.1.1
AAAA:
    name:FQDN
    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.magedu.com
CNAME:
    name:FQDN格式的别名
    value:FQDN格式的正式名字
    例如:
        web.magedu.com. IN  CNAME   www.magedu.com

注意:
    1)TTL值可以全局继承;不用每个都定义
    2)@表示当前区域的名称
    3)相邻的两条记录其name相同时,后面的可省略
    4)对于正向区域来说,各MX,NS等 类型的记录的value为FQDN,此FQDN应该有一个A记录

DNS and Bind

如何安装配置使用DNS服务

BIND:伯克利互联网域名,BIN是DNS协议的一种实现,BIND这个程序运行起来的进程名叫named.

dns:协议
bind:dns协议的一种实现
named:bind程序的运行的进程名
BIND的安装配置:
bind-libs:被bind和bind-utils包中的程序共同用到的库文件
bind-utils:bind客户端程序集,例如dig,host,nslookup等
bind:提供的dns server程序,以及几个常用的测试程序
bind-chroot:选装程序,让named运行于jail(监狱)模式下

主配置文件

/etc/named.conf
或包含其他文件;
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones
    /etc/named.root.key

解析库文件;

/var/named/目录下;
    一般名字为:ZONE_NAME.zone
注意:1)一台DNS服务器可同时为多个区域提供解析;
    2)必须要有根区域解析库文件:named.ca
    3)还应该有两个区域解析库文件:localhost和127.0.0.1正反向解析库
        正向:named.localhost
        反向:named.loopback

rndc:远程名称域控制器

rndc默认情况下工作在tcp的953端口,但默认监听于127.0.0.1地址,因此仅允许本地使用.BIND安装在同一主机,bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门复杂解析的区域,直接即可启动服务;

开启

centos6:service named start
centos7:systemctl start named.service

主配置文件格式:

全局配置段:
    options{...}
日志配置段:
    logging{...}
区域配置段:
    zone{...}
        那些由本机负责解析的区域,或转发的区域
    注意:每个配置语句必须以分号结尾 
缓存名称服务器的配置:
    监听能与外部主机通信的地址
        listen-on port 53;
        listen-on port 53{ 172.16.100.67; };

    学习时,建议关闭dnssec
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside no;
检查配置文件的语法错误;
    named-checkconf [/etc/named.conf]
测试工具:dig,host,nslookp
    dig命令:
        dig [-t RR_TYPE] name [@SERVER] [query options]
            用于测试dns系统,因此其不会查询hosts文件
            查询选项:
                +[no]trace:跟踪解析过程
                +[no]recures:进行递归解析
            注意:反向解析测试
                dig -x ip
            模拟完全区域传送
                dig -t axfr DOMAIN [@server]

    host命令:
        host [-t RR_TYPE] name SERVER_IP

    nslookup命令
        nslookuop [-options] [name] [server]

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

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58133

(0)
M20-1马星M20-1马星
上一篇 2016-11-07
下一篇 2016-11-07

相关推荐

  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-22
  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; ]#mke2fs -t ext4 -b 2048 -L MYDATA -m 2 O acl /dev/sda1 (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件…

    Linux干货 2017-03-11
  • 第三周练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次: who | cut -d” ” -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息 id `last | head -1 | cut -d” ” -f1` 3、列出当前系统上被用户当作默认shell的最多的那个shell cut -d: -f7 /etc/p…

    Linux干货 2017-07-16
  • 高可用keepalived+haproxy实现动静分离

    高可用keepalived+haproxy: 实验环境: clientIP为:172.18.254.149 VIRROUTEIP为:172.18.61.5 keepalived+haproxy机器1IP为172.18.61.1 keepalived+haproxy机器2IP为172.18.61.2 server1IP为172.18.61.3 server2I…

    2017-05-17
  • 04用户和组的相关配置文件总结

    1、用户 个人理解的是,给使用者一个在系统中使用的身份,即用户。 用户分两种:管理员和普通用户。 而每一个用户都有一些属性,每一个属性都是用冒号分割开来。配置文件存储在【/etc/passwd】中。 例如,sarash:x:507:508::/home/sarash:/bin/nologin 他们分别是,用户名,密码,ID号,主组ID号,注释,家目录,默认登…

    Linux干货 2016-10-24
  • Linux运维学习历程-第一天-基础知识

    什么是Linux   Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 为什么学Linux…

    Linux干货 2016-08-03