使用 iptables 将接收到的镜像流量发送到 docker 应用程序?

使用 iptables 将接收到的镜像流量发送到 docker 应用程序?

我有一个接收的设置镜像流量来自我的网卡(eth0)上的许多IP地址。

我想将接收到的发往特定 IP 地址(例如 8.8.8.8)的数据包发送到在同一主机上运行的 docker 容器(例如 IP 172.17.0.2)

数据包(目标 8.8.8.0 等)-> eth0 -> 使用 iptables 过滤 8.8.8.8 -> docker 容器(172.17.0.2)

自从这些包裹不是寄给我的我无法使用 iptables 过滤它们并将其 DNAT 到 docker 容器中。

由于我对此还不熟悉,因此非常感谢任何帮助。

曾经有一个类似的问题,但我并没有真正明白。 使用 iptables 过滤镜像端口流量

编辑:NIC 已处于混杂模式,因为我同时在其上运行 tcpdump。我不知道这是否有助于回答,但 NIC 仅用于接收镜像流量。并且没有为其分配 IPv4。

答案1

您是否尝试过 PREROUTING 部分*自然? 规则应该如下所示:

iptables -t nat -A PREROUTING -d 8.8.8.8/32 -j DNAT --to-destination 172.17.0.2

在执行 PREROUTING 规则之前*筛选,因此它应该可以工作。

相关内容