将 Linux Bridge 上的流量镜像到监控接口

将 Linux Bridge 上的流量镜像到监控接口

我想记录和监控通过我网络中特定点的流量。因此,最终我希望通过我的网桥的所有流量都镜像到另一个系统的 IP 地址,该系统正在监听发送给它的任何流量。

我目前的设置大致如下:

  • 监控/日志服务器,监控接口设置为混杂模式
  • 我想要监控的网络点上的 Linux 桥接器
  • iptables 规则尝试将流量镜像到备用网关
    • iptables -t mangle -A PREROUTING -j TEE --gateway <monitoring ip>
    • iptables -t mangle -A POSTROUTING -j TEE --gateway <monitoring ip>

但到目前为止,我没有看到任何流量通过任何接口流向监控 IP,除非我尝试直接 ping 它(这样我可以看到网桥和监控端口上的流量)。

还有一个问题可能值得注意。我不得不为监控端口的 ARP 解析设置静态路由,因为出于某种原因,它总是将管理端口的 MAC 作为地址。尚未确定为什么当网络上没有其他客户端时,网桥会根据监控 IP 获取管理 MAC 地址。

任何建议都将不胜感激,如果我没有提供足够清晰的细节,请原谅。

答案1

默认情况下,交换帧不会通过 iptables 规则传递。要更改此行为,您应该在桥接接口上启用 nf_call_iptables 选项(使用 ip 命令或通过 /proc 文件系统)

ip link set dev br0 type bridge nf_call_iptables 1

要限制监控流量,请在 iptables 规则中使用 --phys-dev 匹配。

相关内容