我正在使用 Linux 配置路由服务器。
- 以太网链路(eth0)至互联网(速度快,但无法访问某些网站);
- OpenVPN 链接(tun0)为本地用户提供互联网访问;
- OpenVPN 链接(tun1)到代理服务器,这是第二个互联网链接(慢速,免费)。
我的目标是这样的:对于普通的互联网访问,通过 eth0 进行路由;对于无法与 eth0 链接的站点,通过 tun1 进行路由。
最初的实验是成功的。我手动为几个测试站点设置了路由表,它按预期工作。但是有成千上万个站点,而且随着时间的推移它会发生变化。因此我必须寻找另一种方法。
我尝试配置 quagga(启用 zebra 和 ospfd),并希望它在用户无法通过链路 1(eth0)访问站点时自动通过 tun1。实际上,我将 tun1 和 eth0 都配置为默认路由,但我没有得到我想要的结果。
这个问题困扰了我好几天。我不熟悉 ospf,所以我不知道 ospfd 是否可以解决。
我需要你的建议!如果有更好的方法,请纠正我。
答案1
我理解这里的问题是您需要在 OpenVPN 客户端机器上设置路由规则?您是否尝试过在 OpenVPN 服务器配置中推送路由?
push "route IP MASK vpn_gateway";
(代替知识产权和面具以匹配您的路由目标)。
使用电荷耦合器件选项,您甚至可以针对每个客户端推送不同的规则。man openvpn
详情请咨询。记得包括拉或者客户客户端配置中的指令。