我一直无法理解静态路由的工作原理。
长话短说,我有以下几点:
- 带有 CentOS7 VM 的 Fedora26 服务器。
- 主机IP:
192.168.0.6
分配给eth0 - 虚拟机 IP:
192.168.122.205
- 主机也是vibr0上的192.168.122.1的网关IP
如果我ip route add 192.168.122.0/24 via 192.168.0.6 dev wlp3s0
这样做,我会得到:
PING 192.168.122.205 (192.168.122.205) 56(84) bytes of data.
From 192.168.122.1 icmp_seq=1 Destination Host Unreachable
From 192.168.122.1 icmp_seq=2 Destination Host Unreachable
这是来自 /etc/sysconfig/network-scripts 的路由脚本:
default 192.168.0.1 dev wlp3s0
192.168.122.1 via 192.168.0.15 dev wlp3s0
192.168.122.0/24 via 192.168.122.1 dev wlp3s0
192.168.100.0/24 via 192.168.0.20 dev wlp3s0
请注意,我尝试过有和没有第一个跳转的情况,第三行显示:192.168.122.0/24 via 192.168.0.6 dev wlp3s0
由于 vibr0 已配置为子网网关,因此两者之间的路由工作正常192.168.122.0/24
。但是,我不知道如何让子网中的任何其他机器192.168.0.0/24
连接到192.168.122.0/24
该主机上的子网中的虚拟机。
我有一台运行 Fedora 的笔记本电脑,它的 IP 是192.168.0.16
,我想连接到192.168.122.205
另一台主机上的 VM。
我认为我需要添加默认路由,使用192.168.0.6
作为网关192.168.122.0/24
,但我没有成功这样做。
所以我想我的问题是:我需要做什么才能从 192.168.0.16 → 192.168.0.6(192.168.122.1)→ 192.168.122.205 建立连接?
单个接口可以位于两个子网中吗?那么,我的 wlp3s0 wifi 卡(192.168.0.16)是否也可以在 122 子网中分配一个 IP,或者这是否有必要?
感谢您的任何帮助。
答案1
您需要添加到 192.168.0.0/24 网络上的设备中的静态路由可能需要看起来像这样。
ip route add 192.168.122.0/24 via 192.168.0.6
请记住,Fedora26 可能也设置为允许路由(ip_forwarding),并且如果该系统上有任何防火墙规则,则可能需要添加其他规则。
一个接口可以位于两个子网吗?
是的,您可以将不同子网上的多个 IP 分配给系统中的单个接口。但这可能不是一个好主意。它通常会使事情变得更加复杂和奇怪。