在链路层修改包并送回协议栈

发布于 2022-10-15 07:53:14 字数 175 浏览 21 评论 0

请问有没有方法能在以太网桢进入协议栈之前,在链路层截取以太网桢,对以太网桢头做修改后,再送回内核协议栈处理?

试过用libnetfilter_queue处理,但好像只能修改IP层以上的部分。

有其它办法吗?用netfilter的hook可以吗?或者有更方便的方法?

谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

意中人 2022-10-22 07:53:14

你想修改什么内容, MAC 头部吗

忘东忘西忘不掉你 2022-10-22 07:53:14

嗯,是的

眼泪都笑了 2022-10-22 07:53:14

你的目的是什么,为什么要修改 MAC,源 or 目的?

无声情话 2022-10-22 07:53:14

你的目的是什么,为什么要修改 MAC,源 or 目的?
Godbach 发表于 2011-05-05 09:47

其实是这样的。。是我自己的一个实验性的想法

我们学校上网用的是锐捷认证,基于802.1X认证那种。在通过认证之前,应该只有802.1X包才能通过交换机,所以内网的机器虽然连在同一个交换机上,还是不能通信。我的想法是,把正常的IP数据封装在802.1X包里,发送出去。接收到包的机器上再作相应处理,取出IP部分,这样两台内网的机器在通过认证前也能通信了。

所以就有了之前的那个需求。第一,要自己填写源MAC和目的MAC,因为ARP也不起作用了。第二,MAC头的协议部分要写成802.1X(0x888e),以通过交换机。

现在的问题是,如果理论上这个想法可行,用哪种方法实现最方便? netfilter hook? 或者TAP/TUN可以吗?

诠释孤独 2022-10-22 07:53:14

在netif_receive_skb里改

小矜持 2022-10-22 07:53:14

netfilter 是在IP层注册的钩子.
因此使用netfilter的钩子来修改L2层的数据似乎不行。

回复 5# morfast

清浅ˋ旧时光 2022-10-22 07:53:14

回复 7# asweisun_shan

NF 在二层也有实现

梦幻的心爱 2022-10-22 07:53:14

回复 8# Godbach

    版主的意思,就用NF hook来实现? 我试试看

肩上的翅膀 2022-10-22 07:53:14

ebtable不行吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文