Difference between revisions of "Software access point (Русский)"

From ArchWiki
Jump to: navigation, search
m (Blackx moved page Software Access Point (Русский) to Software access point (Русский): non-English articles should use titles of the form "Title in English (Language)")
(update)
Line 3: Line 3:
 
[[en:Software Access Point]]
 
[[en:Software Access Point]]
 
{{Unmaintained (Русский)}}
 
{{Unmaintained (Русский)}}
Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети, . Это поможет Вам избежать покупки отдельного беспроводного маршрутизатора(WI-FI).
+
{{Translateme (Русский)|Статья практически не переведена}}
 +
Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(WI-FI).
  
= Необходимые вещи =
+
== Требования ==
  
Вам понадобятся:
+
=== Поддержка режима AP устройством Wi-Fi ===
  
* prism2/2.5/3 PCI беспроводная сетевая карта или nl80211-совместимая карта (например ath9k) (прим. переводчика: в этой строке следует пояснить что означают данные иностранные слова :) )
+
Вам понадобится [http://wireless.kernel.org/en/developers/Documentation/nl80211 nl80211] совместимое беспроводное устройство, поддерживающее [http://wireless.kernel.org/en/users/Documentation/modes рабочий режим] AP. Это можно проверить, выполнив команду {{ic|iw list}} , которая должна вывести {{ic|AP}} в секции {{ic|Supported interface modes}}:
* пакеты wireless_tools, hostapd and bridge-utils
 
  
== Шаги реализации ==
+
{{hc|$ iw list|
 +
Wiphy phy1
 +
...
 +
Supported interface modes:
 +
* IBSS
 +
* managed
 +
* '''AP'''
 +
* AP/VLAN
 +
* WDS
 +
* monitor
 +
* mesh point
 +
...
 +
}}
  
Конфигурационный файл пакета hostapd /etc/hostapd/hostapd.conf поможет Вам переключить Ваше беспроводное устройство в режим master, после этого Вы сможете принимать соединения от других компьютеров, используя зашифрованный пароль.
+
=== Wireless client and software AP with a single Wi-Fi device ===
  
Пример рабочего конфигурационного файла позаимствован с сайта http://www.su-root.eu статья называется "Turn your Linux computer into a wireless access point using hostapd" (к сожалению прямая ссылка на статью в настоящий момент не работает, но статья полностью видна на главной странице данного сайта):
+
Creating a software AP is independent from your own network connection (Ethernet, wireless, ...). Many wireless devices even support ''simultaneous'' operation both as AP and as wireless "client" at the same time. Using that capability you can create a software AP acting as a "wireless repeater" for an existing network, using a single wireless device. The capability is listed in the following section in the output of {{ic|iw list}}:
 +
 
 +
{{hc|1=$ iw list|2=
 +
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
 +
...
 +
}}
 +
The constraint {{ic|1=#channels <= 1}} means that your software AP must operate on the same channel as your Wi-Fi client connection; see the {{ic|channel}} setting in {{ic|hostapd.conf}} below.
  
interface=wlan0
+
If you want to use the capability/feature, perhaps because an Ethernet connection is not available, you need to create two separate ''virtual interfaces'' for using it.
bridge=br0
+
Virtual interfaces for a physical device {{ic|wlan0}} can be created as follows:
driver=nl80211
+
First, the ''virtual interfaces'' are created for the network connection ({{ic|wlan0_sta}}) itself and for the software AP/hostapd "wireless repeater":
logger_stdout=-1
 
logger_stdout_level=2
 
 
   
 
   
  # Имя Вашей точки доступа
+
  # iw dev wlan0 interface add wlan0_sta type station 
ssid=test
+
# iw dev wlan0 interface add wlan0_ap  type __ap   
hw_mode=g
+
Second, the interfaces are assigned separate MAC addresses (use custom unique addresses):
channel=6
+
# ip link set dev wlan0_sta address 12:34:56:78:ab:cd
auth_algs=3
+
# ip link set dev wlan0_ap  address 12:34:56:78:ab:ce
max_num_sta=5
+
 
wpa=2
+
== Overview ==
+
 
# Пароль
+
Setting up an access point comprises two main parts:
wpa_passphrase=tryyourbest
+
* Setting up the '''Wi-Fi link layer''', so that wireless clients can associate to your computer's "software access point" and send/receive IP packets from/to your computer; this is what the hostapd package will do for you.
wpa_key_mgmt=WPA-PSK
+
* Setting up the '''network configuration''' on you computer, so that your computer will properly relay IP packets from/to its own Internet connection from/to wireless clients.
wpa_pairwise=TKIP CCMP
+
 
  rsn_pairwise=CCMP
+
== Wi-Fi Link Layer ==
 +
 
 +
Точка доступа Wi-Fi реализуется с помощью пакета {{Pkg|hostapd}} (доступного из [[официальных репозиториях]]). Пакет поддерживает WPA2.
 +
 
 +
Adjust the options in ''hostapd'' configuration file if necessary. Especially, change the {{ic|ssid}} and the {{ic|wpa_passphrase}}. See [http://wireless.kernel.org/en/users/Documentation/hostapd hostapd Linux documentation page] for more information.
 +
 
 +
{{hc|/etc/hostapd/hostapd.conf|<nowiki>
 +
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
 +
</nowiki>}}
 +
 
 +
  Для автозапуска hostapd в качестве службы [[запустите]] {{ic|hostapd.service}}.
 +
{{Warning|The wireless channels allowed for access point operation differ according to geography. Depending on the wireless firmware, you may have to set the region correctly to use legal channels. '''Do not''' choose another region, as you may be illegally disturbing network traffic, affecting wireless functionality of your own device and others within its reach! To set the region see [[Wireless network configuration#Respecting the regulatory domain]].}}
 +
 
 +
{{Note|If you have a card based on RTL8192CU chipset, install {{AUR|hostapd-8192cu}} in the [[AUR]] and replace {{ic|1=driver=nl80211}} with {{ic|1=driver=rtl871xdrv}} in the {{ic|hostapd.conf}} file.}}
 +
 
 +
== Конфигурация сети ==
  
=== Построение моста используя Linux kernel >= 2.6.33 ===
+
There are two basic ways for implementing this:
{{Out of date (Русский)}}
+
# '''bridge''': create a network ''bridge'' on your computer (wireless clients will appear to access the same network interface and the same subnet that's used by your computer)
Из-за изменений в ядре, начиная с версии 2.6.33 [http://bugs.gentoo.org/show_bug.cgi?id=298824 мосты не могут содержать неинициализированные интерфейсы].
+
# '''NAT''': with IP forwarding/masquerading and DHCP service (wireless clients will use a dedicated subnet, data from/to that subnet is NAT-ted -- similar to a normal Wi-Fi router that's connected to your DSL or cable modem)
В связи с этим нам нужен hostapd для добавления интерфейса wlan к мосту. (прим. переводчика: мост -это связь между проводным и беспроводным  соединением)
 
  
 +
The bridge approach is simpler, but it requires that any service that's needed by your wireless clients (like, DHCP) is available on your computers external interface. That means it will not work if you have a dial-up connection (e.g., via PPPoE or a 3G modem) or if you're using a cable modem that will supply exactly one IP address to you via DHCP.
  
Requirements:
+
The NAT approach is more versatile, as it clearly separates Wi-Fi clients from your computer and it's completely transparent to the outside world. It will work with any kind of network connection, and (if needed) you can introduce traffic policies using the usual iptables approach.
* kernel >= 2.6.33
 
* hostapd >= 0.7.1
 
* bridge-utils
 
Один способ добиться этого описан здесь [https://bbs.archlinux.org/viewtopic.php?id=120549 и заключается в изменении rc.conf], но из за устаревания [https://www.archlinux.org/news/deprecation-of-net-tools/ net-tools] мы будем использовать [[Netcfg_(Русский) | Netcfg]]:
 
  
 +
Of course, it is possible to ''combine both things''. For that, studying both articles would be necessary. Example: Like having a bridge that contains both an ethernet device and the wireless device with an static ip, offering DHCP and setting NAT configured to relay the traffic to an additional network device - that can be ppp or eth.
  
Установим профайл в /etc/network.d/ (к примеру назовём его "bridge").
+
=== Настройка моста ===
  
{{hc|/etc/network.d/bridge|2=
+
You need to create a network ''bridge'' and add your network interface (e.g. {{ic|eth0}}) to it. You '''should not''' add the wireless device (e.g. {{ic|wlan0}}) to the bridge; hostapd will add it on its own.
INTERFACE="br0"
 
CONNECTION="bridge"
 
DESCRIPTION="Bridge wired and wireless connection"
 
  
# Здесь добавьте только проводной интерфейс, hostapd сам добавит беспроводной
+
See [[Network bridge]].
BRIDGE_INTERFACES="eth0"
 
IP="dhcp"}}
 
  
в /etc/rc.conf сделайте следующее:
+
{{Tip|You may wish to reuse an existing bridge, if you have one (e.g. used by a virtual machine).}}
  
* Добавьте профайл моста к списку NETWORKS.
+
=== Настройка NAT  ===
* Добавьте net-profiles к списку DAEMONS.
 
* Добавьте hostapd в список DAEMONS сразу после net-profiles.
 
  
{{hc|/etc/rc.conf|2=
+
Смотрите [[Раздача интернета]] для получения дополнительной информации.
NETWORKS=( bridge )
 
  
...
+
Учтите, что в той статье используется устройство {{ic|net0}} для подключения к локальной сети. В нашем случае в качестве его будет выступать беспроводное устройство (напр. {{ic|wlan0}}).
  
DAEMONS=( ... net-profiles hostapd ... )
+
== Tools ==
}}
 
  
Перезагрузите машину чтобы применить настройки. После этого используйте другое устройство чтобы обнаружить беспроводную сеть "test"
+
=== create_ap ===
  
Если Вы не хотите перезагружаться, то следующие команды должны Вам помочь:
+
Скрипт [https://bbs.archlinux.org/viewtopic.php?pid=1269258 create_ap] включает в себя {{Pkg|hostapd}}, [[dnsmasq (Русский)|dnsmasq]] и [[iptables (Русский)|iptables]] для создания точки доступа посредством Моста/NAT (доступен в [[AUR (Русский)|AUR]] {{Aur|create_ap}}).
  
  netcfg up bridge
+
=== RADIUS ===
  rc.d start hostapd
 
  
=== Старый способ построения моста ===
+
Смотрите [https://me.m01.eu/blog/2012/05/wpa-2-enterprise-from-scratch-on-a-raspberry-pi/] инструкции для запуска сервера [http://freeradius.org/ FreeRADIUS] для [[WPA2 Enterprise]].
  
before hostapd does its job, eth0, wlan0 and br0 must be up and do not have any address. we can put the following lines in /etc/rc.conf
+
== Решение проблем ==
  
eth0="eth0 up"
+
=== WLAN очень медленно работает ===
wlan0="wlan0 up"
 
br0="br0 192.168.0.2 netmask 255.255.255.0 up"
 
INTERFACES=(lo eth0 wlan0 br0)
 
  
in the /etc/conf.d/bridges file, uncomment the lines (change eth1 to wlan0)
+
Это может быть вызвано слабой энтропией. Попробуйте установить [[haveged]].
  
bridge_br0="eth0 wlan0"
+
=== Вмешательство NetworkManager ===
BRIDGE_INTERFACES=(br0)
 
  
we are ready to go, just reboot the machine and use another computer to see if you can find the "test" wireless connection.
+
hostapd может не работать, если устройство управляется NetworkManager. Вы можете замаскировать устройство:
  
{{Note (Русский)|*untested* if your computer stops at the sign of "waiting for IP address" etc, that may be it can not find a dhcp server. so you need to set up one.}}
+
{{hc|/etc/NetworkManager/NetworkManager.conf|<nowiki>
 +
[keyfile]
 +
unmanaged-devices=mac:<hwaddr>
 +
</nowiki>}}
  
== See also ==
+
== Смотрите также ==
  
* http://wireless.kernel.org/RTFM-AP
 
 
* [[Router]]
 
* [[Router]]
 +
* [http://nims11.wordpress.com/2012/04/27/hostapd-the-linux-way-to-create-virtual-wifi-access-point/ Hostapd : The Linux Way to create Virtual Wi-Fi Access Point]
 +
* [http://xyne.archlinux.ca/notes/network/dhcp_with_dns.html tutorial and script for configuring a subnet with DHCP and DNS]

Revision as of 19:02, 18 February 2015

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: Статья практически не переведена (обсуждение: Talk:Software access point (Русский)#)

Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(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
...

Wireless client and software AP with a single Wi-Fi device

Creating a software AP is independent from your own network connection (Ethernet, wireless, ...). Many wireless devices even support simultaneous operation both as AP and as wireless "client" at the same time. Using that capability you can create a software AP acting as a "wireless repeater" for an existing network, using a single wireless device. The capability is listed in the following section in the output of 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
...

The constraint #channels <= 1 means that your software AP must operate on the same channel as your Wi-Fi client connection; see the channel setting in hostapd.conf below.

If you want to use the capability/feature, perhaps because an Ethernet connection is not available, you need to create two separate virtual interfaces for using it. Virtual interfaces for a physical device wlan0 can be created as follows: First, the virtual interfaces are created for the network connection (wlan0_sta) itself and for the software AP/hostapd "wireless repeater":

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

Second, the interfaces are assigned separate MAC addresses (use custom unique addresses):

# 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

Overview

Setting up an access point comprises two main parts:

  • Setting up the Wi-Fi link layer, so that wireless clients can associate to your computer's "software access point" and send/receive IP packets from/to your computer; this is what the hostapd package will do for you.
  • Setting up the network configuration on you computer, so that your computer will properly relay IP packets from/to its own Internet connection from/to wireless clients.

Wi-Fi Link Layer

Точка доступа Wi-Fi реализуется с помощью пакета hostapd (доступного из официальных репозиториях). Пакет поддерживает WPA2.

Adjust the options in hostapd configuration file if necessary. Especially, change the ssid and the wpa_passphrase. See hostapd Linux documentation page for more information.

/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.
Warning: The wireless channels allowed for access point operation differ according to geography. Depending on the wireless firmware, you may have to set the region correctly to use legal channels. Do not choose another region, as you may be illegally disturbing network traffic, affecting wireless functionality of your own device and others within its reach! To set the region see Wireless network configuration#Respecting the regulatory domain.
Note: If you have a card based on RTL8192CU chipset, install hostapd-8192cuAUR in the AUR and replace driver=nl80211 with driver=rtl871xdrv in the hostapd.conf file.

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

There are two basic ways for implementing this:

  1. bridge: create a network bridge on your computer (wireless clients will appear to access the same network interface and the same subnet that's used by your computer)
  2. NAT: with IP forwarding/masquerading and DHCP service (wireless clients will use a dedicated subnet, data from/to that subnet is NAT-ted -- similar to a normal Wi-Fi router that's connected to your DSL or cable modem)

The bridge approach is simpler, but it requires that any service that's needed by your wireless clients (like, DHCP) is available on your computers external interface. That means it will not work if you have a dial-up connection (e.g., via PPPoE or a 3G modem) or if you're using a cable modem that will supply exactly one IP address to you via DHCP.

The NAT approach is more versatile, as it clearly separates Wi-Fi clients from your computer and it's completely transparent to the outside world. It will work with any kind of network connection, and (if needed) you can introduce traffic policies using the usual iptables approach.

Of course, it is possible to combine both things. For that, studying both articles would be necessary. Example: Like having a bridge that contains both an ethernet device and the wireless device with an static ip, offering DHCP and setting NAT configured to relay the traffic to an additional network device - that can be ppp or eth.

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

You need to create a network bridge and add your network interface (e.g. eth0) to it. You should not add the wireless device (e.g. wlan0) to the bridge; hostapd will add it on its own.

See Network bridge.

Tip: You may wish to reuse an existing bridge, if you have one (e.g. used by a virtual machine).

Настройка NAT

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

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

Tools

create_ap

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

RADIUS

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

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

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

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

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

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

/etc/NetworkManager/NetworkManager.conf
[keyfile]
unmanaged-devices=mac:<hwaddr>

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