加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于内外网DNS解析的问题

(2010-11-24 18:53:23)
标签:

杂谈

分类: Cisco

     相信很多单位的局域网络都需要做DNS域名解析,以我们学校为例,由于校园网内使用的保留地址10.0.0.0/8,服务器位于内网网段:10.10.1.0/24,而服务器通常是同时对公网提供服务的,这是通过PIX525防火墙做静态NAT映射到公网的IP地址上。校内用户需要用域名访问服务器的话,必须将域名解到局域网的IP地址,而公网用户则必须将相同的域名解析到服务器所映射的公网IP上。

     这个问题以前我们都是用架设两台DNS服务器的办法来解决的,一台用于对外网解析,这台DNS映射有公网的IP,而让域名注册商将域名的解析服务器设置为此IP。另一台服务器则只对内网用户解析,不需要用公网IP,内网所有电脑的DNS都设置成这台内部DNS服务器的地址(通常是通过DHCP自动分配)。为了安全起见,DNS一般都会有一台备用的,这样内外网就共有4台服务器做DNS了,浪费不说,管理也不方便。

     用BIND做DNS服务器,可以实现用一台DNS服务器分别对不同源地址的用户请求相应作出不同的响应。在BIND8的时候,实现起来还是很麻烦的。自BIND9问世后,这个问题就有了比较好的解决办法,关于BIND9分别对内外网做解析的配置方法,前两天的日志中有了介绍,不再重复。用这个办法后,就可以节省两台DNS服务器了,提示,两台DNS做个均衡好一些,一台主要对外网,一台主要对内网,互作备份。

      后来发现了一个更好的方案。因为服务器的IP地址本来是内网地址,是通过CISCO PIX525防火墙做映射后,才对公网具有IP地址的。在PIX防火墙中,有一个Alias命令,此命令的功能是将穿过防火墙的DNS数据包里的A记录进行转换。

      假如配置了如下一条命令:alias (inside) 10.10.1.5 202.107.249.242  

     这时,某内网用户假如将DNS服务器设成外网的某台DNS,当向那台DNS服务器发送请求解析时,如果解析后返回的IP地址是上面别名中所指定的IP,即202.107.249.242,那么返回的数据包经过PIX防火墙,将被防火墙转换为内网的IP,即10.10.1.5,此用户得到的DNS解析结果自然就是10.10.1.5了。

      同理,公网上的某用户向内网中的DNS(通过映射好的公网IP)查询域名时,内网DNS回答的结果应该是10.10.1.5,而在穿过PIX的时候,也将被转换成202.107.249.242

     综上所述,前面提出的问题即可迎刃而解了,只需架设一台DNS服务器,直接将域名解析为内网的IP,然后在PIX中设置alias命令,对应于static命令映射的IP就可以了。这样也免去了当修改了一个域名指向时,需要分别修改内外网两个解析的麻烦。

      另外补充一下,如果你不是用PIX防火墙的,而是用IOS,比如6509做NAT的话,那么不需要设置alias,也能自动转换DNS的A记录,更简单了。当然如果你在NAT命令后面加了no-alias参数,那当然就不会转别名了。

   ip nat inside source static 10.10.1.5 202.107.249.242 no-alias

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有