通过特定接口将流量转发到远程外部 IP

通过特定接口将流量转发到远程外部 IP

网络图

网络图

我有 3 台服务器,每台服务器有两个接口,如图所示。服务器通过接口相互通信,enp1并通过接口与外界通信enp0。出于某种原因,服务器无法通过进行通信enp0。当我从服务器 A ping 到公共.ip.238我变得Host unreachable

我该如何配置路由以便仅让内部流量通过?假设服务器 A 想要使用 仅让流量通过enp1的 IP 与服务器 B 进行通信。enp0enp1

路线-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

请注意,此配置不是持久的并且将在重启时刷新。不过,这让您有机会尝试这是否是您想要保留的设置。如果这不是您想要的,您可以简单地重启或运行相同的命令,然后将 替换adddel以删除路由。

根据您用于进行网络配置的工具,您需要调整设置以确保其永久有效并在重启后继续有效。

相关内容