作业15 DNS服务器
文章目录
15.0 实验准备
主机 | IP | 系统 | 从属 |
---|---|---|---|
DNS服务器 | 192.168.6.128 | Centos 7 | 主 |
客户端 | 192.168.6.146 | Centos 6.9 | 从 |
测试机 | 192.168.6.111 | Centos 6.9 | - |
15.1 部署本地DNS服务器,域名与ip自行规划,正解反解都需要做
- 正解配置
-
DSN服务器端配置
-
防火墙和selinux设置
[root@ ~ 09:54:27]#firewall-cmd --list-services ssh dhcpv6-client [root@ ~ 09:55:37]#firewall-cmd --query-service=dns no [root@ ~ 09:57:12]#firewall-cmd --add-service=dns success [root@ ~ 09:58:19]#setenforce 0 [root@ ~ 09:58:19]#getenforce Disabled
-
相关软件安装
[root@ ~ 09:22:35]#yum -y install bind bind-utils
-
主配置文件DNS服务全局参数修改
[root@ / 03:10:15]#vim /etc/named.conf options { listen-on port 53 { any; }; //监听地址和端口 allow-query { any; }; //允许任意主机来解析域名 ... recursion yes; //支持递归查询 ... dnssec-enable no; //关闭dns安全检查 dnssec-validation no; }; include "/etc/named.rfc1912.zones"; //可以在这个文件下定义正解区域,也可以在当前文件里定义正解区域,我们选择前者,步骤且看下一步
-
定义正解区域
[root@ ~ 09:29:04]#vim /etc/named.rfc1912.zones zone "lpz.com" IN { type master; file "named.lpz.com"; //文件默认位于/var/named目录下 }; #漏了分号,启动失败 named status呈现failed
-
创建正解文件
[root@ ~ 09:38:10]#cp /var/named/named.localhost /var/named/named.lpz.com //复制模板,模板基础上修改成正解文件 [root@ ~ 09:39:22]#vim /var/named/named.lpz.com $TTL 1D lpz.com. IN SOA dns.lpz.com. root.lpz.com ( 0 ; serial //序列号,用于主从dns同步 1D ; refresh //1天周期性更新 1H ; retry //重连时间 1W ; expire 3H ) ; minimum //缓存时间 lpz.com. IN NS dns.lpz.com. //dns服务器域名FQDN格式 dns.lpz.com. IN A 192.168.6.128 //dns服务器ip ftp IN A 192.168.6.146 //ftp识别成ftp.lpz.com. www IN A 192.168.6.111 //www识别成www.lpz.com. #其中 lpz.com. 可以用 @ 替换,代表域
-
修改正解文件权限并重启服务
[root@ ~ 09:58:50]#ll /var/named -l total 32 ... -rw-r----- 1 root named 152 Jun 21 2007 named.localhost ... -rw-r--r-- 1 root root 286 Sep 24 09:46 named.lpz.com ... #如果不修改属组权限,服务重启失败 [root@ ~ 09:59:10]#chgrp named /var/named/named.lpz.com [root@ ~ 10:05:27]#systemctl restart named
-
-
客户端
- 域名服务器客户端配置文件修改
[root@lin ~]# vim /etc/resolv.conf nameserver 192.168.6.128 #NS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名
#修改前,ping通 [root@lin ~]# ping lpz.com PING lpz.com (67.227.154.119) 56(84) bytes of data. #修改后,ping通 [root@lin ~]# ping ftp.lpz.com PING ftp.lpz.com (192.168.6.146) 56(84) bytes of data. 64 bytes from 192.168.6.146: icmp_seq=1 ttl=64 time=0.054 ms [root@lin ~]# ping www.lpz.com PING www.lpz.com (192.168.6.111) 56(84) bytes of data. [root@lin ~]# ping dns.lpz.com PING dns.lpz.com (192.168.6.128) 56(84) bytes of data. 64 bytes from 192.168.6.128: icmp_seq=1 ttl=64 time=0.370 ms [root@lin ~]# ping www.baidu.com #响应速度慢 PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data. 64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=9.28 ms [9]+ Stopped ping www.baidu.com
- 反解配置
-
DSN服务器端
-
定义反解区域
[root@ ~ 10:20:34]#vim /etc/named.rfc1912.zones zone "6.168.192.in-addr.arpa" IN { type master; file "name.192.168.6"; };
-
创建反解文件
[root@ ~ 11:15:02]#cp -a /var/named/named.lpz.com /var/named/named.192.168.6 #-a 表示复制原来的所有权属性 [root@ ~ 11:15:42]#vim /var/named/named.192.168.6 $TTL 1D @ IN SOA dns.lpz.com. root.lpz.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.lpz.com. 128 IN PTR dns.lpz.com. 146 IN PTR ftp.lpz.com. 111 IN PTR www.lpz.com.
-
重启服务
[root@ ~ 11:15:42]#systemctl restart named
-
-
客户端
[root@lin ~]# dig -t PTR 146.6.168.192.in-addr.arpa @192.168.6.128 #查找146.6.168.192.in-addr.arpa对应的域名 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.7 <<>> -t PTR 146.6.168.192.in-addr.arpa @192.168.6.128 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26292 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;146.6.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 146.6.168.192.in-addr.arpa. 86400 IN PTR ftp.lpz.com. #查找成功:ftp.lpz.com. ;; AUTHORITY SECTION: 6.168.192.in-addr.arpa. 86400 IN NS dns.lpz.com. ;; ADDITIONAL SECTION: dns.lpz.com. 86400 IN A 192.168.6.128 ;; Query time: 0 msec ;; SERVER: 192.168.6.128#53(192.168.6.128) ;; WHEN: Thu Aug 20 04:38:05 2020 ;; MSG SIZE rcvd: 103
15.2 部署主从DNS服务器
- 主DNS服务器配置
-
防火墙设置
[root@ ~ 03:52:04]#systemctl restart firewalld [root@ ~ 03:52:08]#firewall-cmd --list-services ssh dhcpv6-client [root@ ~ 03:52:13]#firewall-cmd --add-service=dns success [root@ ~ 03:52:16]#firewall-cmd --list-services ssh dhcpv6-client dns [root@ ~ 09:58:19]#setenforce 0 [root@ ~ 09:58:19]#getenforce Disabled
-
主服务器(.128)里进行时间同步
[root@ ~ 03:21:32]#hostname -I 192.168.6.128 [root@ ~ 03:22:32]#yum -y install ntpdate [root@ ~ 03:22:48]#ntpdate time1.aliyun.com 24 Sep 15:23:18 ntpdate[3767]: step time server 203.107.6.88 offset 2.792904 sec [root@ ~ 03:23:34]#timedatectl set-timezone Asia/Shanghai [root@ ~ 03:23:59]#date Thu Sep 24 15:24:19 CST 2020
-
主服务器(.128)里DNS服务全局参数配置
[root@ ~ 03:26:19]#vim /etc/named.conf options { listen-on port 53 {any;}; ... allow-query {any;}; ... dnssec-enable no; dnssec-validation no; };
-
主服务器(.128)里重新定义正解区域和反解区域
[root@ ~ 03:26:19]#vim /etc/named.rfc1912.zones zone "lpz.com" IN { //正解区域 type master; //主服务器 file "named.lpz.com"; allow-transfer { 192.168.6.146; }; }; zone "6.168.192.in-addr.arpa" IN { //反解区域 type master; file "named.192.168.6"; allow-transfer { 192.168.6.146; }; //允许同步到从服务器 }; //注意有分号
-
主服务器(.128)里创建正解文件和反解文件
[root@ ~ 03:30:25]#vim /var/named/named.lpz.com //正解文件 $TTL 1D lpz.com. IN SOA dns1.lpz.com. root.lpz.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum lpz.com. IN NS dns1.lpz.com. //第一个dns服务器 主 lpz.com. IN NS dns2.lpz.com. //第二个dns服务器 从 dns1.lpz.com. IN A 192.168.6.128 //主dns服务器映射指定ip dns2.lpz.com. IN A 192.168.6.146 //从dns服务器映射到另一个指定ip ftp IN A 192.168.6.112 www IN A 192.168.6.111 [root@ ~ 03:34:48]#vim /var/named/named.192.168.6 //反解文件 $TTL 1D @ IN SOA dns1.lpz.com. root.lpz.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns1.lpz.com. @ IN NS dns2.lpz.com. 128 IN PTR dns1.lpz.com. 146 IN PTR dns2.lpz.com. 111 IN PTR www.lpz.com. 112 IN PTR ftp.lpz.com.
-
主服务器(.128)重启服务
[root@ ~ 11:15:42]#systemctl restart named
- 从DNS服务器配置
-
从服务器(.146)里时间同步
[root@lin ~]# yum -y install ntpdate [root@lin ~]# ntpdate time1.aliyun.com [root@lin ~]# date Thu Sep 24 15:41:24 CST 2020 [root@lin ~]# yum -y install bind bind-utils
-
从服务器(.146)防火墙设置
[root@lin ~]# getenforce Enforcing [root@lin ~]# setenforce 0 [root@lin ~]# iptables -F
-
从服务器(.146)dns服务全局参数配置
[root@lin ~]# vim /etc/named.conf options { listen-on port 53 { any; }; ... allow-query { any; }; ... dnssec-enable no; dnssec-validation no; ... };
-
从服务器(.146)定义正解区域和反解区域
[root@lin ~]# vim /etc/named.rfc1912.zones zone "lpz.com" IN { //正解区域 type slave; //从服务器 file "slaves/named.lpz.com"; //正解文件 masters { 192.168.6.128; }; //主dns服务器ip }; zone "6.168.192.in-addr.arpa" IN { //反解区域 type slave; //从服务器 file "slaves/named.192.168.6"; //反解文件 masters { 192.168.6.128; }; 主dns服务器ip };
-
从服务器(.146)重启dns服务
[root@lin ~]# service named restart Stopping named: [ OK ] Generating /etc/rndc.key: [ OK ] Starting named: [ OK ]
-
查看从服务器正解文件和反解文件的同步情况
[root@lin ~]# ls /var/named/slaves/ named.192.168.6 named.lpz.com //重启服务器后,发现slaves出现正解文件和反解文件,正是从主服务器同步过来 #查看正解文件内容,和主dns服务器的正解文件一模一样 [root@lin ~]# vim /var/named/slaves/named.lpz.com $ORIGIN . $TTL 86400 ; 1 day lpz.com IN SOA dns.lpz.com. root.lpz.com.lpz.com. ( 0 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS dns.lpz.com. $ORIGIN lpz.com. dns A 192.168.6.128 ftp A 192.168.6.146 www A 192.168.6.111
- 修改主DNS服务器正解文件,并查看同步到从DNS服务器的过程
-
从DNS服务器(.146)监控同步日志
[root@lin ~]# tailf /var/named/data/named.run
-
主DNS服务器(.128)修改正解文件
[root@ ~ 03:53:07]#vim /var/named/named.lpz.com $TTL 1D lpz.com. IN SOA dns1.lpz.com. root.lpz.com ( 20200924 ; serial #修改此处 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum lpz.com. IN NS dns1.lpz.com. lpz.com. IN NS dns2.lpz.com. dns1.lpz.com. IN A 192.168.6.128 dns2.lpz.com. IN A 192.168.6.146 ftp IN A 192.168.6.112 www IN A 192.168.6.111 csx IN A 192.168.6.113 #添加此处 [root@ ~ 11:15:42]#systemctl restart named #重启服务
-
从DNS服务器(.146)监控主服务器更新,查看日志变化
#主服务器开始传输(同步) zone lpz.com/IN: Transfer started. #同步正解文件,同步序列号是20200924 transfer of 'lpz.com/IN' from 192.168.6.128#53: connected using 192.168.6.146#52096 zone lpz.com/IN: transferred serial 20200924 #同步完成 transfer of 'lpz.com/IN' from 192.168.6.128#53: Transfer completed: 1 messages, 9 records, 240 bytes, 0.001 secs (240000 bytes/sec) zone lpz.com/IN: sending notifies (serial 20200924) #反解文件是最新的不需要更新同步 client 192.168.6.128#37622: received notify for zone '6.168.192.in-addr.arpa' zone 6.168.192.in-addr.arpa/IN: notify from 192.168.6.128#37622: zone is up to date
-
测试机(.111)测试主从服务器
#1.安装相关工具 [root@localhost ~]# yum intatall -y bind-utils ftp IN A 192.168.6.112 www IN A 192.168.6.111 #selinux 和防火墙测试 [root@localhost ~]# getenforce Enforcing [root@localhost ~]# setenforce 0 [root@localhost ~]# iptables -F #3.测试主DNS服务器,成功 [root@localhost ~]# dig ftp.lpz.com @192.168.6.128 ... ;; ANSWER SECTION: ftp.lpz.com. 86400 IN A 192.168.6.112 #有答案 ... ;; Query time: 0 msec ;; SERVER: 192.168.6.128#53(192.168.6.128) ;; WHEN: Wed Sep 23 04:34:55 2020 ;; MSG SIZE rcvd: 115 #4.测试从dns服务器,成功 [root@localhost ~]# dig ftp.lpz.com @192.168.6.146 ... ;; QUESTION SECTION: ;ftp.lpz.com. IN A ;; ANSWER SECTION: ftp.lpz.com. 86400 IN A 192.168.6.146 #有答案 ... ;; Query time: 1 msec ;; SERVER: 192.168.6.146#53(192.168.6.146) ;; WHEN: Wed Sep 23 04:34:09 2020 ;; MSG SIZE rcvd: 79
15.3 部署DNS_VIEW视图实验
网络配置
-
DNS服务器
[root@ / 05:20:06]#ifconfig ens33 192.168.6.128 netmask 255.255.255.0 //连接网通网 [root@ / 05:20:48]#ifconfig ens33:0 10.1.1.128 netmask 255.255.255.0 //连接电信网
-
电信网:
[root@localhost ~]#ifconfig eth0 10.1.1.111 netmask 255.255.255.0
-
网通网:
[root@lin ~]#ifconfig eth0 192.168.6.146 netmask 255.255.255.0
DNS服务器配置
- 主配置文件修改
[root@ /var/named 01:05:45]#vim /etc/named.conf
acl internal { //设定电信用户网段(访问控制列表 acl)
10.1.1.0/24;
127.0.0.0/8;
};
acl external { //设定网通用户网段
192.168.6.0/24;
};
options {
listen-on port 53 { any; }; //监听所有地址的tcp/udp 53号端口
allow-query { any; }; //允许任何人查询
recursion yes; //允许递归查询
directory "/var/named"; //数据文件存放的位置
dnssec-enable no;
dnssec-validation no;
};
-
区域配置文件修改/etc/named.rfc1912.zones(也可以直接在named.conf中配置)
#所有区域必须定义在view中!!!! #因此注释掉所有的没有在view中定义的zones #包括/etc/named.rfc1912.zones 和 named.conf都可能需要修改 [root@ ~ 12:39:09]#vim /etc/named.rfc1912.zones view "dxnet" { match-clients { internal;}; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "pl.com" IN { type master; file "pl.com.internal"; }; }; view "wtnet" { match-clients { external;}; recursion no; zone "." IN { type hint; file "named.ca"; }; zone "pl.com" IN { type master; file "pl.com.external"; }; };
-
view中正解文件的创建
-
电信网正解文件配置
[root@ ~ 12:51:15]#cp /var/named/named.localhost /var/named/pl.com.internal [root@ /var/named 01:00:32]#chgrp named pl.com.internal [root@ /var/named 01:00:52]#vim pl.com.internal $TTL 1D @ IN SOA @ root.pl.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns1.pl.com. dns1.pl.com. IN A 10.1.1.128 www IN A 10.1.1.128
-
网通网正解文件配置
[root@ /var/named 01:03:17]#cp pl.com.internal pl.com.external [root@ /var/named 01:04:33]#chgrp named pl.com.external [root@ /var/named 01:05:35]#vim pl.com.external $TTL 1D @ IN SOA @ root.pl.com ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns1.pl.com. dns1.pl.com. IN A 192.168.6.128 www IN A 192.168.6.128ss
-
-
DNS服务重启,修改错误
[root@ ~ 11:15:42]#systemctl restart named #报错 /etc/named.conf:62: when using 'view' statements, all zones must be in views /etc/named.rfc1912.zones:13: when using 'view' statements, all zones must be in #修改:view以外的区域全部注释掉 [root@ ~ 11:17:55]#systemctl restart named #修改错误后重启成功
-
测试
-
电信网主机测试(10.1.1.111)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAaCjAMU-1601443667902)(assets/2020-09-25_011949.jpg)]
-
网通网主机测试(192.168.6.146)
[root@lin ~]# dig www.pl.com @192.168.6.128 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.7 <<>> www.pl.com @192.168.6.128 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2526 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;www.pl.com. IN A ;; ANSWER SECTION: www.pl.com. 86400 IN A 192.168.6.128 #有答案 ;; AUTHORITY SECTION: pl.com. 86400 IN NS dns1.pl.com. ;; ADDITIONAL SECTION: dns1.pl.com. 86400 IN A 192.168.6.128 ;; Query time: 1 msec ;; SERVER: 192.168.6.128#53(192.168.6.128) ;; WHEN: Fri Sep 25 00:49:22 2020 ;; MSG SIZE rcvd: 79
-
15.4 简述cdn网络中的GSLB技术
-
GSLB技术
一般情况下,传统的用户主机访问某域名网址要经历如下过程:
用户提交域名->浏览器对域名进行解析->DNS服务器递归查询,并返回IP地址,用主机根据收到的IP地址发起数据请求->用户主机收到数据并显示
这个过程加入全局负载均衡技术后,过程会变成:
用户提交域名->浏览器对域名进行解析->DNS服务器递归查询,最终会将请求交给GSLB服务器->GSLB按照某种决策方式(比如请求IP与内容服务器群中的服务器的物理距离远近),进行相关的服务状态检测,然后挑选最合适的服务器,返回IP->用户主机根据IP发出数据请求->用户主机得到相应的内容并显示
-
GSLB技术中服务器群的选择策略有:
1.地理区域
2.IP地址权重:为每个IP分配权重,权重排名算法决定分配给对应IP多少流量
3.往返时间RTT算法
…
-
CDN技术
使用GSLB设备为用户选择最合适的服务器群,受Web服务器的负荷和传输距离等因素的影响,响应速度依然经常不能满足用户的需求。
解决方案:在传输网络上利用缓存技术使得Web服务数据流能够就近访问。内容分发网络(CDN)印证这种思想,CDN使用GSLB设备将用户引导到最合适的缓存节点(距离近,负载低),使得用户在访问静态内容时获得更好的体验。
一般情况下,传统的用户主机访问某域名网址要经历如下过程:
- 用户在浏览器中输入域名
- 浏览器向域名解析服务器发出解析请求,获得此域名对应的 IP 地址
- 浏览器得到这个 IP 地址,向其对应的服务器发出访问请求
- 目标服务器对此作出响应,将数据回传至用户浏览器并显示出来
使用 CDN 缓存后的网站访问过程:
- 用户在浏览器中输入目标域名
- 浏览器向本地域名服务器发出解析请求
- 经过 DNS 递归查询,请求被转移至 全局负载均衡系统,此时还没有产生 Cache 层
- GSLB 根据预定的决策依据算法返回最佳 CDN 接入节点的 IP,同时本地域名服务器缓存此接入节点
- 用户对此 CDN 接入节点发起IP请求,CDN 网络经过内部路由,并转发请求至源服务器
- 源服务器返回响应的数据,CDN 节点将数据返回至 CDN 接入节点
- CDN 接入节点将数据返回给用户,同时缓存数据
- 用户用户再次请求这一份数据时,CDN 缓存会直接返回,并不需要再由源服务器进行处理