九阳神功爱喝茶 发表于 2015-05-06 11:08

如果一个开发板有多个网卡,这个时候怎么选择从哪个发送出去?

还是两个都发送?

九阳神功爱喝茶 发表于 2015-05-06 11:28

我的理解是,会通过遍历路由缓冲表和路由表,选择一个skb->dev来确定传输的接口

philarlala 发表于 2015-05-06 12:25

同意楼上的

九阳神功爱喝茶 发表于 2015-05-06 15:35

楼上是我自己,哈哈哈回复 3# philarlala


   

super皮波 发表于 2015-05-06 15:56

回复 1# 九阳神功爱喝茶

根据路由表决定从哪个dev发出
   

九阳神功爱喝茶 发表于 2015-05-06 17:23

谢谢。我现在想这么个问题,也是我导师要求的,做成多接口传输,我想的是在路由器上插两个无线网卡,先在ip层把数据复制一份,查完路由表之后人为修改skb->dev让数据分别从两个网卡发送出去,您觉得怎么样?回复 5# super皮波


   

super皮波 发表于 2015-05-06 17:40

回复 6# 九阳神功爱喝茶
个人理解:感觉你的方法要改协议站代码,我觉得可以在netfilter中进行处理,加在LOCAL_OUT hook点上,不一定对,供你参考

   

九阳神功爱喝茶 发表于 2015-05-06 17:59

是的,我也是准备挂在这儿。不管能不能成功,也只能试一试了。谢谢你回复 7# super皮波


   

philarlala 发表于 2015-05-06 21:27

skb->dev=skb_dst(skb)->dev ,在数据包出去的时候有这样的赋值过程,因此要修改的可能是skb->dst(不同内核skb中的成员名称不一样,反正就是就代表出口路由的那个成员)这个参数,如果想两个网卡都发送的话,可以通过skb_dst_set重新设置skb->dst.之前有写过修改数据包的出口的代码,记得大概是这样的,供参考

anyhit 发表于 2015-05-15 16:09

回复 6# 九阳神功爱喝茶
你从两个网卡都发出去意义何在?要解决什么问题
如果局域网广播包没问题。但也不用改内核的。你使用brctl桥接成一个口,如br0 就ok了
如果单播包 从两个网卡都发。想想都头疼。网络协议全乱了

一般两个网卡可以 使用 ip rule,ip route等命令配置出 简单的运营商策略 和 负载均衡
   
页: [1] 2
查看完整版本: 如果一个开发板有多个网卡,这个时候怎么选择从哪个发送出去?