阅读:1804回复:6
NAT与中间层驱动。
发信人: cloudycro(Genie), 信区: ProtocolDev. 本篇人气: 41
标 题: NDIS中间层驱动问题。 发信站: 南京大学小百合站 (Mon Dec 15 10:59:16 2003) 一个双网卡网关,一个在内网为NIC-in,一个在外网为NIC-out。 要装一个中间层驱动,捕获每个数据包,记录是内网哪个机器发出的向外的包,还要纪录 法这个包做什么用(访问的IP、端口、协议等)。 我的驱动绑定到哪个网卡?要自己实现NAT么?? 不知有没有大侠做过,指教一二。。。谢谢。 |
|
沙发#
发布于:2003-12-17 09:21
这两天一直在看资料,觉得可以两种方法:
一个是,绑定到内网的网卡上一个驱动,自己建立维护一个类似NAT的驱动映射表,外网的网卡上来进行包过滤等,也可以查这个表来判断包的来源,难道要用什么内存共享、映射的么?还得好好看看。 另一个是,直接绑定到内网的网卡上,这样就方便得到发出的包的来源,可是进来的包的目的应该是服务器的IP,也是不妥。 此时,在论坛上我知道了中间层驱动可以绑定到所有或者某个NIC上,还没有试过,sigh,要看得东东真叫多。 有理解有误的地方,请指点。 |
|
板凳#
发布于:2003-12-17 09:46
NAT你不用做吧,windows是可以完成这工作的,你只要在中间层的驱动中截包看看是从那个地址来,发向哪个地址的就行了。你要是只想监视内网对外网的访问。就在内网卡装imd吧,只在PtReceive()中检查包。
|
|
|
地板#
发布于:2003-12-17 11:19
那么我要记录内网的访问,只记下内网发出的就好了,不需要知道外网的响应对么?我原来想的是外网回来的数据包的目的地址应该写的是服务器对外的IP,所以这样进来的包没办法知道是那个机器提出的申请,不过,经你提醒,放在内网上在ptreceive里面控制和记录就好了吧? :D
|
|
地下室#
发布于:2003-12-17 11:23
你可以抓包看看就知道了。如果你不考虑内网某台机器对外网访问是否成功,只看内网机器要做什么的话,只在ptreceive中作工作就可以。
|
|
|
5楼#
发布于:2003-12-17 15:07
嗯,试试才知道。 :D
|
|
6楼#
发布于:2003-12-19 09:41
:(
还有一个问题,就是如果服务器上这个外网卡收到不需要转发的数据包,就是发给本服务器的包,那要想监控这种包就应该把自己的驱动绑定到外网卡上了吧?那是不是分开比较好那?高人们给提个意见吧! :mad: |
|