Chinaunix

标题: 如何知道网络数据包来自哪个物理网卡 [打印本页]

作者: bripengandre    时间: 2009-05-12 09:55
标题: 如何知道网络数据包来自哪个物理网卡
在linux2.6.25下通过netfilter钩子对网络数据包进行处理,现在想得到当前的数据包来自那个物理网卡,去向哪个物理网卡(在FORWARD链上),但从netfilter的回调函数参数中得到的只是逻辑网卡的地址(如果eth0和eth1被bond到bond0上,那么来自eth0或eth1的包都显示来自bond0)。那有什么办法得知数据包来自哪个物理网卡呢?

貌似从skbuff里获取到的也是逻辑的,相关的质疑如下:
   linux2.6.18内核中,skbuff结构体中有如下两项
struct net_device *dev;
struct net_device *input_dev;
linux2.6.25内核中结构体中只有如下一项
  struct net_device *dev;
  这几个字段分别代表什么意思,为什么2.6.25中只要一项了?

请大家为我解疑答惑,谢谢~~
作者: dreamice    时间: 2009-05-12 12:31
标题: 回复 #1 bripengandre 的帖子
看mac地址就知道了,数据包里面你可以检查mac地址来确定




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2