Gentoo Logo

1.  はじめに

現在、wireless-toolswpa_supplicantによって無線のセットアップがサポートされています。 覚えておくべき重要なことは、無線ネットワークの設定をインターフェース毎ではなく、全体的に行うと言うことです。

wpa_suppliantは最良の選択ですが、全てのドライバをサポートしている訳ではありません。 サポート済みのドライバリストはread the wpa_supplicant siteで確認することが出来ます。 また、現在wpa_supplicantは設定されたSSIDにのみ接続することが出来ます。

wireless-toolsはほぼ全てのカードとドライバをサポートしていますが、WPAのみのアクセスポイントには接続することは出来ません。

警告: 現時点ではlinux-wlan-ngはbaselayoutではサポートされていません。 これは、linux-wlan-ngは人それぞれによって全く異なる独自のセットアップと設定を行うからです。 linux-wlan-ng開発者達はセットアップをwireless-toolsへと変更するのではと噂されています。 これが実現した場合、baselayoutでlinux-wlan-ngが使えるかもしれません。

1.  WPA Supplicant

WPA Supplicantとは、 WPAが有効なアクセスポイントへの接続を可能にするパッケージです。 これはまだベータ版なのでセットアップはかなり変わりやすいですが、ほとんどの部分でうまく動作します。

コード表示 1.1: wpa_supplicantのインストール

# emerge net-wireless/wpa_supplicant

重要: wpa_supplicantを動作させるにはカーネルでCONFIG_PACKETを有効にしなければなりません。

では、wpa_supplicantwireless-toolsより優先させるために/etc/conf.d/netを設定しましょう。(両方がインストールされているのなら、wireless-toolsがデフォルトとなります)

コード表示 1.1: wpa_supplicant向けに/etc/conf.d/netを設定

# wpa_supplicantをwireless-toolsよりも優先させる
modules=( "wpa_supplicant" )

# どのドライバを使用すべきかwpa_supplicantに教えることが重要です。
# まだ自動識別はうまく動作しません
wpa_supplicant_eth0="-Dmadwifi"

注意: host-apドライバを使用しているのなら、wpa_suppliacnatで正しく使用するために、 カードをManagedモードにする必要があります。 /etc/conf.d/netiwconfig_eth0="mode managed" を記述することによりこれを行うことが出来ます。

簡単でしょう? ですが、まだwpa_supplicant自身の設定をしなければいけません。 これは、接続しようとするアクセスポイントがどれくらいセキュアかによって、 設定の複雑さも変わってきます。 以下はwpa_supplicantと共にインストールされる /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz からの抜粋です。

コード表示 1.1: /etc/wpa_supplicant/wpa_supplicant.confの例

# 以下の行は変更しないでください。動作しなくなります。
ctrl_interface=/var/run/wpa_supplicant

# rootのみがWPA設定を読めることを確実にします
ctrl_interface_group=0

# wpa_supplicantにスキャンとアクセスポイントの選択を行わせます
ap_scan=1

# 単純な例。PSKをASCIIパスフレーズで指定し、WPA-PSKはすべての有効な暗号方式を許可します。
network={
  ssid="simple"
  psk="very secret passphrase"
  # 優先度を上げれば上げるほどより早くに照合されます
  priority=5
}

# 上と同じですが、特定のSSIDの検出を要求します。
# (ブロードキャストSSIDを拒否するアクセスポイント向け)
network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}

# WPA-PSKのみが使用されます。どんな暗号の組み合わせでも認めます。
network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# 平文接続 (WPA、IEEE 802.1X無し)
network={
  ssid="plaintext-test"
  key_mgmt=NONE
}

# 共有WEPキー接続 (WPA、IEEE 802.1X無し)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  # Keys in quotes are ASCII keys
  wep_key0="abcde"
  # Keys specified without quotes are hex keys
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# 共有キーIEEE 802.11認証を使った共有WEPキー接続 (WPA、IEEE 802.1X無し)
network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# WPA-None/TKIPを使ったIBSS/ad-hocネットワーク
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}

1.  Wireless Tools

最初の設定とmanagedモード

Wireless Toolsは、 基本的な無線インターフェースを起動することからWEPセキュリティレベルまでを設定する一般的な方法です。 WEPはセキュリティの手段としては弱いですが、最も普及しています。

Wireless Toolsの設定は少数の要となる変数によって制御されます。 以下の設定ファイルの例は必要となる全てを記述しています。 何も設定しないと「最も信号が強く暗号化されていないアクセスポイントへ接続する」事になり、 いつも何かに接続しようとしていることを心に留めておいてください。

コード表示 1.1: wireless-toolsのインストール

# emerge net-wireless/wireless-tools

注意: 無線の設定を/etc/conf.d/wirelessに保存することも出来ますが、このガイドでは/etc/conf.d/netに保存することを推奨します。

重要: (変数名)ドキュメントを参照する必要があるでしょう

コード表示 1.1: /etc/conf.d/netでのiwconfig設定例

# iwconfigをwpa_supplicantより優先させる
modules=( "iwconfig" )

# ESSID1やESSID2と呼ばれるアクセスポイント向けのWEPキーを設定します
# WEPキーは4つまで設定することが出来ますが、いかなる場合においても有効となるのは1つだけです
# そのため、デフォルトのインデックスである[1]をkey [1]に適用し、アクティブなキーを[1]へと変更します
# 1以外のWEPキーを使用するために他のESSIDを定義する場合にこれを行います
#
# キーの前にs:を付けるとASCIIキーとなり、付けなければHEXキーになります
#
# enc openはオープンセキュリティを指定します(最も安全)
# enc restrictedは制限セキュリティを指定します(最小限の安全)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# 以下は利用可能なアクセスポイントをスキャンしたときにのみ動作します

# 時々2つ以上のアクセスポイントが利用可能となるので、接続優先順位を定義する必要があります
preferred_aps=( "ESSID1" "ESSID2" )

アクセスポイントの選択を微調整する

アクセスポイントの選択を微調整するために、いくつかの特別なオプションを追加することが出来ます。 ですが、これらは通常では必要ではありません。

優先されたアクセスポイントのみに接続するかどうかを選択することが出来ます。 デフォルトでは、設定された全てが失敗したのなら、暗号化されていないアクセスポイントへ接続します。 これはassociate_order変数で制御することが出来ます。 以下に値と詳細を示します。

詳細
any デフォルトの振る舞い
preferredonly 優先リストにある接続可能なアクセスポイントのみ接続する
forcepreferred スキャンで見つからなければ優先リストにあるアクセスポイントへ強制接続を試みる
forcepreferredonly アクセスポイントのスキャンを行わず、リストにある物に接続を試みる
forceany forcepreferredと同じで、それに加えて利用可能なアクセスポイントへ接続する

最後にblacklist_apsunique_apの選択を行います。 blacklist_apspreferred_apsと同じような動作を行います。 unique_apにはyesnoが設定され、 2番目の無線インターフェースが1番目と同じアクセスポイントへ接続できるかを決定します。

コード表示 1.1: blacklist_apsとunique_apの例

# 決して接続したくないアクセスポイントを記述します
blacklist_aps=( "ESSID3" "ESSID4" )

# 2つ以上の無線カードを持っているのなら、それぞれのカードが
# 同じアクセスポイントと接続することを許可するかしないかを決定します
# 値は"yes"と"no"です
# デフォルトは"yes"です
unique_ap="yes"

Ad-HocとMasterモード

managedモードになっているアクセスポイント全てで接続失敗した場合に、 Ad-Hocノードに設定を切り替えたいのなら、 以下のように設定することでこれを行うことが出来ます。

コード表示 1.1: Ad-Hocモードへのフォールバック

adhoc_essid_eth0="This Adhoc Node"

Ad-Hocネットワークへ接続したり、アクセスポイントとなるためにMasterモードで起動してはどうですか? そのためには以下のように設定します。上で述べたようにしてWEPキーを指定する必要があるかもしれません。

コード表示 1.1: Ad-Hoc/Master設定の例

# モードを設定します。managed (デフォルト)、ad-hoc、masterから選びます。
# 全てのドライバが全てのモードをサポートしているわけではありません
mode_eth0="ad-hoc"

# インターフェースのESSIDを設定します
# managedモードでは、インターフェースに特定のESSIDへ強制的に接続させ、それ以外は何も行いません
essid_eth0="This Adhoc Node"

# 何も設定しなければチャンネル3を使用します
channel_eth0="9"

重要: 以下はthe NetBSD documentationにあるBSD wavelanドキュメントを丸写ししたものです。 14のチャンネルが利用可能であり、北アメリカではチャンネル1-11が合法で、 ヨーロッパの多くではチャンネル1-13、フランスではチャンネル10-13、そして日本ではチャンネル14のみです。 疑うのであれば、カードやアクセスポイントに付属するドキュメントを参照してください。 選択したチャンネルがアクセスポイントのチャンネル(もしくはAd-Hocネットワークの他のカード) と一致するようにしてください。 北アメリカやヨーロッパの多くで売られているカードのデフォルトは3で、 フランスで売られているカードのデフォルトは11、そして日本で売られているカードのデフォルトは14です。

無線ツールのトラブルシューティング

ドライバや環境の問題で、無線を接続し稼働の手助けになる変数がいくつかあります。 以下に一覧を示します。

変数 初期値 詳細
iwconfig_eth0 iwconfigに何を送るかについての詳細はiwconfigのマニュアルを参照してください
iwpriv_eth0 iwprivに何を送るかについての詳細はiwprivのマニュアルを参照してください
sleep_scan_eth0 0 スキャンを試みる前にスリープを行う秒数です。ドライバやファームウェアが利用可能になるまでにより長い時間がかかるのであればこれが必要です。
sleep_associate_eth0 5 接続先のアクセスポイントを次へと変更するためにインターフェースを待機させる秒数です
associate_test_eth0 MAC いくつかのドライバでは接続の解放やテスト時に無効なMACアドレスをリセットしません。いくらかのドライバでは接続の解放やテスト時に品質レベルをリセットしません。MACqualityallが設定可能です。
scan_mode_eth0 いくつかのドライバではad-hocモードでスキャンを行うため、スキャンが失敗したらここでad-hocの設定を試みます
iwpriv_scan_pre_eth0 スキャン前にいくつかのiwprivコマンドをインターフェースへ送信します。詳細はiwprivのマニュアルを参照してください。
iwpriv_scan_post_eth0 スキャン後にいくつかのiwprivコマンドをインターフェースへ送信します。詳細はiwprivのマニュアルを参照してください。

1.  ESSIDごとにネットワーク設定を定義する

ESSID1に接続するときには固定IPが必要で、ESSID2に接続するときにはDHCPが必要なことがあります。 実際、ほとんどのモジュール変数はESSIDごとに変更可能です。 以下に例を示します。

注意: WPA Supplicantや無線ツールを使用しているのならこれらは動作します。

重要: (変数名)ドキュメントを参照する必要があるでしょう

コード表示 1.1: ESSIDごとにネットワーク設定を上書きする

config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )

config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )

# ネームサーバやその他も設定することが出来ます
# 注意: 禁止されていなければDHCPはこれらを上書きします
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# アクセスポイントのMACアドレスで上書きします
# 同じESSIDを持つ異なった場所へ移動するのならこれは便利です
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )

ページの更新日 2009年 4月 15日

このドキュメントのオリジナルバージョン の更新日は2011年 8月 13日

要約: 無線は一筋縄ではいきません。願わくばちゃんと動きますように。

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.