skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1684回复:11

VPDN实际问题,望Hu斑竹指教

楼主#
更多 发布于:2003-03-11 14:13
我已经问过斑竹关于VPN上的FTP的穿越问题(其实也就是NAT问题),我在本站和其它一些网站上收了一把,发现其实NAT的问题,大家解决的方法跟我以前在98下实现的方式非常的相似,都是利用一个自己生成的表来实现的,(保存4个标志,保存3个做更改),其实也就是LINUX下的实现。
现在,我要在2000下做这个实现,认为以前的方式是不科学并且很低效的,上次斑竹给我讲了一下这个实现,但是我没有看明白?望斑竹再解释一下。
比如,我的过滤将做在IM,而NAT的方式应该做在哪里呢?是不是需要再实现一个MINIPORT?我的目标是将我们的IP,说白了是用户设置的IP设置成网卡的IP(斑竹如果研究过VPN,一定知道这是隧道模式必须的),希望所有的走IPSEC的包都经过这块虚拟网卡,从而不需要我去根据象FTP之类的协议对每个包都去修改IP地址?
我用IDRA看了一下现在市场上的VPDN,我看到的产品中,CISCO和NETSCRREN的好象是做在MINIPORT的,并且他们都是使用的都是SAFENET的技术,而他们实现了虚拟IP,而其他的都实现在IM,好象没有这个功能一样,另外发现PGP是实现了两个关于网络的驱动,一个实现在IM,而另一个是实现在MINIPORT,我到现在,还不是很清楚它为什么这么做?
希望斑竹能够耐心的看完这个帖子,因为,2000的这个项目还在设计阶段,我希望有个比较完善的设计,谢谢斑竹先!!!!

最新喜欢:

jzyhummeljzyhum...
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-11 16:57
makeluo你在搞笑吧,这里可是严肃的场合哟?我不太明白你的前一个问题,但是后面的问题可以回答。
SAFENET是一个欧洲的公司,专门做网络安全的,这个从名字上能看出来吧?还有,你要回答我的问题呀?上次我听HU斑竹说他也给你讲过这个问题的,你明白了吗?还有,刚才的分析有误,实际的情况是,SAFENET的驱动似乎也不是做在MINIPORT的,我刚才看了,根据IDRA所反映出来的IMPORT,应该没有用到PROTOCOL、IM、MINIPORT所必须用到的函数,唉。。。。。郁闷啊。。。。
感觉其实现似乎没有做在NDIS,我该怎么办呢?如果,它的实现在TCP/IP堆栈的(当然是MS公开了源码),我们研究就没有搞头了:(
算了,还是回到现实中,我应该怎么做呢?如果就简单而言,显然IM层次的改动就可以了,但是,我想实现得更好些。
说了那么多废话。。。。。
Hu斑竹快出来救命啊。。。。。。
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-11 16:58
makeluo你在搞笑吧,这里可是严肃的场合哟?开玩笑的,我不太明白你的前一个问题:),但是后面的问题可以回答。
SAFENET是一个欧洲的公司,专门做网络安全的,这个从名字上能看出来吧?还有,你要回答我的问题呀?上次我听HU斑竹说他也给你讲过这个问题的,你明白了吗?还有,刚才的分析有误,实际的情况是,SAFENET的驱动似乎也不是做在MINIPORT的,我刚才看了,根据IDRA所反映出来的IMPORT,应该没有用到PROTOCOL、IM、MINIPORT所必须用到的函数,唉。。。。。郁闷啊。。。。
感觉其实现似乎没有做在NDIS,我该怎么办呢?如果,它的实现在TCP/IP堆栈的(当然是MS公开了源码),我们研究就没有搞头了:(
算了,还是回到现实中,我应该怎么做呢?如果就简单而言,显然IM层次的改动就可以了,但是,我想实现得更好些。
说了那么多废话。。。。。
Hu斑竹快出来救命啊。。。。。。
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-11 19:45
十分感谢斑竹的回答,这些东西很明显都是IPSEC固有的问题,但是,虽然DRAFT有这么多的缺陷,但我们还是要做的。
我现在的问题似乎是我没有说清楚,在IPSEC gateway和VPN 客户端走隧道模式的时候,会有设置一个虚拟地址的问题(用于网关的验证),这个地址将会被封装在一个IP包里,但在windows中,如果,我的真实IP是通过PPP拨号得到的,而我另外设置这个虚拟IP,在我向APP传送包的时候,对于象FTP这样的协议,就会导致我必须做一个地址的转换,这跟NAT的原理是一样的,其实,也就是实现了一个NAT,象FTP这样的协议穿越NAT,斑竹可能知道我们都是利用维持一个链表来实现,(对每个包的地址进行改变,这也是RFC提示的做法)我想问的是,我们在windows是否有其他的实现方式,不需要改变每个包的地址?
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-13 15:59
再次感谢斑竹的回答,但是,我仍然不是很明白,比如,我的程序的IPSEC是实现在IM,而实现虚拟网卡是指实现一个MINIPORT的驱动,你的意思是不是我要实现两个驱动?并且,在走IPSEC的时候,如果我有虚拟网卡,是不是要求所有的包都走虚拟网卡呢?希望斑竹能耐心的具体的讲讲,谢了先!
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-14 19:44
感谢Mike,我昨天也想过这个问题了,如果自己实现一个MINIPORT,完全可以搞定NAT的问题,但实现一个MINIPORT,就意味着至少有两张网卡(一个是虚拟的),但是,怎么才能使我要加密的数据走虚拟网卡,而使不需要加密的数据走普通网卡呢?总不能根据包来判断吧?这样可能会使用帮定在不停的变化,这应该是不行的吧?所以,我必须要有一种方式来控制,但是,应该怎样控制呢?
游客

返回顶部