阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下DNS服务器的安装

133次阅读
没有评论

共计 4103 个字符,预计需要花费 11 分钟才能阅读完成。

概念部分
linux 客户端默认的 dns 查找顺序:

本地 DNS 缓存→本地 hosts 文件→首选的 DNS 服务器(递归)

linux 的 DNS 服务器查找顺序:
首选服务器的 DNS 缓存→首选服务器自己所负责的域→向外迭代查询信息。

DNS 缓存:
    ttl:time to live

    就是被请求的域名或主机名等对应的 IP 条目在客户端本地的有效时间。

    这个时间由被请求域的 主 DNS 服务器根据其条目的变化频率自行决定,而非本地可以定义。

    但是客户端本地可以查看和清除。例如:

    windows 上:ipconfig/displaydns 查看 DNS 缓存,ipconfig/flushdns 清除 DNS 缓存。

迭代查询:
    一般由缓存 DNS 服务器向其他 DNS 服务器发起,从根 ”.” 开始,然后顶级域 ”.com.”, 直到找到目标域。

递归查询:
    一般由客户端向缓存 DNS 服务器(首选 DNS 服务器)发起,然后由其向外进行迭代查询,返回给客户端的则是最终的答案。

权威应答:
    由被请求域的 DNS 服务器 返回的答案。

非权威答案:
    由缓存服务器提供的答案,

缓存 DNS 服务器:

    直接响应客户端请求,为其从根开始直到返回答案,或者提供客户端已经被缓存过的条目。

主 DNS 服务器:

    由管理员手动完成新条目的添加、删除及修改的服务器。同时向外提供权威 DNS 答案。

从 DNS 服务器:
    为了实现负载均衡、冗余等功能而设计的服务器。

    但是在主 DNS 服务器宕机一定时间后,从服务器也会停止响应服务。
DNS 解析类型:
    正向解析:FQDN→IP,由 FQDN 查找 IP。

              正向根:”.”

    反向解析:IP→FQDN,由 IP 查找 FQDN。

              反向根:”.in-addr.arpa.”

DNS 服务器软件:
  bind:linux 端软件
  powerdns:windows 端软件。
下面以 bind 为例:

名称解析库:
    位于 /var/named/, 其中的部分 ”.zone” 结尾的文件中就存储我们需要查询的条目。

资源记录格式:
  /var/named/*.zone 文件中存储条目的一种固定格式:

  [domain]    IN    [[RR type]    [RR data]]

  域名.      IN    SOA            管理此域的 7 个重要参数

  域名.      IN    NS            管理这个域的服务器的主机名字

  域名.      IN    MX  优先级    邮件服务器的主机名字

  主机名.    IN    A              IPv4 的 IP 地址

  主机名.    IN    AAAA          IPv6 的 IP 地址

  主机别名.  IN    CNAME          实际的主机名字

 

  IP          IN    PTR            实际的主机 FQDN(这里必须是 FQDN, 不能有任何省略)

RR  data:

(注意:这里的主机名不是指 hostname 命令看到内容,而是 DNS 查询中所定义使用的主机名)
SOA:
  通常是第二行($TTL 等为第一行),用于查询管理域名的服务器的管理信息。

  1、确定此域的 主 DNS 服务器 是哪个。

  2、管理员的 Email 地址。

      在创建资源记录时,会使用 ”@” 代替 ” 域名.”,也就是配置文件中的 zone 后的 ”baidu.com.”。

      所以由于 @具有其他意义,所以这里使用 ”.” 替代。例如 ”root.baidu.com.”。

  3、序列号,数字是越大越新,在从 DNS 服务器要判断是否主动下载新的资源记录条目时的依据。

  4、刷新频率,就是 Slave(从 DNS 服务器)每隔多长时间主动向 Master(主 DNS 服务器)发起更新。

      但在序列号没有增大时,就不会进行下载更新。

  5、重试时间,在上一次连接 Master 刷新失败的情况下,Slave 会再隔一个 ” 重试时间 ” 重试刷新。

  6、失效时间,当重试一直在失败,直到达到 ” 失效时间 ”,那么 Slave 就不会重试刷新,

      而且停止 DNS 的响应服务器,等待管理员的处理。

      刷新时间 >=  重试时间 *2

      刷新时间 + 重试时间 < 失效时间

      失效时间 >= 重试时间 *10

      失效时间 >=  7 天

  7、如果当资源记录内容中没有我们要求的条目,那么就会以此值作为查询端的 TTL 值。
NS:
  Name Server,指定当前域的 DNS 服务器有哪些。

  如果此域有从 DNS 服务器,就必须也写上。否则 Mster 不会主动通知 Slave 数据已经改变。

  后面必须同时指定 NS 记录中的服务器的 A 记录,也就是 IP 地址。

MX:
  查询当前域的邮件服务器的主机名。

  其数字部分表示优先级,数字越小,优先级越高。

  后面同样需要跟上其 A 记录。
注意:
  在域名相同的情况下,除第一个,其他的域名都是可以省略的,
  所以格式上习惯将 SOA、NS、MX 记录连续记录。

  而 SOA 又可以使用 ”@” 符号进一步简化。

A:
  用来指定主机名对应的 IPv4 地址的。

AAAA:
  用来指定主机名对应的 IPv6 地址的。

CNAME:
  用来附加表示旧的主机名。

下面是一个以 yy.com 域为例的正向解析资源记录:

$TTL 600  ; 使用宏定义了 ttl 值,前面不能有空白行
@      IN      SOA    dns1.linuxidc.com.    root.linuxidc.com. (
                        20140310 ;Serial
                        1H  ;Refresh
                        5M  ;Retry
                        7D  ;Expire
                        1M) ;Minumum TTL
        IN      NS      dns1  ; 调用配置文件 zone 后的 ’linuxidc.com.’ 域名
        IN      NS      dns2
        IN      MX  99  mail  ; 此三行都借用 SOA 行的 @,表示 ’linuxidc.com.’
dns1    IN      A      192.168.25.11  ;dns1 表示 ’dns1.linuxidc.com.’
dns2    IN      A      192.168.25.12
www    IN      A      192.168.25.13
pop    IN      A      192.168.25.13 ; 一个 IP 可以对应多个主机名,但是更改时费事,建议用 CNAME
ftp    IN      A      192.168.25.15
ftp    IN      A      192.168.25.16 ; 一个主机可以对应多个 IP,起到负载均衡的作用 bind 的配置文件

 

bind 的配置文件:
rpm -ql  bind-utils
  /usr/bin/dig    现在主流 DNS 测试工具。

  /usr/bin/host  在不联网的情况下,可能会与 dig 产生不同答案。

  /usr/bin/nslookup 通用于 windows 的工具

下面是 dig 的使用方法:
dig -t 资源记录类型 名称 [@dns_server_ip]
dig -x IP    反向解析
dig +trace  显示全部解析的追踪过程
dig -t axfr linuxidc.com  对 linuxidc.com 域进行完全区域传送
dig -t NS  linuxidc.com  查询 linuxidc.com 的 NS 记录

下面是 nslookup 在 windows 上的使用方法:

nslookup
server 192.168.25.11 使用指定的 dns_server_ip
set q=a
www.linuxidc.com  查询 www.linuxidc.com 的 A 记录
set q=NS
linuxidc.com    查询 linuxidc.com 的 ns 记录

rpm -ql  bind:

  /etc/named.conf    主配置文件
  /etc/named.rfc1912.zones    定义了本地配置文件。被包含在 named.conf 中

在 /etc/named.conf 中:

//    表示注释单行内容
/* 多行内容 */    表示注释多行内容
options 表示全局配置:
directory      “/var/named”; // 表示 named 进程工作的目录,其区域 zone 的文件存放就是以此作为                              // 相对目录的
allow-transfer {none;};    // 在全局配置中定义表示哪些主机进行全部区域的传送。
                            // 在 zone 中定义则表示可以哪些主机可以对此区域传送

                            //none,表示所有的不可以。还可以使 IP 地址

下面是区域定义的格式:

主 DNS 服务器的区域配置:
zone “linuxidc.com” IN {
    type master;
    file “linuxidc.com.zone”;
};
zone “25.168.192.in-addr.arpa” IN {
    type master;
    file “192.168.25.zone”;
};
从 DNS 服务器的区域配置:
zone “linuxidc.com” IN {
    type slave;
    file “slaves/linuxidc.com.zone”; // 注意 slaves 文件的属主、属组、权限 
    masters {192.168.25.10;  // 注意 master 的复数,所以可以写多个
              192.168.25.11;  // 无论有多少个 Mster,都要有分号。
            };
};

 

相关阅读

RHEL6 服务器搭建 DNS 服务器 http://www.linuxidc.com/Linux/2013-10/91256.htm

精解 Linux RHEL 6.x DNS 服务器 http://www.linuxidc.com/Linux/2013-08/88986.htm

Ubuntu DNS 服务器配置 http://www.linuxidc.com/Linux/2013-07/87181.htm

Solaris 中配置 DNS 服务器 http://www.linuxidc.com/Linux/2013-06/86724.htm

CentOS 6.3 x64 下借助 MySQL 和 DNS view 实现智能 DNS http://www.linuxidc.com/Linux/2013-06/86430.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4103字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中