Ситуация — домашний компьютер, доступ в интернет только через 2G (GSM/EDGE) мобильные сети. Медленно и противно.
При этом, в наличии несколько USB-модемов, несколько смартфонов и соответственно несколько SIM-карт с доступом в интернет.
Для того, чтобы ускорить загрузку сайтов (и файлов, в многопоточном режиме), было принято решения подключить к компьютеру все модемы/смартфоны и агрегировать все соединения, путем распределения запросов между ними.
А для автоматизации этого процесса, потребовалось динамически получить адреса шлюзов (gateway) на каждом из подключенных интерфейсов.
Причем, разные модемы/смартфоны подключаются разным методом — некоторые из них ppp0-1-2 и т.д, другие usb0-1-2, а иные enp0s26u1u3, wwp0s29u1u5i2 и т.д.
Сразу хочу отметить — задача была решена.
(more…)