阅读:1452回复:9
请教关于网关主机与客户机的通讯?
请教各位大侠:
在局域网中,设A机为主机192.168.0.1,B机为192.168.1.11,B机设网关为192.168.0.1,B机借A机上internat.根据网关的一些介绍,B机向internet发送GET请求,自己是不感觉在使用代理的,B机的应用程序就是直接同远程主机connect的,但实际却是将数据包发给了A机. 现在,我要在A机上加一驱动,使用ndis层拦截B机的请求数据包,(像较著名的winRoute就是用ndis拦截的),并且能经A机应用程序加工后发还给B机,请问能否实现? 如果可以,请介绍一下实现原理,非常感谢!! |
|
最新喜欢:baoyib... |
沙发#
发布于:2003-02-14 14:56
可以实现。虚拟网卡或者中间层都可以吧
|
|
|
板凳#
发布于:2003-02-14 15:12
能介绍一下吗?
个人感觉难度在于: A机截获数据包是不成问题的,主要是B机向A机发送的是socket数据包,还A机并没有处于listen状态, 那回复数据包时如何让B机感觉socket已连接, 并接收的是socket数据呢? 谢谢! |
|
地板#
发布于:2003-02-14 15:24
socket是应用层的东西,在驱动里面没有这些东西,不关系socket的状态,关心的是mac地址,ip地址,端口这些东西,和socket没有任何关系吖。socket数据包怎么发????还不是IP报文么?
|
|
|
地下室#
发布于:2003-02-14 15:36
socket是应用层的东西,在驱动里面没有这些东西,不关系socket的状态,关心的是mac地址,ip地址,端口这些东西,和socket没有任何关系吖。socket数据包怎么发????还不是IP报文么? 当然,驱动里是没有socket概念的,要发送当然要相关联的应用程序来完成.这只是概念,可以忽略的. 我不是要发送socket,而是想如何回应B机的数据包请求? 这个问题太难了,如何能解决的话,可以做一个sygate了.所以只能讨论一下. |
|
5楼#
发布于:2003-02-14 15:56
sygate就是做了一个NAT,不是代理,这两种方式很不同的。
坛子里有一些人也做过nat,不过不如sygate的nat做的好,至于b机向A机发包是通过路由完成的,会来的包经过nat以后目的IP是在你的网关后面,直接发出去就行了 |
|
|
6楼#
发布于:2003-02-14 16:22
sygate就是做了一个NAT,不是代理,这两种方式很不同的。 看了回复,感觉明白一些。 那能再介绍一下用ddk开发nat吗?最好有一些简单的例子。我主要是想了解nat过程间的数据包接收和发送的握手过程。 我自己也再找找看。 |
|
7楼#
发布于:2003-02-14 16:35
nat是网络地址翻译,不要什么连接握手吖,这个有RFC文档可以参考,具体是那篇我不记得了。
网关里面的机器不要和网关连接,网关也就是一个转发,当然要处理一下IP地址的问题,将私有IP映射成一个共有IP |
|
|
8楼#
发布于:2003-02-14 16:51
nat我是知道的。但翻了一下驱坛,感觉这方面的贴子基本没有,还是无从下手。
感谢回复。 |
|
9楼#
发布于:2003-02-14 17:22
看RFC和linux下的nat的代码吖
|
|
|