Linux 以太网中继器

Linux 以太网中继器

有没有办法在Linux机器中配置两个以太网接口作为以太网工作中继器即,一个接口中的内容会立即从另一个接口中传出。我知道有桥接,但我希望有更直接的转发所有流量,包括从 01:80:C2:00:00:00 开始的保留 MAC 地址。

如果 Wireshark 可以捕获所有数据就好了。

答案1

Linux 可以配置为允许转发一些这些地址,但不是全部。

尤其是,您无法启用00/ 01/ 02(STP 和 LACP 帧) 的转发。其余的 (如 LLDP) 可以通过 启用/sys/class/net/br0/bridge/group_fwd_mask,例如将其设置为 248 以启用除上述三个组之外的所有内容的透明转发。

对于完全转发,您可能需要在用户空间中做一些事情 - 例如,不是使用桥接器,而是运行一个进程来在两个单独的接口之间手动复制帧:

socat interface:eth0 interface:eth1

或者,找到一个支持“L2 协议隧道”的以太网交换机(至少 TP-Link 是这么称呼该功能的)。

我认为 OpenBSD 或 FreeBSD 有一个“TPMR 桥接”模式,可以基本实现这一点。

答案2

下一个 socat 功能版本将添加选项 packet-auxdata 和 iff-promisc。选项 packet-auxdata 还允许复制 VLAN 标签,除非 socat 执行额外工作来获取这些标签,否则 Linux 内核会过滤这些标签。选项 iff-promisc 将接口置于混杂模式,这样硬件就不会过滤未发送到主机的帧。

这些选项在当前 1.7.4.4 版本中尚不可用。

socat INTERFACE:eth0,packet-auxdata,iff-promisc INTERFACE:eth1,packet-auxdata,iff-promisc

相关内容