Linux 使用 ebtables 进行路由、过滤和转发 EAPoL 帧

Linux 使用 ebtables 进行路由、过滤和转发 EAPoL 帧

给定 3 个以太网接口,我想完成此任务:

eth0 -> WAN
eth1 -> EAPoL authenticator
eth2 -> IP Nat to private network

在这种情况下,我希望 ebtables 通过 eth1 过滤并转发 0x888E (EAPoL) 类型的以太网帧到 WAN 或从 WAN 转发,该 eth1 将连接 EAPoL 身份验证器。剩余的流量我想通过 IP NAT 到 eth2。

我在这里读到关于布鲁廷的文章:

http://ebtables.netfilter.org/examples/basic.html#ex_brouter

虽然不清楚我如何使用上述内容进行第 2 层过滤。

相反,到目前为止我尝试的是使用 eth0 和 eth1 创建一个桥,然后创建一个 ebtables 过滤规则,以便只有 EAPoL 流量到达 eth1:

ebtables -t filter -A FORWARD -i eth0 -p 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -i eth0 -j DROP
ebtables -t filter -A FORWARD -o eth0 -p 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -o eth0 -j DROP

然后我在 eth0 和 eth2 之间进行 IP NAT:

iptables -t nat -A POSTROUTING -o eth0-j MASQUERADE
iptables -A FORWARD -i eth2 -j ACCEPT

不幸的是,我无法让这两者同时工作,只能其中之一。

有任何想法吗?感谢任何想法或提示

相关内容