连接两个网络

连接两个网络

我想将两个网络互连。

每个网络都应该通过运行 Ubuntu 的 PC 连接到另一个网络。

因此,我有三个网络:NW1:192.168.1.x NW2:192.168.2.x 和 MgmtNW:192.168.3.x,连接方式如下:

NW1--Ubuntu1---MgmtNW---Ubuntu2--NW2

现在,通过我所设置的设置,我可以从路由器“Ubuntu1”上“看到” NW2 中的一台计算机,但令人惊讶的是,我无法从路由器 Ubuntu2 上看到 NW1 中的另一台计算机。我无法从 NW1 中的客户端上看到 NW2 中的客户端。

我的设置如下:

每个 Ubuntu 服务器在 MgmtNW(192.168.3.x)中配置了一个网络接口,在 NW1 和 NW2 中分别配置了另一个网络接口。

Ubuntu1 的接口设置如下:192.168.1.10 192.168.3.10

Ubuntu2 的接口设置如下:192.168.2.20 192.168.2.20

net.ipv4.ip_forward=1在两个路由器上都设置过了。

此外我还配置了以下路线:

在 Ubuntu1 中:

route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.3.20 #20 is the Ubuntu2 interface into mgmt NW

在 Ubuntu2 中:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.10 #10 is the Ubuntu1 interface into mgmt NW

192.168.1.x 中机器的默认 GW 是 192.168.1.10(Ubuntu1),192.168.2.x 中机器的默认 GW 是 192.168.2.20(ubuntu2)。

我遗漏了什么?我必须添加 iptables 规则吗?

提前致谢。

答案1

默认情况下,您不需要设置防火墙规则 - 每个数据包都会被接受。

请避免在现代 Linux 发行版中使用 net-tools 集合中的实用程序(route在您的示例中)-其中大多数都是过时的现在iproute2 实用程序。有ip route一个工具可满足您的需要,请查看手册页:man ip-route

如果ip address命令显示 ip 是正确的,ip route表明您有到所有子网的路由(本地子网也是如此,具有正确的掩码)并且 ip 转发已启用 - 一切都必须正常工作。

您可以使用tcpdump它来查找丢失数据包的接口。顺便说一句,Windows 机器默认情况下可能不响应 ping 请求。

相关内容