Какой компонент в linux решает, через какой интерфейс соединиться с IP адресом?
=================================================================================

 Добрый день!  

  

Помогите разобраться или найти концы, про что читать.  

  

Есть linux компьютер (raspberry pi 4 c raspbian если это имеет значение).  

Он подсоединен к интернету через LAN, Wi-Fi и внешний 4G модем (ну так, больше теоретически). Эти устройства, могут отваливаться в случайном порядке - нет связи по 4G, перегружена wi-fi среда или просто не вставили кабель или модем.  

  

Какой компонент в linux решает, через какое устройство связаться с ip адресом?  

Что будет в случае, если соединение с роутером через LAN есть, но доступа к интернет нет? А через модем 4g есть. Как этот компонент выберет через какой интерфейс связываться? Или надо в рукопашном режиме как-то опрашивать (контролировать) устройства связи и устанавливать связь через определенное устройство? 

 Вся маршрутизация зашита в логику работы стека TCP/IP. Управляется таблицей маршрутизации. За доступ в интернет отвечает в таблице маршрутизации запись о маршруте по умолчанию. Таких маршрутов может быть несколько с разными метриками (приоритетами). Используется тот маршрут у кого приоритет выше.  

Так же и таблиц маршрутизации может быть несколько - это вариант как раз для ситуации, когда есть несколько каналов в интернет и нужно сделать балансировку нагрузки или отказоустойчивость (или гибридную схему). С помощью грамотной настройки фаервола и дополнительных скриптов можно все это организовать. Это уже придется делать самому, или использовать сторонний софт/железо. Но инструменты для подобных вещей есть.  

  

Если интернет не доступен по заданному маршруту, то пакеты все равно будут отправляться и будут где-то пропадать. Так что ответов не будет или будет ответ с ошибкой. Соединения будут отваливаться либо по тайм-ауту, либо по ошибке. 

 Для того чтобы разобраться как работает маршрутизация в линуксе и как можно управлять трафиком вы можете почитать <https://lartc.org/howto/>