Это определенно возможно. Многие из нас много лет назад использовали смешанные конфигурации с широкополосным доступом с балансировкой нагрузки, и они работали очень хорошо. Многие, вероятно, все еще делают!
Это можно сделать несколькими способами, включая использование iptables
правил и / или iproute2
( ip(8)
команды) для настройки маршрутизации политики.
Балансировка нагрузки выполняется не на уровне пакета, а на уровне соединения . То есть все пакеты соединения выходят из одного интерфейса. Какой это интерфейс, зависит от политики маршрутизации. Без сотрудничества ваших первых маршрутизаторов, выходящих за пределы вашей собственной инфраструктуры, это единственный способ, которым вы можете это сделать. Удаленные компьютеры не могут сказать, что ваши два IP-адреса действительно принадлежат одному компьютеру. В TCP соединение однозначно идентифицируется 4-мя кортежами (Remote-IP, Remote-Port, Local-IP, Local-Port). Если вы отправляете пакеты с разных IP-адресов, удаленный сервер считает, что они принадлежат двум разным соединениям, и безнадежно запутывается.
Очевидно, что подобные вещи имеют больше смысла в корпоративной среде или в среде с большим количеством пользователей, использующих одно соединение. На работе мы объединяли линию ADSL 256 Кбит / с с кабельной линией 512 Кбит / с (да, тогда), и все это работало замечательно, с дополнительным преимуществом высокой доступности.
Для некоторой реальной практической помощи, вот один из способов сделать этоiproute2
. Он предназначен для Debian, но, конечно, работает и в Ubuntu.