xiaoguangzaia
驱动牛犊
驱动牛犊
  • 注册日期2010-08-12
  • 最后登录2012-03-17
  • 粉丝2
  • 关注0
  • 积分33分
  • 威望291点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2026回复:5

利用passthru实现vpn的几个问题,谢谢

楼主#
更多 发布于:2012-02-24 16:01
  现在想使用passthru实现vpn客户端。看了一些资料现在有很多问题请教大家,希望能得到指点谢谢。
1.看了一些例子里面在接收时都是只处理了ptreceivepacke,没有处理ptreceive。看的资料里说这个是必须处理的吧。
    在ptreceive中处理网络包,有两种情况,一种是可以直接获取网络包,这里可以直接处理;
     一种是不能获取完整的网络包,这里如果希望立即获取完整的网络包需要自己发送MPTransferData。如果不需要
就在MPTransferData中判断返回状态,如果返回成功就说明已经获取到完整的包可以直接处理,否则在
PtTransferDataComplete中处理。不知道是不是这个过程。

2.如果实现esp和ah,看有的帖子说需要重新计算tcp与udp的校验和,应该没有必要重新计算吧。

3.我参考了ipsec driver的代码,将它移植到wdk的passthru中,编译的时候总有error:2220.就是说吧警告当做错误
不能生成obj文件。查了一下都是说将警告级别降低就可以了,我试了也确实可以,但是感觉不放心,有没有什么方
法能去掉这个警告呢?是代码不严谨吗?

4.ipsec driver的代码有人说不稳定,还有其他可以参考的吗?

5.虽然现在还没考虑数据包过大添加头后封包的问题,这里有什么注意的吗,一般怎么实现?

6.这个比较重要,现在不知道怎么测试,建立两台虚拟机然后相互访问网上邻居可以测试吗,有没有什么方法可以查
看发送与接收到的数据包。哪里有参考资料呢,网上看都是说怎么调试,或者直接在passthru中输出。

问题比较多,希望大家能耐心看一下,十分感谢!!!
xiaoguangzaia
驱动牛犊
驱动牛犊
  • 注册日期2010-08-12
  • 最后登录2012-03-17
  • 粉丝2
  • 关注0
  • 积分33分
  • 威望291点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2012-02-27 09:26
有木有人啊
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
板凳#
发布于:2012-02-28 14:23
1. receive 和 receivepacket都要处理 .   receive中如果数据不完整,就自己发送TransferData。

2. 要计算ip头校验值

3. 是代码不严谨。你的ipsec driver哪里找到的?

4.不知道。我有商业版的。

5. 注意mtu即可

6. 网络抓报工具
走走看看开源好 Solaris vs Linux
ttao00
驱动牛犊
驱动牛犊
  • 注册日期2012-02-20
  • 最后登录2012-10-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2012-02-28 20:54
同意楼上所说,IPSec driver好像只实现了AH吧,ESP没有实现,而且最重要的策略管理,安全关联的自动协商都没有写,求哪位大牛分享商业版本!
xiaoguangzaia
驱动牛犊
驱动牛犊
  • 注册日期2010-08-12
  • 最后登录2012-03-17
  • 粉丝2
  • 关注0
  • 积分33分
  • 威望291点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2012-02-29 09:17
回 cyliu 的帖子
cyliu:1. receive 和 receivepacket都要处理 .   receive中如果数据不完整,就自己发送TransferData。

2. 要计算ip头校验值

3. 是代码不严谨。你的ipsec driver哪里找到的?
....... (2012-02-28 14:23)

谢谢您的回复!

1.只能自己发送TransferData吗,是不是也可以在MPTransferData或者PtTransferDataComplete中处理。哪种方式简单一点呢。

3.ipsec driver我是在网上下到的,它有一个官网。但是只更新到2002年,版本是0.99版。
不知道找的地方对不对。

4.商业版的是要买的吧~~~

6.我这几天也测试了,用了网络调试助手。这个可以吧

再次谢谢!
xiaoguangzaia
驱动牛犊
驱动牛犊
  • 注册日期2010-08-12
  • 最后登录2012-03-17
  • 粉丝2
  • 关注0
  • 积分33分
  • 威望291点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2012-03-07 09:47
回 cyliu 的帖子
cyliu:1. receive 和 receivepacket都要处理 .   receive中如果数据不完整,就自己发送TransferData。

2. 要计算ip头校验值

3. 是代码不严谨。你的ipsec driver哪里找到的?
....... (2012-02-28 14:23)

斑竹,我参照以前的帖子实现了PtReceive以及相应其他函数的处理。
但是在虚拟机里测试的时候数据都不会经过这里,现在没办法测试,
不知道有没有什么办法?谢谢!
游客

返回顶部