Маршрутизация для двух точек доступа Wi-Fi [закрыто]

Вопрос или проблема

У меня есть следующая проблема. Я хочу обеспечить два точки доступа Wi-Fi с помощью Raspberry Pi 3B+ (внутренний и внешний через USB-Wi-Fi). Все работает, но маршрутизация не идеальна.

Вот моя конфигурация:

  • eth0: Подключен к ограниченной сети /23 (некоторые порты и веб-сайты запрещены). У меня динамический IP-адрес.
  • wifi0: Должен быть маршрутизирован через wg0 (Wireguard VPN)
  • wifi1: Должен быть маршрутизирован напрямую к eth0.
  • wg0: Wireguard VPN через eth0

Я создал следующие правила iptables:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i wlan0 -o wg0 -j ACCEPT
-A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Проблема в том, что обе сети Wi-Fi используют wg0 (VPN).

kay@raspberrypi:~ $ sudo iptables -L -v
Chain INPUT (policy ACCEPT 75591 packets, 42M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 87442 packets, 68M bytes)
 pkts bytes target     prot opt in     out     source               destination
33483   13M ACCEPT     all  --  wlan0  wg0     anywhere             anywhere
25093   15M ACCEPT     all  --  wg0    wlan0   anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  wlan1  eth0    anywhere             anywhere
    0     0 ACCEPT     all  --  eth0   wlan1   anywhere             anywhere             state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 87314 packets, 65M bytes)
 pkts bytes target     prot opt in     out     source               destination

Возможно, это проблема с шлюзом по умолчанию, но я не уверен, как это исправить.

Вам нужна дополнительная информация?

Я благодарен за любые подсказки.

Кай

Ответ или решение

К сожалению, ваш вопрос касательно маршрутизации для двух точек доступа Wi-Fi в рамках системы Raspberry Pi 3b+ был закрыт как не относящийся к тематике сети или серверной инфраструктуры. Тем не менее, позвольте мне предоставить вам полное руководство по этой проблеме, с учетом ваших текущих настроек и возможных решений.

Анализ ситуации

Вы уже достигли определенного уровня настройки, однако сталкиваетесь с проблемой, когда обе сети Wi-Fi направляются через VPN (wg0). Давайте проанализируем вашу конфигурацию и предложим рекомендации по ее улучшению.

Настройки сетевых интерфейсов

  1. eth0: Подключен к ограниченной сети с динамическим IP. Важно понимать, что это соединение будет иметь максимальный приоритет для выхода в интернет.
  2. wifi0: Этот интерфейс должен использовать VPN для всего трафика.
  3. wifi1: Трафик должен идти напрямую через eth0 без использования VPN.
  4. wg0: Это интерфейс для подключения к WireGuard VPN, который используется только для wifi0.

Предложения по улучшению маршрутизации

Для решения вашей проблемы требуется более детальная маршрутизация трафика для разных интерфейсов. Попробуйте следующее:

1. Настройте таблицы маршрутизации

Создайте отдельные таблицы маршрутизации для каждого интерфейса:

  • wifi0 (с VPN)
  • wifi1 (прямое подключение)

Для этого добавьте эти строки в файл /etc/iproute2/rt_tables:

100     wifi0_table
200     wifi1_table

2. Настройте маршрутизацию

Теперь вам нужно настроить маршруты. Выполните эти команды:

# Для wifi0, маршруты будут через wg0
ip route add <VPN_GATEWAY> dev wg0 table wifi0_table
ip rule add from <IP wifi0> table wifi0_table

# Для wifi1, маршруты будут через eth0
ip route add default via <DEFAULT_GATEWAY> dev eth0 table wifi1_table
ip rule add from <IP wifi1> table wifi1_table

Замените <VPN_GATEWAY>, <IP wifi0>, <IP wifi1> и <DEFAULT_GATEWAY> на соответствующие IP-адреса вашей сети.

3. Обновите iptables

Для корректной работы у вас также могут быть внесены изменения в iptables. Проверьте, чтобы ваши правила соответствовали маршрутам. Возможно, вам потребуется изменить правила для FORWARD, чтобы трафик от wifi0 направлялся через wg0, а трафик от wifi1 — напрямую.

Пример правил:

# Настройка правил iptables для wifi0
iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Настройка правил iptables для wifi1
iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT

4. Проверка конфигурации

Убедитесь, что конфигурация работает корректно, используя команды ip route show и iptables -L -v. Проверьте, что трафик идет по предусмотренным маршрутам. Тестируйте соединение с веб-сайтом, который доступен только через VPN, и с тем, который доступен только через eth0.

Заключение

Настройка маршрутизации для нескольких точек доступа Wi-Fi может показаться сложной, но, следуя приведенным выше шагам, вы сможете установить необходимую конфигурацию. Постепенный подход с настройкой таблиц маршрутизации и правил iptables позволит вам направлять соответствующий трафик по нужным каналам.

Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться к сообществу за поддержкой или более детальными инструкциями.

Оцените материал
Добавить комментарий

Капча загружается...