配置具有 2 个网络接口的路由表

配置具有 2 个网络接口的路由表

我有一台 Linux 服务器,它有两个网络接口:(eth0使用公网 IP 地址连接到互联网A.B.C.208)和eth1(不连接任何东西,绑定到私有 IP 地址10.U.V.159)。私有网络部分是必需的,因为我配置了一个 VPN(OpenSwan),其配置需要它。

我的 OpenSwan VPN 将我的10.U.V.*专用网络连接到远程10.X.Y.*专用网络。VPN 链接已建立并且运行正常。

但是当我 ping 远程网络上的服务器时10.X.Y.*,我需要强制源接口使其eth1工作:

$ ping -I eth1 10.X.Y.31
PING 10.X.Y.31 (10.X.Y.31) from 10.U.V.159 eth1: 56(84) bytes of data.
64 bytes from 10.X.Y.31: icmp_seq=1 ttl=60 time=29.0 ms
...

否则 OpenSwan/VPN 将不会重新路由 ping。

如何配置我的服务器以便eth1/10.U.V.159在访问任何10.X.Y.*地址时自动设置源地址?我应该添加路由吗?我不想干扰VPN自己的路由机制...

我的路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         A.B.C.254       0.0.0.0         UG    0      0        0 eth0
10.U.V.0        *               255.255.255.0   U     0      0        0 eth1
A.B.C.0         *               255.255.255.0   U     0      0        0 eth0

答案1

10.XY31 不存在于您的路由表中。因此使用默认路由,数据包由 eth0 发送。如果您想通过 eth1 发送,则需要有下一个网关,您可以使用该route add -net 10.X.Y.0 netmask 255.255.255.0 gw 10.U.V.159命令

这可能是掩码的问题,10.0.0.0 网络通常在 /8 中。

相关内容