Я подключаю некоторое количество встроенных устройств Linux к основной локальной сети с помощью DHCP-сервера и таблиц маршрутизации. В основной локальной сети (192.168.1.0/24) у меня подключен ПК и первое встроенное устройство Linux. Встроенное устройство linux имеет два таких порта Ethernet. Некоторое количество устройств linux соединены вместе с помощью программного моста Ethernet. Есть два сценария того, как должно действовать каждое из встроенных устройств:
Глава цепочки. Я написал простой сценарий bash, чтобы определить, когда он находится в основной локальной сети, путем получения MAC-адреса шлюза, который он видит. Если это голова, он получает IP-адрес от главного DHCP-сервера LAN и создает новую подсеть на втором порту Ethernet (192.168.50.0/24).
Не голова. Когда сценарий bash обнаруживает, что устройство не является головным, он просто соединяет два порта Ethernet.
Я пробовал несколько простых команд маршрутизации (ip route, route). В настоящее время с устройства, отличного от головного, я могу пинговать сервер 50.1, основной порт LAN на головном устройстве (1.101), но не главный сервер DHCP (1.1) или основной компьютер в локальной сети (1.100). С главного ПК в локальной сети я могу проверить связь со стороны локальной сети первого устройства (1.2), но не со стороны подсети (50.1).
На головном устройстве:
$ ip route
192.168.50.0/24 dev eth1 src 192.168.50.1
192.168.1.0/24 dev eth0 src 192.168.1.2
default via 192.168.1.1 dev eth0
На связанном устройстве:
$ ip route
192.168.50.0/24 dev eth0 proto kernel scope link src 192.168.50.254
127.0.0.0/8 dev lo scope link
default via 192.168.50.1 dev eth0
Конечная цель состоит в том, чтобы все встроенные устройства могли взаимодействовать с ПК в основной локальной сети.
Также следует знать, что к основной ЛВС может быть подключено несколько цепочек.