答案1
我认为你需要启用的功能是IP 转发。
可以使用以下sysctl
实用程序进行访问:
sysctl -a | grep forwarding
在我的 Mac 上生成:
net.inet.ip.forwarding: 0
net.inet6.ip6.forwarding: 0
在 Ubuntu 上可能看起来略有不同。该0
值表示 IP 转发已禁用。
为了启用 IP 转发(v4),我将以 root 身份执行以下操作:
[nevin-mac-mini:~] root# sysctl net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1
这应该会立即生效,但是重启后它不会继续存在。为了做到这一点,我会放置
net.inet.ip.forwarding=1
在/etc/sysctl.conf
。
答案2
感谢您的回答,我最终可以通过在交换机中重写数据包的目标 Mac 地址来做到这一点。问题是,主机 2 丢弃了不是发往它的数据包(不同的 Mac 目标地址)。因此,通过将目标 Mac 地址重写为交换机 2 中的主机 2 的 Mac 地址,并通过激活主机 2 中的 IP 转发,流量被成功重定向。所以第一步是告诉 S2 将流量发送到主机 2,目标 Mac 是主机 2。第二步是告诉 S2 将从主机 2 返回的流量的 Mac 地址重写为主机 3 的 Mac 地址(以恢复原始 mac 地址)。