У меня есть машина PetaLinux (встроенный Linux на устройстве Xilinx Zynq, вилка Debian, ядро 4.19). Если обе сетевые карты включены разные подсети, то я могу отключить одну сетевую карту, а другая продолжит работу. Но если они на тем же подсети, то отключение eth0 сделает оба недостижимыми. (Отключение eth1 допустимо.) Кроме того, если адреса получены с помощью DHCP, отсоединение штекера для eth0 также допустимо.
Теперь я понимаю, что по умолчанию Linux имеет слабую политику выбора сетевой карты для ответа на любое сообщение, и я имел дело с этим несколько лет назад, в другая статья.
К сожалению, это решение, похоже, не работает в той версии Linux, которая у нас есть. Есть ли что-то новое, связанное с более свежими ядрами?
Заранее спасибо.
Обновлять
"ip route", когда оба кабеля подключены:
по умолчанию через 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 ссылка на область действия ядра proto src 192.168.1.195
192.168.1.0/24 dev eth1 ссылка на область действия ядра proto src 192.168.1.196
«ip route», когда eth0 отключен (случай отказа):
по умолчанию через 192.168.1.1 dev eth0 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.195 linkdown
192.168.1.0/24 dev eth1 ссылка на область действия ядра proto src 192.168.1.196
«ip route», когда eth1 отключен (работает нормально):
по умолчанию через 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 ссылка на область действия ядра proto src 192.168.1.195
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.196 linkdown
Повторим еще раз: мы не можем пропинговать 192.168.1.196, когда сетевая карта для 192.168.1.195 отключена.