Software access point (Русский) - ArchWiki

# Software access point (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(WI-FI).

## Требования

### Поддержка режима AP устройством Wi-Fi

Вам понадобится nl80211 совместимое беспроводное устройство, поддерживающее рабочий режим AP. Это можно проверить, выполнив команду `iw list` , которая должна вывести `AP` в секции `Supported interface modes`:

    $ iw list

    Wiphy phy1
    ...
    	Supported interface modes:
    		 * IBSS
    		 * managed
    		 * AP
    		 * AP/VLAN
    		 * WDS
    		 * monitor
    		 * mesh point
    ...

### Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве

Создание программной AP не зависит от конкретного типа устройства (Ethernet, Wi-Fi, ...). Многие беспроводные устройства даже могут быть одновременно использованы как точки доступа и как беспроводные "клиенты". Используя эту возможность вы можете создавать программые AP действующие как "беспроводной ретранслятор" для существующей сети, используя единственное Wi-Fi устройство. Эта возможность указана в следующей секции вывода `iw list`:

    $ iw list

    Wiphy phy1
    ...
            valid interface combinations:
                     * #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1,
                       total <= 2048, #channels <= 1, STA/AP BI must match
    ...

Ограничение `#channels <= 1` означает, что ваша программная AP должна работать на том же канале, что и ваше Wi-Fi клиентскоее соединение; смотрите `channel` свойство в `hostapd.conf` ниже.

Если вы собираетесь использовать этот способ, возможно потому что Ethernet-соединение недоступно, вам необходимо создать два отдельных виртуальных интерфейса. Виртуальные интерфейсы для физического устройства `wlan0` могут быть созданы так: сначала, "виртуальные интерфейсы" создаются непосредственно для самого сетевого соединения (`wlan0_sta`) и для программной AP/hostapd "беспроводного ретранслятора":

    # iw dev wlan0 interface add wlan0_sta type station
    # iw dev wlan0 interface add wlan0_ap  type __ap

Далее, интерфейсам присваиваются различные MAC адреса (используем произвольные отличающиеся адреса):

    # ip link set dev wlan0_sta address 12:34:56:78:ab:cd
    # ip link set dev wlan0_ap  address 12:34:56:78:ab:ce

## Обзор

Настройка точки доступа включает в себя два основных пункта:

- Настройка канального уровня Wi-Fi, так что беспроводные клиенты могут использовать вашу "программную точку доступа" и принимать/отправлять IP пакеты от/до вашей машины; это то, что пакет hostapd должен сделать за вас.
- Настройка сетевой конфигурации на вашем компьютере, так что ваша машина будет правильно передавать IP пакеты от/до вашего собственного интернет соединения от/до беспроводных клиентов.

## Канальный уровень Wi-Fi

Точку доступа Wi-Fi можно поднять с помощью пакета hostapd, который также поддерживает WPA2.

Скорректируйте настройки hostapd конфигурационного файла, если необходимо. В первую очередь измените `ssid` и `wpa_passphrase`. Больше информации на hostapd Linux documentation page.

    /etc/hostapd/hostapd.conf

    ssid=YourWiFiName
    wpa_passphrase=Somepassphrase
    interface=wlan0
    bridge=br0
    auth_algs=3
    channel=7
    driver=nl80211
    hw_mode=g
    logger_stdout=-1
    logger_stdout_level=2
    max_num_sta=5
    rsn_pairwise=CCMP
    wpa=2
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP CCMP

Для автозапуска hostapd в качестве службы запустите `hostapd.service`.

Важно: Беспроводные каналы разрешённые для точки доступа отличаются в зависимости от вашего расположения. Если прошивка вашего беспроводного устройства позволяет, вы можете настроить свой регион чтобы использовать разрешённые каналы. Не выбирайте другой регион, так как это может стать запрещённым распространением сетевого трафика, затрагивающим функциональность вашего устройства и других в зоне покрытия! Для установки региона смотрите Настройка беспроводной сети#Соответствие регламентам.
Примечание: Если ваша сетевая карта имеет чипсет RTL8192CU, установите hostapd-rtl871xdrvAUR и в `hostapd.conf` замените `driver=nl80211` на `driver=rtl871xdrv`.

## Конфигурация сети

Есть два основных способа реализации:

1. Bridge: создав сеть типа мост на своём компьютере (беспроводные клиенты будут подключаться для доступа к тому же сетевому интерфейсу и к той же подсети, которые используются на вашем компьютере)
2. NAT: используя IP перенаправление/маскарадинг и DHCP сервис (беспроводные клиенты будут использовать выделенные подсети, данные от/до этих подсетей будут обработаны NAT -- подобно тому как это используется в обычном Wi-Fi роутере, который подключён по DSL или проводному модему)

Обращаться с мостом проще, но он требует, чтобы любой сервис который нужен вашим беспроводным клиентам (вроде DHCP) был доступен на внешнем интерфейсе вашего компьютера. Это означает, что он не будет работать если у вас dial-up соединение (например, через PPPoE или 3G modem), или если вы используете проводной модем, который поддерживает всего один IP адрес до вас посредством DHCP.

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

Конечно, возможно скомбинировать оба способа. Для этого изучение обеих статей будет необходимым. Например, имея мост, связанный с ethernet-устройством и беспроводным устройством, имеющим статический ip и раздающий адреса при помощи DHCP, можно создать NAT настроенный на клонирование трафика на дополнительное сетевое устройство - это может быть ppp или ethernet.

### Настройка моста

Вам необходимо создать сетевой "мост" и присоединить к нему свой интерфейс (например, `eth0`). Вам не следует добавлять к мосту беспроводной интерфейс (например, `wlan0`); hostapd добавит его самостоятельно.

Смотри Network bridge.

Совет: Вы можете захотеть переиспользовать существующий мост, если у вас есть таковой (например, использованный виртуальной машиной).

### Настройка NAT

Смотрите Раздача интернета для получения дополнительной информации.

Учтите, что в той статье используется устройство `net0` для подключения к локальной сети. В нашем случае в качестве его будет выступать беспроводное устройство (напр. `wlan0`).

## Инструменты

### create_ap

Пакет create_apAUR включает в себя hostapd, dnsmasq и iptables для создания точки доступа посредством Моста/NAT.

### RADIUS

Смотрите [1] инструкции для запуска сервера FreeRADIUS для WPA2 Enterprise.

## Решение проблем

### WLAN очень медленно работает

Это может быть вызвано слабой энтропией. Попробуйте установить haveged.

### Вмешательство NetworkManager

hostapd может не работать, если устройство управляется NetworkManager. Вы можете замаскировать устройство:

    /etc/NetworkManager/NetworkManager.conf

    [keyfile]
    unmanaged-devices=mac:<hwaddr>

## Смотрите также

- Router
- Hostapd : The Linux Way to create Virtual Wi-Fi Access Point
- tutorial and script for configuring a subnet with DHCP and DNS

Category:

- Wireless networking (Русский)