DNS

本文详细介绍了DNS的记录类型,包括A记录、PTR、CNAME和NS。讲解了DNS的递归查询和迭代查询原理,并指导如何自建DNS服务器,配置BIND及自定义区域。还涉及DNS主辅同步、高可用性设置以及父域和子域的配置策略,最后讨论了DNS转发的两种类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. dns分为根域(.)
  2. 顶级域(.com,.cn,.org等等)
    通用域和国家域
  3. 主域(二级域名)(aliyun.com)
  4. 子域(三级域名)(www.aliyun.com ,123.aliyun.com,abc.aliyun.com)

DNS的记录类型

  1. A记录
    域名指向ip,正向解析
  2. PTR
    ip查找域名,反向解析
  3. CNAME
    域名指向域名,由指向的域名做A记录查找ip换回
  4. NS
    客户通过查询dns记录,如当前的dns无法提供权威解析,则返回一条ns记录,客户端再通过ns记录提供的dns权威服务器进行解析。

DNS的两个查询原理

  1. 递归查询
    当dns服务器收到用户的请求时,必须返还用户一个准确的查询结果。(如果是企业内部使用可以关闭,但是如果需要解析公网的,建议打开,但是打开一定要做限制)。
  2. 迭代查询
    当dns服务器收到用户的请求时,并不直接回复查询结果,而是告诉另一台dns服务器的地址,用户再去请求这台的,依次反复,最后拿到结果。

自建DNS

BIND:
域名解析服务
权威域名解析
DNS调试工具

  1. 下载bind
    bind bind-utils
  2. 启动并设置开机自启
    systemctl enable named
    systamctl start named
  3. 查看端口
    netstat -lntp 默认监听在53的端口
  4. 修改配置文件/etc/named.conf,图一可以改为localhost,也可以改为any(任何),建议改为localhost。在这里插入图片描述
    在这里插入图片描述
  5. 检查语法 named-checkconf
    重启 systemctl restart named
    rndc status ,远程的方式管理named
    rndc reload 全程重启
  6. 将其他服务器的dns改为 安装bind的服务器ip地址。尝试ping 外网网站,看是否能通。

配置自定义区域

A记录设置

  1. vim /etc/named.conf 添加一个新的区域
//默认可以对任何域名提供解析服务;因为named.ca中存储的是全球根域服务器; 
zone "oldxu.com" IN {
type hint; 
file "oldxu.com.zone"; 
区域配置文件名称 
相对路径,因为默认调用的是  /var/named/  下的文件
};
  1. vim /var/named/oldxu.com.zone (邮箱右面可以不用带点)
$TTL 600

oldxu.com. IN SOA ns.oldxu.com. qq.oldxu.com. (
#区域名称 #IN SOA起始授权 #ns.dldxu.com是固定写法 #邮箱
        20210518 (序列号。通常用时间戳表示)
        10800 (刷新时间)
        900 (重试时间)
        604800 (过期时间)
        86400 (缓存dns服务器可以缓存多久)
)

oldxu.com.      IN      NS      ns1.oldxu.com.
指定域名的权威解析服务器(NS一定要写)
ns1.oldxu.com.  IN      A       172.16.1.91
设定权威服务器所在ip

设定域名解析(什么域名匹配哪个ip)
www.oldxu.com.  IN      A       1.1.1.1
ttt.oldxu.com.  IN      A       2.2.2.2                                       
  1. named-checkconf(检查配置文件)
    named-checkzone oldxu.com /var/named/oldxu.com.zone (检查zone文件)
  2. rndc reload

CNAME

和 A记录没什么差别, 就是 域名 和在/var/named/下的文件中,将域名解析配置,由域名指向域名即可。

PTR

先配置zone文件,反向解析配置:如果 你的ip是 10.0.0.100,那么在配置文件中就要倒过来写 “0.0.10.in-addr.arpa” ,建议同时配置正向解析

$TTL 600

@ IN SOA 1.16.172.in-addr.arpa. qq.oldxu.com. (
        20210518
        10800
        900
        604800
        86400
)

设置反向解析的ip地址。
@       IN      NS      ns1.oldxu.com.
91      IN      PTR     ns1.oldxu.com.

设定ip对应的域名
5       IN      PTR     lb01.oldxu.com.
6       IN      PTR     lb02.oldxu.com.

限制递归查询的网段

/etc/named.conf,再递归查询的后面 写入:allow-recursion { 网段+掩码;};(大括号里最后的分号不要忘了写)

在这里插入图片描述

dns主辅同步

master

在/etc/named.conf 配置文件中options下写入以下两行进行配置。
写在options下是全局配置。也可以写在单独的zone下面。

//允许哪个地址能同步master配置信息
        allow-transfer {172.16.1.92;};
//主动通知辅助dns域名变更
        also-notify {172.16.1.92;};

主辅同步,必须修改时间。在master上修改

backup

  1. 先修改监听地址(localhost),其次修改访问限制(允许谁来查询any)。
  2. 在 options 下 添加 masterfile-format text;
  3. 添加区域配置文件
zone "oldxu.com" IN { 
        type slave;(类型) 
        file "slaves/oldxu.com.zone";
        masters { 172.16.1.91; };
};
  1. 检查语法 named-checkconf
  2. 重启服务 systemctl restart named (rndc reload)

配置dns高可用

在/etc/resolv.conf,配置两个dns即可
nameserver 172.16.1.91
nameserver 172.16.1.92

dns父域和子域的配置

因为backup和master是同步的,所以只需要配置master即可。

二级域名 oldxu.com
三级域名 www.oldxu.com
子域是 三级域名的 附属域, 比如 ttt.www.oldxu.com

首先在父域授权子域,添加子域解析
ops.oldxu.com. 		IN 	NS	ns1.ops.oldxu.com
ns1.ops.oldxu.com.	IN	A	172.16.1.93
  1. 在子域服务器添加 zone的配置(/etc/named.conf),以及配置文件(/var/named/ops.oldxu.com.zone)。
zone "ops.oldxu.com" IN { 
        type master; (类型写master)
        file "ops.oldxu.com.zone";  
};

配置文件

$TTL 7200
ops.oldxu.com. IN SOA ns.ops.oldxu.com. qq.oldxu.com. (
        2021041516
        10800
        900
        604800
        86400
)

;配置域名解析的指向(由172.1.6.1.3来解析4级域名)
ops.oldxu.com.          IN      NS      ns1.ops.oldxu.com.
ns1.ops.oldxu.com.      IN      A       172.16.1.93

;配置四级域名
www.ops.oldxu.com.      IN      A       5.5.5.5
ttt.ops.oldxu.com.      IN      A       4.4.4.4

子域和父域的区别

子域和父域各自负责各自的区域,彼此没有联系,父域可以查到子域的,但是子域查不到父域的,如果想解决,就需要做dns转发

dns转发

转发就是将查询请求转至某一台服务器进行解析(被转发的服务器必须开启递归查询)。

转发分为两类:

  1. 区域转发:仅转发特定的区域
  2. 全局转发:来者不拒

转的 type的类型是 forward。
区域转发 写在 zone下面

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

全局转发 写在options下面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值