首页 > 代码库 > DNS
DNS
####DNS总揽
#######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 : 提供的其他信息 , 通常是关于名
称服务器
– 底部的注释指出发送查询的递归名称服务器以
及获得响应所花费的时间
#####缓存 DNS 服务器
BIND 是最广泛使用的开源名称服务器
在 RHEL 中 , 通过 bind 软件包提供
防火墙开启端口 53/TCP 和 53/UDP
BIND 的主配置文件是 /etc/named.conf
/var/named 目录包含名称服务器所使用的
其他数据文件
########/etc/named.conf 的语法
// 或 # 至行末尾是注释 ; /* 与 */ 之间的文本也
是注释 ( 可以跨越多行 )
指令以分号结束 (;)
许多指令认为地址匹配列表放在大括号中、以
CIDR 表示法表示的 IP 地址或子网列表中 , 或者
命名的 ACL 中 ( 例如 any; [ 所有主机 ] 和
none; [ 无主机 ] )
文件以 options 块开始 , 其中包含控制 named
如何运作的指令
zone 块控制 named 如何查对于其具有权威性的
根名称服务器和区域
########一些重要的 options 指令
listen-on 控制 named 侦听的 IPv4 地址
listen-on-v6 控制 named 侦听的 IPv6 地址
allow-query 控制哪些客户端可以向 DNS 服务器询问信息
forwarders 包含 DNS 查询将转发至的名称服务器的列表
( 而不是直接联系外部名称服务器 ; 在设有防火 墙的情况中
很有用 )
所有这些指令会将打括号中以分号分隔的元素视为地址匹配
列表 . 如
– listen-on { any; };
– allow-query { 127.0.0.1; 10.0.0.0/8 };
###################1.高速缓存DNS#######################
server端
安装bind
开启namd systemctl start named
开机重启named systemctl enabled named
关掉火墙 systemctl stop firewalld
开机不启动火墙 systemctl disabled firewalld
将selinux设为警告状态 setenforce 0
修改配置文件
vim /etc/named.conf
重启服务 systemctl restart named
client端
修改配置文件
vim /etc/resolv.conf
Ip为server端的ip
测试
从上一级DNS那里把信息缓存下来以供局域网内其他主机使用。主机名和IP 的对应是保存在缓存中的。
dig classroom.example.com ####缓存的总服务器的dns
#####################2.DNS的正向解析######################
(1)并不需要上层DNS时
把/etc/named.conf 里的forwarders 那一行去掉。
(2)把待测时机器的DNS设置成我们接下来要配置的主机的IP
在/etc/resolve.conf 中把IP 改为配置有DNS服务器的主机的IP
(3)/etc/named.conf ——》/etc/named.rfc1912.zones ——》/var/named/yourFileName
*/etc/named.conf 告诉我们域的配置文件在/etc/named.rfc1912.zones里
*在/etc/named.rfc1912.zones文件中添加新的域的相关结构体
在结构体里面指定这个域的具体的配置文件的名字这里时westos.com.zone, 这个只是个文件名一会儿要在/var/named/下创建这个文件其他地方都没有用
*在/var/named/下创建并编辑westos.com.zone文件
文件编辑如下
重启服务
systemctl restart named
不写.的时候会自动补齐/etc/named.rfc1912.zones 里面新定义的域名这里就是westos.com。所以上面图中浅蓝色的部分可以把“.westos.com.”都去掉。
测试
############3.DNS轮询、CNAME更名 和 MX邮件服务器 #################
1DNS轮询
修改配置文件
vim /var/named/westos.com.zone
测试
2CNAME更名
只需要在/var/named/westos.com.zone(这个名字是上面2中自己随便取的)编写内容如下
(3)MX邮件服务器
还是在/etc/named/westos.com.zone中编辑
重启服务
systemctl restart named
测试
cat /var/spool/mail/root
######################4.反向解析########################
/etc/named.conf ——》/etc/named.rfc1912.zones——》
* /etc/named.conf最后面的即行指明了具体域的结构体的配置文件在/etc/named.rfc1912.zones文件里面。
*在/etc/named.rfc1912.zones里面定义方向解析的域的结构体
我现在的局域网是172.25.254.x 要把地址的前3段反着写。file是这个域的方向解析的具体参考文件。名字可以随便取。
* 在/var/named/下创建并编辑刚才定义的文件
cp -p 因为这里//var/named/下的文件所属组为named
验证
########################5.DNS双向解析#########################
cp -p /var/named/westos.com.zone /var/named/westos.com.inter
vim /var/named/westos.com.inter
cp -p /etc/named.rfc.1912.zones /etc/named.rfc.1912.zones.inter
vim /etc/named.rfc.1912.zones.inter
vim /etc/named.conf
systemctl restart named
测试
dig www.westos.com
###6.DNS集群#####
前提装软件关火墙关SELINUNX,开启53端口
1.主dns配置IP172.25.254.145
1vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-validation no;
//代表开启着接口
2vim /etc/named.rfc1912.zones
3cp -p /var/named/ /var/named/westos.com.zone #特殊文件注意权限
4)vim /var/named/westos.com.zone
5vim /etc/resolv.conf
6systemctl restart named
2.辅助DNSIP172.25.254.245
1vim /etc/named.conf
2vim /etc/named.rfc1912.zones
3vim /etc/resolv.conf
4systemctl restart named
5测试
在辅助DNS服务器上面测试
当主服务器上的DNS发生变化时辅助DNS不会发生变化
只有rm -fr /var/named/slaves/www.westos.com (在辅助服务器上执行)
辅助DNS 才能更新数据
3.辅助DNS动态获取主DNS数据同步
1主DNS
1-1
vim /etc/named.rfc1912.zones
1-2
vim /var/named/westos.com.zone
1-3
systemctl restart named
2)辅助DNS
测试
4.DNS更新远程主机对DNS A记录修改)
1主DNS
1-1
cp -p /var/named/westos.com.zone /mnt ##备份便于恢复
1-2
vim /etc/named.rfc1912.zones
1-3 #此目录必须对named组有执行
1-4
systemctl restart named
2辅助DNS
测试 dig hello.westos.com
恢复 rm -rf var/named/westos.com.zone /var/named/westos.com.zone.jnl
cp -p /mnt/westos.com.zone /var/named/
5.有Key才可对主机进行更新
1)主DNS
1-1
cp -p /etc/rndc.key /etc/westos.key
1-2
cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
1-3
vim /etc/westos.key
1-4
)vim /etc/named.conf
在options {};外添加 include "/etc/westos.key";
1-5
vim /etc/named.rfc1912.zones
1-6
1-7
systemctl restart named
2.辅助DNS
测试主DNS
6.ddns
DHCP+DNS=DDNS
动态DNSDDNS需要DNS和DHCP来协同工作。
Linux下也可以实现DDNS不过DNS需要Bind8以上的版本DHCP需要3.0以上的版本。
1)恢复 rm -rf /var/named/westos.com.zone /var/named/westos.com.zone.jnl
cp -p /mnt/westos.com.zone /var/named/
2)安装dhcp(主服务器0
Systemctl start dhcpd
vim /etc/dhcp/dhcpd.conf
删除27、28行
systemctl restart dhcpd
systemctl restart named
辅助服务器
设置dhcp
systemctl restart network
可以获取到动态IP
测试
DNS