Назад | Перейти на главную страницу

Маршрутизация трафика между двумя подсетями

Я подключаю некоторое количество встроенных устройств Linux к основной локальной сети с помощью DHCP-сервера и таблиц маршрутизации. В основной локальной сети (192.168.1.0/24) у меня подключен ПК и первое встроенное устройство Linux. Встроенное устройство linux имеет два таких порта Ethernet. Некоторое количество устройств linux соединены вместе с помощью программного моста Ethernet. Есть два сценария того, как должно действовать каждое из встроенных устройств:

  1. Глава цепочки. Я написал простой сценарий bash, чтобы определить, когда он находится в основной локальной сети, путем получения MAC-адреса шлюза, который он видит. Если это голова, он получает IP-адрес от главного DHCP-сервера LAN и создает новую подсеть на втором порту Ethernet (192.168.50.0/24).

  2. Не голова. Когда сценарий 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 

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

Также следует знать, что к основной ЛВС может быть подключено несколько цепочек.