Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591204
  • 博文数量: 748
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-08 12:36
文章分类

全部博文(748)

文章存档

2011年(1)

2008年(747)

我的朋友

分类:

2008-09-08 18:12:48

    WPAD是Web Proxy Auto Discovery的缩写,意思是Web代理自动发现。WPAD的设计目的是让浏览器能自动发现代理,这样用户可以轻松访问而且无需知道哪台计算机是代理服务器。在ISA2006中,WPAD不仅能让客户机浏览器自动发现代理服务器,还可以用于客户端自动发现代理服务器。显然,WPAD对代理服务器的透明处理让管理员轻松了不少,管理员不再需要去每台客户机上设置代理服务器参数了。但樱桃好吃树难栽,WPAD的部署并非都是一帆风顺,WPAD的部署可以借助DNS服务器或DHCP服务器,容易出问题的是用DNS服务器进行部署,尤其是在工作组环境下问题更多。今天我们就来构造一个实验环境,为大家剖析WPAD的工作原理以及故障原因。

  实验拓扑如下图所示。内网计算机在工作组环境,Florence是DNS服务器,Perth是客户机,Beijing是ISA2006服务器。

  

  用DNS来实现WPAD,原理如下:

  1 Perth向DNS服务器发出查询请求,要求获得WPAD主机的IP地址。

  2 Perth根据查询到的IP地址,去WPAD主机的80端口WPAD.DAT或WSPAD.DAT。WPAD.DAT可用于配置客户机浏览器,让浏览器自动发现代理服务器;WSPAD.DAT则用于配置客户机上的客户端自动发现代理服务器。

  从以上的原理分析,首先WPAD主机要在80端口提供wpad.dat和wspad.dat,有了这两个文件,客户机上的浏览器或防火墙客户端才能实现自动配置。其次,DNS服务器要创建相关记录,当客户机来查询时,将解析结果指向WPAD主机。

  好,我们先来解决第一个问题,WPAD主机如何能够提供WPAD.DAT和WSPAD.DAT两个文件呢?最简单的办法是让ISA服务器作WPAD主机,同时提供两个配置文件,具体做法是,在ISA服务器上依次点击 开始-程序-Microsoft ISA Server-ISA服务器管理-配置-网络-内部,右键点击“内部”,选择属性,如下图所示,切换到“自动发现”标签,勾选“为此网络发布自动发现信息”,这样ISA就可以在80端口提供WPAD.DAT和WSPAD.DAT两个文件了。

  

  测试一下,看看ISA服务器是否提供了配置文件。如下图所示,在浏览器中输入,测试结果如下图所示,这表明ISA服务器已经在80端口发布了WPAD.DAT,用同样的方法可知ISA也发布了WSPAD.DAT。

  

  WPAD主机已经在80端口提供了WPAD.DAT和WSPAD.DAT,一个问题解决了,接下来我们考虑另一个问题,客户机到底是怎么通过DNS来查询WPAD主机呢?具体是这样的,客户机向DNS发出一个查询请求,请求解析的域名为WPAD+X。怪了,怎么会是X呢?X代表不确定性,如果客户机所在的域为itet.com,那么客户机就请求解析wpad.itet.com;如果客户机没加入域,但计算机名的后缀为abc.com,那么客户机就请求解析wpad.abc.com;如果客户机既没有加入域,也没有计算机名后缀,那客户机就请求解析wpad。这里是WPAD配置的关键所在,为什么论坛上很多管理员在域环境配置WPAD很正常,换到工作组环境就容易出问题呢?因为域环境下有统一的名称边界,客户机请求解析的域名后缀是固定的,而工作组的有组织无纪律特性决定了它的解析请求是无规律的。

  下面举个具体的例子。如下图所示,Perth属于工作组,Perth将10.1.1.101作为自己的DNS服务器,我们分析一下Perth是如何利用DNS来自动发现代理服务器的。

  

  将Perth的浏览器配置为自动检测发现,在IE浏览器中依次点击 工具-Internet选项-连接-局域网设置,如下图所示,勾选“自动检测设置”。

  

  在Perth上打开浏览器访问一个网站,同时启用Ethereal抓包追踪,抓包结果如下图所示,我们可以看到Perth请求DNS服务器解析域名WPAD,服务器解析失败后Perth又试图用广播进行名称解析,名称解析失败后Perth无法找到WPAD主机去WPAD.DAT,代理服务器自动发现失败。

  很多朋友在论坛中发帖说自己在工作组中配置WPAD时出问题,其实问题就出在DNS服务器无法解析域名WPAD。

  

  好,WPAD配置出问题了,而且是意料之中的,那如何解决呢?两种思路,一是想办法让DNS服务器能解析出域名WPAD,二是想办法让Perth查询一个DNS服务器容易回答的域名。我们沿着这两种思路来尝试一下。

[1]  

【责编:Zenghui】

--------------------next---------------------

阅读(254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~