如何让局域网中的主机在 Linux 中转发同一局域网内其他主机之间的流量

如何让局域网中的主机在 Linux 中转发同一局域网内其他主机之间的流量

我正在设置测试拓扑如下:

Switch1-----Switch2-----Switch3
   |           |           |
   H1          H2          H3

我希望从 H1 到 H3 的流量先访问 H2,然后再转发到 H3。我已经在交换机 (OpenVSwitch) 上设置了流量规则来实现这一点。但是,当流量流向 H2 时,流量在那里被丢弃了。

我想知道我应该向 H2(Ubuntu 14.04)添加哪些配置,以便使 H2 能够转发不是发往它也不是源自它的流量。

答案1

您必须允许转发

echo 1 > /proc/sys/net/ipv4/ip_forward

如果您希望永久保留,请编辑文件 /etc/sysctl.conf

net.ipv4.ip_forward=1

答案2

感谢您的回答,我最终可以通过在交换机中重写数据包的目标 Mac 地址来做到这一点。问题是,主机 2 丢弃了不是发往它的数据包(不同的 Mac 目标地址)。因此,通过将目标 Mac 地址重写为交换机 2 中的主机 2 的 Mac 地址,并通过激活主机 2 中的 IP 转发,流量被成功重定向。所以第一步是告诉 S2 将流量发送到主机 2,目标 Mac 是主机 2。第二步是告诉 S2 将从主机 2 返回的流量的 Mac 地址重写为主机 3 的 Mac 地址(以恢复原始 mac 地址)。

相关内容