У нас есть встроенное устройство Linux, которое поддерживает встроенный сетевой коммутатор. Устройство имеет 2 порта Ethernet. С помощью «гирляндной цепи» 2 или более устройств могут быть объединены в цепочку. Устройство 2 может иметь сеть, поскольку оно подключено к устройству 1, которое подключено к маршрутизатору 1.
\ /
+---------+ +---------+
| Маршрутизатор1 |--------| Устройство1 |
+---------+ +--| |
| +---------+
|
\ / | +---------+
+---------+ +--| Устройство2 |
| Роутер2 | | |
+---------+ +---------+
Когда мы переключаем маршрутизатор на другой для Устройства 1, у нас есть способ обнаружить событие отключения/подключения кабеля Ethernet на Устройстве 1. Мы инициируем выпуск и обновление IP-адреса. Таким образом, Device1 может обновить свой IP-адрес. Однако для Device2 невозможно обнаружить переключение маршрутизатора. Подсеть для router1 — 10.0.0.x. Подсеть маршрутизатора 2 — 192.168.0.x.
При запуске «ip monitor» в Device2 появляются сообщения:
номер устройства IP-монитор
10.0.0.1 dev br0 lladdr b2:9b:68:0a:33:21 УСТАРЕВШИЙ
10.0.0.1 dev br0 lladdr b2:9b:68:0a:33:21 ЗОНД
10.0.0.1 dev br0 ОШИБКА
10.0.0.1 dev br0 ОШИБКА
Как я могу обнаружить переключение маршрутизатора в этом случае для Device2? Что-то изменится в папке "/sys/class/net/br0"?
Спасибо.