fanny8102
驱动牛犊
驱动牛犊
  • 注册日期2006-05-17
  • 最后登录2011-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望24点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:3455回复:4

紧急求救:IPSec VPN中两台机子PING不通

楼主#
更多 发布于:2007-04-25 09:20
  高手帮忙!
     我用2003DDK下的Passthru作IPSec VPN。用Ethereal来抓包。
     我在发送的包前加上IPSec头,在接收到IPSec包时,去掉前面的IPSec头。开始时,我只实现了发送IPSec包,我在本机上装上系统文件,同时用本机的Ethereal抓包,发现发出去的是IPSec包。但我接收数据业修改成功后,我发现抓到的发送出去的包也都不是IPSec包,我用Debugview跟踪程序,发现每发送一个IPSec包,接收处就会将此包拦截,去掉IPSec头。但我如果用其他机子上的Ethereal抓包,发现本机上的包还是IPSec包。这是为什么?
    最主要的问题是我把两个机子上同时装上此系统文件,两台机子PING不通。他们的校验和是对的,但为什么ping不通呢。可能会有什么原因。
    谢谢帮助。[p:1]
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2007-04-25 09:47
本机上装上系统文件,同时用本机的Ethereal抓包,发现发出去的是IPSec包。但我接收数据业修改成功后,我发现抓到的发送出去的包也都不是IPSec包。

没有明白这句话什么意思。

ipsec只要两端协议协商正确,适用了正确配置的sa,应该没有问题。还要考虑nat穿越问题,ipsec有三种传输模式:beet模式,tranform模式和tunnel模式。就看你是怎么处理的了
走走看看开源好 Solaris vs Linux
fanny8102
驱动牛犊
驱动牛犊
  • 注册日期2006-05-17
  • 最后登录2011-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望24点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-25 19:41
我的意思是说,我的IPSec系统文件和抓包工具是在同一台电脑上安装的。
     IPSec的实现是通过隧道模式来实现的,我只在局域网中测试,所以不存在NAT穿越问题。
     我现在是对所有发出的IP包都进行IPSec处理。开始时只实现了对发送数据的封装,对接受到的数据没处理。此时,能抓到IPSec头。
     现在我将接收到的数据包进行处理,如果是IPSec包,我就对他去除封装。
     问题是:我用Debugview跟踪程序,发现每发送一个IPSec包,这台电脑上就会将此包拦截,去掉IPSec头。所以我用抓包工具就抓不到IPSec包,我抓到的包却是去除IPSec的封包。如果我PING一台未装有IPSec的电脑,在那台电脑上装上抓包工具,就能抓到发过来的包是IPSec包。
      但如果两台电脑同时装上IPSec,两台电脑却ping不通,而且抓到的包也是ICMP包。这是为什么。
readilen
驱动牛犊
驱动牛犊
  • 注册日期2007-03-16
  • 最后登录2012-12-18
  • 粉丝0
  • 关注0
  • 积分637分
  • 威望78点
  • 贡献值0点
  • 好评度63点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-25 20:33
首先 Ethereal抓包 在你的IPSec驱动之前 动作,就算你的IPsec是通的也抓不到包(如果是隧道模式应该是ESP包)
其次 你的VPN好像没有联通,如国正常的话,ICMP包也会成ESP包,是能ping通的
 
再次,你抓ESP包,最简单的是用HUB,连到第三台机子上,或者是交换机做端口映射
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地下室#
发布于:2007-04-26 08:55
最好使用第三者抓包。就像楼上所说,抓包动作在ipsec封包之前发生的,所以看到是未处理的。

既然对段看到了数据报,那么说明ipsec处理有问题:封装数据与接收到数据格式种类是否相同,arp报你是否也作了处理(应该不处理),两端密钥是否正确(看看加密前数据与解密后数据是否不同)等等?
走走看看开源好 Solaris vs Linux
游客

返回顶部