网络dns域名详解:内网DNS域名解析

**前言** : 很多时候,我们针对一个新版本功能的测试,一般情况下是打一个内部测试的包,测试完功能ok后,然后再打一个正式地址的线上包,理论上来说,只有连接服务器的地址是唯一变化的,但是毕竟打包是通过脚本打的,第一:不能确认是否有新的提交。第二:风险意识,认定第二次打包的东西和第一次打包的东西是不一样的。第三:测试角度来说,上线的包一定是经过测试的包,于是想通过内网DNS服务器解析线上域名到测试服,达到客户端不变,只用测试一个包,测试包即为上线包,同时无缝切换服务器的目的。更高级的办法是通过切换不同的WIFi来实现连接到不同服务器,本文暂不做讨论。此处的客户端操作为修改默认的DNS解析即可。

网络dns域名详解:内网DNS域名解析(1)

试验环境

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";

  1. 编辑 `/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

网络dns域名详解:内网DNS域名解析(2)

2. 打开cmd,执行`nslookup` 如下显示表示成功

网络dns域名详解:内网DNS域名解析(3)

3. 接着输入刚刚需要解析的域名:`xiongfei.cq.com `或者 `tc.cq.com`

网络dns域名详解:内网DNS域名解析(4)

可以看到已经解析到正确的地址,其中`tc.cq.com`是一个可访问的网站,浏览器打开

网络dns域名详解:内网DNS域名解析(5)

搞定!

至此,以后就可以将任意域名通过修改本地DNS服务器,将线上的域名解析到测试服,功能测试完毕以后,关闭对该域名解析即可连接到线上服务器

扩展:解析外网DNS:

1. `name.conf.local`文件添加内容

网络dns域名详解:内网DNS域名解析(6)

2. 正向解析:

网络dns域名详解:内网DNS域名解析(7)

3. 反向解析:

网络dns域名详解:内网DNS域名解析(8)

4. 重启bind服务器,可以达到类似的效果

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页