Chinaunix

标题: 路由处理下行数据,如何根据目的MAC地址过滤 [打印本页]

作者: 薛定肚子饿    时间: 2018-02-01 14:52
标题: 路由处理下行数据,如何根据目的MAC地址过滤
如题


目前小弟的两种思路均告失败:
1、iptables
iptables能在上行数据中实现源MAC地址匹配,下行数据中的目的MAC地址匹配却不行。
2、tc中的u32 match
可以match终端电脑的ip,而match到的目的MAC地址是路由器外网卡的,而不是我要的终端电脑MAC。


还请给位大侠不吝赐教,万分感谢。


作者: nswcfd    时间: 2018-02-02 21:04
“match到的目的MAC地址是路由器外网卡”和“match终端电脑的ip”是同时满足的么?
"match终端电脑的ip"是src match还是dst match?
作者: 薛定肚子饿    时间: 2018-02-05 15:01
回复 2# nswcfd

可以理解为同时满足,都是在tc的filter上match。
"match终端电脑的ip"在下行流量中当然是dst ip。

作者: nswcfd    时间: 2018-02-07 09:35
也就是说,出现了dst ip是终端的ip,但是dst mac却不是终端的mac,反而是路由器外网口的mac的情况?
听起来不太合理?
作者: 薛定肚子饿    时间: 2018-02-07 09:58
回复 4# nswcfd

然而事实就是这样,现在我们的战线统一了。
我的理解是网络层和数据链路层之间不同步。




作者: goingstudy    时间: 2018-02-07 10:57
你这个需要在更底层处理吧,在neighbor那一层吧?neighbor回查找输出的mac,在这里?
作者: wait_rabbit    时间: 2018-02-07 19:32

局域网的主机,怎么可能获得路由器外网口的 MAC ?  内网口还差不多。

然后 tc 已经是可以过滤的最底层,紧接着就直接从网卡发出去,所以你只能修改 driver

但你这个问题的根源在于,为什么 kernel 生成了错误 MAC 的包?解决了这个问题,就能用 tc 了。


作者: 309569929    时间: 2018-06-26 19:31
回复 1# 薛定肚子饿

路由处理下行数据,目的MAC地址不就是路由器本机的mac嘛。
正常情况下不是本机的mac,数据包就被丢弃了,不可能上送到协议栈
作者: mm50734010    时间: 2019-03-13 11:11
下行dest ip是路由器IP,但是dest mac不是路由器的mac ?很奇怪的组网啊




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