Я настроил сеть со следующей топологией:
Gateway (10.0.0.1)
| tun0
|
|-----------------------| 10.0.0.0/16
| |
| tun0 | tun0
Host A (10.0.1.1) Host B (10.0.2.1)
| wlan0 | wlan0
| |
| 10.0.1.0/24 |----------------| 10.0.2.0/24
| | |
| wlan0 | wlan0 | wlan0
Client A (10.0.1.2) Client B (10.0.2.2) Client C (10.0.2.3)
На данный момент хосты A и B могут пропинговать шлюз и друг друга. Также. каждый клиент может пропинговать хост, напрямую связанный с ним, а также другие клиенты, подключенные к этому хосту. Однако я хотел бы, чтобы каждое устройство могло пропинговать все другие устройства в сети (например, клиент A может пропинговать клиента B, хост A может пропинговать клиента C, и так далее).
Я попробовал несколько методов настройки каждого хоста, чтобы разрешить пересылку пакетов между клиентами, другими хостами и шлюзом. Первый метод, который я попробовал, - это использование iptables на каждом хосте для пересылки трафика между подсетями. Несмотря на то, что я успешно использовал учебники, такие как этот, на Adafruit, чтобы позволить клиентам пинговать хосты и шлюз, они не позволяли другим хостам пинговать клиентов. Я также пробовал такие решения, как это, для маршрутизации трафика между подсетями, но, похоже, они не работают с перекрывающимися подсетями. Я также попытался создать мостовой интерфейс на каждом хосте, который соединял tun0 и wlan0, но безуспешно.
Я открыт для изменения конфигурации IP-адресов в этой сети при условии сохранения возможности подключения всех устройств ко всем другим устройствам.