Предполагая , что вам требуется маршрутизатор / брандмауэр (скажем , кабельный модем не обеспечивает один), у вас есть два способа сделать это:
Очевидный метод: превратить первую точку доступа в маршрутизатор.
[Cable Modem]
192.168.0.1
│
└─[Wireless Access Point #1 & Router & Firewall]
192.168.1.1/24
│
├── Wireless Access Point #2 - 192.168.1.2/24
└── Wireless Access Point #3 - 192.168.1.3/24
Точки доступа № 2 и № 3 останутся в режиме моста.
Преимущество: это позволяет вам иметь единую подсеть для всех точек доступа (что позволяет автоматически обнаруживать устройства, например, для Chromecasts и т.д.)
Другой метод: иметь отдельные подсети.
Я предполагаю, что я установил бы уникальный 192.168.1.Диапазон адресов X на серверах DHCP каждого из 3 маршрутизаторов.
Нет - вы бы создали уникальный 192.168.Диапазон адресов X.0 в каждом маршрутизаторе.
[Cable Modem]
192.168.0.1/24
│
├── WAN 192.168.0.2 - Wireless Router #1 - LAN 192.168.2.1/24
├── WAN 192.168.0.3 - Wireless Router #2 - LAN 192.168.3.1/24
└── WAN 192.168.0.4 - Wireless Router #3 - LAN 192.168.4.1/24
Каждый маршрутизатор, как правило, должен иметь свою собственную подсеть. Это позволяет каждому маршрутизатору иметь маршруты к остальным подсетям. Например, маршрутизатор № 1 может иметь таблицу маршрутов:
DESTINATION GATEWAY INTERFACE
192.168.2.0/24 - lan
192.168.3.0/24 192.168.0.3 wan
192.168.4.0/24 192.168.0.4 wan
Недостаток: для этого требуется, чтобы у каждого маршрутизатора / точки доступа был свой SSID (без автоматического роуминга, потому что разные подсети), и не было разрешено обнаружение устройств в разных подсетях.
Недостаток: требует более сложной настройки NAT и брандмауэра. Вы должны сделать так, чтобы трафик к другим подсетям ЛВС проходил (передавался без какого-либо NAT). Аналогично, ваши правила фильтрации в каждом маршрутизаторе должны принимать входящие пакеты из подсетей других маршрутизаторов.
Вот пример грубого iptables:
-t filter
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A FORWARD -s 192.168.3.0/24 -j ACCEPT
-A FORWARD -s 192.168.4.0/24 -j ACCEPT
-A FORWARD -j REJECT
-t nat
-A PREROUTING -d 192.168.2.0/24 -j ACCEPT
-A PREROUTING -d 192.168.3.0/24 -j ACCEPT
-A PREROUTING -d 192.168.4.0/24 -j ACCEPT
-A PREROUTING -o <wan> -j MASQUERADE (or SNAT or whatever)
Еще один метод: иметь одну подсеть и три DHCP-сервера.
Вы, вероятно, можете сойти с рук с этим:
[Cable Modem]
192.168.0.1/24
│
├── WAN 192.168.0.2 - Wireless Router #1 - LAN 192.168.1.1/24
│ │
├── WAN 192.168.0.3 - Wireless Router #2 - LAN 192.168.1.2/24
│ │
└── WAN 192.168.0.4 - Wireless Router #3 - LAN 192.168.1.3/24
Да, это указывает на то, что ЛВС всех трех маршрутизаторов подключены к единой сети Ethernet, хотя это важно не в цикле (если DDWRT не поддерживает RSTP, в этом случае происходит сбой). Соединение всех локальных сетей необходимо, если вам нужен общий SSID.
Да, все три маршрутизатора могут использовать DHCP. В этой ситуации диапазон адресов DHCP каждого маршрутизатора должен отличаться, хотя и от одной подсети (например, 192.168.1.101–192.168.1.125, 192.168.1.126-192.168.1.150 и т.д.)
Преимущество: у вас есть одна подсеть - все три точки доступа могут использовать один и тот же SSID, роуминг работает, обнаружение устройств работает.
Недостаток: устранение неполадок может стать раздражающим. Переадресация портов будет адом.
(Тем не менее, это не сумасшедший метод. Это похоже на то, как крупные сети реализуют аварийное переключение маршрутизаторов: у них есть два маршрутизатора, совместно использующих одну и ту же сеть Ethernet, одну и ту же подсеть ЛВС и совместно использующие IP-адрес с использованием протокола, такого как VRRP. Тогда нужен только один DHCP-сервер и пул.)