Конфигурация: одноплатник в качестве роутера, бортовая сетевуха смотрит в кабельный интернет, в USB воткнут 4G-модем в качестве запасного канала. 4G-модем определяется как сетевой адаптер (не HiLink, если это важно).
Нужно ручное переключение выходного канала. Вроде ничего сложного, но проблема в том, что адаптер, который определился в системе вторым (USB), записи в таблице роутинга для внешних адресов не получает.
Т.е. 4G-модем работает, через него бегает интернет, но только если на момент загрузки он был единственным адаптером. Если же загрузиться по-нормальному, то в таблице роутинга для модема присутствует только запись на маршрутизацию локальных адресов сотового оператора, вместо адреса шлюза – 0.0.0.0 (для сетевой платы, определенной первой, при этом все в порядке: есть и локальные маршруты и шлюз).
Погашение интерфейса сетевой карты удаляет из таблицы все записи, касающиеся ее адресов, но для модема все остается по-старому, т.е. вообще не остается ни одного шлюза.
Вот, собственно, и вопрос: есть ли какой-то инструмент, который перезаполнит таблицу маршрутов так, как происходит при загрузке системы, но с принудительным указанием «главного» интерфейса?
P.S. Я понимаю, что нужный маршрут до сотового шлюза можно добавить ручками/скриптом, но, например, адрес этого шлюза придется вытаскивать из кеша dhcp-клиента, потому что больше он нигде не фигурирует.