Помните про такое? Сначала были всякие eth0, eth1, wwan0, а потом вместо них решили сделать всякие enp0s31f6, wlp2s0, enx0000e80122c
Я сначала не задумывался как и почему всё это именуется. А потом нашел доку. Ага, "с добрым утром", называется. Но не в этом суть.
Тут мой любимый момед Sierra AirCard 320U устроил мне образцовую козью морду. После того, как оный супостат теряет сеть и переподключается, он представляется системе с уже новым MAC-адресом. Соответственно, если ты в interfaces прописал его как "wwxблаблабла", усё, кирдык. В следующий раз ifupdown его уже не найдет.
Можно, конечно, указать ядру при загрузке "net.ifnames=0" и отключить все эти predictable names, но это тоже такое. Особенно, когда к одному и тому же ящику подключены и USBшная WiFi-карточка, и модем. Поди ж их там потом еще различи.
Поэтому есть решение проще.
Надо удалить из "/lib/systemd/network" файлик "73-usb-net-by-mac.link" и сделать "systemd daemon-reload". После этого модем из "wwx*" превратится в "wwp*". И уже не будет переименовываться после переподключения к соте.
Правда, там возникает следующая подстава. В какой-то момент оператор может назначить ему другой ip-адрес. С точки зрения ifupdown это не будет являться опусканием-поднятием интерфейса. Но заботливо прописанные заранее статические маршруты при этом пропадут, даже если были опредлены не как "via", а как "dev".
Но это уже совсем другая история.