Нужна помощь в настройке беспроводного роутера, который предлагает /30 публичный IP-диапазон через DHCP.

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

У меня есть блок публичных IP-адресов, и я хочу создать маршрутизатор с помощью моего Raspberry Pi, чтобы предложить эти публичные IP-адреса моим устройствам за CGNAT.

Топология

[Сервер](wireguard addr = 10.0.0.1/24)–Wireguard–> [Маршрутизатор] (wireguard addr = 10.0.0.2) –> [AP] (wlan0=x.y.z.0/30)

Текущий статус

  • ip addr подтвердил, что адрес для wlan0 равен x.y.z.0/30
  • AllowedIPs = 0.0.0.0/0 установлено на стороне маршрутизатора
  • Точка доступа Wi-Fi и DHCP-сервер функциональны, с установленным шлюзом по умолчанию на x.y.z.0, и подключенные устройства получают адреса в диапазоне x.y.z.0+n.
  • Я вижу клиента в таблице ARP с помощью arp -a
  • Когда я пингую адреса в диапазоне x.y.z.0/30 с другого сервера, я вижу входящие пакеты на интерфейсе Wireguard маршрутизатора.
  • Перенаправление IPv4 включено на маршрутизаторе (net.ipv4.ip_forward=1).
  • Если я выполняю ping 8.8.8.8 на маршрутизаторе, он не получает никаких ответов после того, как интерфейс WireGuard включен (пакеты, захваченные на интерфейсе WireGuard сервера, имеют исходный IP 10.0.0.2), но ping -I x.y.z.0 8.8.8.8 будет работать (пакеты, захваченные на интерфейсе WireGuard сервера, имеют исходный IP x.y.z.0).
  • Пакеты не перенаправляются на wlan0, и в противоположном направлении тоже.
  • Запуск команды iptables -A FORWARD -d x.y.z.0+n -o wlan0 -j ACCEPT может заставить пакеты перенаправляться на wlan0, но iptables -A FORWARD -s x.y.z.0+n -o wg0 -j ACCEPT не работает для обратного направления.

Может кто-то предложить подсказки о том, почему это не работает так, как ожидалось? Спасибо!

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

Чтобы успешно организовать маршрутизатор на базе Raspberry Pi с использованием блока публичных IP-адресов через DHCP, необходимо учесть несколько ключевых моментов в конфигурации. Рассмотрим вашу ситуацию более подробно и предложим решения для устранения проблем с маршрутизацией.

Топология и текущий статус

  1. Подключение: На данный момент у вас настроено следующее:

    • Сервер WireGuard (10.0.0.1/24) подключен к маршрутизатору (10.0.0.2) по VPN.
    • Маршрутизатор на интерфейсе WLAN0 настроен с адресом x.y.z.0/30.
    • DHCP сервер корректно раздает адреса в диапазоне x.y.z.0+n.
  2. Проблемы с маршрутизацией:

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

Основные рекомендации по решению проблемы

1. Корректировка настроек IPTABLES

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

# Разрешаем перенаправление трафика между интерфейсами
iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o wlan0 -j ACCEPT

Эти правила обеспечивают двунаправленный трафик, позволяя пакетам проходить между интерфейсами wlan0 и wg0.

2. Настройка маршрутов

Поскольку у вас есть публичные IP-адреса через DHCP, убедитесь, что на маршрутизаторе настроены правильные маршруты. Это можно сделать следующим образом:

ip route add x.y.z.0/30 dev wlan0

Добавление маршрутов поможет маршрутизатору служить связующим звеном между подключенными устройствами и публичной сетью.

3. Проверка настройка NAT

Если вы хотите, чтобы подключенные устройства имели доступ к интернету с помощью публичных IP-адресов, потребуется включить NAT. Это можно сделать с помощью следующей команды:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Это правило маскирует исходящие соединения, что позволяет устройствам за маршрутизатором использовать публичные IP для доступа в интернет.

4. Настаивание DHCP

Убедитесь, что ваш DHCP сервер корректно настроен для выдачи IP-адресов из диапазона x.y.z.0+n. Возможно, вам понадобится обновить конфигурацию DCHP-сервера, чтобы убедиться, что он работает должным образом.

Пример конфигурации DHCP-сервера:

subnet x.y.z.0 netmask 255.255.255.252 {
  range x.y.z.1 x.y.z.2; # диапазон выданных адресов
  option routers x.y.z.0; # шлюз
  option subnet-mask 255.255.255.252;
}

Заключение

Эти шаги помогут вам исправить текущие проблемы с маршрутизацией и наладить корректную работу вашего маршрутизатора на базе Raspberry Pi. Убедитесь, что каждый шаг выполняется с учетом конфигурации сети и связанных с ней параметров. Если проблемы сохраняются, продолжайте исследовать логи системы и сетевые соединения, чтобы обнаружить дополнительные проблемы. С помощью тщательной настройки маршрутизации и правил firewall вы сможете обеспечить корректное использование публичных IP-адресов через ваш маршрутизатор.

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

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