网络图
我有 3 台服务器,每台服务器有两个接口,如图所示。服务器通过接口相互通信,enp1
并通过接口与外界通信enp0
。出于某种原因,服务器无法通过进行通信enp0
。当我从服务器 A ping 到公共.ip.238我变得Host unreachable
。
我该如何配置路由以便仅让内部流量通过?假设服务器 A 想要使用 仅让流量通过enp1
的 IP 与服务器 B 进行通信。enp0
enp1
路线-n:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 public.ip.193 0.0.0.0 UG 0 0 0 enp0
0.0.0.0 public.ip.193 0.0.0.0 UG 101 0 0 enp0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 enp0
priv.ip.0 0.0.0.0 255.255.255.0 U 102 0 0 enp1
public.ip.192 0.0.0.0 255.255.255.192 U 101 0 0 enp0
public.ip.193 0.0.0.0 255.255.255.255 UH 0 0 0 enp0
答案1
以下内容已在 Ubuntu 机器上测试过,我不确定它是否可以在(您的)默认设置在 RedHat 相关系统上运行。
为了通过私有接口路由其他主机的公共 IP,请执行以下操作:
在服务器 A 上
ip -4 route add public.ip.237 dev enp1
ip -4 route add public.ip.238 dev enp1
在服务器B上
ip -4 route add public.ip.237 dev enp1
ip -4 route add public.ip.239 dev enp1
在服务器C上
ip -4 route add public.ip.238 dev enp1
ip -4 route add public.ip.239 dev enp1
请注意,此配置不是持久的并且将在重启时刷新。不过,这让您有机会尝试这是否是您想要保留的设置。如果这不是您想要的,您可以简单地重启或运行相同的命令,然后将 替换add
为del
以删除路由。
根据您用于进行网络配置的工具,您需要调整设置以确保其永久有效并在重启后继续有效。