![通过两个网关连接到互联网](https://linux22.com/image/1409129/%E9%80%9A%E8%BF%87%E4%B8%A4%E4%B8%AA%E7%BD%91%E5%85%B3%E8%BF%9E%E6%8E%A5%E5%88%B0%E4%BA%92%E8%81%94%E7%BD%91.png)
我正在开发一个库来在 NAT 设备中执行端口转发。使用 SSDP(发现过程),我可以看到两个实现 WANIPConnection 服务类型的不同 UPnP 服务器,一个是我的 ADSL 调制解调器,另一个是我的 Windows 服务器。
我的局域网通过 ADSL 调制解调器连接到互联网,所以我知道我必须使用哪个服务器。但是,一台计算机是否可以通过两个不同的网关连接到互联网?
更新:
网关是指允许访问互联网的任何设备。例如,假设您家里有两个 ADSL 调制解调器,每个调制解调器都允许使用两个不同的 ISP 进行访问。并且您只有一台 PC 通过有线方式连接到 ADSL 调制解调器 1,通过 WiFi 连接到 ADSL 调制解调器 2。
ISP 1 -----------> ADSL 1 ----\
\
+-> PC
/
ISP 2 -----------> ADSL 2 ----/
这可能吗?
答案1
对于 Linux(只要您的 ADSL 调制解调器有适当的工具),您的问题的解决方案相当容易实现。您必须使用相同的度量通过这样的设置,连接将(希望)均匀分布在所有可用路线上:
# ip route add default via <1st-gateway> metric 1024
# ip route add default via <2nd-gateway> metric 1024
度量值纯属虚构(如果您的路由具有不同的成本,例如 UMTS 与有线连接,这一点很重要——数字越低意味着优先级越高 [成本越低])。这将告诉内核在两个网关上“均匀”分配流量。请注意,路由决策由内核缓存,因此如果 90% 的流量流向,例如,这意味着 90% 的流量通过facebook.com
superuser.com
一關閉。
Windows 也需要类似的步骤,但我并不擅长使用 Windows 进行路由(但您可能会明白这一点)。