skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1756回复: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...
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-11 15:01
你在哪里??只有网卡还不足以穿越nat吧,不过ftp是不用改端口号了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-11 15:10
SAFENET是什么地方??
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
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斑竹快出来救命啊。。。。。。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2003-03-11 17:58
makeluo你在搞笑吧,这里可是严肃的场合哟?开玩笑的,我不太明白你的前一个问题:),但是后面的问题可以回答。
SAFENET是一个欧洲的公司,专门做网络安全的,这个从名字上能看出来吧?还有,你要回答我的问题呀?上次我听HU斑竹说他也给你讲过这个问题的,你明白了吗?还有,刚才的分析有误,实际的情况是,SAFENET的驱动似乎也不是做在MINIPORT的,我刚才看了,根据IDRA所反映出来的IMPORT,应该没有用到PROTOCOL、IM、MINIPORT所必须用到的函数,唉。。。。。郁闷啊。。。。
感觉其实现似乎没有做在NDIS,我该怎么办呢?如果,它的实现在TCP/IP堆栈的(当然是MS公开了源码),我们研究就没有搞头了:(
算了,还是回到现实中,我应该怎么做呢?如果就简单而言,显然IM层次的改动就可以了,但是,我想实现得更好些。
说了那么多废话。。。。。
Hu斑竹快出来救命啊。。。。。。



最近我脑子里面关于vpn的存货不多,一门心思都放在一个木马
上面了。

你能不能具体点描述你遇到的问题,我记不清楚我以前跟mike
说过什么,更不记得以前我说过什么。

你先具体描述你遇到的问题,应用问题,然后大家再来讨论具体
地实现方法和技术细节。

本来我对vpn兴趣已经不大了,因为看起来no silver bullet。
不管是哪种解决方案,都难以同时解决如下问题:

1、双对称nat环境下(对称nat的定义,参看stun draft)
没有人能够解决,除非用application routing。

2、内部保护多网段,或vlan,或内部还有firewall/router。

3、远程用户的虚拟网卡的地址获得,不管是dhcp over ipsec,
还是ike mode(draft已经过期),或者lt2p,都会遇到问题2。

4、内部网络地址冲突,或者虚拟网卡地址冲突。(部分问题可以
用全域名解决,由vpn gateway做address alise,但是,该技术
非常不成熟,会遇到及其多的问题)。

5、策略发放,策略管理――没有标准,无法互联。有一些垃圾
draft,没有发现有产品支持。

6、wins,dns,ldap的集成,或者更进一步,和网络邻居集成――
不配置wins server的情况下――可以通过dhcp给虚拟网卡配置
wins server,或者自己给自己做代理,但是,没有标准,因此
无法互联。

7、广播包,多播包 over ipsec。

8、vpn gateway和内部的firewall的配合――总会和解决问题2
和问题6,7的方案冲突。


不再回忆从前,我已经生活在幸福当中。
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-11 19:45
十分感谢斑竹的回答,这些东西很明显都是IPSEC固有的问题,但是,虽然DRAFT有这么多的缺陷,但我们还是要做的。
我现在的问题似乎是我没有说清楚,在IPSEC gateway和VPN 客户端走隧道模式的时候,会有设置一个虚拟地址的问题(用于网关的验证),这个地址将会被封装在一个IP包里,但在windows中,如果,我的真实IP是通过PPP拨号得到的,而我另外设置这个虚拟IP,在我向APP传送包的时候,对于象FTP这样的协议,就会导致我必须做一个地址的转换,这跟NAT的原理是一样的,其实,也就是实现了一个NAT,象FTP这样的协议穿越NAT,斑竹可能知道我们都是利用维持一个链表来实现,(对每个包的地址进行改变,这也是RFC提示的做法)我想问的是,我们在windows是否有其他的实现方式,不需要改变每个包的地址?
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2003-03-11 19:55
十分感谢斑竹的回答,这些东西很明显都是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分
8楼#
发布于:2003-03-13 15:59
再次感谢斑竹的回答,但是,我仍然不是很明白,比如,我的程序的IPSEC是实现在IM,而实现虚拟网卡是指实现一个MINIPORT的驱动,你的意思是不是我要实现两个驱动?并且,在走IPSEC的时候,如果我有虚拟网卡,是不是要求所有的包都走虚拟网卡呢?希望斑竹能耐心的具体的讲讲,谢了先!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-13 16:52
再次感谢斑竹的回答,但是,我仍然不是很明白,比如,我的程序的IPSEC是实现在IM,而实现虚拟网卡是指实现一个MINIPORT的驱动,你的意思是不是我要实现两个驱动?并且,在走IPSEC的时候,如果我有虚拟网卡,是不是要求所有的包都走虚拟网卡呢?希望斑竹能耐心的具体的讲讲,谢了先!


具体的实现方式要有你自己决定了,你可以选择使用一个imd+一个虚拟网卡,也可以选择别的方式,我能想到的有5、6种。至于具体该从那块网卡走这个是要路由来决定的了。如果系统中有多个网卡的时候就比较麻烦了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-14 19:44
感谢Mike,我昨天也想过这个问题了,如果自己实现一个MINIPORT,完全可以搞定NAT的问题,但实现一个MINIPORT,就意味着至少有两张网卡(一个是虚拟的),但是,怎么才能使我要加密的数据走虚拟网卡,而使不需要加密的数据走普通网卡呢?总不能根据包来判断吧?这样可能会使用帮定在不停的变化,这应该是不行的吧?所以,我必须要有一种方式来控制,但是,应该怎样控制呢?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-14 21:11
路由
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部