**前言** : 很多时候,我们针对一个新版本功能的测试,一般情况下是打一个内部测试的包,测试完功能ok后,然后再打一个正式地址的线上包,理论上来说,只有连接服务器的地址是唯一变化的,但是毕竟打包是通过脚本打的,第一:不能确认是否有新的提交。第二:风险意识,认定第二次打包的东西和第一次打包的东西是不一样的。第三:测试角度来说,上线的包一定是经过测试的包,于是想通过内网DNS服务器解析线上域名到测试服,达到客户端不变,只用测试一个包,测试包即为上线包,同时无缝切换服务器的目的。更高级的办法是通过切换不同的WIFi来实现连接到不同服务器,本文暂不做讨论。此处的客户端操作为修改默认的DNS解析即可。
试验环境
1. DNS服务器地址,IP : 192.168.34.168 域名 : dns.cq.com
2. 客户端1: IP:192.168.34.120 域名:tc.cq.com
3. 客户端2: IP:192.168.34.160 域名:xiongfei.cq.com
服务器搭建
1. 拉取镜像 `docker pull sameersbn/bind`
2. 启动DNS服务器
docker run -d \
-p 53:53/tcp \
-p 53:53/udp \
-p 10000:10000/tcp \
-v /home/xiongfei/bind:/data \
–restart=always \
–name bind \
sameersbn/bind
修改配置文件
1. 找到主配置文件:`name.conf`,内容大致如下:
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
编辑 `/etc/bind/named.conf.options`文件,添加内容
zone "cq.com" {
type master;
file "/data/bind/etc/cq/cq.com.forward.open";
};
zone "34.168.192.in-addr.arpa" {
type master;
file "/data/bind/etc/cq/cq.com.reverse.open";
};
配置文件中产生了2个配置文件,一个正向解析的配置文件(cq.com.forward.open)和一个反向解析的配置文件(cq.com.reverse.open)
3. 为了方便和直观,添加一个cq的目录,并创建两个文件,
cq.com.forward.open文件内容:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.cq.com. root.cq.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.cq.com.
@ IN A 192.168.34.168
@ IN A 192.168.34.160
@ IN A 192.168.34.120
dns IN A 192.168.34.168
tc IN A 192.168.34.160
xiongfei IN A 192.168.34.120
cq.com.reverse.open文件内容:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.cq.com. root.cq.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.cq.com.
168 IN PTR dns.cq.com.
160 IN PTR tc.cq.com.
120 IN PTR xiongfei.cq.com.
4. 检查配置文件并重新加载:执行`named-checkconf` 如果没有任何返回标识配置文件没问题,使用`rndc reconfig`重新加载配置
5. 测试:
1. 首选DNS服务器设置为192.168.34.168
2. 打开cmd,执行`nslookup` 如下显示表示成功
3. 接着输入刚刚需要解析的域名:`xiongfei.cq.com `或者 `tc.cq.com`
可以看到已经解析到正确的地址,其中`tc.cq.com`是一个可访问的网站,浏览器打开
搞定!
至此,以后就可以将任意域名通过修改本地DNS服务器,将线上的域名解析到测试服,功能测试完毕以后,关闭对该域名解析即可连接到线上服务器
扩展:解析外网DNS:
1. `name.conf.local`文件添加内容
2. 正向解析:
3. 反向解析:
4. 重启bind服务器,可以达到类似的效果
本文出自快速备案,转载时请注明出处及相应链接。