Как сделать агрегацию офисного Интернета?
Ищите по ключевым словам "балансировка каналов" load balancing. Статей достаточно много.
В принципе ничего сложного, хотя алгоритмы бывают разные.
Самый простой - round robin банально кидать каждый следующий пакет в другой канал. Но только вот если каналы разной ширины, то загрузка будет неравномерной.
Можно сделать посложнее с учетом загрузки канала. 
Иногда выгодно балансировать по типу трафика - например отправлять критичный к пингу трафик в один канал, а все остальное в другой. 
Тут надо знать что хотите получить в итоге и какие проблемы решить.
Один важный момент - если просто тупо раскидывать трафик по каналам можно поиметь проблемы с авторизацией на некоторых сайтах.
Т.е вы авторизировались с ip x.x.x.x а следующий ваш запрос пришел с ip y.y.y.y в результате вас выкинуло из сеанса. Т.е куча пользователей не сможет работать с кучей сервисов.
Поэтому надо маркировать трафик и следить чтобы если запрос к одному сервису ушел через один интерфейс, все повторные запросы шли через тот же. А это уже сложнее и требует вычислительных ресурсов на балансировщике.
Ну и в зависимости от выбранной логики надо будет думать как все это дело увязать с файловером, т.е с резервированием канала.
Из инструментария в основном iptables и mangle.
Задачу решил таким способом:
1. по некоторому нехитрому скрипту выполняю тест доступности Интернет-ресурсов, простой ping нескольких высокодоступных ресурсов типа 8.8.8.8 и ещё нескольких для пущей достоверности.
2. если Инет отсутствует, тогда выполняется автоматическое переключение между провайдерами, меняется default route
3. в момент, когда Инет работает от провайдера №1,  выполняю тесты работоспособности провайдера №2, и добавляю static route  для  всяких vk, youtube, fb и других ресурсов, которые посчитал нужным направить через "вторичный" канал для разгрузки основного. 
4. при смене аплинка роуты перестраиваются, как только вторичный провайдер становится снова в строй.