我在 Ubuntu 18.04 上设置了 OpenVPN 服务器。客户端连接到 VPN,所有流量都通过 VPN 路由。传出 IP 与客户端连接到的 IP 相同。
现在我在私有子网上添加了另一个网络接口。我希望客户端的传出流量通过该接口路由,以便传出 IP 将是私有子网上 NAT 网关的外部 IP。
我有点不知所措,因为我不知道如何配置路由。如果我只是增加 eth1 的度量以将其置于 eth0 之上,那么我将无法再连接到 VPN 或 SSH 到服务器。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default ip-172-30-0-1.e 0.0.0.0 UG 100 0 0 eth0
default ip-172-30-10-1. 0.0.0.0 UG 200 0 0 eth1
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
172.30.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ip-172-30-0-1.e 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
172.30.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
ip-172-30-10-1. 0.0.0.0 255.255.255.255 UH 200 0 0 eth1
绿色箭头是我想要实现的目标,红色箭头是现在发生的事情。
答案1
这似乎是非对称路由的问题,我以前在多宿主服务器中遇到过这些问题。您无法再通过 ssh 连接到服务器的原因之一是数据包来自一个接口,但响应通过另一个接口。如果我没记错的话,当向 IP A 发送简单的 ping 时,我收到了来自 IP B 的回复,这与安全协议/应用程序不太兼容。我使用“策略路由”解决了这个问题
那篇文章帮助我做到了这一点: 4.1.简单源策略路由
这是一篇关于多宿主服务器上的非对称路由