- 论坛徽章:
- 36
|
本帖最后由 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 }
|
|