Есть куча lte модемов. Необходимо попеременно работать с каждым модемом (гнать трафик, не отключая остальные).
Каждый модем при подключении создаёт eth-интерфейс с ip-адресом 192.168.8.100 и является шлюзом 192.168.8.1. И конфигурирует по dhcp все настройки.
То есть у нас есть куча одинаковых сетевых интерфейсов с одинаковыми ip-адресами и одинаковыми шлюзами по умолчанию.
Вручную меняю ip-адреса на сетевых интерфейсах по следующей схеме.
Далее работаю следующим образом с модемами:
for iface in network_list:
os.system("sudo ip route flush all") #удаляем все маршруты
#добавляем маршрут через текущий интерфейс
os.system("sudo route add default gw 192.168.8.1 " + iface)
#добавляем DNS-сервр
os.system("sudo bash -c 'echo nameserver 192.168.8.1 > /etc/resolv.conf'")
#что-то делаем нужное нам
SpeedTest()
SaveResult()
И столкнулся с проблемой, что не всегда срабатывает такой подход. Почему-то сеть не всегда поднимается. И главное, ладно бы стабильно не работало бы. А то, то срабатывает такой подход, то нет.
Что я делаю не так, что не учитываю, что ещё стоит добавить или изменить? Приму любые рекомендации!
З.Ы. Это в некотором смысле является продолжением вопроса
Как автоматически протестировать скорость на нескольких wan-интерфейсах, не теряя соединение ssh?