为何不能用域名访问内部网站

数字办公

刘金涛:我们钢厂是通过路由器进行NAT网络地址转换上网的,使用的DNS是ISP提供的。钢厂有自己的网站(假设主页为:www.gc04.com,Web服务器的私网IP地址为192.168.1.1,对应的公网IP地址为202.206.*.*)。

创建网站后发现,内网连接的计算机访问外部网站正常,但内部网站不能通过域名来访问,外部的计算机能够通过域名访问。请问《电脑报》的专家,遇到这种问题如何解决?

办公专家陈邓新:外网通过域名和内网通过IP地址都能够访问自己的网站,说明网站的创建和网络的物理链路是正确的,线缆的选择也是正确的。这证明问题出在了路由器上。

钢厂内部没有DNS服务器,钢厂内部的计算机通过域名访问外部的网站时,会把要解析的域名数据包通过路由器送达ISP提供的DNS,解析域名的工作由ISP提供的DNS来完成,当访问内部的网站时,要解析的域名数据包还是通过路由器到达ISP提供的DNS,DNS解析域名后发现IP为202.206.*.*(钢厂Web服务器的公网IP地址),就会把数据包又发回到钢厂的路由器。

路由器分析数据包后,会发现此数据包是由自己发出去的,因为路由器要避免环路的形成,会把此数据包丢弃,这样内部的计算机就得不到解析后的IP地址,也就无法通过域名来访问了。而内部的计算机通过IP地址访问自己的网站时,由于IP地址是私网IP,不需要进行解析,所以可以通过IP地址访问。

小提示:路由器为避免环路的形成会采用六种方法:设置最大跳数、水平分割、路由毒杀、反转毒杀、Hold-down计时、触发更新。其中水平分割定义就是路由器不会转发由自身传达出去的路由信息。

方法1

在内部的所有计算机上的Hosts文件(c:\windows\system32\drivers\etc\hosts)中添加一条记录“192.168.1.1 www.gc04.com”命令(图1),这样当内部的计算机用域名来访问自己内部的网站时,就会从Hosts文件中解析出正确的IP地址。但是此方法非常麻烦,要为内部的计算机一台一台的添加记录,当计算机比较多时,工作量就相当大。

15-f15-1-1.jpg

方法2

在内部的网络中安装并配置一台DNS服务器(可以安装在Web服务器上,但此服务器的操作系统应为Windows 2000或Windows 2003),由内部的DNS服务器来提供域名解析服务,具体操作如下:

第一步:打开DNS窗口(开始→程序→管理工具→DNS),选取服务器名,单击鼠标右键,在出现的快捷菜单中选择“新建区域”命令,然后创建“主要区域”的“正向查找区域”,域名为“gc04.com”,之后出现的对话框,使用系统默认即可。

第二步:在DNS配置窗口中,选取新创建的区域gc04.com,单击鼠标右键,在出现的快捷菜单中选择“新建主机”命令,在“名称”文本框中输入新的主机记录www,在“IP地址”文本框中输入发布www.gc04.com网站的服务器所使用的IP地址“192.168.1.1”。配置完成之后,在gc04.com区域会看到一条主机名为“www”的主机记录(图2)。

15-f15-1-2.jpg

第三步:所有工作站的DNS地址设置为内部DNS服务器地址即192.168.1.1。

使用内部的DNS服务器,可以有效的利用内部网络与Internet之间的接入带宽,同时也提高了内部网络用户接入Internet的速度,所以推荐使用第二种方法。