我在一台有 2 个接口的物理机上安装了 WANem 3.0 Beta 2,并且有 2 个 Linux 机器连接到它。如下所示:
Linux1:100.100.100.2 <--> 100.100.100.1:WANem:200.200.200.1 <--> 200.200.200.2 Linux2
我已将每个 Linux 机器设置为使用它们所连接的 WANem 接口作为网关。每个 Linux 机器都可以 ping 两个 WANem 接口的地址(即 Linux1 可以 ping 100.100.100.1 和 200.200.200.1)。但是它们都无法互相 ping。通过阅读教程,似乎默认情况下它应该可以工作,但它却不起作用。有人知道如何设置 WANem 来执行这种路由吗?我不熟悉 WANem shell。
谢谢!
编辑:看来在这个配置中你需要手动添加 IP 转发 - 在 WANem shell 中我输入:
echo 1 > /proc/sys/net/ipv4/ip_forward
并且我能够 ping 通两个端点。这只是一个临时更改,因此如果您重新启动,它将恢复为不转发。我还没有尝试过,但显然这是由文件 /etc/network/options 控制的,因此您可以编辑它并将 ip_forward=no 更改为 ip_forward=yes,更改应该是永久的。
答案1
这里的节目有点晚了,但是自从发布以来还没有发布新的 WANem,所以这很有意义。
实际上,WANem 3.0 所基于的 knoppix 版本中存在一个 Debian Squeeze 错误,这使得情况变得有点复杂。
解决方案是添加设置net.ipv4.ip_forward = 1
(/etc/sysctl.conf
因为在 Debian Squeeze 中,/etc/network/options
已被弃用)。
不过,由于存在错误,这只是解决方案的一部分。Debian Squeeze/etc/init.d/procps
在加载网络模块之前执行(应用 sysctl 配置中的设置),因此模块会忽略它们。要解决此问题,您需要重新启动服务/etc/init.d/procps
。/etc/rc.local
此解决方法的全部功劳归于这个帖子经过弗拉基米尔·科诺年科
链接的问题基于一个具有空rc.local
文件的系统,因此请使用此示例,因为 WANem 在 rc.local 中具有启动所需的逻辑。
rc.local
#!/bin/bash
#
# rc.local
#
# Load kernel variables from /etc/sysctl.d and /etc/sysctl.conf
/etc/init.d/procps restart
# Start local services after hardware detection
SERVICES="apache2 ajaxterm"
for i in $SERVICES; do
[ -x /etc/init.d/"$i" ] && /etc/init.d/"$i" start >/dev/null 2>&1
done
exit 0
这将修复并启用 ip_forwarding,并在重启后继续生效(如果你已使用以下命令将 WANem 安装到虚拟机的硬盘上)0wn