我需要同时使用两个互联网连接。这两个连接都将是使用两个 LAN 的宽带连接。
假设其中一个连接的分配 IP 是xxx.xxx.xxx.xxx
,另一个是yyy.yyy.yyy.yyy
。IPxxx.xxx.xxx.xxx
将仅用于任何传出请求,例如任何数据上传。另一方面,IPyyy.yyy.yyy.yyy
将仅用于传入数据请求,例如下载数据。因此场景将是同时xxx.xxx.xxx.xxx
上传数据和下载数据。yyy.yyy.yyy.yyy
让我们说得更清楚一点。我将使用 Skype 拨打语音电话,然后xxx.xxx.xxx.xxx
只上传语音数据,并将yyy.yyy.yyy.yyy
下载语音数据。
没有这样的设置可用于执行此操作。可以通过编程方式完成。我可以使用 C# 库来实现。或者有人可以建议其他方法吗?
答案1
虽然捆绑多个互联网连接一直是许多互联网用户的梦想,但其可行性非常有限。
在网络层面,您不会主动下载数据(任何类型的数据)。它只是通过数十亿个路由器将所有数据包进一步推向其目标,一步一步到达下一个路由器,然后再到达下一个路由器,最终到达您。路由器根据数据包的目标地址决定将数据包推送到哪个方向。这意味着,除非远程 Skype 进程将所有数据包发送到 yyy.yyy.yyy.yyy,否则它们将无法通过您首选的连接到达您。遗憾的是,远程 Skype 只知道 xxx.xxx.xxx.xxx,因为这是您发送给它的数据包中的发送方地址。
因此,有几种方法可以影响设置以达到您的目标:
- 更改互联网协议,因此将原生支持多条路径
- 更改中间路由器的转发表,因此它们将发往 xxx.xxx.xxx.xxx 的数据包推送至 yyy.yyy.yyy.yyy
- 更改 Skype,使其支持多条路径,例如仅使用 TCP
- 介绍发送者和接收者之间的中介实体,操纵数据包的地址(并希望这不会以意想不到的方式影响 Skype)。这显然是你最好的选择。具体的应用程序(例如 skype)和具体的远程端(比如说 zzz.zzz.zzz.zzz)只能在有限的时间内工作(因为事情总是会发生变化)。
无论如何,没有复选框、没有配方、没有 C# 库可以让您轻松完成此操作。不幸的是,您必须设计一个适合您的需求并根据当今互联网的复杂性而设计的解决方案。
答案2
为了实现这一点,您需要两个能够进行 NAT 的非状态路由器,并且不会随机化源端口。您需要为您的机器使用静态 NAT。
我假设您将在内部使用私人寻址。
一个路由器(routerX)具有公共地址 xxx.xxx.xxx.xxx 并用于传出数据包,另一个路由器(routerY)具有公共地址 yyy.yyy.yyy.yyy 并用于传入数据包。
RouterX 将成为默认路由。
因此,您的机器(假设为 10.10.10.10)通过端口 80 向 google.com 发送一个数据包,当它经过 RouterX 时,该数据包的源地址通过 NAT 更改为 routerY 的 IP 地址。
原始数据包:
Src: 10.10.10.10 Src-port: 34343 Dst: google.com Dst-port: 80
源端口是临时的:“虚构的”。但是,任何响应数据包回复到正确的端口至关重要。
RouterX 执行 NAT,因此在网络上看起来像这样:
Src: yyy.yyy.yyy.yyy Src-port: 34343 Dst: google.com Dst-port: 80
Google 收到数据包后,做出回复。因此,其回复内容如下:
Src: google.com Src-port: 80 Dst: yyy.yyy.yyy.yyy Dst-port: 34343
此数据包将自然到达 RouterY。它有一个静态 NAT,表示发往 IP 地址 yyy.yyy.yyy.yyy 的任何内容都应被 NAT 到 10.10.10.10:
Src: google.com Src-port: 80 Dst: 10.10.10.10 Dst-port: 34343
完成——数据包到达你的机器,完全没有意识到它走了一条如此迂回的路线。
您可以使用 Cisco IOS 路由器来实现这一点。事实上,虽然此场景有两个路由器,但您可以使用单个路由器和一些策略路由来实现这一点。
答案3
我认为“如何同时在一台电脑上使用两个互联网连接?”这个问题的答案是不要通过将一个服务的上传和下载拆分到单独的连接来实现,而是拆分哪些服务使用哪个连接。
我见过的所有宽带解决方案都允许同时上传和下载大量数据,而不会相互影响,直到上传或下载速率达到其最大值的 80% 左右,我会考虑以不同的方式分割流量。通常且因此得到更好支持的方法是使用不同的路由提供不同的服务。
如果这样做的动机是因为 skype 影响了其他流量,或者其他流量影响了 skype,那么您还应该查看路由器上的“服务质量”QoS 功能并使用它们,因为它允许您优先处理您想要的流量。
对低优先级服务提供带宽限制以防止任一方向的带宽饱和,极大地提高了其他服务的可靠性和响应能力。