Я столкнулся с проблемой и, потратив несколько дней на расследование, понял, что мне нужен совет. Мой уровень сетевых навыков все еще довольно низкий.
У меня два маршрутизатора с двумя локальными сетями. Я подключил один из маршрутизаторов к другому через соединение LAN <-> WAN, создав отдельную сеть для контроллера и устройств. Основная причина использования двух маршрутизаторов заключается в том, что я могу иметь отдельный сервер DCHP для подключений маршрутизатора B . См. Изображение ниже:
У меня есть доступ к контроллеру через сеть маршрутизатора A , я могу получить доступ к графическому интерфейсу на основе веб-интерфейса, чтобы увидеть все мои устройства в сети, установив порты / виртуальные серверы на Маршрутизатор B. Однако, У меня есть код на контроллере, который должен контролировать устройства в Router As LAN. Коду необходим доступ к подсети, чтобы он мог преобразовывать IP-адреса в MAC-адреса (запросы ARP). В настоящее время я могу пинговать с устройств маршрутизатора B на устройства маршрутизатора A , но не могу преобразовывать IP в MAC-адреса (я использую NMAP). Я считаю, что это потому, что запросы ARP работают только в одной подсети.
Можно ли добавить второй статический IP-адрес в той же подсети, что и LAN маршрутизатора A (вне диапазона DHCP A) к контроллеру на маршрутизатора B и каким-то образом направить его через Маршрутизатор B , чтобы запросы разрешались и отправлялись обратно?
Если нет, есть ли альтернатива?
Дополнительная информация:
Контроллер: Linux - Raspbian
Маршрутизатор A: Модем-маршрутизатор Belkin
Маршрутизатор B: Маршрутизатор Edimax
Я пришел к выводу, что не могу разрешить MAC-адреса, если контроллер не подключен напрямую к Маршрутизатор Как сеть . Не уверен, можно ли использовать статические маршруты, чтобы позволить ARP-запросам контроллера проходить прямо в сеть маршрутизатора A, но это похоже на ручную настройку, когда я могу настроить нижеприведенное, и это работает по желанию.
Единственным недостатком является то, что устройства в сети маршрутизатора B не имеют доступа к Интернету, но это можно решить, подключив WAN-соединение маршрутизатора B к маршрутизатору . А Lan соединение и не должно вызывать никаких головных болей.
При текущих настройках я не могу получить доступ к веб-интерфейсу маршрутизатора B напрямую из сети Router As , но можно было бы настроить статический маршрут в контроллере, чтобы разрешить доступ к Шлюз маршрутизатора B . Или подключите маршрутизатор B к маршрутизатору A и просто получите к нему доступ через назначенный DHCP IP-адрес от маршрутизатора A .
Сеть A использует одну 24-битную подсеть зарезервированной частной (немаршрутизируемой) сети класса C (192.168.x.x). Сеть B использует другую сеть, но не входит в зарезервированный частный класс C. Если вы переделаете ее с помощью сети B на 192.168.3.x, вам может немного повезти.
Внешнее соединение для сети B должно иметь адрес 192.168.2.x. Маршрутизатор B (и все узлы сети B) должен иметь этот адрес в качестве внешнего шлюза. Адреса всех узлов сети B должны быть 192.168.3.x. Если маршрутизатор B не выполняет NAT, вам необходимо настроить на нем IPTables для выполнения NAT.
Я думаю, вам также потребуется создать статические маршруты для A-> B (на маршрутизаторе A) и B-> A ( на маршрутизаторе B), поскольку вы используете немаршрутизируемые IP-адреса.
Другой вариант - удалить маршрутизатор B и заменить его коммутатором, а также использовать резервирование DHCP в сети A для каждой из систем сети B. Тогда они все в одной IP-сети.