前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下DNS服务器的安装

Linux下DNS服务器的安装

作者头像
星哥玩云
发布2022-06-30 18:19:17
3.3K0
发布2022-06-30 18:19:17
举报
文章被收录于专栏:开源部署

概念部分 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,都要有分号。             }; };

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档