「ソフトウェアアクセスポイント」の版間の差分
(同期) |
|||
46行目: | 46行目: | ||
{{ic|1=#channels <= 1}} はソフトウェア AP が Wi-Fi クライアント接続と同じチャンネルを使わなくてはいけないことを示しています。下の {{ic|hostapd.conf}} の {{ic|channel}} 設定を見て下さい。 |
{{ic|1=#channels <= 1}} はソフトウェア AP が Wi-Fi クライアント接続と同じチャンネルを使わなくてはいけないことを示しています。下の {{ic|hostapd.conf}} の {{ic|channel}} 設定を見て下さい。 |
||
− | イーサネット接続が使えないために、この機能を使いたいと思ったならば、上記のデバイスの場合、''仮想インターフェイス''を2つ作成する必要があります。物理デバイス {{ic|wlan0}} の仮想インターフェイスは以下のようにして作成します |
+ | イーサネット接続が使えないために、この機能を使いたいと思ったならば、上記のデバイスの場合、''仮想インターフェイス''を2つ作成する必要があります。物理デバイス {{ic|wlan0}} の仮想インターフェイスは以下のようにして作成します。 |
− | + | ネットワーク接続とソフトウェア AP/hostapd の"無線中継器"のための''仮想インターフェイス''を作成: |
|
− | # iw dev wlan0 interface add wlan0_sta type |
+ | # iw dev wlan0 interface add wlan0_sta type managed addr 12:34:56:78:ab:cd |
− | # iw dev wlan0 interface add wlan0_ap type |
+ | # iw dev wlan0 interface add wlan0_ap type managed addr 12:34:56:78:ab:ce |
− | 次に、インターフェイスに別々の 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 |
||
+ | ランダムな MAC アドレスは [[macchanger]] を使うことで生成できます。 |
||
− | == 概要 == |
||
+ | |||
+ | == 設定 == |
||
アクセスポイントの設定は2段階に分けて行います: |
アクセスポイントの設定は2段階に分けて行います: |
||
62行目: | 61行目: | ||
* コンピュータで'''ネットワーク設定'''を行って、コンピュータがインターネット接続から無線クライアントへ IP パケットを中継できるようにします。 |
* コンピュータで'''ネットワーク設定'''を行って、コンピュータがインターネット接続から無線クライアントへ IP パケットを中継できるようにします。 |
||
− | == Wi-Fi リンク層 == |
+ | === Wi-Fi リンク層 === |
Wi-Fi リンクは {{Pkg|hostapd}} パッケージによって確立されます ([[公式リポジトリ]]からインストールできます)。このパッケージは WPA2 をサポートしています。 |
Wi-Fi リンクは {{Pkg|hostapd}} パッケージによって確立されます ([[公式リポジトリ]]からインストールできます)。このパッケージは WPA2 をサポートしています。 |
||
85行目: | 84行目: | ||
wpa_pairwise=TKIP CCMP |
wpa_pairwise=TKIP CCMP |
||
</nowiki>}} |
</nowiki>}} |
||
+ | |||
+ | {{Tip|SSID は UTF-8 文字列で設定することができ、英語以外の文字列も正しく表示されます。{{ic|1=utf8_ssid=1}} でオプションを有効にしてください。クライアントによってはエンコーディングが正しく認識されない可能性があります (例: [[wpa_supplicant]] や Windows 7)。}} |
||
hostapd を起動するときは、無線ネットワークインターフェイスが立ち上がってることを確認してください: |
hostapd を起動するときは、無線ネットワークインターフェイスが立ち上がってることを確認してください: |
||
97行目: | 98行目: | ||
{{Note|RTL8192CU チップセットが搭載されたカードを使っている場合、[[AUR]] から {{AUR|hostapd-8192cu}} をインストールして、{{ic|hostapd.conf}} ファイル内の {{ic|1=driver=nl80211}} を {{ic|1=driver=rtl871xdrv}} に置き換えて下さい。}} |
{{Note|RTL8192CU チップセットが搭載されたカードを使っている場合、[[AUR]] から {{AUR|hostapd-8192cu}} をインストールして、{{ic|hostapd.conf}} ファイル内の {{ic|1=driver=nl80211}} を {{ic|1=driver=rtl871xdrv}} に置き換えて下さい。}} |
||
− | == ネットワークの設定 == |
+ | === ネットワークの設定 === |
設定する方法は2つ存在します: |
設定する方法は2つ存在します: |
||
109行目: | 110行目: | ||
もちろん、''両者を混ぜる''ことだってできます。その場合、両方の記事を読む必要があります。例えば、固定 ip を使用するイーサネットデバイスと無線デバイスを含んだブリッジで、DHCP を使用して、トラフィックを別のネットワークデバイスに中継するよう NAT を設定する場合、ppp でも eth でも利用できます。 |
もちろん、''両者を混ぜる''ことだってできます。その場合、両方の記事を読む必要があります。例えば、固定 ip を使用するイーサネットデバイスと無線デバイスを含んだブリッジで、DHCP を使用して、トラフィックを別のネットワークデバイスに中継するよう NAT を設定する場合、ppp でも eth でも利用できます。 |
||
− | === ブリッジの設定 === |
+ | ==== ブリッジの設定 ==== |
ネットワーク''ブリッジ''を作成してネットワークインターフェイス (例: {{ic|eth0}}) をブリッジに追加してください。無線デバイス (例: {{ic|wlan0}}) をブリッジに追加してはいけません。hostapd が自分で追加します。 |
ネットワーク''ブリッジ''を作成してネットワークインターフェイス (例: {{ic|eth0}}) をブリッジに追加してください。無線デバイス (例: {{ic|wlan0}}) をブリッジに追加してはいけません。hostapd が自分で追加します。 |
||
117行目: | 118行目: | ||
{{Tip|(仮想マシンなどで使っている) 既存のブリッジを使い回すことも可能です。}} |
{{Tip|(仮想マシンなどで使っている) 既存のブリッジを使い回すことも可能です。}} |
||
− | === NAT の設定 === |
+ | ==== NAT の設定 ==== |
[[インターネット共有]]を見て下さい。 |
[[インターネット共有]]を見て下さい。 |
||
128行目: | 129行目: | ||
[https://bbs.archlinux.org/viewtopic.php?pid=1269258 create_ap] スクリプトは {{Pkg|hostapd}}, [[dnsmasq]], [[iptables]] を使って ブリッジ/NAT によるアクセスポイントを作成します ([[AUR]] の {{Aur|create_ap}} でインストールできます)。 |
[https://bbs.archlinux.org/viewtopic.php?pid=1269258 create_ap] スクリプトは {{Pkg|hostapd}}, [[dnsmasq]], [[iptables]] を使って ブリッジ/NAT によるアクセスポイントを作成します ([[AUR]] の {{Aur|create_ap}} でインストールできます)。 |
||
+ | |||
+ | # create_ap wlan0 internet0 MyAccessPoint MyPassPhrase |
||
=== RADIUS === |
=== RADIUS === |
||
147行目: | 150行目: | ||
unmanaged-devices=mac:<hwaddr> |
unmanaged-devices=mac:<hwaddr> |
||
</nowiki>}} |
</nowiki>}} |
||
+ | |||
+ | === 5Ghz 帯で AP モードを起動できない === |
||
+ | |||
+ | 特殊な国コード {{ic|00}} (グローバル) を使用している場合、5Ghz 帯の周波数には全て [https://wireless.wiki.kernel.org/en/developers/regulatory/processing_rules#post_processing_mechanisms {{ic|no-ir}} (''no-initiating-radiation'')] フラグが設定され、hostapd から利用することができなくなります。{{Pkg|crda}} をインストールしてから、国コードを設定することで、あなたの国で許可されている周波数を hostapd から使えるようになります。 |
||
== 参照 == |
== 参照 == |
2016年8月11日 (木) 19:54時点における版
ローカルネットワークを構築するために、コンピュータを 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.conf
の channel
設定を見て下さい。
イーサネット接続が使えないために、この機能を使いたいと思ったならば、上記のデバイスの場合、仮想インターフェイスを2つ作成する必要があります。物理デバイス wlan0
の仮想インターフェイスは以下のようにして作成します。
ネットワーク接続とソフトウェア AP/hostapd の"無線中継器"のための仮想インターフェイスを作成:
# iw dev wlan0 interface add wlan0_sta type managed addr 12:34:56:78:ab:cd # iw dev wlan0 interface add wlan0_ap type managed addr 12:34:56:78:ab:ce
ランダムな MAC アドレスは macchanger を使うことで生成できます。
設定
アクセスポイントの設定は2段階に分けて行います:
- Wi-Fi リンク層を設定して、無線クライアントがコンピュータの"ソフトウェアアクセスポイント"に接続してコンピュータから IP パケットを送受信できるようにします。hostapd パッケージがこれを行います。
- コンピュータでネットワーク設定を行って、コンピュータがインターネット接続から無線クライアントへ IP パケットを中継できるようにします。
Wi-Fi リンク層
Wi-Fi リンクは hostapd パッケージによって確立されます (公式リポジトリからインストールできます)。このパッケージは WPA2 をサポートしています。
必要に応じて hostapd の設定ファイルにあるオプションを変更してください。特に、ssid
と wpa_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 を起動するときは、無線ネットワークインターフェイスが立ち上がってることを確認してください:
# ip link set dev wlan0_ap up
立ち上がっていない場合、次のようなエラーが表示されます: "could not configure driver mode"。
hostapd を自動的に起動するようにするには、hostapd.service
を有効化してください。
ネットワークの設定
設定する方法は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 によるアクセスポイントを作成します (AUR の create_apAUR でインストールできます)。
# create_ap wlan0 internet0 MyAccessPoint MyPassPhrase
RADIUS
WPA2 Enterprise を使うように FreeRADIUS サーバーを実行する方法は [1] を見て下さい。
トラブルシューティング
無線 LAN が極端に遅い
おそらくエントロピーが不足しています。haveged をインストールしてみてください。
NetworkManager が干渉する
デバイスが NetworkManager によって管理されている場合、hostapd が動作しないことがあります。デバイスをマスクするようにしてください:
/etc/NetworkManager/NetworkManager.conf
[keyfile] unmanaged-devices=mac:<hwaddr>
5Ghz 帯で AP モードを起動できない
特殊な国コード 00
(グローバル) を使用している場合、5Ghz 帯の周波数には全て no-ir
(no-initiating-radiation) フラグが設定され、hostapd から利用することができなくなります。crda をインストールしてから、国コードを設定することで、あなたの国で許可されている周波数を hostapd から使えるようになります。