DNS域名系统
DNS总揽
权威名称服务器
– 存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。权威名称服 务器的类型包括
• Master : 包含原始区域数据。有时称作“主要”名称服务器
slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作“次要”名称服务器
• 非权威 / 递归名称服务器
– 客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括 • 仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性
• DNS查找
– 客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器
– 如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端
– 否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端
– 如果缓存只能该没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照 DNS 层
– 次结构向下搜素 , 直至对于信息具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中 , 名 ch 称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找
DNS资源记录
DNS 区域采用资源记录的形式存储信息。每条资 源记录均具有一个类型 , 表明其保留的数据类型
– A : 名称至 IPv4 地址
– AAAA : 名称至 IPv6 地址
– CNAME : 名称至”规范名称“ ( 包含 A/AAAA 记录的另 一个名称 )
– PTR : IPv4/IPv6 地址至名称
– MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )
– NS : 域名的名称服务器
– SOA:”授权起始“,DNS 区域的信息(管理信息)
DNS排错
它显示来自 DNS 查找的详细信息 , 其中包括 为什么查询失败 :
– NOERROR : 查询成功
– NXDOMAIN : DNS 服务器提示不存在这样的名称
– SERVFAIL : DNS 服务器停机或 DNSSEC 响应 验证失败
– REFUSED : DNS 服务器拒绝回答 ( 也许是出于 访问控制原因 )
dig输出的部分内容
标题指出关于查询和答案的信息 , 其中包括 响应状态和设置的任何特殊标记 ( aa 表示 权威答案 , 等等 )
– QUESTION : 提出实际的 DNS 查询
– ANSWER : 响应 ( 如果有 )
– AUTHORITY : 负责域 / 区域的名称服务器
– ADDITIONAL : 提供的其他信息 , 通常是关于名 称服务器
– 底部的注释指出发送查询的递归名称服务器以 及获得响应所花费的时间
配置文件/etc/named.conf的语法
// 或 # 至行末尾是注释 ;/* 与 */ 之间的文本也 是注释 ( 可以跨越多行 )
指令以分号结束 (;)
许多指令认为地址匹配列表放在大括号中、以 CIDR 表示法表示的 IP 地址或子网列表中 , 或者 命名的ACL 中(例如 any;[ 所有主机 ] 和 none;[ 无主机 ])
文件以 options 块开始 , 其中包含控制 named 如何运作的指令
zone 块控制 named 如何查对于其具有权威性的 根名称服务器和区域
高速缓存DNS服务的配置
安装服务后关闭防火墙,然后开启服务
yum install bind.x86_64 -y
systemctl stop firewalld
systemctl start named
开启服务时需要一边把键盘随便按几下,因为不按的话是不会生成加密的。。。
进入主配置文件修改
vim /etc/named.conf
12,19行中修改为any(注意分号)
20行添加权威服务器的ip
systemctl restart named
如果重启出错,得查看日志文件及时排错
cat /var/log/messages
随后进入客户机中
修改文件,让其寻求服务端解析dns
vim /etc/resolv.conf
然后进行dig
dig www.baidu.com
域名解析成功
自行配置DNS的过程
先进入主配置文件中修改
vim /etc/named.conf
加入自己的解析文件指向
当然如果每个域名都得加到主配置文件后头会使得主配置文件特别的复杂
我们可以将其写入
/etc/named.rfc1912.zones 文件中
vim /etc/named.rfc1912.zones
添加如下
进入/var/named,开始编写westos.com.zone文件
cd /var/named/
cp -p named.localhost westos.com.zone
vim westos.com.zone
编写如***意‘.’这个符号 如果不加上的话,会自动补齐)
重启服务
systemctl restart named
然后
dig www.westod.com
DNS多向解析
如果是不同的网段的域名,我们需要对其进行多向解析,这时就能用到视图的方法。
配置过程
进入/var/named的目录下,编写自己另一个网段的DNS的文件
cd /var/named/
cp -p westos.com.zone westos.com.inter
vim westos.com.inter
编辑如下
同样的在之前配置自己的dns中,我们还需要再编写一个文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
其中编写如下
最后我们到主配置文件修改视图
vim /etc/named.conf
最后重启服务
systemctl restart named
然后在不同的网段进行dig可以有不同的结果
DNS逆向解析
vim /etc/named.rfc1912.zones
修改配置文件如下
编写如下
然后编写反向解析的文件
cp -p named.loopback westos.com.ptr
vim westos.com.ptr
重启服务
systemctl restart named
然后使用dig
dig 172.25.254.111
DNS的更新
在更新之前最好备份一下我们可以进行以下操作
cp -p /var/named/westos.com.zone /mnt/
修改文件中,将allow-update改为你想让其更新的客户的ip地址
为了权限的保证和防止SELINUX对其进行拦截,我们应当设置目录的权限和设置SELINUX的bool值
chmod 770 /var/named/
setsebool -P named_write_master_zones 1
然后重启服务后,进入你所指定的客户机可以进行简单的测试
nsupdate
> server 172.25.254.111
> update add hello.westos.com 86400 A 172.25.254.222
> send
最后使用dig
DNS的加密
进入mnt目录下使用 dnssec-******生成钥匙,然后查看密码
cd mnt/
dnssec-****** -a HMAC-MD5 -b 128 -n HOST westoskey
cat Kwestoskey.+157+21835.key
编写钥匙文件
cp -p /etc/rndc.key /etc/westoskey
vim /etc/westoskey
修改主配置文件
vim /etc/named.conf
修改zone文件
vim /etc/named.rfc1912.zones
如下
可以将钥匙发送给你所许可的客户,让其可以对你的dns有修改的权限
scp Kwestoskey.+157+21835.* root@172.25.254.211:/mnt/
上一篇: Python+阿里云DNS 搭建DDNS动态域名解析
下一篇: Linux 学习