Ваша задача (так, как вы ее сформулировали) решения не имеет, потому как все резервирование маршрутов на L3 осуществляется при помощи динамической маршрутизации (ну на то она и динамическая). Смена маршрута при статической маршрутизации - нонсенс.
Вас может заинтересовать один из протоколов динамической маршрутизации, например, OSPF - он довольно быстро реагирует на изменения топологии сети и легко заводится под Linux и может запуститься под Windows.
По поводу настройки vlan управления - у вас не должно быть доступа к управлению коммутатором с любой машины в сети. Либо vlan управления выделяют отдельно и заводят на отдельную машину, которая с остальной сетью никак не связана, либо вообще отключают доступ по IP и управляют через последовательный порт.
Есть два варианта реализации - пробросить USB через IP. На целевом устройстве будет видно USB - устройство - модем. Это умеют всевозможные адаптеры (AnywhereUSB, например), а также последние ядра linux (пакет usbip). Клиентская часть usbip есть и под windows, но она поломана и не совместима с последними версиями usbip под linux.
Или посадить оба сетевых интерфейса (модем и eth) в мост.
У Циско есть два взаимодополняющих решения - это Network Assistant - софт для централизованного управления, и технология кластеризации, которая позволяет управлять распределенной сетью коммутаторов так, как если бы это был один коммутатор.
Очевидно, не давать пользователям ставить и запускать это приложение - отключить сменные носители и запуск выполняемых файлов из системных папок. И отключить запись в системные папки вместе с этим.
Подскажите цель такого мероприятия, чтобы было яснее, что советовать.
Ради хохмы, можно конечно в любой агрегат на OpenWRT USB-хаб подключить (разумеется, активный [спасибо, Александр, за уточнение]), а в него натолкать модемов.
Не думаю, что есть настолько готовое, что будет работать с произвольным web-api из коробки. Так что придется брать любой одноплатник (ардуина с ethernet-шилдом не подойдет (точнее подойдет, но придется долго портировать на ее openVPN)), затем, вооружившись firebug, реверсить API этого реле и творить.
Четыре варианта: com0com - опенсорс VSPE - закрытый исходник, вроде как без лицензии при использовании на 32 битах. ТБН Редиректор - эта программа может только создавать TCP-клиент связанный с com-портом.
socat под cygwin
Если коротко - вы должны отправлять перед передачей данных длину передаваемого, затем принимать куски, суммировать их длины и собирать из них итог.
Вы никогда не должны завязываться на то, что TCP внутри себя режет поток байт на датаграммы. Для программиста TCP - труба о двух сокетах, один - на клиенте, второй - на сервере.