linux raw socket 绑定指定网卡的问题

cqliuxuelin 2011-07-31 10:15:03
现在有一个需求:通过绑定到某个指定网卡(eth1)的raw socket获取从该网卡接收的所有IP数据包,同时将这些IP包经过一定的处理后通过另外的网口(比如 eth2)发送出去。而从eth2收到的数据再通过eth1发送出去。这里的功能跟路由转发相似,只不过中间要对IP包进行一定的修改。
问题:现在通过绑定一个raw socket 到网卡eth1来获取并处理eth1收到的IP数据包。现在我用的是socket接口bind绑定到eth1上,但这里存在一个问题,bind接口只支持AF_PACKET类型的socket,而AF_PACKET类型的socket需要自己处理链路层信息。所以通过该rawsocket发送数据的时候,不好获取对端设备的mac地址,特别如果对端设备是路由器,而不是IP包的目的地址的时候。
请各位大侠指点!!!非常感激!!!
...全文
743 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,772

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧