是否有工具可以在 Linux 中定义类似于基于策略的路由的东西,但在第 2 层?通常,Linux 网桥使用目标 MAC 来决定将帧发送到哪个接口。可以改变这种行为吗?
假设我们有一台具有多个接口(物理接口、虚拟接口、VLAN 标记子接口等)的机器。一个帧到达其中一个接口。我们能否根据帧中的 VLAN 标记、源 MAC 地址、源接口、802.1p 优先级等参数决定将帧传送到哪个传出接口?
答案1
听起来你正在寻找ebtables
ebtables 程序是一个用于基于 Linux 的桥接防火墙的过滤工具。它能够透明地过滤通过 Linux 桥接的网络流量。过滤功能仅限于链路层过滤和更高网络层的一些基本过滤。还包括高级日志记录、MAC DNAT/SNAT 和桥接器功能。
ebtables 工具可以与其他 Linux 过滤工具(iptables、ip6tables 和 arptables)结合使用,以构成一个桥接防火墙,该防火墙也能够过滤这些较高的网络层。这是通过 bridge-netfilter 架构实现的,该架构是标准 Linux 内核的一部分。