Одновременные точки доступа wlan0 и wlan1 (через hostapd)

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

Я пытаюсь настроить 2 беспроводные точки доступа с устройства на Linux (Debian Jessy). Обе точки доступа должны работать одновременно и делиться интернет-соединением (как показано ниже).

    _____       ___________ 
    |   | eth0 |           | wlan0(AccessPoint 2.5G) 
    |box|-----< Eth       USB1>WLAN0_Stick <<<<<<  Смартфон
    |___|      | Debian    | 
               | Устройство  | wlan1(AccessPoint 5G)
               |          USB2>WLAN1_Stick <<<<<<  ПК/Ноутбук
               |___________|

Моя начальная конфигурация (hostapd и dnsmasq) для единственной wlan0 (AccessPoint 2.5G)

/etc/hostapd.conf

    # Определить интерфейс
    interface=wlan0
    # Выбрать драйвер
    driver=nl80211
    # Установить имя точки доступа
    ssid=AP-wifi-2G
    # Установить режим работы оборудования точки доступа на 802.11g
    hw_mode=g
    # Установить WIFI канал (можно легко изменить)
    channel=6
    # Включить только WPA2 (1 для WPA, 2 для WPA2, 3 для WPA + WPA2)
    wpa=2
    wpa_passphrase=wifi123456

/etc/dnsmasq.conf

    # Привязаться только к одному интерфейсу
    bind-interfaces
    # Выбрать интерфейс для привязки
    interface=wlan0
    # Указать диапазон IP-адресов для DHCP аренды
    dhcp-range=192.168.150.2,192.168.150.10

Для инициализации AP1 я использую следующий bash-скрипт

start.sh

    !/bin/bash
    # Старт
    # Настроить IP-адрес для WLAN
    sudo ifconfig wlan0 192.168.150.1
    # Запустить сервер DHCP/DNS
    sudo service dnsmasq restart
    # Включить маршрутизацию
    sudo sysctl net.ipv4.ip_forward=1
    # Включить NAT
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    # Запустить демон точки доступа
    sudo hostapd /etc/hostapd.conf
    # Остановить
    # Отключить NAT
    sudo iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE
    # Отключить маршрутизацию
    sudo sysctl net.ipv4.ip_forward=0
    # Отключить сервер DHCP/DNS
    sudo service dnsmasq stop

Эта конфигурация работает отлично для одиночной точки доступа (wlan0, AccessPoint 2.5G).
Я добавил вторую конфигурацию /etc/hostapd_5G.conf для wlan1 аналогично /etc/hostapd.conf и изменил dnsmasq.conf и start.sh (wlan0->wlan1 для тестирования) – это тоже хорошо работало на 5G.

Но мне нужно запускать AP wlan0 и AP wlan1 одновременно. Я думаю, что мне нужно изменить dnsmasq.conf для второго интерфейса. Но я не знаю, как это сделать.

Кто-нибудь, пожалуйста, помогите с одновременной конфигурацией (AP wlan0 и AP wlan1).

Я думаю, вам нужно как-то объединить wlan0 и wlan1. Вы можете заметить, что OpenWRT делает это. Посмотрите на пакет bridge-utils.

Добавление этого в /etc/network/interfaces может помочь:

auto wifi0
iface wifi0 inet static
    bridge_ports wlan0 wlan1
    address 192.168.1.1
    netmask 255.255.255.0

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

Для настройки двух одновременно работающих беспроводных точек доступа на устройстве под управлением Linux (в данном случае Debian Jessie) с использованием hostapd и dnsmasq, потребуется внести соответствующие изменения в конфигурационные файлы и скрипт запуска. Давайте рассмотрим все шаги подробно.

Шаг 1: Настройка конфигурации hostapd

Создайте отдельный файл конфигурации для второй точки доступа, например, /etc/hostapd_5G.conf, который будет содержать следующие параметры:

# Определите интерфейс
interface=wlan1
# Выбор драйвера
driver=nl80211
# Задайте имя точки доступа
ssid=AP-wifi-5G
# Установите режим аппаратного обеспечения на 802.11a
hw_mode=a
# Установите WIFI канал (можно легко изменить)
channel=36
# Включите только WPA2
wpa=2
wpa_passphrase=wifi123456

Это позволит вам запускать вторую точку доступа на интерфейсе wlan1.

Шаг 2: Настройка dnsmasq

Вам необходимо отредактировать конфигурационный файл dnsmasq (/etc/dnsmasq.conf) так, чтобы DHCP-сервер выдавал IP-адреса для обеих точек доступа. Добавьте следующую строку:

# Задать диапазоны IP-адресов для DHCP-аренды
dhcp-range=192.168.150.2,192.168.150.10,12h
dhcp-range=192.168.151.2,192.168.151.10,12h

Таким образом, вы выделите два диапазона IP-адресов: один для wlan0, а другой для wlan1.

Шаг 3: Изменение скрипта запуска

Обновите ваш скрипт start.sh, чтобы запускать оба сервера hostapd и dnsmasq одновременно. Вот пример, как это может выглядеть:

#!/bin/bash
# Запустить настройки для wlan0
sudo ifconfig wlan0 192.168.150.1
sudo service dnsmasq restart
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo hostapd /etc/hostapd.conf &

# Запустить настройки для wlan1
sudo ifconfig wlan1 192.168.151.1
sudo service dnsmasq restart
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo hostapd /etc/hostapd_5G.conf &

wait

Обратите внимание, что мы запустили hostapd для обеих точек доступа одновременно, используя & для выполнения в фоновом режиме, и команда wait для ожидания завершения всех фоновых процессов.

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

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

Заключение

Следуя приведенным выше инструкциям, вы сможете настроить одновременно работающие точки доступа wlan0 и wlan1 на вашем Debian устройстве. Убедитесь, что конфигурационные файлы и скрипты настроены корректно, и проверьте функциональность вашей сети. Если у вас возникнут трудности, просмотрите логи для получения дополнительной информации о возможных ошибках, используя команду journalctl -xe или tail -f /var/log/syslog.

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

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