вы ничего не сказали о конфигурации IP, и конфигурация IP именно то, что вам нужно для решения проблемы #3.
тщательно выберите свой IP-план
вся ваша сеть будет иметь "общую схему IP". Например, многие сети используют 192.168.*.*
.
можно использовать любой IP личное пространство, как в IPv4 и IPv6. Убедитесь, что он не будет сталкиваться с любыми другими сетями пользователей или занесены может быть подключать.
например, допустим, мы будем использовать глобальную сеть 172.17.*.*
. Обратите внимание, что "все-ноль" (172.17.*.0
) и "все-те" (172.17.*.255
) адреса зарезервированы (т. е. не могут быть использованы) в сети и во всех ее подразделениях.
нам придется разделить эту большую сеть на более мелкие сети, которые каждый ИРЦ будет использовать независимо. Одна из подсетей будет использоваться для связи между RPi, для этого мы будем держать 172.17.0.*
для себя. Мы могли бы использовать другой номер, но использование 0 облегчает настройку Pi со сценарием.
"публичная" часть сети будет использовать IPs 172.17.xxx.*
здесь xxx
является уникальным для каждого ИРЦ. Опять же, чтобы упростить сценарий, мы начинаем с 1 и увеличиваем шаг.
RPi нужен IP в и сетей. Для публичной сети рекомендуется использовать .254
, так будет 172.17.xxx.254
. Но как насчет центральной сети? ИРЦ будет использоваться в качестве шлюза для сеть 172.17.xxx.*
по opther занесены. Логично было бы сопоставить IP-адрес ретранслируемой сети: мы будем использовать 172.17.0.xxx
.
настроить Pis
настройка RPi'wlan1
(том public интерфейс) использовать основные IP 172.17.xxx.254
здесь xxx
является уникальным среди всех ваших RPI, а не 0 (см. выше). Маска сети 255.255.255.0
.
настройка RPi'wlan0
( private интерфейс) использовать основные IP 172.17.0.xxx
здесь xxx
это то же самое, что и выше. Маска сети 255.255.255.0
.
на каждый ИРЦ, запустите следующий сценарий, после замены $END
по количеству используемых вами RPi:
echo 1 > /proc/sys/net/ipv4/ip_forward
for i in $(seq 1 $END); do route add -net 172.17.$i.0 netmask 255.255.255.0 gw 172.17.0.$i; done
iptables -A FORWARD -s 172.17.0.0/16 -d 172.17.0.0/16 -j ACCEPT
TL; DR, мы делаем следующее: Мы выбираем большую сеть, здесь 172.17.0.0/16
. Мы подразделяем его на 255 меньших сетей:172.17.xxx.0/24
. Мы держим 0
для себя, и дать все другие номера для пользователей. Затем мы говорим RPi для передачи пакетов, возглавляемых на другие компьютеры в соответствующий RPi "шлюз".
скажите устройства пользователей, чтобы посмотреть в нужном месте
я предполагаю, что вы используете dnsmasq в качестве DHCP-сервера для публичных сетей. Для того, чтобы иметь пользовательские устройства настроены правильно, вам нужно будет настроить его параметры.
настройка DHCP для обслуживания адресов в диапазоне, адаптированном к сети, Е. И. 172.17.xxx.1
до 172.17.xxx.253
.
добавить статический маршрут DHCP часть dnsmasq config (снова заменив xxx
надлежащим образом):
dhcp-option=121,16.172.17.0.0,172.17.xxx.254
использование статического маршрута позволяет избежать перезаписи шлюза по умолчанию для клиентов. Таким образом, если они все еще подключены к другой сети (т. е. ноутбуку с подключенным Ethernet), у них не должно быть никаких проблем.
убедитесь, что вы тестируете это с 1 или 2 Pis и 1 или 2 клиентами перед совершением настройка все ваш занесены.