高速缓存dns
DNS 总揽
权威名称服务器
存储并提供某区域 ( 整个 DNS 域或 DNS 域的一部分 ) 的实际数据。
权威名称服务器的类型包括
Master : 包含原始区域数据。有时称作 “主要 ”名称服务器
Slave : 备份服务器 , 通过区域传送从 Master 服务器获得的区域数据的副本。有时称作 “次要 ”名称服务器
非权威 / 递归名称服务器
客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括 存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性
DNS 查找
客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器,如果名称服务器对于请求的信息具有权威性 , 会将权威答案发送至客户端,否则 , 如果名称服务器在其缓存中有请求的信息 , 则会将非权威答案发送至客户端,如果缓存中没有信息 , 名称服务器将搜索权威名称服务器以查找信息 , 从根区域开始 , 按照DNS 层次结构向下搜索, 直至对于信息有具有权威性的名称服务器 , 以此为客户端获得答案。在此情况中,名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。
DNS资源记录
– AAAA : 名称至 IPv6 地址
– CNAME : 名称至 ”规范名称 “ ( 包含 A/AAAA 记录的另一个名称 )
– PTR : IPv4/IPv6 地址至名称
– MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )
– NS : 域名的名称服务器
– SOA :” 授权起始 “ , DNS 区域的信息 ( 管理信息 )
DNS排错
• 它显示来自 DNS 查找的详细信息 , 其中包括为什么查询失败 :
– NOERROR : 查询成功
– NXDOMAIN : DNS 服务器提示不存在这样的名称
– SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败
– REFUSED : DNS 服务器拒绝回答 ( 也许是出于访问控制原因 )
概述:dns高速缓存,提高本地其他用户的访问速度,第一次访问一个域名的时候,花费的时间比较长,第一次解析过后,再次解析就会减少解析时间
前提:关闭防火墙
在虚拟机里:
<1>yum install bind -y #下载dns的客户端
<2>systemctl start named #开启dns服务端,开启时因为加密字符不够,无法正常开启,敲击键盘生成随即密码
<3>vim /etc/named.conf #修改主配置文件,允许其他用户访问
在真机里测试:
关于dig:
dig+域名 #用来解析一个域名
其显示内容:关于查询和答案的信息,其中包括响应状态和设置的任何特殊标记
– AUTHORITY : 负责域 / 区域的名称服务器
– ADDITIONAL : 提供的其他信息 , 通常是关于名称服务器
– 底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间
<4>dig www.baidu.com #询问失败,因为没有配置dns服务器ip
<5>vim /etc/resolv.conf
<6>dig www.qq.com #第一次访问,时间比较长
<7>ssh [email protected] #再连接另外一个主机
<8>vim /etc/resolv.conf
添加:nameserver 172.25.254.138
<9>dig www.qq.com #用时减少
2.权威dns的正向解析(给定一个域名,会解析出来ip)
<1>vim /etc/named.rfc1912.zones #编辑dns的子配置文件
<2> cd /var/named/
<3>cp -p named.localhost westos.com.zone #把named.localhost文件里的内容拷贝到westos.com.zone中,-p表示带权限拷贝
<4>vim westos.com.zone
<5> vim /etc/named.conf
注释掉 forwarders {114.114.114.114;}; #此时不需要它来提供解析结果
<6>systemctl restart named
在本机上开始测试:
<1>dig hello.westos.com
3.轮询式域名解析
<1>vim westos.com.zone
<2>systemctl restart named
在本机上开始测试(出现轮询式):
<3>dig node1.westos.com
<4>dig node1.westos.com
4.反向解析(给定ip,解析出域名)
<1>cd /var/named/
<2>vim /etc/named.rfc1912.zones
<3>cp -p named.loopback westos.com.ptr #复制编写内容的模板
<4>ls
<5>vim westos.com.ptr
<6>systemctl restart named
在本机上开始测试:
<7>dig -x 172.25.254.111 #-x表示反向
<8>dig -x 172.25.254.222
5.双向域名解析(在企业中称为内外网)
<1>cd /var/named
<2>cp -p /var/named/westos.com.zone /var/named/westos.com.inter
<3>ls
<4>vim westos.com.inter #把ip全改为192.25.0.
<5>cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
<6>vim /etc/named.rfc1912.inter
<7>vim /etc/named.conf
<8>systemctl restart named
在本机测试(在本地访问时是/etc/named.rfc1912.zones中查询的):
<9>dig node1.westos.com
在其他其主机上测试(外网查询时是在/etc/named.rfc1912.inter中查询的):
<10>dig node1.westos.com
6.辅助主机解析:
在dns辅服务端(dns-slave)上:
<1>yum install bind
<2>systemctl start named
<3>hostnamectl set-hostname dns-slave.example.com #改主机名字
<4>vim /etc/named.conf #配置dns
10 options {
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { any; };
<6>systemctl restart named
<7>systemctl stop firewalld
在dns主服务端(dns-server)上:
<1>vim /etc/named.conf
<3>systemctl restart named
开始测试:
在dns主服务端(dns-server)上:
<1>vim /var/named/westos.com.zone
在dns主服务端更改一次,serial上的数值要进行修改(最大十位,超过不生效,一般使用年月日和第几次修改作标记,正好十位),这样更改过的数据才能更新到dns辅配置端
<2>systemctl restart named
在dns-slave上:
<2>dig node1.westos.com
7.DNS配置更新
<3>vim /etc/named.rfc1912.zones #修改本地配置文件,使172.25.254.238这台主机可以远程更新
<5>chmod 770 /var/named/ #添加读写权限
<6>systemctl restart named
开始测试(在被允许的主机上):
<1> nsupdate
在被更新的主机上检测:
<1>systemctl restart named
<2>vim /var/named/westos.com.zone
恢复环境:
<1>rm -fr /var/named/westos.com.zone
<2>cp -p /mnt/westos.com.zone /var/named/
8.加密DNS更新
在dns主服务端(dns-server)上:
<1>cd /mnt
<2>dnssec-****** -a HMAC-MD5 -b 128 -n HOST westos #需要敲键盘来生成密码
<3>cp /etc/rndc.key /etc/westos.key -p #备份生成的密码源文件
<4>ls
<5> cat Kwestos.+157+05728.key #查看生成的密码
<6>vim /etc/westos.key #修改该生成的正确密码
<7>vim /etc/named.conf
<8>vim /etc/named.rfc1912.zones
<9>scp /mnt/Kwestos.+157+05728.* [email protected]:/mnt #把密码传送给想要更新的主机上
<10>systemctl restart named
在dns辅服务端(dns-slave)上:
<1>cd /mnt
<3> nsupdate -k Kwestos.+157+05728.private
在主服务端(dns-server)上检测:
vim /var/named/westos.com.zone
9.DNS域名动态解析
在dns主服务端
<1>yum install dhcp -y
<2>cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
<3>vim /etc/dhcp/dhcpd.conf
<4> systemctl restart dhcpd
在dns辅服务端
<5>hostnamectl set-hostname linux.westos.com #必须改成 name.westos.com 这种格式,才能获取到动态ip
<6>vim /etc/sysconfig/network-scripts/ifcfg-eth0#把静态ip改为动态
<7>systemctl restart network
<9>dig linux.westos.com
返回到dns主服务端
<10>systemctl restart named
<11>vim /var/named/westos.com.zone #可以看到本地的域同步更新