DNS
DNS的解析过程 全球13个根服务器
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器.
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回.
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址.
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址.
第五步:重复第四步,直到找到正确的纪录.
一 DNS排错
NOERROR ##查询成功
NXDOMAIN ##DNS服务器提示不存在这样的名称
SERVFAIL ##DNS服务器停机或DNSSEC响应验证失败
REFUSED ##DNS服务器拒绝回答
二 高速缓存DNS
虚拟机IP:172.25.8.11 (server 服务器)
selinux 和 iptables 都关闭
1.安装DNS
yum install bind.x86_64 -y
systemctl start named ###启动服务
cat /etc/rndc.key ###开始不存在,服务启动建立
cat /etc/services |grep domain ###查看DNS的端口
2.配置named.conf
vim /etc/named.conf
10 options {
11 listen-on port 53 { any; }; ###开启53端口访问
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; }; ###允许所有人访问
18 forwarders { 172.25.254.250; }; ###如果没有就访问172.25.254.250
19 /*
systemctl restart named
虚拟机IP:172.25.8.10
vim /etc/resolv.conf
nameserver 172.25.8.11
虚拟机IP:172.25.8.250
vim /etc/resolv.conf
nameserver 172.25.8.11
测试:
分别dig www.baidu.com 可以发现第一次慢 第二次快
DNS正向解析
配置named.conf文件 虚拟机IP:172.25.8.11 (服务器)
注意:关掉防火墙 selinux
vim /etc/named.conf
10 options {
11 listen-on port 53 { any; }; ###开启53端口访问
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; }; ###允许所有人访问
18 /*
配置named.rfc1912.zones
vim /etc/named.rfc1912.zones
19 zone "localhost" IN { ###y6y复制,p粘贴
20 type master;
21 file "named.localhost";
22 allow-update { none; };
23 };
24
25 zone "westos.com" IN { ##要解析的域名
26 type master;
27 file "westos.com.zone"; ###记录域名解析的文件
28 allow-update { none; };
29 };
cp -p /var/named/named.localhost /var/named/westos.com.zone
配置westos.com.zone
vim /var/named/dream.com.zone ###结尾加点表示结束,如果没有会补(.dream.com)
1 $TTL 1D ##解析缓存一天
2 @ IN SOA dns.westos.com. root.westos.com. ( ##dns服务器的名称 管理dns服务器的用户
3 0 ; serial
4 1D ; refresh #缓存刷新时间
5 1H ; retry #解析错误尝试的时间
6 1W ; expire #过期时间 1周
7 3H ) ; minimum
###主服务器挂了以后服务器至多工作的时间 可以保护dns防止ddos攻击
8 NS dns.westos.com. ###nameserver:下面指向服务器的IP
9 dns A 172.25.8.11
10 www A 172.25.8.10
systemctl restart named
测试 采用真机测试IP 172.25.8.250
方法 dig www.westos.com
DNS轮询
在dns正向解析的条件下
配置westos.com.zone
vim /var/named/dream.com.zone
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 172.25.8.11
10 www CNAME login.westos.com.
11 login A 172.25.8.10
12 login A 172.25.8.250
systemctl restart named
原理:将IP地址转化为域名,在DNS正向解析的条件下,虚拟机IP:172.25.8.11(服务器)
配置named.rfc1912.zones
vim /etc/named.rfc1912.zones
43 zone "0.in-addr.arpa" IN {
44 type master;
45 file "named.empty";
46 allow-update { none; };
47 };
48
49 zone "8.25.172.in-addr.arpa" IN {
50 type master;
51 file "westos.com.ptr";
52 allow-update { none; };
53 };
cp -p /var/named/named.loopback /var/named/dream.com.ptr
配置dream.com.ptr
vim /var/named/dream.com.ptr
1 $TTL 1D
2 @ IN SOA dns.westos.com. root.westos.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.westos.com.
9 dns A 172.25.8.11
10 10 PTR www.westos.com
11 250 PTR login.westos.com
systemctl restart named
测试:真机测试 反向解析到login.westos.com
反向解析到www.westos.com
DNS双向解析
运用DNS双向解析,我们可以让内外网访问的网段不同。这里我们以外网访问172.25.8网段,内网访问192.25.8网段为例。
配置westos.com.inter
cp -p /var/named/westos.com.zone /var/named/westos.com.inter
vim /var/named/westos.com.inter
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 192.25.8.11
www CNAME login.westos.com.
login A 192.25.8.10
login A 192.25.8.250
配置named.rfc1912.zones.inter
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
vim /etc/named.rfc1912.zones.inter
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.inter";
27 allow-update { none; };
28 };
配置named.conf
vim /etc/named.conf
50 #zone "." IN {
51 # type hint;
52 # file "named.ca";
53 #};
54 #
55 #include "/etc/named.rfc1912.zones";
56 #include "/etc/named.root.key";
57 view localnet {
58 match-clients { 172.25.8.11; }; ## #这里为了测试方便把11当成内网,其他为外网。应该写localhost
59 zone "." IN {
60 type hint;
61 file "named.ca";
62 };
63 include "/etc/named.rfc1912.zones.inter";
64 };
65 view internet {
66 match-clients { any; };
67 zone "." IN {
68 type hint;
69 file "named.ca";
70 };
71 include "/etc/named.rfc1912.zones";
72 };
systemctl restart named
测试:在IP:172.25.8.11(服务器)中/etc/resolv.conf加入nameserver 172.25.8.11,dig www.westos.com
在IP:172.25.8.10中dig www.westos.com