「ソフトウェアアクセスポイント」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:無線ネットワーク en:Software Access Point ru:Software Access Point {{Related articles start}} {{Related|ネットワーク設定}} {{Related|...」)
 
1行目: 1行目:
 
[[Category:無線ネットワーク]]
 
[[Category:無線ネットワーク]]
[[en:Software Access Point]]
+
[[en:Software access point]]
 
[[ru:Software Access Point]]
 
[[ru:Software Access Point]]
 
{{Related articles start}}
 
{{Related articles start}}
33行目: 33行目:
 
=== 無線クライアントとソフトウェア AP が単一の Wi-Fi デバイスを使っていること ===
 
=== 無線クライアントとソフトウェア AP が単一の Wi-Fi デバイスを使っていること ===
   
  +
ソフトウェア AP の作成とネットワーク接続 (イーサネットやワイヤレス) は別個のものですが、多くの無線デバイスは AP モードを使いながら同時に無線"クライアント"として動作させることができます。この機能を使えば、単一の無線デバイスだけで"無線 LAN 中継器"としてソフトウェア AP を作成することが可能です。{{ic|iw list}} の出力から以下のセクションを確認することで機能をチェックできます:
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=
 
{{hc|1=$ iw list|2=
43行目: 43行目:
 
...
 
...
 
}}
 
}}
  +
{{ic|1=#channels <= 1}} はソフトウェア AP が Wi-Fi クライアント接続と同じチャンネルを使わなくてはいけないことを示しています。下の {{ic|hostapd.conf}} の {{ic|channel}} 設定を見て下さい。
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.
 
   
  +
イーサネット接続が使えないために、この機能を使いたいと思ったならば、上記のデバイスの場合、''仮想インターフェイス''を2つ作成する必要があります。物理デバイス {{ic|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.
 
  +
Virtual interfaces for a physical device {{ic|wlan0}} can be created as follows:
 
  +
まず、ネットワーク接続とソフトウェア AP/hostapd の"無線中継器"のための''仮想インターフェイス''を作成:
First, the ''virtual interfaces'' are created for the network connection ({{ic|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_sta type station
 
# iw dev wlan0 interface add wlan0_ap type __ap
 
# iw dev wlan0 interface add wlan0_ap type __ap
  +
次に、インターフェイスに別々の MAC アドレスを割り当てる (一意のアドレスを使用して下さい):
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_sta address 12:34:56:78:ab:cd
 
# ip link set dev wlan0_ap address 12:34:56:78:ab:ce
 
# ip link set dev wlan0_ap address 12:34:56:78:ab:ce
58行目: 58行目:
   
 
アクセスポイントの設定は2段階に分けて行います:
 
アクセスポイントの設定は2段階に分けて行います:
  +
* '''Wi-Fi リンク層'''を設定して、無線クライアントがコンピュータの"ソフトウェアアクセスポイント"に接続してコンピュータから IP パケットを送受信できるようにします。{{Pkg|hostapd}} パッケージがこれを行います。
* 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.
 
  +
* コンピュータで'''ネットワーク設定'''を行って、コンピュータがインターネット接続から無線クライアントへ IP パケットを中継できるようにします。
* 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 リンク層 ==
 
== Wi-Fi リンク層 ==
   
  +
Wi-Fi リンクは {{Pkg|hostapd}} パッケージによって確立されます ([[公式リポジトリ]]からインストールできます)。このパッケージは WPA2 をサポートしています。
The actual Wi-Fi link is established via the {{Pkg|hostapd}} package (available in the [[official repositories]]). The package has WPA2 support.
 
   
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.
+
必要に応じて ''hostapd'' の設定ファイルにあるオプションを変更してください。特に、{{ic|ssid}} {{ic|wpa_passphrase}} は変更するようにしてください。詳しくは [http://wireless.kernel.org/en/users/Documentation/hostapd hostapd Linux ドキュメント] を参照。
   
 
{{hc|/etc/hostapd/hostapd.conf|<nowiki>
 
{{hc|/etc/hostapd/hostapd.conf|<nowiki>
88行目: 88行目:
 
{{Warning|アクセスポイントで使える無線周波数は国によって異なります。無線ファームウェアによっては、地域を設定して法的に問題ない周波数を使うように設定する必要があります。あなたが居住している地域以外を選択してはいけません。ネットワーク通信を違法に妨害する可能性があり、あなたのデバイスだけでなく周りの人のデバイスの無線機能も使えなくしてしまうおそれがあります。地域の設定方法は[[ワイヤレス設定#規制範囲]]を見て下さい。}}
 
{{Warning|アクセスポイントで使える無線周波数は国によって異なります。無線ファームウェアによっては、地域を設定して法的に問題ない周波数を使うように設定する必要があります。あなたが居住している地域以外を選択してはいけません。ネットワーク通信を違法に妨害する可能性があり、あなたのデバイスだけでなく周りの人のデバイスの無線機能も使えなくしてしまうおそれがあります。地域の設定方法は[[ワイヤレス設定#規制範囲]]を見て下さい。}}
   
{{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.}}
+
{{Note|RTL8192CU チップセットが搭載されたカードを使っている場合、[[AUR]] から {{AUR|hostapd-8192cu}} をインストールして、{{ic|hostapd.conf}} ファイル内の {{ic|1=driver=nl80211}} {{ic|1=driver=rtl871xdrv}} に置き換えて下さい。}}
   
 
== ネットワークの設定 ==
 
== ネットワークの設定 ==
   
  +
設定する方法は2つ存在します:
There are two basic ways for implementing this:
 
  +
# '''ブリッジ''': コンピュータ上にネットワーク''ブリッジ''を作成します (無線クライアントはコンピュータによって使われているのと同一のネットワークインターフェイス・サブネットにアクセスします)。
# '''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)
 
  +
# '''NAT''': IP フォワーディング/マスカレードと DHCP サービスを使います (無線クライアントは特別なサブネットを使用し、サブネットのデータは NAT で転送されます。DSL やケーブルモデムに接続された通常の Wi-Fi ルーターと同じような動作をします)。
# '''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)
 
   
  +
ブリッジの方がシンプルですが、コンピュータの外部インターフェイスに (DHCP などの) 無線クライアントが使うサービスを必要とします。そのため、ダイアルアップ接続 (例: PPPoE や 3G モデム) やケーブルモデムを使っている場合は、DHCP によって一つの IP アドレスしか渡されないため使うことができません。
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.
 
   
  +
NAT は広い用途で使うことができ、コンピュータと Wi-Fi クライアントを完全に分離することで外部接続は透過的になります。どんな種類のネットワーク接続でも動作し、(必要であれば) iptables を使うことでトラフィックにポリシーを適用することが可能です。
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.
 
   
  +
もちろん、''両者を混ぜる''ことだってできます。その場合、両方の記事を読む必要があります。例えば、固定 ip を使用するイーサネットデバイスと無線デバイスを含んだブリッジで、DHCP を使用して、トラフィックを別のネットワークデバイスに中継するよう NAT を設定する場合、ppp でも eth でも利用できます。
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.
 
   
 
=== ブリッジの設定 ===
 
=== ブリッジの設定 ===
   
  +
ネットワーク''ブリッジ''を作成してネットワークインターフェイス (例: {{ic|eth0}}) をブリッジに追加してください。無線デバイス (例: {{ic|wlan0}}) をブリッジに追加してはいけません。hostapd が自分で追加します。
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.
 
   
 
[[ネットワークブリッジ]]を見て下さい。
 
[[ネットワークブリッジ]]を見て下さい。
   
  +
{{Tip|(仮想マシンなどで使っている) 既存のブリッジを使い回すことも可能です。}}
{{Tip|You may wish to reuse an existing bridge, if you have one (e.g. used by a virtual machine).}}
 
   
 
=== NAT の設定 ===
 
=== NAT の設定 ===
114行目: 114行目:
 
[[インターネット共有]]を見て下さい。
 
[[インターネット共有]]を見て下さい。
   
  +
上記の記事では、LAN に接続するデバイスは {{ic|net0}} です。この場合デバイスは無線デバイスに変更します (例: {{ic|wlan0}})。
On that article, the device connected to the LAN is {{ic|net0}}. That device would be in this case your wireless device (e.g. {{ic|wlan0}}).
 
   
 
== ツール ==
 
== ツール ==
120行目: 120行目:
 
=== create_ap ===
 
=== create_ap ===
   
The [https://bbs.archlinux.org/viewtopic.php?pid=1269258 create_ap] script combines {{Pkg|hostapd}}, [[dnsmasq]] and [[iptables]] to create a Bridged/NATed Access Point (available in the [[AUR]] {{Aur|create_ap}}).
+
[https://bbs.archlinux.org/viewtopic.php?pid=1269258 create_ap] スクリプトは {{Pkg|hostapd}}, [[dnsmasq]], [[iptables]] を使って ブリッジ/NAT によるアクセスポイントを作成します ([[AUR]] {{Aur|create_ap}} でインストールできます)
   
 
=== RADIUS ===
 
=== RADIUS ===
   
See [https://me.m01.eu/blog/2012/05/wpa-2-enterprise-from-scratch-on-a-raspberry-pi/] for instructions to run a [http://freeradius.org/ FreeRADIUS] server for [[WPA2 Enterprise]].
+
[[WPA2 Enterprise]] を使うように [http://freeradius.org/ FreeRADIUS] サーバーを実行する方法は [https://me.m01.eu/blog/2012/05/wpa-2-enterprise-from-scratch-on-a-raspberry-pi/] を見て下さい。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
134行目: 134行目:
 
===NetworkManager が干渉する===
 
===NetworkManager が干渉する===
   
  +
デバイスが NetworkManager によって管理されている場合、hostapd が動作しないことがあります。デバイスをマスクするようにしてください:
hostapd may not work, if the device is managed by NetworkManager. You can mask the device:
 
   
 
{{hc|/etc/NetworkManager/NetworkManager.conf|<nowiki>
 
{{hc|/etc/NetworkManager/NetworkManager.conf|<nowiki>

2015年7月10日 (金) 21:23時点における版

関連記事

ローカルネットワークを構築するために、コンピュータを Wi-Fi アクセスポイントとしたい場合、ソフトウェアアクセスポイントを使用します。無線ルーターを別に用意するという面倒を減らすことができます。

要件

Wi-Fi デバイスが AP モードをサポートしていること

AP モード をサポートしている、nl80211 対応の無線デバイスが必要です。対応しているかどうかは iw list コマンドを実行することで確認できます。Supported interface modes ブロックに AP が含まれているか見て下さい:

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

無線クライアントとソフトウェア AP が単一の Wi-Fi デバイスを使っていること

ソフトウェア AP の作成とネットワーク接続 (イーサネットやワイヤレス) は別個のものですが、多くの無線デバイスは AP モードを使いながら同時に無線"クライアント"として動作させることができます。この機能を使えば、単一の無線デバイスだけで"無線 LAN 中継器"としてソフトウェア AP を作成することが可能です。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 クライアント接続と同じチャンネルを使わなくてはいけないことを示しています。下の hostapd.confchannel 設定を見て下さい。

イーサネット接続が使えないために、この機能を使いたいと思ったならば、上記のデバイスの場合、仮想インターフェイスを2つ作成する必要があります。物理デバイス wlan0 の仮想インターフェイスは以下のようにして作成します:

まず、ネットワーク接続とソフトウェア 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

概要

アクセスポイントの設定は2段階に分けて行います:

  • Wi-Fi リンク層を設定して、無線クライアントがコンピュータの"ソフトウェアアクセスポイント"に接続してコンピュータから IP パケットを送受信できるようにします。hostapd パッケージがこれを行います。
  • コンピュータでネットワーク設定を行って、コンピュータがインターネット接続から無線クライアントへ IP パケットを中継できるようにします。

Wi-Fi リンク層

Wi-Fi リンクは hostapd パッケージによって確立されます (公式リポジトリからインストールできます)。このパッケージは WPA2 をサポートしています。

必要に応じて hostapd の設定ファイルにあるオプションを変更してください。特に、ssidwpa_passphrase は変更するようにしてください。詳しくは hostapd の Linux ドキュメント を参照。

/etc/hostapd/hostapd.conf
ssid=YourWiFiName
wpa_passphrase=Somepassphrase
interface=wlan0_ap
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 チップセットが搭載されたカードを使っている場合、AUR から hostapd-8192cuAUR をインストールして、hostapd.conf ファイル内の driver=nl80211driver=rtl871xdrv に置き換えて下さい。

ネットワークの設定

設定する方法は2つ存在します:

  1. ブリッジ: コンピュータ上にネットワークブリッジを作成します (無線クライアントはコンピュータによって使われているのと同一のネットワークインターフェイス・サブネットにアクセスします)。
  2. NAT: IP フォワーディング/マスカレードと DHCP サービスを使います (無線クライアントは特別なサブネットを使用し、サブネットのデータは NAT で転送されます。DSL やケーブルモデムに接続された通常の Wi-Fi ルーターと同じような動作をします)。

ブリッジの方がシンプルですが、コンピュータの外部インターフェイスに (DHCP などの) 無線クライアントが使うサービスを必要とします。そのため、ダイアルアップ接続 (例: PPPoE や 3G モデム) やケーブルモデムを使っている場合は、DHCP によって一つの IP アドレスしか渡されないため使うことができません。

NAT は広い用途で使うことができ、コンピュータと Wi-Fi クライアントを完全に分離することで外部接続は透過的になります。どんな種類のネットワーク接続でも動作し、(必要であれば) iptables を使うことでトラフィックにポリシーを適用することが可能です。

もちろん、両者を混ぜることだってできます。その場合、両方の記事を読む必要があります。例えば、固定 ip を使用するイーサネットデバイスと無線デバイスを含んだブリッジで、DHCP を使用して、トラフィックを別のネットワークデバイスに中継するよう NAT を設定する場合、ppp でも eth でも利用できます。

ブリッジの設定

ネットワークブリッジを作成してネットワークインターフェイス (例: eth0) をブリッジに追加してください。無線デバイス (例: wlan0) をブリッジに追加してはいけません。hostapd が自分で追加します。

ネットワークブリッジを見て下さい。

ヒント: (仮想マシンなどで使っている) 既存のブリッジを使い回すことも可能です。

NAT の設定

インターネット共有を見て下さい。

上記の記事では、LAN に接続するデバイスは net0 です。この場合デバイスは無線デバイスに変更します (例: wlan0)。

ツール

create_ap

create_ap スクリプトは hostapd, dnsmasq, iptables を使って ブリッジ/NAT によるアクセスポイントを作成します (AURcreate_apAUR でインストールできます)。

RADIUS

WPA2 Enterprise を使うように FreeRADIUS サーバーを実行する方法は [1] を見て下さい。

トラブルシューティング

無線 LAN が極端に遅い

おそらくエントロピーが不足しています。haveged をインストールしてみてください。

NetworkManager が干渉する

デバイスが NetworkManager によって管理されている場合、hostapd が動作しないことがあります。デバイスをマスクするようにしてください:

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

参照