quarkfc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-13
  • 最后登录2006-07-26
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1608回复:5

超级不惑:passthru xp sp2 下居然对报文没有反映

楼主#
更多 发布于:2005-06-28 10:19
  我开发了一个passthru的VPN,在win2k,xp sp1下面工作正常,但是在xp sp2下遇到一个奇怪得问题:

  我在receivepacket收到报文后,将该报文丢入队列,然后通过一个线程解密,再上指,我通过解密后打印,仔细分析比较,其ping回复报文结果应该完全正确,包括各种校验和,后来想办法把数据导入sniffer,sniffer分析结果也显示报文完全正确。但是系统就是不予理会,结果ping命令超时。所有代码在2k,xp sp1下面工作正常,维萨在sp2下就有问题呢?到底是什么问题呢?
  况且报文已经正确上指了,报文内容也没有问题,就是系统不予理会,报文发送都正常。我开始怀疑是不是上指有问题,而是将不需要解密的报文也放在队列线程中按照同一种方式上指,系统能够接收,就是报文解密后线程中上指系统不予理会,也不兰屏,问题到底在哪里呢?

大侠恳请指教!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-06-28 10:29
是不是xp sp2内置的防火墙,阻止了ping包,把你的passthru卸掉,如果还ping不通,就和你的代码没有关系了
quarkfc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-13
  • 最后登录2006-07-26
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-28 10:34
谢谢回复!
不是防火墙得关系,因为如果没有通过解密得步骤,则ping完全可以,也就是说pingVPN内部不通(因为要加密解密),ping外部完全可以。xp sp1也可以,就是sp2不通啊。会是什么问题呢?
quarkfc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-13
  • 最后登录2006-07-26
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-28 10:35
不用卸掉passthru,ping外部IP可以的
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-06-28 11:03
一般还是你解密包的时候出了问题。建议你可以加载tcpip.sys,用softcie跟踪一下,在iprcv,icmprcv分别设断点,如果进入了iprcv,没有进入icmprcv,说明数据包在ip层的检查就没有通过,被抛弃了,重点检查ip字段,如果进入了icmprcv,说明包icmp部分有问题,这样可以帮助你定位问题的范围
wcyht234
驱动牛犊
驱动牛犊
  • 注册日期2003-10-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望20点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-18 10:29
可能是你建立VPN隧道的问题,因为你PING外部可以通过,PING  VPN内部就不能通过。这种现象最大的可能就是建立隧道的问题。

另外在XP SP2下,当进入的包发生了改变的时候(例如你解密),这个时候SP2的处理好象和WIN2000等不一样的。 如果处理不当,系统就会丢弃这个包 。
游客

返回顶部