iptables实现对目的mac的限制
iptables里面有一个mac模块可以对源mac进行限制,但是没有对目的mac进行限制。有其他拓展模块可以对目的mac进行限制吗?mac match options:
[!] --mac-source XX:XX:XX:XX:XX:XX
Match source MAC address
本帖最后由 Godbach 于 2016-09-02 21:53 编辑
回复 1# linuxlearning4R
这个 mac 匹配的就是 源 IP,应该是匹配 dst mac 没有太大意义吧。
kernel 中的 xt_mac.c 的核心代码如下,也说明是 source mac
28 static bool mac_mt(const struct sk_buff *skb, struct xt_action_param *par)
29 {
30 const struct xt_mac_info *info = par->matchinfo;
31 bool ret;
32
33 if (skb->dev == NULL || skb->dev->type != ARPHRD_ETHER)
34 return false;
35 if (skb_mac_header(skb) < skb->head)
36 return false;
37 if (skb_mac_header(skb) + ETH_HLEN > skb->data)
38 return false;
39 ret= ether_addr_equal(eth_hdr(skb)->h_source, info->srcaddr);
40 ret ^= info->invert;
41 return ret;
42 }
回复 1# linuxlearning4R
LZ 对匹配 dest mac 的需求是什么。
Godbach 发表于 2016-09-02 21:54
回复 1# linuxlearning4R
LZ 对匹配 dest mac 的需求是什么。
我也大概看了一下netfilter里面的xt_mac.c文件,按理来说说,nf是在三层的,mac地址是在二层的。
但是包由二层进入三层的时候,skb里面带有源mac信息,所以nf就实现了基于源mac的匹配。
到包要往外发的时候,目的mac是在二层填上,让后由网口发走的。所以nf完全时候是不知道目的mac是什么的。
所以,按理来说,nf(iptables)是没办法做基于目的mac的匹配的,这样理解对吗?
我后来查了一下,有一个ebtables是可以实现对源/目的mac进行匹配限制,但是ebtables只能是用在网桥模式上,对路由模式是不生效的。
回复 4# linuxlearning4R
是的,ebtables 应该是支持的。
只是要搞清楚你什么场景,需要过滤目的 mac
回复 5# Godbach
应用场景,就是常见的防火墙部署。客户说为什么会有源mac限制,但是没有目的mac限制。
所以非得要弄一个目的mac限制出来。并且只要路由模式的。
那么ebtables只是用在以太二层,走的是桥模式,不是路由模式,有不满足客户需求,无语了
回复 6# linuxlearning4R
哈哈,果然是客户的不假思索需求啊。
页:
[1]