Windows 2003 路由/防火墙/dhcp/...问题?

Windows 2003 路由/防火墙/dhcp/...问题?

我对服务器从外部的可用性存在问题(从本地网络一切正常)。一个关键问题是 http,其中请求被执行,但只有当响应小于一定数量的 KB 时才执行。

  • 如果从外部通过浏览器访问,则只响应小于或等于4KB的请求
  • 如果通过 wget 从远程服务器访问,则只有当请求小于或等于 256 字节时才会成功
  • 如果从 php 访问(通过 file_get_contents 函数),则响应最大为 256kb(如果请求动态 php 文件,如果请求静态 html 文件,则只有 128kbs)

成功和失败尝试的示例:

# wget http://tamtam2.izdelava.si/a.html
--12:46:08--  http://tamtam2.izdelava.si/a.html
           => `a.html'
Resolving tamtam2.izdelava.si... done.
Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected.
HTTP request sent, awaiting response... 200 OK
Length: 255 [text/html]

100%[=====================>] 255          249.02K/s    ETA 00:00

12:46:08 (249.02 KB/s) - `a.html' saved [255/255]


# wget http://tamtam2.izdelava.si/b.html
--12:45:40--  http://tamtam2.izdelava.si/b.html
           => `b.html'
Resolving tamtam2.izdelava.si... done.
Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected.
HTTP request sent, awaiting response...

FTP 连接也存在类似的问题,例如,如果访问包含太多文件或子文件夹的目录,连接就会中断。我尝试过不同版本的 apache(甚至 ftp 服务器),但结果总是相同的。在 IIS 服务器中,问题是一样的。

我猜问题出在路由器/防火墙层面,但我无法确定具体原因。有人知道问题可能出在哪里吗?

答案1

在我看来,这听起来像是路径 MTU 发现问题。请查看 Microsoft 的此过程:http://support.microsoft.com/kb/314825

基本上,从服务器计算机尝试使用以下参数 PING 您执行上述测试的计算机:

ping <machine above> -f -l 1472

这将给你返回一个来自无法处理此大小数据包的第一跳的“需要分段”答复。

服务器计算机具有哪种 WAN 连接?例如,DSL 连接的 MTU 通常小于 1500。

您的防火墙设备可能有一个配置选项,可以将 TCP MSS“限制”到 MTU,这样您就不必对服务器计算机的 MTU 进行任何更改。一旦您确定这是 MTU 问题,您就可以寻求基于防火墙的修复。

答案2

看起来边界防火墙配置为限制 HTTP 请求/响应大小。但防火墙为何对不同的客户端 wget、浏览器和 php 脚本有不同的行为尚不清楚。在两端使用 wireshark 来查看每种情况下线路上到底发生了什么。这应该有助于您解决问题。

相关内容