Параметр interface не работает с ipv4. Да и с ipv6 делает не то, что вы хотите.
В качестве параметра к ping необходимо указывать routing-table и иметь соответственно маршруты через шлюзы 1 и 2 провайдера, помеченные соответствующими роут-метками.
А невалидные пакеты дальше всё равно никак не маршрутизируются потому что они внезапно невалидные.
Поэтому их можно просто отбрасывать фаерволом сразу.
А есть ли какой-то сервис, не имеющий абонентской платы, но, например, берущий достаточно много за смс авторизации?
Есть много точек, с очень малой проходимостью.
По-моему это костыли какие-то.
Единственный плюс в них - нет скрипта, зато в остальном сплошные минусы.
Советую реализовывать при помощи скрипта, можно нагуглить примеры. Будете проверять одни и те же хосты через оба соединения, запускать с желаемой периодичностью, писать в логи о недоступности интернета, не будет этого треша в роутинге и прочие плюшки.
Есть 2 принципиально разных режима работы этих usb модемов: stick и hilink
В одном из них модем - полностью независимое устройство, по сути роутер.
В другом - модем, которым управляют через виртуальный com порт.
Соответственно вам нужно из hilink перепрошить свой модем в stick, если хотите управлять им прямо с роутера командами. Но смысла в этом нету, подводные камни есть.
Когда некоторое время назад искал готовую опенсорс реализацию хотспота с авторизацией через смс, ничего так и не нашел.
Но ваш проект сильно наворочен получается для хотспота в маленьком офисе/кафе.
Используйте ping с параметром route, а в роутинге добавьте маршрут для помеченных соединений(и запретите таким соединениям искать маршруты в основной таблице маршрутизации, а то пинги будут ходить даже если резервный интернет упал - через основной)
А касательно количества устройств - если они за NAT (а скорее всего так), то никак (можно косвенно, снифая траффик, но этот вариант не для вас судя по всему).
Выкиньте netwatch и напишите скрипт с необходимой логикой.
Пингуйте что нибудь типа гугло-яндекса по интересующим маршрутам и на основании этого принимайте решение что и как переключать.
Логика может быть самая разнообразная.
Чтобы пинговать по определённому маршруту, его нужно сначала пометить, а потом использовать ping 8.8.8.8 routing-table=RouteMark
Вам как раз и нужно маркировать с какого интерфейса пришло соединение, чтобы отвечать в этот же интерфейс.
Можете погуглить о конфиге с 2 WAN - по сути то же самое.