构建CDN分发网络架构
2020-04-20 09:38:59来源:博客园 阅读 ()
构建CDN分发网络架构
1.问题:
合创科技为企业网站注册了域名 www.mvsc.com,部署了2台 Nginx 网站服务器。为了提高此站点服务不同地区用户时的响应速度,合创科技向蓝讯公司购买了 CDN 缓存服务。根据缓存分发需要,合创科技向域名注册商新网申请更改解析记录,以 CNAME 别名的方式转交给蓝讯的 DNS 服务器处理。而蓝讯公司负责识别 Web 用户的来源地址,并通过最近的 CDN 缓存节点向用户分发网页内容。
为提高 Web 站点的访问速度,要求实现以下目标:
- 通过本地 cache 缓存,提高用户访问 Web 的速度及稳定性
- 消除地域及运营商之间的网络互联影响,客户端永远选择离自己最近的服务器获取资源
- 减轻后端源站站点 Web 服务器的负载压力
- 有效预防和降低 DDOS 攻击
2.方案:
根据需求中描述的网络架构,可以采用 Squid 反向代理、DNS 智能解析相结合的方式来实现 CDN 内容分发网络,如图-1 所示。
图-1
其中涉及到10台服务器:
- DNS 服务器 - 域名注册商(新网):172.16.0.111/24,dns111.xinnet.com
- DNS 服务器 - CDN 服务商(蓝讯):172.16.0.222/24,dns222.lxcdn.net
- DNS 服务器 - 地区电信服务商(北京):172.16.0.11/24,bjdns
- DNS 服务器 - 地区电信服务商(广州):172.16.0.22/24,gzdns
- 反向代理服务器1 -- 北京 CDN 节点(蓝讯):172.16.0.100/24,squid100.lxcdn.net
- 反向代理服务器2 -- 广州 CDN 节点(蓝讯):172.16.0.200/24,squid200.lxcdn.net
- Web 源服务器1 -- 合创科技:172.16.0.10/24,web10
- Web 源服务器2 -- 合创科技:172.16.0.20/24,web20
- 测试客户机1 -- 北京地区:172.16.0.1/24,pc01
- 测试客户机2 -- 广州地区:172.16.0.1/24,pc01
为了降低模拟实现的复杂度,本次案例中可以将这10个角色分配到4台 RHEL7 虚拟机上来实现,每个虚拟机分别承担多个角色,如表-1所示:
虚拟机编号 | 承担角色 | 主机名 | IP地址/子网掩码 |
host1 |
客户机1 北京电信DNS |
pc01 bjdns |
172.16.0.1/24 172.16.0.11/24 |
host2 |
客户机2 广州电信DNS |
pc02 gzdns |
172.16.0.2/24 172.16.0.22/24 |
host3 |
Web源站1 CDN缓存节点1 新网DNS |
web10 squid100.lxcdn.net dns111.xinnet.com |
172.16.0.10/24 172.16.0.100/24 172.16.0.111/24 |
host4 |
Web源站2 CDN缓存节点2 蓝讯DNS |
web20 squid200.lxcdn.net dns222.xinnet.com |
172.16.0.20/24 172.16.0.20024 172.16.0.222/24 |
完成此架构后,当客户机首次解析域名 www.mvsc.com 时,大概过程是:
客户机 >>> 本地区DNS >>> 新网DNS >>> CDN服务商的DNS >>> CDN缓存节点
解析结果是由CDN服务商提供的离用户最近的CDN缓存节点的IP地址。
最终测试结果应该是:
- 当从 pc01 访问 http://www.mvsc.com 时,由 squid100.lxcdn.net 响应
- 当从 pc02 访问 http://www.mvsc.com 时,由 squid200.lxcdn.net 响应
4.步骤:
实现此案例需要按照如下步骤进行。
步骤一:为四台虚拟机配好地址、yum仓库
- 配置第一台虚拟机 host1
- 设置好主机名,方便区分
[root@host1 ~]# echo "host1" > /etc/hostname [root@host1 ~]# cat /etc/hostname host1 [root@host1 ~]# hostname host1 [root@host1 ~]# hostname host1
- 设置IP地址/掩码
[root@host1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR1=172.16.0.1 # 第一个IP地址 PREFIX1=24 # 第一个IP地址的子网掩码 IPADDR2=172.16.0.11 # 第二个IP地址 PREFIX2=24 # 第二个IP地址的子网掩码 [root@host1 ~]# systemctl restart network [root@host1 ~]# ip address show 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:60:d4:78 brd ff:ff:ff:ff:ff:ff inet 172.16.0.1/24 brd 172.16.0.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.11/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe60:d478/64 scope link valid_lft forever preferred_lft forever
- 设置要使用的 DNS 服务器(各客户机 pc01、pc02 使用本地区 ISP 服务商的开放式 DNS 服务器,其他主机可以使用 CDN 服务商提供 DNS 服务器。)
[root@host1 ~]# vim /etc/resolv.conf search mvsc.com nameserver 172.16.0.11
- 配好 yum 仓库(将虚拟机的光盘设置为 RHEL7 的光盘镜像)
- 配置第二台虚拟机 host2
- 设置好主机名、方便区分
[root@host2 ~]# echo host2 > /etc/hostname [root@host2 ~]# hostname host2 [root@host2 ~]# hostname host2
- 设置IP地址、掩码
[root@host2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR1=172.16.0.2 PREFIX1=24 IPADDR2=172.16.0.22 PREFIX2=24 [root@host2 ~]# systemctl restart network [root@host2 ~]# ip add list ens33 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:b4:e7:1d brd ff:ff:ff:ff:ff:ff inet 172.16.0.2/24 brd 172.16.0.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.22/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::151f:53d4:e8ef:5c2a/64 scope link noprefixroute valid_lft forever preferred_lft forever inet6 fe80::18bb:4063:3e2f:102a/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft forever [root@host2 ~]# cat /etc/resolv.conf search mvsc.com nameserver 172.16.0.22
- 配好 yum 仓库(和 host1 的配置操作相同)
- 设置好主机名、方便区分
- 配置第三台虚拟机 host3
- 设置好主机名,方便区分
[root@host3 ~]# echo host3 > /etc/hostname [root@host3 ~]# hostname host3 [root@host3 ~]# hostname host3
- 设置IP地址
[root@host3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 ... ... IPADDR1=172.16.0.10 PREFIX1=24 IPADDR2=172.16.0.100 PREFIX2=24 IPADDR3=172.16.0.111 PREFIX3=24 ... ... [root@host3 ~]# systemctl restart network [root@host3 ~]# ip add list ens33 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:e6:73:fd brd ff:ff:ff:ff:ff:ff inet 172.16.0.10/24 brd 172.16.0.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.100/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.111/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::18bb:4063:3e2f:102a/64 scope link noprefixroute valid_lft forever preferred_lft forever
- 设置要使用的 DNS 服务器(各客户机 pc01、pc02 使用本地区 ISP 服务商的开放式 DNS 服务器,其他主机可以使用 CDN 服务商提供的 DNS 服务器)
[root@host3 ~]# vim /etc/resolv.conf search mvsc.com nameserver 172.16.0.222
- 配好 yum 仓库(与 host1 的配置操作相同)
- 设置好主机名,方便区分
- 配置第四台虚拟机 host4
- 设置好主机名,方便区分
[root@host4 ~]# echo host4 > /etc/hostname [root@host4 ~]# hostname host4 [root@host4 ~]# hostname host4
- 设置IP地址、掩码
[root@host4 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 ... ... IPADDR1=172.16.0.20 PREFIX1=24 IPADDR2=172.16.0.200 PREFIX2=24 IPADDR3=172.16.0.222 PREFIX3=24 ... ... [root@host4 ~]# systemctl restart network [root@host4 ~]# ip add list ens33 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:0b:55:b7 brd ff:ff:ff:ff:ff:ff inet 172.16.0.20/24 brd 172.16.0.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.200/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet 172.16.0.222/24 brd 172.16.0.255 scope global secondary noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::d367:d4e8:d6c0:7fa0/64 scope link noprefixroute valid_lft forever preferred_lft forever inet6 fe80::151f:53d4:e8ef:5c2a/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft forever inet6 fe80::18bb:4063:3e2f:102a/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft forever
- 设置要使用的 DNS 服务器
[root@host4 ~]# vim /etc/resolv.conf search mvsc.com nameserver 172.168.0.222
- 配好 yum 仓库(与 host1 的配置操作相同)
- 设置好主机名,方便区分
步骤二:搭建两个 Web 源站点
- 部署 web10 站点(host3)
- 添加用户、安装依赖包
[root@host3 ~]# useradd -s /sbin/nologin nginx [root@host3 ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
-
编译安装 nginx 包
[root@host3 ~]# tar -xf nginx-1.15.8.tar.gz [root@host3 ~]# cd nginx-1.15.8/ [root@host3 nginx-1.15.8]# ./configure --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module [root@host3 nginx-1.15.8]# make [root@host3 nginx-1.15.8]# make install
- 调整 nginx 服务配置(因为在本练习中 host3 上后面还要跑 Squid 反向代理,为了避免 80 端口冲突,需要把监听的 IP 地址也限制以下。)
[root@host3 ~]# vim /usr/local/nginx/conf/nginx.conf .. .. http { .. .. server { listen 172.16.0.10:80; server_name www.mvsc.com; .. .. } } [root@host3 ~]# echo "mvsc IT Group." > /usr/local/nginx/html/index.html # 简化一下测试首页
- 启动 nginx 服务网,确保可访问
[root@host3 ~]# /usr/local/nginx/sbin/nginx [root@host3 ~]# netstat -untalp | grep :80 tcp 0 0 172.16.0.10:80 0.0.0.0:* LISTEN 28062/nginx: master [root@host3 ~]# curl http://172.16.0.10/ # 访问站点 web10 成功 mvsc IT Group.
- 添加用户、安装依赖包
- 部署 web20 站点(host4)
- 添加用户、安装依赖包
[root@host4 ~]# useradd -s /sbin/nologin nginx [root@host4 ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
- 编译安装 nginx 包 (这个可以跳过源码编译过程,直接拷贝 web10 已经装好的nginx 目录)
[root@host4 ~]# scp -r 172.16.0.10:/usr/local/nginx /usr/local/ root@172.16.0.10's password: # 验证对方的密码 ... ... [root@host4 ~]# ls /usr/local/nginx/ # 确认拷贝结果 client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
-
调整 nginx 服务配置(因为在本练习中 host4 上后面也要跑 Squid 反向代理,为了避免 80 端口冲突,需要把监听的 IP 地址也限制一下。)
[root@host4 ~]# vim /usr/local/nginx/conf/nginx.conf .. .. http { .. .. server { listen 172.16.0.20:80; server_name www.mvsc.com.cn; .. .. } } [root@host4 ~]# echo "mvsc IT Group." > /usr/local/nginx/html/index.html # 简化一下测试首页
- 启动 nginx 服务,确保可访问
[root@host4 ~]# /usr/local/nginx/sbin/nginx [root@host4 ~]# netstat -untalp | grep :80 tcp 0 0 172.16.0.20:80 0.0.0.0:* LISTEN 27828/nginx: master [root@host4 ~]# curl http://172.16.0.20/ # 访问站点 web10 成功 mvsc IT Group.
- 添加用户、安装依赖包
步骤三:搭建 2 个 CDN 缓存节点
- 部署北京 CDN 节点 --- squid100.lxcdn.net 服务器(host3)
- 安装 squid 代理软件包
[root@host3 ~]# yum -y install squid
- 修改 squid 服务配置
[root@host3 ~]# vim /etc/squid/squid.conf .. .. http_access allow all # 将默认策略由 deny 改为 allow visible_hostname squid100.lxcdn.net # Squid信息设置 http_port 172.16.0.100:80 vhost # 限定 IP 地址,避免与本机 nginx 冲突 cache_peer 172.16.0.10 parent 80 0 originserver cache_peer 172.16.0.20 parent 80 0 originserver
.. .. - 启动 squid 服务、确认监听结果
[root@host3 ~]# systemctl restart squid [root@host3 ~]# netstat -untalp | grep :80 tcp 0 0 172.16.0.100:80 0.0.0.0:* LISTEN 34158/(squid-1) tcp 0 0 172.16.0.10:80 0.0.0.0:* LISTEN 28062/nginx: master
- 测试反向代理 squid100,确保可用(从客户机 pc01 访问反向代理的80端口,可获得目标网页内容)
[root@host1 ~]# curl http://172.16.0.100/ mvsc IT Group.
检查 squid 服务的访问日志,其中记录了 pc01 通过代理访问上游Web站点的事件:
[root@host3 ~]# tail -1 /var/log/squid/access.log 1587353996.524 2 172.16.0.1 TCP_MISS/200 384 GET http://172.16.0.100/ - FIRSTUP_PARENT/172.16.0.10 text/html
- 安装 squid 代理软件包
- 部署广州 CDN节点 --- squid200.lxcdn.net 服务器(host4)
- 安装 squid 代理软件包
[root@host4 ~]# yum -y install squid
- 修改 squid 服务配置
.. .. http_access allow all # 将默认策略由 deny 改为 allow visible_hostname squid200.lxcdn.net # Squid信息设置 http_port 172.16.0.200:80 vhost # 限定 IP 地址,避免与本机 nginx 冲突 cache_peer 172.16.0.10 parent 80 0 originserver cache_peer 172.16.0.20 parent 80 0 originserver .. ..
- 启动 squid 服务,确认监听结果
[root@host4 ~]# systemctl restart squid [root@host4 ~]# netstat -nutlpa | grep :80 tcp 0 0 172.16.0.200:80 0.0.0.0:* LISTEN 33018/(squid-1) tcp 0 0 172.16.0.20:80 0.0.0.0:* LISTEN 27828/nginx: master
- 测试反向代理 squid200,确保可用(从客户机 pc02 访问反向代理的80端口,可获得目标网页内容)
[root@host2 ~]# curl http://172.16.0.200/ mvsc IT Group.
检查 squid 服务的访问日志,其中记录了 pc02 通过代理访问上游Web站点的事件
[root@host4 ~]# tail -1 /var/log/squid/access.log 1587354779.566 2 172.16.0.2 TCP_MISS/200 385 GET http://172.16.0.200/ - FIRSTUP_PARENT/172.16.0.20 text/html
- 安装 squid 代理软件包
步骤四:构建 DNS 域名分发体系
- 部署北京 DNS --- bjdns 服务器(host1)
- 安装 bind、bind-chroot 软件包
[root@host1 ~]# yum -y install bind bind-chroot
- 建立 /etc/named.conf 配置文件(备份默认配置,建立新配置,将此服务器作为缓存 DNS,无需区域数据文件。为简化域名层级,此例中的转发器可以指向新网 DNS 服务器)
[root@host1 ~]# mv /etc/named.conf /etc/named.conf.origin [root@host1 ~]# vim /etc/named.conf options { directory "/var/named"; forwarders { 172.16.0.111; }; };
- 启动 named 服务
[root@host1 ~]# systemctl restart named [root@host1 ~]# systemctl enable named
- 安装 bind、bind-chroot 软件包
- 部署广州 DNS --- gzdns 服务器(host2)
- 与 bjdns 的配置操作相同。
- 部署新网 DNS --- dns111.xinnet.com 服务器(host3),模拟权威 DNS
- 安装 bind、bind-chroot 软件包
[root@host3 ~]# yum -y install bind bind-chroot
- 建立 /etc/named.conf 配置文件(添加二级域 xinnet.com、mvsc.com,添加一级域 net,全局不允许递归)
[root@host3 ~]# mv /etc/named.conf /etc/named.conf.origin # 备份旧配置 [root@host3 ~]# vim /etc/named.conf # 建立新配置 options { listen-on port 53 { 172.16.0.111; }; directory "/var/named"; recursion no; }; zone "xinnet.com" IN { type master; file "xinnet.com.zone"; }; zone "net" IN { type master; file "net.zone"; }; zone "mvsc.com" IN { type master; file "mvsc.com.zone"; };
- 为上述区域建立解析记录文件
- 在 xinnet.com 域的解析记录文件中,设置好到新网的 DNS 服务器的 A 记录:
[root@host3 ~]# vim /var/named/xinnet.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns111.xinnet.com. dns111 A 172.16.0.111
- 在 net 域的解析记录文件中,设置好子域授权,将 lxcdn.net 域授权给蓝讯 DNS 服务器进行解析:
[root@host3 ~]# vim /var/named/net.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns111.xinnet.com. lxcdn.net. NS dns222.lxcdn.net. # 指定子域及 DNS 服务器 dns222.lxcdn.net. A 172.16.0.222 # 指定子 DNS 服务器地址
- 在 mvsc.com 域的解析记录文件中,将客户公司的网站域名 www.mvsc.com 设置为 CNAME 别名,实际站点为 www.mvsc.com.lxcdn.net,从而转到蓝讯 DNS 处理:
[root@host3 ~]# cat /var/named/mvsc.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns111.xinnet.com. www CNAME www.mvsc.com.lxcdn.net.
- 在 xinnet.com 域的解析记录文件中,设置好到新网的 DNS 服务器的 A 记录:
- 启动 named 服务
[root@host3 ~]# systemctl restart named [root@host3 ~]# systemctl enable named
- 安装 bind、bind-chroot 软件包
- 部署蓝讯 DNS --- dns222.lxcdn.net 服务器(host4),实现智能分离解析
- 安装 bind、bind-chroot 软件包
[root@host4 ~]# yum -y install bind bind-chroot
- 建立 /etc/named.conf 配置文件
[root@host4 ~]# mv /etc/named.conf /etc/named.conf.origin //备份旧配置 [root@host4 ~]# vim /etc/named.conf //建立新配置 options { listen-on port 53 { 172.16.0.222; }; directory "/var/named"; forwarders { 172.16.0.111; }; }; acl client1 { 172.16.0.1; 172.16.0.11; #//第一类地址,北京地区的 DNS 及客户机 }; acl client2 { 172.16.0.2; 172.16.0.22; #//第二类地址,广州周边的 DNS 及客户机 }; view "zone1" { match-clients { client1; }; #//服务第一类地址 zone "mvsc.com.lxcdn.net" IN { #//特定企业的 CDN 服务区域 type master; file "mvsc.com.lxcdn.net.zone1"; }; zone "lxcdn.net" IN { #//定义二级权威域 lxcdn.net type master; file "lxcdn.net.zone"; }; }; view "zone2" { match-clients { client2; any; }; #//服务第二类地址及其他任意客户机 zone "mvsc.com.lxcdn.net" IN { type master; file "mvsc.com.lxcdn.net.zone2"; }; zone "lxcdn.net" IN { type master; file "lxcdn.net.zone"; }; };
将北京、广州地区的客户机地址分为两类(每一类包括直接查询的客户机、也包括转发查询的其他 DNS服务器),通过 view 视图实现智能分离解析。 - 为上述区域建立解析记录文件
- 在 lxcdn.net 域的解析记录文件中,添加到蓝讯 DNS 服务器及两个 CDN 缓存节点服务器的 A 记录
[root@host4 ~]# vim /var/named/lxcdn.net.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns222.lxcdn.net. dns222 A 172.16.0.222 squid100 A 172.16.0.100 squid200 A 172.16.0.200
- 针对 CDN 缓存服务域 mvsc.com.lxcdn.net 建立两份解析记录文件,分别对应两类客户机地址。在视图1中,将 www.mvsc.com 解析为 CDN 节点1 即 squid100.lxcdn.net 的IP地址;而在视图2中,将其解析为 CDN 节点2即 squid200.lxcdn.net 的IP地址。
[root@host4 ~]# vim /var/named/mvsc.com.lxcdn.net.zone1 $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns222.lxcdn.net. www A 172.16.0.100 # 对应北京的 CDN 节点1 [root@host4 ~]# vim /var/named/mvsc.com.lxcdn.net.zone2 $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns222.lxcdn.net. www A 172.16.0.200 # 对应广州的 CDN 节点2
- 在 lxcdn.net 域的解析记录文件中,添加到蓝讯 DNS 服务器及两个 CDN 缓存节点服务器的 A 记录
- 启动 named 服务
[root@host4 ~]# systemctl restart named # 确保启动服务 [root@host4 ~]# systemctl enable named # 设为开机自启动
- 安装 bind、bind-chroot 软件包
- 域名解析测试
- 确保新网DNS (dns111) 可用
[root@host1 ~]# nslookup dns111.xinnet.com 172.16.0.111 //查权威域 Server: 172.16.0.111 Address: 172.16.0.111#53
Name: dns111.xinnet.com Address: 172.16.0.111 - 确保蓝讯DNS (dns222) 可用
[root@host1 ~]# nslookup squid100.lxcdn.net 172.16.0.222 //查权威域 Server: 172.16.0.222 Address: 172.16.0.222#53 Name: squid100.lxcdn.net Address: 172.16.0.100
- 确保蓝讯 DNS (dns222) 的分离解析可用
- 从客户机 pc01(第一类地址)查询:
[root@host1 ~]# nslookup www.mvsc.com.lxcdn.net 172.16.0.222 //查 CDN 子域 Server: 172.16.0.222 Address: 172.16.0.222#53 Name: www.mvsc.com.lxcdn.net Address: 172.16.0.100
- 从客户机 pc02 (第二类地址)查询:
[root@host2 ~]# nslookup www.mvsc.com.lxcdn.net 172.16.0.222 Server: 172.16.0.222 Address: 172.16.0.222#53 Name: www.mvsc.com.lxcdn.net Address: 172.16.0.200
- 从客户机 pc01(第一类地址)查询:
- 确保地区 DNS (bjdns、gzdns)可用
- 向 服务器bjdns查询:
[root@host1 ~]# nslookup dns111.xinnet.com 172.16.0.11 Server: 172.16.0.11 Address: 172.16.0.11#53 Non-authoritative answer: Name: dns111.xinnet.com Address: 172.16.0.111
- 向服务器 gzdns 查询:
[root@host1 ~]# nslookup dns111.xinnet.com 172.16.0.22 Server: 172.16.0.22 Address: 172.16.0.22#53 Non-authoritative answer: Name: dns111.xinnet.com Address: 172.16.0.111
- 向 服务器bjdns查询:
- 确保子域授权(dns111 ---> dns222)可用
- 测试子域授权时,客户端正常应是其他 DNS 服务器,因此用 nslookup 会看不出结果,改用 dig 工具即可。因为新网 DNS 不提供递归,所以查子域 FQDN 的时候,如果授权可用,则会告知可用的子域名称、子域 DNS 的域名及 IP 地址信息。
[root@host1 ~]# dig @172.16.0.111 squid100.lxcdn.net .. .. ;; QUESTION SECTION: ;squid100.lxcdn.net. IN A ;; AUTHORITY SECTION: lxcdn.net. 86400 IN NS dns222.lxcdn.net. ;; ADDITIONAL SECTION: dns222.lxcdn.net. 86400 IN A 172.16.0.222 .. ..
- 测试子域授权时,客户端正常应是其他 DNS 服务器,因此用 nslookup 会看不出结果,改用 dig 工具即可。因为新网 DNS 不提供递归,所以查子域 FQDN 的时候,如果授权可用,则会告知可用的子域名称、子域 DNS 的域名及 IP 地址信息。
- 确保 “客户机 --》 地区DNS --》 权威DNS --》 CDN的DNS” 的分离解析可用
- 在客户机 pc01 上:
[root@host1 ~]# cat /etc/resolv.conf search mvsc.com nameserver 172.16.0.11 [root@host1 ~]# nslookup www.mvsc.com Server: 172.16.0.11 Address: 172.16.0.11#53 Non-authoritative answer: www.mvsc.com canonical name = www.mvsc.com.lxcdn.net. Name: www.mvsc.com.lxcdn.net Address: 172.16.0.100
- 在客户机 pc02 上:
[root@host2 ~]# cat /etc/resolv.conf search mvsc.com nameserver 172.16.0.22 [root@host2 ~]# nslookup www.mvsc.com Server: 172.16.0.22 Address: 172.16.0.22#53 Non-authoritative answer: www.mvsc.com canonical name = www.mvsc.com.lxcdn.net. Name: www.mvsc.com.lxcdn.net Address: 172.16.0.200
- 在客户机 pc01 上:
- 确保新网DNS (dns111) 可用
步骤五:客户机访问测试
- 从北京客户机 pc01 上访问 www.mvsc.com
- 访问目标网站
[root@host1 ~]# curl http://www.mvsc.com/ mvsc IT Group.
- 查看 squid100 的代理日志
[root@host3 ~]# tail -1 /var/log/squid/access.log 1587372823.987 0 172.16.0.1 TCP_MEM_HIT/200 393 GET http://www.mvsc.com/ - HIER_NONE/- text/html
- 访问目标网站
- 从广州客户机 pc02 上访问 www.mvsc.com
- 访问目标网站
[root@host1 ~]# curl http://www.mvsc.com/ mvsc IT Group.
- 查看 squid100 的代理日志
[root@host4 ~]# tail -1 /var/log/squid/access.log 1587372973.113 0 172.16.0.2 TCP_MEM_HIT/200 394 GET http://www.mvsc.com/ - HIER_NONE/- text/html
- 访问目标网站
原文链接:https://www.cnblogs.com/liangbc/p/12734845.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Nginx + Docker 多阶段构建的部署学习 2020-05-25
- 企业私有网络构建运维 2020-05-14
- 应用系统分布式构建运维 2020-05-07
- 7.dockerfile自动构建docker镜像 2020-04-23
- Linux运维系列02--构建Mysql服务器 2020-04-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash