Проблема маршрутизации с двумя Wi-Fi точками доступа: одна через Wireguard VPN, другая напрямую

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

Среда

  • ОС: Linux
  • Сетевые интерфейсы:
    • wlan0: Используется для hotspot без VPN (MyHotspot)
    • wlan1: Подключен к интернету
    • wlan2: Используется для VPN hotspot (MyHotspot-VPN)
    • au-syd-wg-002: Интерфейс Wireguard VPN

Конфигурация

Я настроил два WiFi hotspot:

  1. MyHotspot (без VPN): Использует wlan0, интернет от wlan1
  2. MyHotspot-VPN: Использует wlan2, интернет через Wireguard VPN (au-syd-wg-002)

Конфигурация Wireguard (/etc/wireguard/au-syd-wg-002.conf):

[Interface]
PrivateKey = редактировано
Address = 10.67.48.249/32,fc00:bbbb:bbbb:bb01::4:30f8/128
DNS = 10.64.0.1

[Peer]
PublicKey = редактировано
AllowedIPs = 192.168.13.0/24
Endpoint = 146.70.141.194:51820

Конфигурация MyHotspot (без VPN) (/etc/create_ap/wlan0-1.conf):

GATEWAY=192.168.12.1
DHCP_DNS=шлюз
WIFI_IFACE=wlan0
INTERNET_IFACE=wlan1
SSID=MyHotspot

Конфигурация MyHotspot-VPN (/etc/create_ap/wlan2-vpn.conf):

GATEWAY=192.168.13.1
DHCP_DNS=10.64.0.1
WIFI_IFACE=wlan2
INTERNET_IFACE=au-syd-wg-002
SSID=MyHotspot-VPN

Данные о сетевых интерфейсах (вывод ifconfig):

au-syd-wg-002: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 10.67.48.249  netmask 255.255.255.255  destination 10.67.48.249
        inet6 fc00:bbbb:bbbb:bb01::4:30f8  prefixlen 128  scopeid 0x0<global>
        RX packets 0  bytes 0 (0.0 B)
        TX packets 0  bytes 0 (0.0 B)

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.12.1  netmask 255.255.255.0  broadcast 192.168.12.255
        inet6 fe80::dea6:32ff:fe9a:b7b2  prefixlen 64  scopeid 0x20<link>
        ether dc:a6:32:9a:b7:b2  txqueuelen 1000  (Ethernet)
        RX packets 70838  bytes 11884831 (11.3 MiB)
        TX packets 118247  bytes 112432350 (107.2 MiB)

wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.35.157  netmask 255.255.252.0  broadcast 172.17.35.255
        inet6 fe80::280a:74a5:f28a:341d  prefixlen 64  scopeid 0x20<link>
        ether f0:09:0d:36:7b:7a  txqueuelen 1000  (Ethernet)
        RX packets 118170  bytes 112463238 (107.2 MiB)
        TX packets 68718  bytes 14022513 (13.3 MiB)

wlan2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.13.1  netmask 255.255.255.0  broadcast 192.168.13.255
        inet6 fe80::3698:b5ff:fe36:9bf5  prefixlen 64  scopeid 0x20<link>
        ether 34:98:b5:36:9b:f5  txqueuelen 1000  (Ethernet)
        RX packets 121  bytes 18670 (18.2 KiB)
        TX packets 101  bytes 19478 (19.0 KiB)

Маршрутная таблица:

default via 172.17.32.10 dev wlan1 proto dhcp src 172.17.35.157 metric 600 
172.17.32.0/22 dev wlan1 proto kernel scope link src 172.17.35.157 metric 600 
192.168.12.0/24 dev wlan0 proto kernel scope link src 192.168.12.1 
192.168.13.0/24 dev au-syd-wg-002 scope link 
192.168.13.0/24 dev wlan2 proto kernel scope link src 192.168.13.1 

Проблема

Hotspot без VPN работает нормально, но VPN hotspot не работает. При подключении к MyHotspot-VPN я получаю ошибку DNS_PROBE_FINISHED_NO_INTERNET при запросах в браузере.

Однако, если я изменяю AllowedIPs в конфигурации Wireguard на 0.0.0.0/0, оба hotspot работают нормально, но тогда оба маршрутизируются через VPN. Я хочу, чтобы только MyHotspot-VPN использовал Wireguard VPN.

Вопрос

Как я могу настроить свою маршрутизацию или настройку Wireguard, чтобы позволить hotspot MyHotspot-VPN (wlan2) правильно маршрутизировать трафик через Wireguard VPN (au-syd-wg-002), сохраняя при этом hotspot MyHotspot (wlan0) на обычном интернет-соединении?

Дополнительная информация

  • VPN hotspot настроен на использование DNS VPN (10.64.0.1), что можно заметить в конфигурационном файле
  • Оба hotspot создаются с использованием инструмента linux-wifi-hotspot, вот пример конфигурационного файла по умолчанию create_ap.conf

Буду признателен за любые идеи или предложения. Спасибо!

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

Чтобы решить проблему с маршрутизацией трафика для двух WiFi-гостевых сетей, где одна использует Wireguard VPN, а другая — обычное интернет-соединение, необходимо правильно настроить маршрутизацию и конфигурацию Wireguard. Давайте рассмотрим необходимые шаги.

Конфигурация маршрутизации

Основная проблема вашего сценария заключается в том, что при использовании сетевых интерфейсов и маршрутов необходимо правильно настроить таблицы маршрутизации так, чтобы трафик из сети 192.168.13.0/24 (MyHotspot-VPN) направлялся через интерфейс Wireguard (au-syd-wg-002) и использовал соответствующие DNS-серверы.

  1. Настройка маршрутов для MyHotspot-VPN:
    Убедитесь, что в вашей таблице маршрутизации указан маршрут по умолчанию для интерфейса au-syd-wg-002, который будет использоваться для сети 192.168.13.0/24. Вам нужно добавить маршрут, который бы направлял весь трафик от вашей VPN-сети к Wireguard:

    sudo ip route add 192.168.13.0/24 dev au-syd-wg-002
  2. Настройка разрешения DNS:
    Ваша конфигурация для MyHotspot-VPN правильно указывает DNS на 10.64.0.1. Убедитесь, что ваш DHCP-сервер, который обслуживает wlan2, корректно раздает этот DNS-сервер клиентам.

  3. Настройка конфигурации Wireguard:
    В конфигурации Wireguard вы указали AllowedIPs = 192.168.13.0/24. Это правильно, так как оно позволяет маршрутизировать только трафик этой подсети через VPN. Однако, необходимо также убедиться, что в вашей конфигурации VPN серверная часть настроена корректно для обработки трафика из этой подсети.

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

  • Проверьте доступность VPN:
    Убедитесь, что клиенты действительно могут подключаться к VPN. Это можно сделать, попробовав пинговать 10.67.48.249 с клиентского устройства, подключенного к MyHotspot-VPN.

  • Проверьте DNS:
    После подключения к MyHotspot-VPN убедитесь, что DNS правильно работает. В командной строке выполните:

    nslookup google.com 10.64.0.1

    Если результаты положительные, значит, DNS работает через VPN.

Итоговая проверка

После внесения всех изменений проверьте мое предположение:

  1. Подключитесь к MyHotspot-VPN и проверьте интернет-соединение.
  2. Если по-прежнему возникают ошибки, проверьте логи Wireguard и убедитесь, что нет блокировок на уровне межсетевого экрана или других компонентов.

Дополнительные рекомендации

  • Если ошибка DNS_PROBE_FINISHED_NO_INTERNET повторяется, возможно, стоит рассмотреть возможность использования альтернативного DNS (например, Google DNS: 8.8.8.8 или Cloudflare: 1.1.1.1) для тестирования.

  • Убедитесь, что на любом устройства, подключенном к MyHotspot-VPN, отключены другие интерфейсы, которые могут пытаться перехватить трафик.

Следуя этим шагам, вы сможете настроить правильную маршрутизацию трафика для каждого из ваших WiFi аксессуаров, что позволит избежать конфликта между ними. Если у вас остались вопросы или потребуются дополнительные уточнения, пожалуйста, не стесняйтесь задавать их.

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

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