这个标题粗略看有点绕。详细描述如下:
企业在内网建设了同时面向互联网公网环境和企业内网环境的信息系统,对内通过内网IP地址访问,对公网通过内网出口地址访问(SNAT)模式。为方便使用,在公网注册了域名,并把域名解析为内网出口地址,实现通过域名指向和使用信息系统。
笔者:国际认证信息系统审计师、软考系统分析师
但问题随之而来:在内网无法通过域名使用信息系统。
原因是,在企业内网访问这些域名对应的信息系统时,解析得到的内网出口IP地址,会被绝大多数路由器禁止直接访问。
但公共DNS服务器并不支持条件解析,无法判断和实现当访问者处于企业内网时,把域名解析为内网地址。
解决问题的办法,有两种:
第一种是比较简单直接的做法,区分信息系统在内外网的域名,要求使用人在内网只能使用内网域名(或者直接使用IP地址)。
这种做法的缺点很明显,首先对于使用人来说比较被动;其次如果信息系统具备移动APP,当移动设备通过WIFI接入之类方式接入内网时,APP难以分辨所处的运行环境是企业内网还是其它内网,结果导致APP无法在内网WIFI环境下使用。
第二种方法就是本文要介绍的,通过配置内网DNS服务,实现内网DNS服务会把域名解析为内网IP地址而不是公网地址。由此,只要用户记住或者APP预设的指向方式都是域名,就可以实现无分内外网。
具体设置办法:
1、首先建立能正常运作的内网DNS服务(一般是缓冲转发模式),设置所有内网终端通过DHCP获得DNS服务器时一律只获得内网DNS服务地址。
注:这样的好处还包括可以节省通过公共DNS查询域名的对外流量,提高内网用户打开信息系统的速度和上网浏览的速度;还可以进一步地加固网络安全,防止用户接触到恶意网站。可以参考:
2、然后,配置DNS服务,建立指定域名所对应的解析域,配置域名解析。这里要先确定尽可能是通过二级子域名去代表业务系统而不要使用主域名。
具体配置文件例子如下(假设企业外部域名为domain.name,内网域为intranet):
1、修改配置文件/etc/named.zones的域定义:
zone "domain.name" IN {
type master;
file "named.dommain.name";
allow-update { none; };
};
2、定义具体解析配置,比如/etc/named/named.domain.name,直接把公网DNS服务的完整配置(一般可以通过域名解析服务商的管理控制台获取到信息)复制到本地的配置文件。
然后把需要解析为内部IP地址的二级子域名A记录修改解析的IP为内网IP地址,比如192.168.99.99:
$TTL 86400
@ IN SOA ns.intranet. root.ns.intranet. (
2022051900 ; Serial CHANGE THIS VALUE EVERY TIME YOU DO CHANGES TO THIS FILE
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS ns.intranet.
@ IN MX 10 mxw.provider.com.
@ IN MX 5 mxn.provider.com.
system A 192.168.99.99
mail CNAME mail.provider.com.
smtp CNAME smtp.provider.com.
pop3 CNAME pop3.provider.com.
www A xxx.xxx.xxx.xxx
3、执行
rndc reload
激活新的DNS配置。
4、在内网通过nslookup命令测试dns服务器是否工作正常,以及是否内外网DNS服务器会返回不同的结果:
C:>nslookup system.domain.name ns.intranet
服务器: ns.intranet
Address: 192.168.99.1
非权威应答:
名称: system.domain.name
Address: 192.168.99.99
C:>nslookup system.domain.name 202.96.128.86
服务器: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
非权威应答:
名称: system.domain.name
Address: xxx.xxx.xxx.xxx
最后,别忘记务必要加固DNS服务器!
本站微信订阅号:
本页网址二维码: