论坛: 系统集成 标题: 解决网络中MTU的困扰-zt 复制本贴地址    
作者: 带脚镣跳舞 [tuzi]    版主   登录
错误的网络访问控制策略导致PMTUD实现故障

作者:Yiming Gong
  http://security.zz.ha.cn  

故障现象:XX服务器无法下载大文件。

该文章解释了MTU,PMTUD的相关概念,故障原因是网络通路中的某个设备错误的关闭了所有的ICMP协议,导致
服务器与客户端无法收到宣告数据包超出设备数据帧最大值的ICMP TYPE3 CODE 4的包,双方无法降低数据帧大
小,所有的大包均被丢弃。

解决思路:
1、检查网络通路中每一跳的ICMP控制策略,这种方式能彻底解决问题,但网络规模大时,工作量大,时间长。

2、修改服务器与客户端的MTU值,使其能小于中间设备的MTU,确保数据包通过,这要慢慢尝试。

3、修改服务器与客户端的PMTUD实现,禁止PMTUD方式,数据包永远以小包传送,但数据传送效率极低。
。。。。。。

看他的主页 第9项就是
PDF贴不上来


Windows 2000 或 Windows NT 的 TCP/IP 和 NBT 配置参数: http://support.microsoft.com/default.aspx?...kb;zh-cn;120642


TCP/IP and NBT configuration parameters for Windows XP: http://support.microsoft.com/default.aspx?...kb;EN-US;314053


cisco文档:
http://www.cisco.com/warp/public/105/38.pdf

微软的这三个TCP/IP选项大有用处啊

要更改这些参数,请采用下列步骤:
启动注册表编辑器 (Regedt32.exe)。
从 HKEY_LOCAL_MACHINE 子树,转到以下项:
SYSTEMCurrentControlSetServices

如下面相应的项中所述,向注册表项中添加一个值,方法是:单击编辑菜单上的添加数值,键入相应的数值,然后使用数据类型复选框设置数值类型。
单击确定。
退出注册表编辑器。
重新启动计算机,以使更改生效。
所有 TCP/IP 参数都是注册表值,这些值分别位于以下两个不同子项中的某一个下:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices

TcpipParameters
适配器名称ParametersTcpip

其中,适配器名称 指的是 TCP/IP 所绑定到的网络适配器的子项,如 Lance01。后一个注册表项下的值是特定于各个适配器的。同时具有 DHCP 值和静态配置值的参数可能存在也可能不存在,具体取决于系统/适配器是不是用 DHCP 配置的,以及(或者)是不是已指定静态覆盖值。必须重新启动系统,这些参数的更改才能生效。


EnableDeadGWDetect
项:TcpipParameters
数值类型:REG_DWORD - 布尔值
有效范围:0,1(False,True)
默认:1 (True)
说明:将此参数设置为 1 会使 TCP 执行死网关检查。启用此功能后,如果 TCP 多次重新传输某个片段而收不到响应, 就会让 IP 更改到一个备份网关。可以在“网络”控制面板中“TCP/IP 配置”对话框的“高级”部分定义备份网关。

EnablePMTUBHDetect
项:TcpipParameters
数值类型:REG_DWORD - 布尔值
有效范围:0,1(False,True)
默认:0 (False)
说明:将此参数设置为 1 (True) 会使 TCP 在执行路径 MTU 发现时,尝试检测“黑洞”路由器。当“黑洞”路由器需要用 Don't Fragment 位设置来碎片化 IP 数据报时,它不返回“无法到达 ICMP 目标”消息。TCP 依靠接收这些消息来执行路径 MTU 发现。启用此功能后,如果几次重新发送片段都没有收到响应,TCP 将尝试在不设置 Don't Fragment 位的情况下发送片段。如果收到片段响应,MSS 将降低并且以后在连接上传输的数据包中都会设置 Don't Fragment 位。启用黑洞路由器检测可以增加为特定的片段执行重新发送的最大次数。

EnablePMTUDiscovery
项:TcpipParameters
数值类型:REG_DWORD - 布尔值
有效范围:0,1(False,True)
默认:1 (True)
说明:将此参数设置为 1 (True) 会使 TCP 尝试发现到达一个远程主机的路径上的“最大传输单元”(MTU 或最大数据包大小)。通过发现路径 MTU 并将 TCP 片段限制为此大小,TCP 可以消除此路径上使用不同的 MTU 连接网络的路由器上的碎片。碎片会对 TCP 吞吐量产生不利影响并造成网络拥塞。如果将此参数设置为 0,则对于所有不是指向本地子网上的计算机的连接,都将使用 576 字节的 MTU。



[此贴被 带脚镣跳舞(tuzi) 在 09月24日09时20分 编辑过]

地主 发表时间: 05-09-24 09:17

论坛: 系统集成

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号