dns相关内容

dns基本工作原理
dns: domain name service
dns udp/53 tcp/53
udp 用于解析 tcp 用于区域传送

         由域名服务器与域名解析器组成  用于域名和ip的相互转换
     dns:分布式 倒置的树状结构
                    最上方为根域 根域服务器世界一共有13台
                        根域服务器下有多个组织服务器 如      .com .org .edu .net 等 也有如表示国家的域服务器 .cn .us等等 这些域名称为顶级域 或者为 一级域
                            一级域下又有诸多二级域
                                二级域下又可以有诸多三级域 ...
     dns服务器的类型
                1.主dns服务器
                2.从dns服务器
                3.唯缓存dns服务器
                4.转发器

原理:互联网主机通信都是通过ip,域名只不过是提供一个更易记的渠道

    客户端发起dns请求流程:

        client --> /etc/hosts --> local cache --> DNS server(recursive 递归查询) --> dns server local cache --> lterative(迭代查询) -->

    客户端请求域名解析 首先查看/etc/hosts 文件中是否有解析的内容 若无在查询缓存中时否还有上次解析的记录 若无则去查找 指定的dns服务器 (一般来说指定的dns服务器为唯缓存dns服务器)
    指定的dns服务器的缓存中若无相关缓存 则去找其他dns服务器(查找方式为自顶向下) 如 刚开始从根开始查找指定的域名 如查找 www.gaoleng.com
        1. 我们指派的dns服务器 去找根 根会告诉我们指派的dns 他不知道我们所说的域名是哪个ip 但是.com他知道 你应该去找.com查找 并告诉我们 .com的地址
        2. 我们指派的dns服务器又回去 找.com .com说 “我也不知道 你说的域名的 ip地址到底是多少 但是baidu.com应该知道 我跟你说他的ip是多少把 ”
        3. 接着dns服务器又会去找 baidu.com的dns服务器 我们所要查找的域名 确实是在baidu.com域中 baidu.com的dns服务器会说 “你要找的域名 我确实知道他的 ip是..  ”
        4. 指派的dns服务器 会缓存这一信息 并且 将该域名对应的ip 返回给客户端 客户端 也会缓存这一信息 这样在缓存未到期之前 再次访问www.baidu.com 就不会再去找dns服务器 而是直接在缓存中取得

        客户端 只收取最终结果 其余工作都有指派的dns服务器完成

        递归查询:客户端请求一次 就可以得到最终的结果

                客户端不支持迭代查询 所以依靠唯缓存服务器来帮助查询

        迭代查询:服务器多次发送查找请求 多次返回

dig 命令查看dns搜寻过程

dig  www.yahoo.com +trace

    ~]# dig www.yahoo.com +trace

                ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.5 <<>> www.yahoo.com +trace
                ;; global options: +cmd
                .           5   IN  NS  e.root-servers.net.
                .           5   IN  NS  m.root-servers.net.
                .           5   IN  NS  l.root-servers.net.
                .           5   IN  NS  g.root-servers.net.
                .           5   IN  NS  c.root-servers.net.
                .           5   IN  NS  k.root-servers.net.
                .           5   IN  NS  j.root-servers.net.
                .           5   IN  NS  h.root-servers.net.
                .           5   IN  NS  d.root-servers.net.
                .           5   IN  NS  i.root-servers.net.
                .           5   IN  NS  b.root-servers.net.
                .           5   IN  NS  f.root-servers.net.
                .           5   IN  NS  a.root-servers.net.
                ;; Received 494 bytes from 192.168.117.2#53(192.168.117.2) in 228 ms

                com.            172800  IN  NS  e.gtld-servers.net.
                com.            172800  IN  NS  b.gtld-servers.net.
                com.            172800  IN  NS  j.gtld-servers.net.
                com.            172800  IN  NS  m.gtld-servers.net.
                com.            172800  IN  NS  i.gtld-servers.net.
                com.            172800  IN  NS  f.gtld-servers.net.
                com.            172800  IN  NS  a.gtld-servers.net.
                com.            172800  IN  NS  g.gtld-servers.net.
                com.            172800  IN  NS  h.gtld-servers.net.
                com.            172800  IN  NS  l.gtld-servers.net.
                com.            172800  IN  NS  k.gtld-servers.net.
                com.            172800  IN  NS  c.gtld-servers.net.
                com.            172800  IN  NS  d.gtld-servers.net.
                ;; Received 507 bytes from 198.41.0.4#53(198.41.0.4) in 481 ms

                yahoo.com.      172800  IN  NS  ns1.yahoo.com.
                yahoo.com.      172800  IN  NS  ns5.yahoo.com.
                yahoo.com.      172800  IN  NS  ns2.yahoo.com.
                yahoo.com.      172800  IN  NS  ns3.yahoo.com.
                yahoo.com.      172800  IN  NS  ns4.yahoo.com.
                ;; Received 285 bytes from 192.31.80.30#53(192.31.80.30) in 304 ms

                www.yahoo.com.      1800    IN  CNAME   atsv2-fp.wg1.b.yahoo.com.
                wg1.b.yahoo.com.    172800  IN  NS  yf2.yahoo.com.
                wg1.b.yahoo.com.    172800  IN  NS  yf4.a1.b.yahoo.net.
                wg1.b.yahoo.com.    172800  IN  NS  yf3.a1.b.yahoo.net.
                wg1.b.yahoo.com.    172800  IN  NS  yf1.yahoo.com.
                ;; Received 178 bytes from 68.142.255.16#53(68.142.255.16) in 311 ms

dns 解析答案

    1.肯定答案 : 肯定 有的域名解析答案
    2.否定答案 : 请求不存在等原因导致的 无法返回结果  

        注意 :(肯定答案和否定答案在dns服务器中都会有缓存 本地没有的答案即为否定答案 这样每次请求不存在的主机就不用让主机所在区域的dns服务器每次都响应 占用资源)

    3.权威答案 :由主机所在dns服务器解析出的直接得到的答案
    4.非权威答案 : 不是由主机所在dns服务器解析返回的答案 而是从其他dns服务器缓存中获取的答案

区域解析库
资源记录:resource record (RR)
记录类型 SOA NS PTR A AAAA CNAME MX

SOA: 起始授权记录 一个解析库只能有一个 soa记录 并且 soa记录要在第一条
NS:专门表明当前区域的dns服务器
CNAME: 别名记录
MX: 邮件交换器
PTR: 反向解析 IP --> FQDN
A:FQDN --> IP
AAAA: FQDN -->IPv6

    注意 :1. TTL可以全局继承
           2. @可用于表示当前区域的名字
           3. 同一个名字可以通过多个记录 定义不同的值 此时dns服务器会以轮询的方式响应
           4. 同一个值也可以定义不同的名字 通过不同的名字指向同一个值 仅表示通过不同的名字可以找到一个主机而已     

SOA:
    name :当前区域名称如 gaoleng.com
    value : 多个部分组成
        1.当前区域的dns服务器的FQDN或者当前区域名称 可用@简写
        2.当前管理员的邮箱地址,但地址中不可有@符号 一般用. 号代替 如 admin.gaoleng.com
        3.主服务器协调属性的定义 以及否定答案的TTL
    例:
        daniu.com.      IN      SOA     dns.daniu.com.  root.daniu.com. (2017120902 1H 15M 1W 1D)

NS:
    name : 当前区域名
    value : 当前区域名的 dns服务器名称 如 “ns1.gaoleng.com”

    例如:
            @    IN      NS      ns1.gaoleng.com

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

    例如:
        web.gaoleng.com IN CNAME www.gaoleng.com

PTR :
    name:ip 的特定格式 如 1.2.3.4 要写成 4.3.2.1 并且加上后缀.in-addr.arpa.

    例:4.3.2.1 IN PTR ns1.gaoleng.com.

A :
    name: 某主机的FQDN
    value:主机对应的ip
    例如:
        www.gaoleng.com     IN      A       192.168.117.131   ---------------------
                            IN      A       192.168.117.130   ---------------------    (注意第三条 轮询 )
        *.gaoleng.com       IN      A       192.168.117.131  ----------------------------------------------------(泛域名解析 避免用户写错主机名而给错误答案 )

AAAA :
    name: 某主机的FQDN
    value:主机对应的ipv6

MX :
    name:当前区域名
    value:当前区域名的服务器(smtp服务器)的主机名
            一个区域内MX记录可有多个,但每个记录前都应该有一个数字(0-99表示其优先级) 数越小表示其优先级越高
    例如:
            @       IN      MX 10   mx1.gaoleng.com

bind

主配置文件 /etc/named.conf /etc.named.rfc1912.zones /etc/rndc.key
解析库文件 /var/named/ZONE_NAME.zone

注意 :
    (1). 一台物理服务器 可以同时给多个区域提供解析
    (2). 必须要有根区域文件
    (3). 应该至少有两个(如果包括ipv6 应该更多) 实现localhost 和本地回环地址 127.0.0.1 的解析库

rndc : 默认与bind 安装在同一主机 只能通过127.0.0.1 连接named进程 监听在 953/tcp端口

主配置文件
    全局配置    option{}
    日志子系统配置 logging{}
    区域定义:本机能为哪些zone进行解析 就要定义哪些zone
        zone "ZONE_NAME.ZONE" IN {}

    注意 : 任何服务程序 想要能过通过网络与其他主机访问 至少要监听在一个能与外部主机通信的ip上
                option中默认指定的监听地址为回环地址

缓存名称服务器
        只需要监听在一个外部地址上即可

主dns服务器
    1.定义zone区域

        zone"ZONE_NAME.zone"  IN {
                type {master|slave|hind|forword} ;
                file "..." ;
        };

    2.定义解析库
        定义内容 如  $TTL $ORIGIN (可加可不加 用于省略当前区域名字 ) 在SOA中一般不省略当前区域名字 或FQDN 在后面省略时要注意 省略后不可有点
                                                                        如 ns1.gaoleng.com 不可为写 ns1. 应写成 ns1 ;加 oridin时 用法 如 $ORIGIN gaoleng.com
        资源记录 

    注意 : 定义完之后一般 将写的文件的 权限定为 640 其他人不可读 并且设置 named为文件的属组 因为named程序 是由named用户引导 在读取配置文件 时若为其他人 无法读取文件
            chmod 640 zone_name                                             chown :named zone_name

测试命令:
    dig命令
        dig [-t type ] name [@server] [query option]

            指定资源类型  域名  指定临时dns服务器 不加则为/etc/resolv.conf定义的dns 后接可加选项
    查询选项
        +[no] trace :跟踪解析过程
        +[no] recurse :进行递归解析

    测试反向dns解析
        dig -x ip @server

    模拟区域传送
            区域传送:
                      1. 全量传送 : 传送整个解析库
                      2. 增量传送 : 传送解析库变化的部分
            dig -t axfr zone_name @server
        如
            dig -t axfr gaoleng.com @192.168.117.129

    host 命令

        host [-t type] name server

    nslookup 命令
        nslookup [-option] [name|-] [sercer]
        nslookup
            >server 指定dns服务器
            >set q=rr_type 设定类型
            >NAME 要查询的域名

检查区域文件和解析库文件格式是否正确

        检查区域
    1. named-checkconf
        检查解析库文件
    2.named-checkzone "解析库名ZONE_NAME" 解析库文件名
        如 named-checkzone "gaoleng.com" gaoleng.com.zone

    测试时建议将dnssec设置成no 不然对一些测试实施会有影响

反向区域:
    区域名为网络地址的反写 后接.in-addr.arpa.
        192.168.117 ---> 117.168.192.in-addr.arpa.

    1.定义区域

            zone "ZONE_NAME" IN {
                type {master|slave|forword};
                file"ip.zone";
            };

        例如

            zone "117.168.192.in-addr.arpa" IN {
                     type master;
                     file "192.168.117.zone";
             };

    2.区域解析库文件

        注意:反向解析库不需要 MX A AAAA 

        示例
            $TTL 1D
            $ORIGIN 117.168.192.in-addr.arpa.
            @       IN SOA  ns1.gaoleng.com.        root.gaoleng.com ( 2018020501 1D 1H 1W 1D )
                    IN NS   ns1.gaoleng.com.
                    IN NS   ns2.gaoleng.com.
            131     IN PTR ns1.gaoleng.com.
            129     IN PTR ns2.gaoleng.com.
            129     IN PTR mx1.gaoleng.com.
            131     IN PTR www.gaoleng.com.
                    IN PTR gaoleng.com.

主从复制:
1.从服务器应该为一台独立的服务器
2.主服务器的区域解析库必须有一条NS记录是指向从服务器 --- IN ns2.gaoleng.com ns2 IN A 192.168.117.131
3.从服务器只需要定义区域 而无需提供 解析库文件 库文件应该放置于/var/named/slaves目录中
4.主服务器允许进行做区域传送
5.主从服务器 时间应该同步 可通过ntp进行
6.bind 程序的版本应该一致 若不一致 应该主服务器版本低 从服务器版本高

从服务器

只需要 定义区域
        zone "ZONE_NAME" IN {
            type slave;
            masters{master_ip ;};
            file "slaves/ZONE_NAME.ZONE";
        };

rndc:

rndc COMMAND
    COMMAND:
        reload:重载主配置文件和区域解析库文件
        reload zone:重载区域解析库文件
        status:查看bind状态信息
        retransfer zone:手动启动传送过程,而不管序列号是否增加
        notify zone :重新对区域传送发起通知
        querylog : 开启或关闭查询日志
        trace:传递debug级别
        trace LEVEL :设定debug级别

子域授权

1. 在父区域中定义子区域

    shuai.gaoleng.com   IN      NS      ns1.shuai.gaoleng.com
                        IN      NS      ns2.shuai.gaoleng.com
    ns1.shuai.gaoleng.com       IN      A       192.168.117.131
    ns2.shuai.gaoleng.com       IN      A       192.168.117.132

2. 在相应主机上定义子区域解析库文件

    $TTL 1d
    $ORIGIN shuai.gaoleng.com.

    @   IN  SOA ns1.shuai.gaoleng.com.  admin.shuai.gaoleng.com. ( 2018020601 1H 5M 1W 1D )
        IN  NS  ns1
        IN  NS  ns2
    ns1 IN  A   192.168.117.131
    ns2 IN  A   192.168.117.132
    www IN  A   192.168.117.129

定义转发服务器

注意:1.被指定的转发服务器需要为请求做递归,否则转发请求不进行
      2.forward中 first和only first 表示若转发的服务器 不允许查询时 那自己还会去做查询操作 only表示 若转发的服务器不允许查询时 那自己也就放弃查询
      3.在进行子域或转发测试时关闭dnssec 否则有的操作进行不了

1.全局定义 

    options{
        forward first|only;
        forwarders {FORWARD_DNS_IP;};
    };

2.区域转发

    zone "ZONE_NAME" IN {
            type forward;
            forword first|only;
            forwarders {FORWARD_DNS_IP;};
    };

bind 的安全相关配置

acl:将一个或多个地址归并为一个集合;并通过统一的一个名字调用

    acl ACL_NAME {
            ip;
            net/per;
    };

示例:
acl slaves{
192.168.117.129;
192.168.117.131;
127.0.0.1;
};
以后调用salves相当于调用里面的ip

bind的4个内置acl
none:没有一个主机
any:任意主机
local:本机
localnet:本机的ip和掩码运算后的网络地址

注意:acl只能先定义后调用 其一般定义在options前面部分

访问控制指令

allow-query{}:允许查询的主机,白名单
allow-transfer{}:允许区域传送的主机
allow-resursion{}:允许递归的主机           如 allow-resursion{ slaves;}; 在zone中不能定义
allow-update:允许更新区域数据库中的内容,关闭才安全

示例
zone "gaoleng.com" IN {
type master;
file "gaoleng.com";
allow-transfer{slaves;};
allow-update{none;};
};

view视图

    用于将不同地方客户端的请求 解析到其客户端所在区域的服务器上 如 将上海用户访问此域名 将其解析到伤害的服务器上 这样响应的速度快

    一个bind服务器可定义多个view 每个view可以定义多个zone

    每个view用来匹配一组客户端

    多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件

    格式:
        view VIEW_NAME {
            match-clients{};
        };

    注意:
            1.一旦启用了view,所有的zone都只能定义在view中
            2.仅有必要在匹配到允许递归请求的客户端所在的view定义根区域
            3.客户端请求到达时,是自上而下检查每个view所服务的客户端列表

    示例:

        view localht{
            match-clients{mynet;};

        zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
        };

        zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
        };

        zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
        };

        zone "1.0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
        };

        zone "0.in-addr.arpa" IN {
            type master;
            file "named.empty";
            allow-update { none; };
        };

        zone "gaoleng.com" IN {
            type master;
            file "gaoleng.com";
        };

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "daniu.com" IN {
                type master;
                file "daniu.com.zone";
        };

        };

        view ext {
            match-clients{any;};
        zone"gaoleng.com" IN    {
            type master;
            file"gaoleng.com.ex.zone";
        };
        };

原文地址:http://blog.51cto.com/13453496/2071893

时间: 2024-10-10 20:23:12

dns相关内容的相关文章

[科普]DNS相关的攻击介绍

一  什么是DNS DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. DNS 域名结构 通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名. Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的

Windows Server 2008 R2/2012 网络负载平衡NLB相关内容

使用网络负载均衡技术可以实现一些应用程序的可用性和可伸缩性,常用的应用程序有:IIS.防火墙.VPN以及一些关键业务.每一个节点运行应用程序的一个副本.NLB在群集中的多个主机中分发传入的客户端请求.可以动态地添加主机,也可以将所有流量引导到指定的单个主机,这个主机就称为默认主主机.在一个群集中最多支持 32 台计算机. 当计算机意外出现故障或者脱机时,将断开与出现故障或脱机的服务器之间的活动连接.但是,如果您有意关闭主机,则可以在使计算机脱机之前,使用 drainstop 命令处理所有活动的连

企业域名更换操作系列2:查看旧域名及DNS相关信息

在所有操作开始之前,我们需要对现有域的信息有一个整体的了解,这样才能更好地对后续的内容有更好地理解,旧域的域名信息及DNS信息如下图所示: 1. 原域的域名信息截图如下: 2.原DNS记录如下: 好,这样,我们就知道现有的域名及DNS中信息有哪些,后续我们在完成域名更换后,要确确认新域名DNS中是否有旧域名中各项内容了,下一节我们将一起来看看如何创建新域名所对应的DNS相关记录.

移动端 h5开发相关内容总结——CSS篇

移动端 h5开发相关内容总结——CSS篇 标签: css移动 2016-01-06 15:59 5536人阅读 评论(3) 收藏 举报  分类: HTML+CSS(17)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=n

EF Code First 配置的相关内容

I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 1 /// <summary> 2 /// 用户照片类 3 /// </summary> 4 public class PersonPhoto 5 { 6 [Key] 7 public int PersonId { get ; set ; } 8 public byte [] Photo { get ; set ; } 9 public string Caption { get ; set ; } // 标题

【转帖】MATLAB 与 音频处理 相关内容摘记

MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信号的流程 2 音量标准化 2 声道分离合并与组合 3 数字滤波 3 数据转换 5 基于MATLAB 的数字滤波实验6 MATLAB 音频相关函数 声音数据输入输出函数: 可以方便地读写au和way文件,并可控制其中的位及频率. wavread()和wavwriteO. 声音播放: wavplay():播放wav声

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

学习笔记之html5相关内容

写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的一个属性是 type="email".以前用html的时候,type是有很多类型的,有text,password,summit.就是没听说过email.当得知这个email是验证输入的内容是否为email格式的时候.我顿时兴奋了.以前接触到html的时候,如果要验证输入内容时,是需要写js

在生成一系列相关内容后,签名文件生成

然后上传刚刚生成的CSR文件 按下Generate后,稍等一会,证书就生成了,你可以下载然后安装到本机. 3. AppID 需要强调一下的是,这里的AppID和常说的AppleID不是一个概念.AppleID是用户在苹果的账号,在AppStore上下载应用时,需要使用的就是这个账号.而AppID则是应用的身份证,用来表明应用的ID. 在证书生成后,下一步就是生成AppID,相当于帮你想开发的应用生成一张身份证. AppID需要你起一个名字以方便描述.这里不能输入特殊字符. AppID还分成带通配