![无法从一台物理机的内部网络 ping 通另一台物理机的外部网络](https://linux22.com/image/1406997/%E6%97%A0%E6%B3%95%E4%BB%8E%E4%B8%80%E5%8F%B0%E7%89%A9%E7%90%86%E6%9C%BA%E7%9A%84%E5%86%85%E9%83%A8%E7%BD%91%E7%BB%9C%20ping%20%E9%80%9A%E5%8F%A6%E4%B8%80%E5%8F%B0%E7%89%A9%E7%90%86%E6%9C%BA%E7%9A%84%E5%A4%96%E9%83%A8%E7%BD%91%E7%BB%9C.png)
我想知道为什么我无法从一台物理机器的网络接口(私有网络) ping 通另一台物理机器(这台机器有两个网络接口:一个私有接口,可以 ping 通第一台机器的私有地址,还有一个设置用于访问互联网的外部接口)。
我在两台机器上都运行着 Ubuntu 14.04 LTS,并尝试按照下面的 Openstack 图像进行操作:
我已为机器上的所有三个接口设置了静态地址。
我希望我对这个问题足够清楚。任何帮助或指导都将不胜感激!:)
答案1
为了在两个独立的 IP 子网之间提供连接,您需要一些东西来充当连接这些子网的 IP 路由器(或更高级别的网关,例如 NAT 网关)。如果您还没有连接两个子网的 IP 路由器或 NAT 网关,则可以使用连接到两个子网的现有盒子之一。由于您的计算节点连接到两个子网compute1
,您可以通过在其上启用“IP 转发”来允许它成为路由器。
要即时启用它(重启后不会保留):
sudo sysctl -w net.ipv4.ip_forward=1
要在启动时启用它,请编辑/etc/sysctl.conf
并添加以下行:
net.ipv4.ip_forward = 1
然后,您需要确保 10.0.0.0/24 管理子网上的其他机器配置为使用 10.0.0.x 地址compute1
(图中的 10.0.0.31)作为其默认路由器/网关。