Ищите по ключевым словам "балансировка каналов" load balancing. Статей достаточно много.
В принципе ничего сложного, хотя алгоритмы бывают разные.
Самый простой - round robin банально кидать каждый следующий пакет в другой канал. Но только вот если каналы разной ширины, то загрузка будет неравномерной.
Можно сделать посложнее с учетом загрузки канала.
Иногда выгодно балансировать по типу трафика - например отправлять критичный к пингу трафик в один канал, а все остальное в другой.
Тут надо знать что хотите получить в итоге и какие проблемы решить.
Один важный момент - если просто тупо раскидывать трафик по каналам можно поиметь проблемы с авторизацией на некоторых сайтах.
Т.е вы авторизировались с ip x.x.x.x а следующий ваш запрос пришел с ip y.y.y.y в результате вас выкинуло из сеанса. Т.е куча пользователей не сможет работать с кучей сервисов.
Поэтому надо маркировать трафик и следить чтобы если запрос к одному сервису ушел через один интерфейс, все повторные запросы шли через тот же. А это уже сложнее и требует вычислительных ресурсов на балансировщике.
Ну и в зависимости от выбранной логики надо будет думать как все это дело увязать с файловером, т.е с резервированием канала.
Из инструментария в основном iptables и mangle.