modernrabbit
驱动牛犊
驱动牛犊
  • 注册日期2009-03-31
  • 最后登录2013-02-18
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:2381回复:4

请教一个关于Winpcap和Passthru结合的问题

楼主#
更多 发布于:2010-01-27 11:16
有没有可能用Winpcap监听报文的同时用Passthru控制报文是否需要传给上层呢?

我现在需要把报文从一个网卡监听之后从另一个网卡上发出去(这一步用Winpcap做了),但是原先的网卡会受到一份同样的报文并传给上层协议栈,怎样才能避免原先的网卡处理该报文呢?

多谢:)!
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2010-01-27 15:24
Passthru禁止一切报文接收.都使用你的应用层报文处理不久可以了
走走看看开源好 Solaris vs Linux
modernrabbit
驱动牛犊
驱动牛犊
  • 注册日期2009-03-31
  • 最后登录2013-02-18
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2010-01-27 15:33
回 1楼(cyliu) 的帖子
我担心的是如果Passthru把所有的报文都禁掉了,会不会Winpcap也收不到报文了?Winpcap的驱动貌似是一个Protocol Driver,是在Passthru IMD的上面的……

而且现在比较诡异的是之前写的一个Passthru中间层驱动调试OK了,现在一开应用层Winpcap的处理程序就回蓝屏,搞得很郁闷……

还望指点啊
modernrabbit
驱动牛犊
驱动牛犊
  • 注册日期2009-03-31
  • 最后登录2013-02-18
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地板#
发布于:2010-01-27 16:33
回 1楼(cyliu) 的帖子
其实我的问题是这样:

我需要把报文从一个网卡A转发到另一个网卡B上(中间要做一步NAT),这一招对ICMP没有问题,但是遇到TCP时出现问题。我的链接是从网卡B上建立的,报文发到网卡A时,pcap和主机协议栈同时收到这个报文,结果主机看到是发给网卡A的但是A上并没有打开任何TCP链接,于是就发送一个RST报文把链接重置了,结果就挂了。

我在想有没有什么办法让报文不从网卡A送入主机协议栈,从而避免这个RST包呢?
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地下室#
发布于:2010-01-28 17:10
如果是做nat,就去掉winpcap。直接使用passthru,这个做起来也不复杂,很简单。

winpcap用在这里是错误的解决方法。
走走看看开源好 Solaris vs Linux
游客

返回顶部