一、DNS总揽
1.权威名称服务器
存储并提供某区域 (整个 DNS域或 DNS域的一部分 )的实际数据。权威名称服务器的类型包括:
Master : 包含原始区域数据。有时称作 “主要 ”名称服务器
Slave : 备份服务器 ,通过区域传送从 Master服务器获得的区域数据的副本。有时称作 “次要 ”名称服务器
2.非权威 /递归名称服务器
客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括
仅缓存名称服务器 :仅用于查找 ,对于非重要数据之外的任何内容都不具有权威性
3.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 : 提供的其他信息 ,通常是关于名称服务器
– 底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间
五、仅缓存 DNS 服务器
BIND 是最广泛使用的开源名称服务器。在 RHEL中,通过 bind软件包提供。但是,它提供的主服务是 named程序,由 named服务脚本控制。注:防火墙开启端口 53/TCP和53/UDP
BIND 的主配置文件是 /etc/named.conf。/var/named目录包含名称服务器所使用的其他数据文件。
1.安装 bind软件包
– yum install bind.x86_64 -y
2.编辑 /etc/named.conf
listen-on port 53 { any; }; ##控制 named侦听的 IPv4地址
allow-query { any; }; ##控制哪些客户端可以向DNS服务器询问信息
forwarders { 172.25.254.250; }; ##包含 DNS查询将转发至的名称服务器的列表(而不是直接联系外部名称服务器 ;在设有防火 墙的情况中很有用 )
3.启动并启用 DNS服务器
systemctl stop firewalld ##关闭火墙
systemctl start named ##开启named
systemctl enable named
cat /etc/rndc.key ##开启DNS后生成一个.key文件
netstat -antlpe | grep named ##查询端口
4.从desktop进行测试
vim /etc/resolv.conf ##解析
nameserver 172.25.254.231
dig www.baidu.com
5.结果
1)不编辑/etc/named.conf
dig www.baidu.com
connection timed out; no servers could be reached
2)只编辑/etc/named.conf中listen-onport 53 { any; };
dig www.baidu.com
status:REFUSED
3)编辑/etc/named.conf中listen-onport 53 { any; };allow-query { any; };
dig www.baidu.com
status:SERVFAIL
4)编辑/etc/named.conf中listen-onport 53 { any; };allow-query { any; };forwarders { 172.25.254.250; };
dig www.baidu.com
status:NOERROR
六、DNS正向解析
1.配置/etc/named.conf
vim /etc/named.conf
forwarders 那一行去掉
2.在/etc/named.rfc1912.zones文件中添加新的域的相关结构体
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file"westos.com.zone";
allow-update { none; };
};
在结构体里面指定这个域的具体的配置文件的名字,这里是westos.com.zone这个只是个文件名,一会儿要在/var/named/下创建这个文件,其他地方都没有用
3.在/var/named/下创建并编辑westos.com.zone文件
cd /var/named/
cp -p named.localhost westos.com.zone
vim westos.com.zone
不写.的时候,会自动补齐/etc/named.rfc1912.zones里面新定义的域名,这里就是westos.com。所以上面图中浅蓝色的部分可以把“.westos.com.”都去掉
systemctl restart named
4.从desktop进行测试
vim /etc/resolv.conf
nameserver 172.25.254.231
dig www.westos.com
七、CNAME更名 和 MX邮件服务器
1.CNAME更名
vim /var/named/westos.com.zone
dig music.westos.com
2.邮件服务器MX
vim /var/named/westos.com.zone
从desktop进行测试:
dig -t mx westos.com
mail [email protected]
mailq
八、DNS反向解析
1.在/etc/named.rfc1912.zones里面定义方向解析的域的结构体
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "westos.com.ptr";
allow-update { none; };
};
我现在的局域网是172.25.254.x要把地址的前3段反着写。file是这个域的方向解析的具体参考文件。名字可以随便取。
2.在/var/named/下创建并编辑刚才定义的文件
cd /var/named/
cp -p named.empty westos.com.ptr
vim westos.com.ptr
橙色和浅蓝色部分加不加点的规则和前面一样。加点就代表输入结束,不自动补齐。不加点会自动补齐。正向解析用A反向解析用 PTR。
systemctl restart named
3.从desktop进行测试
dig -x 172.25.254.123
九、DNS多向解析
添加网卡:
add hardware
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
systemctl restart network
systemctl restart named
netstat -antlpe | grep named
1.在/var/named/下创建并编辑westos.com.inter文件
cd /var/named/
cp -p westos.com.zone westos.com.inter
vim westos.com.inter
2.在/etc/named.rfc1912.inter里再添加一个结构体
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
file"westos.com.inter";
allow-update { none; };
};
3.在/etc/named.conf里再添加一个结构体,来定义其他主机的解析流程
vim /etc/named.conf
1)注释掉后几行
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
*/
2)添加视图
view localnet {
match-clients { 172.25.254.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.zones";
};
view internet {
match-clients { 172.25.31.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.inter";
};
systemctl restart named
从desktop进行测试:
vim /etc/resolv.conf
nameserver 172.25.254.231
dig www.westos.com
从foundation进行测试:
vim /etc/resolv.conf
nameserver 172.25.31.231
dig www.westos.com
十、客户端对DNS更新
服务端:
cp -p /etc/named/westos.com.zone /mnt/
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file"westos.com.zone";
allow-update { 172.25.254.131;};
};
chmod 770 /var/named/
setsebool -P named_write_master_zones 1
systemctl restart named
测试:
客户端:
nsupdate
> server 172.25.254.231
> update add hello.westos.com 86400 A 172.25.254.111
> send
rm -fr westos.com.zone wesstos.com.zone.jnl
cp -p /mnt/westos.com.zone /var/named/
systemctl restart named
十一、DNS密钥
1.生成key
cat /etc/rndc.key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey
ls
cat Kwestoskey.+157+53312.key
cat Kwestoskey.+157+53312.private
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
2.编辑/etc/named.conf文件
vim /etc/named.conf
include "/etc/westos.key";
3.编辑/etc/named.rfc1912.zones文件
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file"westos.com.zone";
allow-update { key westoskey; };
};
systemctl restart named
4.发放钥匙
scp Kwestoskey.+157+53312.* [email protected]:/mnt/
测试:
客户端:
nsupdate -k Kwestoskey.+157+53312.private
> server 172.25.254.231
> update add hello.westos.com 86400 A 172.25.254.111
> send
十二、DNS动态解析
1.安装dhcp
yum install dhcp -y
2.编辑/etc/dhcp/dhcpd.conf文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’?y
vim /etc/dhcp/dhcpd.conf
7 option domain-name"westos.com";
8 option domain-name-servers172.25.254.231;
14 ddns-update-style interim;
30 subnet 172.25.254.0 netmask255.255.255.0 {
31 range 172.25.254.120 172.25.254.130;
32 option routers 172.25.254.250;
33 }
34 key westoskey {
35 algorithm hmac-md5;
36 secret P/2hKg+8U7tyTvmx9jrGVg==;
37 };
38 zone westos.com. {
39 primary 127.0.0.1;
40 key westoskey;
41 }
3.编辑/etc/named.conf
vim /etc/named.conf
1)zone "."注释去掉
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
2)注释视图
/*
view localnet {
match-clients { 172.25.254.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.zones";
};
view internet {
match-clients { 172.25.31.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.inter";
};
*/
4.
systemctl restart dhcpd
cd /var/named
rm -fr westos.com.zone westos.com.zone.jnl
cp -p /mnt/westos.com.zone /var/named/
5.将与客户端域名相同的dns删去
vim /var/named/westos.com.zone
6.客户端:
hostnamectl set-hostname test.westos.com
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes