Wi-FiアダプターによるアドホックとSoftAP(2)
一、SoftAPとインターネット接続共有の利用
前回の「Wi-FiアダプターによるアドホックとSoftAP(1)」では、ブリッジ接続を用いたアドホック・モードを利用して、有線LANを通じてインターネットに接続しているPCの無線LAN(Wi-Fi)を経由することにより、他の無線LAN機器(ノートPCやiPadなど)のインターネットへのアクセスを可能にした。
今回は、Wireless Hosted Networkに含まれるSoftAPとインターネット接続共有(Internet Connection Sharing : ICS)という機能を使って、同様に無線LAN機器のインターネット・アクセスを図ってみる(図-1)。このSoftAPという機能は、業界団体のWi-Fi Allianceがその仕様を策定したWi-Fi Directに準拠するものであるという。
図-1

二、SoftAPとは
SoftAPとは、ソフトウェアによってPCのワイヤレス・アダプターにアクセスポイント(AP)の役割を担わせる機能をいう。これは、Windows 7及びWindows 8、ワイヤレスLANサービスをインストールしたWindows Server 2008 R2及びWindows Server 2012でサポートされる新たな無線LAN(WLAN)機能であるWireless Hosted Networkが実装する二大機能の1つである。
もう一つのは、Virtual Wi-Fiと呼ばれ、物理的なワイヤレス・アダプターを複数の仮想ワイヤレス・アダプターとして利用するという仮想化機能である。SoftAPは、この仮想ワイヤレス・アダプターを使用するのである。
これらの機能を持つWindows PCは、1つの物理的なワイヤレス・アダプターを、クライアントとしてハードウェアのアクセスポイント(AP)に接続させるために使用する一方で、同時に他のワイヤレス機器に対してそのアダプターへの接続を可能とするソフトウェアのアクセスポイントとして働かせることができる。ワイヤレス・アダプターを備えたWindows 7や8があれば、それを基点にさらにWi-Fi接続範囲を拡大することができるので、タブレット端末やスマートフォンなど、種々のWi-Fi機器を利用する者にとっては、これは有用有益な機能といえる。
このWireless Hosted Networkについては、msdnのサイトに公開されている"About the Wireless Hosted Network"及び"Using Wireless Hosted Network and Internet Connection Sharing"という文書で詳説されており、本記事もそれらに基づいている。不明な点があれば、そちらを御覧下さい。
Windows 7ないしWindows 8のロゴを取得しているワイヤレス機器であれば、Wireless Hosted Networkに対応しており、それに対応したワイヤレス・アダプターは、最大3つの論理アダプターに仮想化が可能であるという。
その3つとは、
○ 物理アダプターの設定をすべて受け継ぎ、それとまったく同じように振る舞い、それと同一に扱うことがで
きるステーション・アダプター(STA)
○ SoftAPの役割を果たすAPアダプター
○ ハードウェア・ベンダーが機能拡張のためにオプションとして追加することのできるヴァーチャル・ステー
ション・アダプター(VSTA)
である。
Wireless Hosted Networkは、これらの機能を使い、Internet Connection Sharing(ICS)と連携しつつ、2つのことを可能にするという。
その1つは、SoftAPにつながった機器は、自動的にwireless Personal Area Network(wireless PAN)を形成し、それら接続した機器との間だけでなく、Wireless Hosted Networkを提供するPCとの間でもパケットの送受信が可能となる、ということである。この場合、インターネット接続共有(ICS)はスタンドアロン・モードとして働いており、IPv4のみに対応したDHCPサーバとして機能することになる。通常、Wireless Hosted Networkの開始に伴って、ICSはスタンドアロン・モードで開始される仕様になっているという。ユーザやアプリケーションが直接スタンドアロン・モードのICSを開始又は停止することはできないとのことである。
もう1つは、Wireless Hosted Networkが有効になっているPC上の他のネットワーク・アダプターにおいてインターネット接続共有(ICS)を有効にした場合には、SoftAPに接続するワイヤレス機器は、インターネット等の外部のネットワークにアクセすることが可能となる、ということである。ワイヤレスLAN接続の場合、インターネット接続共有を設定するアダプターは、別のワイヤレス・アダプターであっても、SoftAPのための仮想APアダプターと同一の物理ワイヤレス・アダプター上の仮想ステーション・アダプター(STA)であってもよい。ユーザやアプリケーションがICSを開始する場合は、通常フル・モードのICSとなり、ネットワーク・アドレス変換(Network Address Translation:NAT)機能やIPv4及びIPv6の両方に対応したDHCPサーバ機能を発揮するという。
※ 因みに、この「インターネット接続の共有(ICS)」というMicrosoftの用語は、共有する接続はインターネットに限らず、他のEthernetやWANなどのネットワークもある以上、不適切であるとする指摘が従前よりあるが、Microsoftもその用語が適切ではないことを認めているようである。上の"Using Wireless Hosted Network and Internet Connection Sharing"で、「インターネット接続の共有(ICS)はSharedAccess Serviceを通じて提供されるWindowsの機能である。厳密に言えば、SharedAccessはコンピュータを通じてネットワーク共有を可能にし、その場合において共有されるネットワーク・アクセスは必ずしもインターネットへのアクセスを提供するわけではない。」と述べ、ICSという用語はユーザによく知られているので、ICSとSharedAccessという用語は相互に言い換え可能なものとしてこのセクションでは使用する、としている。
三、SoftAPの設定及び使用方法
具体的なSoftAPの設定方法については、有線LANアダプターからインターネットに接続可能なデスクトップPC(Windows 7)とノートPC(Windows XP及びWindows 7)との接続を前提に説明するが、Windows 7ないし8のノートPCとiPad等のWi-Fi機器を接続する場合など各自の環境に合わせて適宜読み替えて下さい。
1.Wireless Hosted Networkに関する設定は、netsh wlan commandsを使わなければならず、そのためのコマンドプロンプトは管理者権限で実行する必要がある。
「スタートメニュー」⇒「アクセサリ」⇒「コマンドプロンプト」を右クリックし、「管理者として実行」を選択し、コマンドプロンプトを開く。
先ず、Wireless Hosted Networkを有効にするためには、
[netsh wlan set hostednetwork mode=allow]と入力して、Enterを押下する(図-2)。
図-2

すると、ネットワーク接続ウィンドウ(通知領域の「ネットワーク・アイコン」⇒「ネットワークと共有センター」⇒「アダプターの設定の変更」)に、「ワイヤレスネットワーク接続2」などという名の「Microsoft Virtual WiFi Miniport Adapter」が現れる。これがSoftAPとなるAPアダプターである。
デスクトップPC等にWireless Hosted Networkに対応した無線LANカードを装着し、ドライバをインストールしただけの状態では、「Microsoft Virtual WiFi Miniport Adapter」は表示されない場合もあるが、以下のSSID・パスワード等を設定すると表示されるようになる。
なお、Wireless Hosted Networkを無効にするには、
[netsh wlan set hostednetwork mode=disallow]と入力する。
2.次に、SSID(Service Set Identifier)及びパスワード(Pre-Shared Key)を設定する。
上記「1.」と同様に、管理者権限でコマンドプロンプトを開き、
[netsh wlan set hostednetwork ssid=(SSID)]を、(SSID)の所に他人に見られても構わないような適当なネットワーク名を入れて、入力。これを設定しなければ、当のPCのコンピュータ名がSSIDとなってしまうようなので、注意を要する(図-3)。
図-3

さらに、[netsh wlan set hostednetwork key=(passphrase) keyusage=persistent]と、(passphrase)の所にパスワードとなる文字を入力することになる(図-4)。
ところで、Wireless Hosted Networkで使用される認証方式・暗号化方式はWPA2-パーソナル(WPA2-PSK(AES))であるとされる。従って、半角英数字及び記号を使って8文字以上、63文字以内の文字列を入力する。その場合、容易に推測されないためには、大文字、小文字、数字、記号の全てを含む文字列にすることが一般に推奨されている。
図-4

また、[keyusage]に[persistent]と入力すると、パスワードの設定は保持されるが、[temporary]と入力すると、1回のみの使用となる。
※ なお、設定したパスワードを忘れてしまった場合、
[netsh wlan show hostednetwork setting=security]で、WPA2-パーソナルのキーを確認することができる。「ユーザ― セキュリティ キー」として表示されている文字列が、パスワードである。
※ 因みに、WPA2-パーソナルとは、より正確には、認証サーバを使用しない一般家庭向けの簡易認証方式である事前共有キー(Pre-Shared Key:PSK)と優れた暗号化方式とされるAES(Advanced Encryption Standard)を組み合わせた、Wi-Fi AllianceのWPA(Wi-Fi Protected Access)2という認証プログラムによって認証された無線通信におけるセキュリティ方式である、ということができる。従って、上記のパスワードとは、この事前共有キーのことであるが、netsh wlan commandではuser security keyと呼ばれている。認証方式や暗号化方式によってキーの機能や名称が異なっているため、一般的な呼称としてパスワード、パスフレイズ、暗号キー、セキュリティキー、ネットワークキーなどが種々使われることになる。
3.ここで、インターネット接続の共有(ICS)を有効にする。
上のネットワーク接続ウィンドウに表示されている、現在インターネットへのアクセスやネットワーク接続に使っている「ローカルエリア接続」といった名の付いたアダプターを右クリックし、「プロパティ」を開く。「共有」タブに移り、「ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する」にチェックを入れ、その下の「ホームネットワーク接続」のドロップダウンリストから上記の「Microsoft Virtual WiFi Miniport Adapter」に当たるアダプター名(ここでは「ワイヤレスネットワーク接続2」)を選択し、必要に応じて、さらに下の「ネットワークのほかのユーザーに、共有インターネット接続の制御や無効化を許可する」にチェックを入れ、「OK」をクリック(図-5)。
図-5

4.いよいよWireless Hosted Networkの開始である。
[netsh wlan start hostednetwork]と入力し、Enter押下で、SoftAPのサービスが開始される(図-6)。
図-6

SoftAPのサービスを停止したい場合は、[netsh wlan stop hostednetwork]とすればよい。
※ 但し、PCをシャットダウンしたり、スリープ状態にすると、Wireless Hosted Networkは停止された状態で終了する。再びPCを起動しても、Wireless Hosted Networkは自動的に再スタートすることはない。そのため、PCの起動毎にコマンドプロンプトを開き、netsh wlan commandを打ち込んでWireless Hosted Networkを開始しなければならない。
そこで、バッチファイルを作成し、そのショートカットをランチャーなどに登録しておけば、便利であろう。
[cmd /c netsh wlan start hostednetwork]と、テキストエディタ(メモ帳など)に入力し、任意の名前を付け、拡張子を[.bat]又は[.cmd]として保存する。さらに、そのショートカットの「プロパティ」の「詳細設定」を開き、「管理者として実行」にチェックを入れておけば、なお便利である。
SoftAPを常時利用する場合は、このバッチファイルをタスクスケジューラでログオン時に「最上位の特権で実行する」等のタスクを作成することも考えられる。各自の利用状況に応じて、工夫して下さい。
また、[netsh wlan show settings][netsh wlan show hostednetwork]と打てば、ワイヤレスLANに関するすべての設定情報等を確認することができる。
四、SoftAPに接続するWi-Fi機器の設定
接続の設定の手順は、基本的には、どのWi-Fi機器も同じである。接続設定画面で、受信されているネットワークのSSID、通信モード、暗号化等が表示されるので、その中から該当するSSIDを選び(モードはインフラストラクチャ、認証・暗号化はWPA2-パーソナルであることを確認)、上記で設定したパスワードを入力するだけである。
例えば、Windows XPの標準のインターフェイスを使用する場合、「ネットワーク接続」⇒「ワイヤレスネットワーク接続」右クリック⇒「利用できるワイヤレスネットワークの表示」を選択。該当するSSIDを選んで「接続」をクリック(図-7)。
図-8の画面となり、「ネットワーク認証」は「WPA2-PSK」を、「データの暗号化」は「AES」を選び、「ネットワークキー」にSoftAP側で設定したパスワードを入力する。自動接続させたくなければ、「接続」タブを開き、チェックを外す。「OK」で設定完了。
図-7

図-8

Windows 7の場合、ネットワーク・アイコンをクリックすると、現在受信されているネットワークが表示されるので、該当するSSIDをクリックする。必要に応じて「自動的に接続する」にチェックを入れ、「接続」をクリック(図-9)。「セキュリティキー」の入力画面が表示されるので、前述のパスワードを入力し、「OK」。暗号化方式等は自動で選択されているようである。
図-9

続けて、ネットワークの場所の選択画面が表示されるので、自宅で使用する場合は、「ホームネットワーク」を選ぶ。さらに、ホームグループの作成画面が現れれば、「閉じる」をクリックして、完了。下記のようにTCP/IPv6を使用しないとすれば、ホームグループは作成できないので、この点については各々の環境に応じて判断して下さい。
それぞれ、「ワイヤレスネットワーク接続」を右クリック⇒「プロパティ」⇒「TCP/IPv4」の「プロパティ」を開き、「IPアドレスを自動的に取得する」、「DNSサーバーのアドレスを自動的に取得する」に設定しておくことは忘れずに。
※ 接続に失敗する場合、PCの再起動によってうまく行くことがある。なお、この場合も、特に必要がなければ、接続するすべてのアダプターの「TCP/IPv6」のチェックを外し(アダプターの右クリック⇒「プロパティ」、図-10)、使用しないようにしておく方が、接続に関するトラブルをあらかじめ回避できるかもしれない。
図-10

五、SoftAPのIPアドレスの変更
上述のように、ICSを有効にし、Wireless Hosted Networkを開始すると、Microsoft Virtual WiFi Miniport AdapterのIPアドレスは自動的に192.168.137.1となり(図-11)、そのDHCPサーバ機能によってこれに接続する機器に割り当てられるアドレスの範囲は、192.168.137.2~192.168.137.254となるようである。
図-11

ところが、種々の事情によりこのプライベートIPアドレスの割り当て範囲を変更したい場合もある。しかし、一旦、設定されたIPアドレスは、このMicrosoft Virtual WiFi Miniport Adapterの「プロパティ」からでは変更できない。この「TCP/IPv4」の「プロパティ」のIPアドレスを変更しても、これに接続しようとする機器は適切なIPアドレスを取得できずに、169.254で始まるリンクローカル・アドレスが割り当てられ、外部のネットワークやインターネットへの接続が不可能となるのである。
そこで、試行錯誤の末に漸く、上記のようにIPアドレスを変更してPCを再起動しても、レジストリ内のSharedAccessキーのParametersに格納されているIPアドレスが変更前のままであることに気付いたのである。試みにその値を変更して再起動をかけてみると、変更したIPアドレスの範囲で正常に割り当てが為され、インターネット接続が復活した。
そのレジストリ・キーは以下の通り。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters]
このキーの中の
[ScopeAddress]
[StandaloneDhcpAddress]
これら2つのIPアドレスを望むIPアドレスの範囲の最初のアドレスに変更する。
そこには、[ScopeAddressBackup]というキーもあるが、それはおそらく文字通りScopeAddressをBackupするものであろうから、そのIPアドレスは変更すべきではなかろう。
もちろん、図-11のMicrosoft Virtual WiFi miniport AdapterのIPアドレスも同じ値にしておく。
デフォルトゲートウェイ及びDNSサーバーのアドレスは入力する必要はないようである。
※ なお、IPアドレスに関してよく分からないという方は、こちらの記事「IPv4アドレスについて」を御覧下さい。
【追記】:
六、アドホックとSoftAPとの比較
前回のブリッジ接続とアドホック・モードの組合せと今回のICSとSoftAPの組合せを試してみた結果を簡単にまとめてみる。
● 3台のノートPCを同時にデスクトップPCに接続させ、インターネットにアクセスさせることについては、どちらの場合も可能であった。3台同時にデスクトップにファイルを送信すること、反対にデスクトップから同時に3台にファイルを送信することは、SoftAPはもちろんアドホックの場合でも可能であった。アドホックの場合、1対1の通信であるから、たとえ接続はできても、1対1で送受信を行なっている間は他の機器は通信することはできないといった記述を多く見かけたが、WindowsPCでブリッジ接続とアドホック・モードを組み合わせて通信を行なう限りは、その記述は当てはまらないといえる。
◆ 但し、通信速度が問題となる。XPの古いノートPCの無線LANアダプターの通信規格はIEEE802.11b/gであるため、アドホックでもSoftAPでも共に速度は54.0Mbpsであった。ところが、無線LANアダプターがIEEE802.11nに対応しているWindows 7のノートPCとデスクトップPCとの接続においては、SoftAPで速度は72.0Mbpsであったものの、アドホックでは54.0Mbpsに留まった。
ところが、3台同時の接続となると、アドホックの場合、最後に接続した1台が11.0Mbpsとなり、何度か再起動をかけ、接続し直してみたが、54.0Mbpsに戻ることはなかった。ご存知のように、この速度はあくまで理論上の最大値に過ぎないのである。両者のトラフィック制御の仕組みは知らないが、実際のスループットのおおよそを簡単に測ってみた。
約500MBのファイルをデスクトップ側から同時に3台のノートに送信し、また、その逆も行なうことにした。
アドホックの場合、1台であれば、順逆共に平均約800KB/sであった。3台となると1台当たり平均約250KB/sとなる。PC間のデータのやり取りだけを考えるとき、アドホックが選択肢に加わることはもはやなかろう。
SoftAPの場合、802.11n対応のアダプター相互の1対1の通信では、順逆とも平均約5.2MB/sであり、802.11gアダプター1台との通信は、平均約1.5MB/sであった。3台が同時にSoftAPに向けて送信した場合、11gの2台は1MB/s前後、11nの1台は3MB/s前後であったが、その逆SoftAPから3台の場合、11nは約5.0MB/sを維持し、残りの11g2台は、400~800KB/s前後を往ったり来たりであった。
同時とはいえ、送信開始は時間を少しずらして順次行なったが、総じて先に開始した方が速度は高く保たれるようである。
このテストは、数値の正確さを期してたものではなく、しかも2回程しか実施していないので、その結果には環境と偶然の要素が多分に入り込んでいることを考慮せざるをえないとしても、両者のスループットの差は歴然である。アドホックに比べSoftAPの送受信能力の高さは際立っており、その点ではSoftAPに軍配を上げざるをえない。専用の物理的アクセスポイントには当然劣るであろうが、このPCI ExpressのWi-Fiカードはかなり高性能であり、それによるSoftAPの実用性は高いといえる。
もっとも、インターネットを利用する場合は、いかにSoftAPの通信能力が高いとはいえ、ルータの先のインターネットへの通信速度を超えることはできないのであるから、複数台が同時にインターネットにアクセスすれば、単位時間当たりの伝送容量をその台数で分け合うしかないのである。ADSLの利用を余儀なくされている私の環境においては、SoftAPの能力の高さを存分に味わえない恨みがある。(【追記】:その後、光回線の利用が可能になったので、この点の心配はなくなった。)
◆ また、セキュリティについても、アドホックがWEPという暗号化方式しか利用できず、それを容易に解読することができるとされている以上、現在一般向けとしては最も安全性が高いとされるWPA2-PSK(AES)を採用しているSoftAPは、当然優位に立つ。
■ しかしながら、アドホック・モードは、その設定や接続を当然ながらGUI(Graphical User Interface)で容易に行なうことができるが、前述したようにSoftAPは、その設定・開始などすべての操作をCLI(Command Line Interface)によって行なわなければならない。バッチファイルを使って操作を簡易化することが可能であるとしても、最初の設定は、そうはいかず、手間であるに違いない。
なお、Wi-FiカードにはGUIでSoftAPの設定を行うことができるユーティリティ・ソフトが付属していることもあり、もちろんそのようなソフトを無償で公開している人もいるようであるから、CLIに不慣れな方はそちらを使われるのもよろしいかと。
Windows 7や8のPCと他のWi-Fi機器との接続について、アドホックかSoftAPか、どちらにすべきか悩まれている方、あるいはそれらの設定方法がよく分からない方に、以上の記事が少しでも参考になれば幸いである。
前回の「Wi-FiアダプターによるアドホックとSoftAP(1)」では、ブリッジ接続を用いたアドホック・モードを利用して、有線LANを通じてインターネットに接続しているPCの無線LAN(Wi-Fi)を経由することにより、他の無線LAN機器(ノートPCやiPadなど)のインターネットへのアクセスを可能にした。
今回は、Wireless Hosted Networkに含まれるSoftAPとインターネット接続共有(Internet Connection Sharing : ICS)という機能を使って、同様に無線LAN機器のインターネット・アクセスを図ってみる(図-1)。このSoftAPという機能は、業界団体のWi-Fi Allianceがその仕様を策定したWi-Fi Directに準拠するものであるという。
図-1

二、SoftAPとは
SoftAPとは、ソフトウェアによってPCのワイヤレス・アダプターにアクセスポイント(AP)の役割を担わせる機能をいう。これは、Windows 7及びWindows 8、ワイヤレスLANサービスをインストールしたWindows Server 2008 R2及びWindows Server 2012でサポートされる新たな無線LAN(WLAN)機能であるWireless Hosted Networkが実装する二大機能の1つである。
もう一つのは、Virtual Wi-Fiと呼ばれ、物理的なワイヤレス・アダプターを複数の仮想ワイヤレス・アダプターとして利用するという仮想化機能である。SoftAPは、この仮想ワイヤレス・アダプターを使用するのである。
これらの機能を持つWindows PCは、1つの物理的なワイヤレス・アダプターを、クライアントとしてハードウェアのアクセスポイント(AP)に接続させるために使用する一方で、同時に他のワイヤレス機器に対してそのアダプターへの接続を可能とするソフトウェアのアクセスポイントとして働かせることができる。ワイヤレス・アダプターを備えたWindows 7や8があれば、それを基点にさらにWi-Fi接続範囲を拡大することができるので、タブレット端末やスマートフォンなど、種々のWi-Fi機器を利用する者にとっては、これは有用有益な機能といえる。
このWireless Hosted Networkについては、msdnのサイトに公開されている"About the Wireless Hosted Network"及び"Using Wireless Hosted Network and Internet Connection Sharing"という文書で詳説されており、本記事もそれらに基づいている。不明な点があれば、そちらを御覧下さい。
Windows 7ないしWindows 8のロゴを取得しているワイヤレス機器であれば、Wireless Hosted Networkに対応しており、それに対応したワイヤレス・アダプターは、最大3つの論理アダプターに仮想化が可能であるという。
その3つとは、
○ 物理アダプターの設定をすべて受け継ぎ、それとまったく同じように振る舞い、それと同一に扱うことがで
きるステーション・アダプター(STA)
○ SoftAPの役割を果たすAPアダプター
○ ハードウェア・ベンダーが機能拡張のためにオプションとして追加することのできるヴァーチャル・ステー
ション・アダプター(VSTA)
である。
Wireless Hosted Networkは、これらの機能を使い、Internet Connection Sharing(ICS)と連携しつつ、2つのことを可能にするという。
その1つは、SoftAPにつながった機器は、自動的にwireless Personal Area Network(wireless PAN)を形成し、それら接続した機器との間だけでなく、Wireless Hosted Networkを提供するPCとの間でもパケットの送受信が可能となる、ということである。この場合、インターネット接続共有(ICS)はスタンドアロン・モードとして働いており、IPv4のみに対応したDHCPサーバとして機能することになる。通常、Wireless Hosted Networkの開始に伴って、ICSはスタンドアロン・モードで開始される仕様になっているという。ユーザやアプリケーションが直接スタンドアロン・モードのICSを開始又は停止することはできないとのことである。
もう1つは、Wireless Hosted Networkが有効になっているPC上の他のネットワーク・アダプターにおいてインターネット接続共有(ICS)を有効にした場合には、SoftAPに接続するワイヤレス機器は、インターネット等の外部のネットワークにアクセすることが可能となる、ということである。ワイヤレスLAN接続の場合、インターネット接続共有を設定するアダプターは、別のワイヤレス・アダプターであっても、SoftAPのための仮想APアダプターと同一の物理ワイヤレス・アダプター上の仮想ステーション・アダプター(STA)であってもよい。ユーザやアプリケーションがICSを開始する場合は、通常フル・モードのICSとなり、ネットワーク・アドレス変換(Network Address Translation:NAT)機能やIPv4及びIPv6の両方に対応したDHCPサーバ機能を発揮するという。
※ 因みに、この「インターネット接続の共有(ICS)」というMicrosoftの用語は、共有する接続はインターネットに限らず、他のEthernetやWANなどのネットワークもある以上、不適切であるとする指摘が従前よりあるが、Microsoftもその用語が適切ではないことを認めているようである。上の"Using Wireless Hosted Network and Internet Connection Sharing"で、「インターネット接続の共有(ICS)はSharedAccess Serviceを通じて提供されるWindowsの機能である。厳密に言えば、SharedAccessはコンピュータを通じてネットワーク共有を可能にし、その場合において共有されるネットワーク・アクセスは必ずしもインターネットへのアクセスを提供するわけではない。」と述べ、ICSという用語はユーザによく知られているので、ICSとSharedAccessという用語は相互に言い換え可能なものとしてこのセクションでは使用する、としている。
三、SoftAPの設定及び使用方法
具体的なSoftAPの設定方法については、有線LANアダプターからインターネットに接続可能なデスクトップPC(Windows 7)とノートPC(Windows XP及びWindows 7)との接続を前提に説明するが、Windows 7ないし8のノートPCとiPad等のWi-Fi機器を接続する場合など各自の環境に合わせて適宜読み替えて下さい。
1.Wireless Hosted Networkに関する設定は、netsh wlan commandsを使わなければならず、そのためのコマンドプロンプトは管理者権限で実行する必要がある。
「スタートメニュー」⇒「アクセサリ」⇒「コマンドプロンプト」を右クリックし、「管理者として実行」を選択し、コマンドプロンプトを開く。
先ず、Wireless Hosted Networkを有効にするためには、
[netsh wlan set hostednetwork mode=allow]と入力して、Enterを押下する(図-2)。
図-2

すると、ネットワーク接続ウィンドウ(通知領域の「ネットワーク・アイコン」⇒「ネットワークと共有センター」⇒「アダプターの設定の変更」)に、「ワイヤレスネットワーク接続2」などという名の「Microsoft Virtual WiFi Miniport Adapter」が現れる。これがSoftAPとなるAPアダプターである。
デスクトップPC等にWireless Hosted Networkに対応した無線LANカードを装着し、ドライバをインストールしただけの状態では、「Microsoft Virtual WiFi Miniport Adapter」は表示されない場合もあるが、以下のSSID・パスワード等を設定すると表示されるようになる。
なお、Wireless Hosted Networkを無効にするには、
[netsh wlan set hostednetwork mode=disallow]と入力する。
2.次に、SSID(Service Set Identifier)及びパスワード(Pre-Shared Key)を設定する。
上記「1.」と同様に、管理者権限でコマンドプロンプトを開き、
[netsh wlan set hostednetwork ssid=(SSID)]を、(SSID)の所に他人に見られても構わないような適当なネットワーク名を入れて、入力。これを設定しなければ、当のPCのコンピュータ名がSSIDとなってしまうようなので、注意を要する(図-3)。
図-3

さらに、[netsh wlan set hostednetwork key=(passphrase) keyusage=persistent]と、(passphrase)の所にパスワードとなる文字を入力することになる(図-4)。
ところで、Wireless Hosted Networkで使用される認証方式・暗号化方式はWPA2-パーソナル(WPA2-PSK(AES))であるとされる。従って、半角英数字及び記号を使って8文字以上、63文字以内の文字列を入力する。その場合、容易に推測されないためには、大文字、小文字、数字、記号の全てを含む文字列にすることが一般に推奨されている。
図-4

また、[keyusage]に[persistent]と入力すると、パスワードの設定は保持されるが、[temporary]と入力すると、1回のみの使用となる。
※ なお、設定したパスワードを忘れてしまった場合、
[netsh wlan show hostednetwork setting=security]で、WPA2-パーソナルのキーを確認することができる。「ユーザ― セキュリティ キー」として表示されている文字列が、パスワードである。
※ 因みに、WPA2-パーソナルとは、より正確には、認証サーバを使用しない一般家庭向けの簡易認証方式である事前共有キー(Pre-Shared Key:PSK)と優れた暗号化方式とされるAES(Advanced Encryption Standard)を組み合わせた、Wi-Fi AllianceのWPA(Wi-Fi Protected Access)2という認証プログラムによって認証された無線通信におけるセキュリティ方式である、ということができる。従って、上記のパスワードとは、この事前共有キーのことであるが、netsh wlan commandではuser security keyと呼ばれている。認証方式や暗号化方式によってキーの機能や名称が異なっているため、一般的な呼称としてパスワード、パスフレイズ、暗号キー、セキュリティキー、ネットワークキーなどが種々使われることになる。
3.ここで、インターネット接続の共有(ICS)を有効にする。
上のネットワーク接続ウィンドウに表示されている、現在インターネットへのアクセスやネットワーク接続に使っている「ローカルエリア接続」といった名の付いたアダプターを右クリックし、「プロパティ」を開く。「共有」タブに移り、「ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する」にチェックを入れ、その下の「ホームネットワーク接続」のドロップダウンリストから上記の「Microsoft Virtual WiFi Miniport Adapter」に当たるアダプター名(ここでは「ワイヤレスネットワーク接続2」)を選択し、必要に応じて、さらに下の「ネットワークのほかのユーザーに、共有インターネット接続の制御や無効化を許可する」にチェックを入れ、「OK」をクリック(図-5)。
図-5

4.いよいよWireless Hosted Networkの開始である。
[netsh wlan start hostednetwork]と入力し、Enter押下で、SoftAPのサービスが開始される(図-6)。
図-6

SoftAPのサービスを停止したい場合は、[netsh wlan stop hostednetwork]とすればよい。
※ 但し、PCをシャットダウンしたり、スリープ状態にすると、Wireless Hosted Networkは停止された状態で終了する。再びPCを起動しても、Wireless Hosted Networkは自動的に再スタートすることはない。そのため、PCの起動毎にコマンドプロンプトを開き、netsh wlan commandを打ち込んでWireless Hosted Networkを開始しなければならない。
そこで、バッチファイルを作成し、そのショートカットをランチャーなどに登録しておけば、便利であろう。
[cmd /c netsh wlan start hostednetwork]と、テキストエディタ(メモ帳など)に入力し、任意の名前を付け、拡張子を[.bat]又は[.cmd]として保存する。さらに、そのショートカットの「プロパティ」の「詳細設定」を開き、「管理者として実行」にチェックを入れておけば、なお便利である。
SoftAPを常時利用する場合は、このバッチファイルをタスクスケジューラでログオン時に「最上位の特権で実行する」等のタスクを作成することも考えられる。各自の利用状況に応じて、工夫して下さい。
また、
四、SoftAPに接続するWi-Fi機器の設定
接続の設定の手順は、基本的には、どのWi-Fi機器も同じである。接続設定画面で、受信されているネットワークのSSID、通信モード、暗号化等が表示されるので、その中から該当するSSIDを選び(モードはインフラストラクチャ、認証・暗号化はWPA2-パーソナルであることを確認)、上記で設定したパスワードを入力するだけである。
例えば、Windows XPの標準のインターフェイスを使用する場合、「ネットワーク接続」⇒「ワイヤレスネットワーク接続」右クリック⇒「利用できるワイヤレスネットワークの表示」を選択。該当するSSIDを選んで「接続」をクリック(図-7)。
図-8の画面となり、「ネットワーク認証」は「WPA2-PSK」を、「データの暗号化」は「AES」を選び、「ネットワークキー」にSoftAP側で設定したパスワードを入力する。自動接続させたくなければ、「接続」タブを開き、チェックを外す。「OK」で設定完了。
図-7

図-8

Windows 7の場合、ネットワーク・アイコンをクリックすると、現在受信されているネットワークが表示されるので、該当するSSIDをクリックする。必要に応じて「自動的に接続する」にチェックを入れ、「接続」をクリック(図-9)。「セキュリティキー」の入力画面が表示されるので、前述のパスワードを入力し、「OK」。暗号化方式等は自動で選択されているようである。
図-9

続けて、ネットワークの場所の選択画面が表示されるので、自宅で使用する場合は、「ホームネットワーク」を選ぶ。さらに、ホームグループの作成画面が現れれば、「閉じる」をクリックして、完了。下記のようにTCP/IPv6を使用しないとすれば、ホームグループは作成できないので、この点については各々の環境に応じて判断して下さい。
それぞれ、「ワイヤレスネットワーク接続」を右クリック⇒「プロパティ」⇒「TCP/IPv4」の「プロパティ」を開き、「IPアドレスを自動的に取得する」、「DNSサーバーのアドレスを自動的に取得する」に設定しておくことは忘れずに。
※ 接続に失敗する場合、PCの再起動によってうまく行くことがある。なお、この場合も、特に必要がなければ、接続するすべてのアダプターの「TCP/IPv6」のチェックを外し(アダプターの右クリック⇒「プロパティ」、図-10)、使用しないようにしておく方が、接続に関するトラブルをあらかじめ回避できるかもしれない。
図-10

五、SoftAPのIPアドレスの変更
上述のように、ICSを有効にし、Wireless Hosted Networkを開始すると、Microsoft Virtual WiFi Miniport AdapterのIPアドレスは自動的に192.168.137.1となり(図-11)、そのDHCPサーバ機能によってこれに接続する機器に割り当てられるアドレスの範囲は、192.168.137.2~192.168.137.254となるようである。
図-11

ところが、種々の事情によりこのプライベートIPアドレスの割り当て範囲を変更したい場合もある。しかし、一旦、設定されたIPアドレスは、このMicrosoft Virtual WiFi Miniport Adapterの「プロパティ」からでは変更できない。この「TCP/IPv4」の「プロパティ」のIPアドレスを変更しても、これに接続しようとする機器は適切なIPアドレスを取得できずに、169.254で始まるリンクローカル・アドレスが割り当てられ、外部のネットワークやインターネットへの接続が不可能となるのである。
そこで、試行錯誤の末に漸く、上記のようにIPアドレスを変更してPCを再起動しても、レジストリ内のSharedAccessキーのParametersに格納されているIPアドレスが変更前のままであることに気付いたのである。試みにその値を変更して再起動をかけてみると、変更したIPアドレスの範囲で正常に割り当てが為され、インターネット接続が復活した。
そのレジストリ・キーは以下の通り。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters]
このキーの中の
[ScopeAddress]
[StandaloneDhcpAddress]
これら2つのIPアドレスを望むIPアドレスの範囲の最初のアドレスに変更する。
そこには、[ScopeAddressBackup]というキーもあるが、それはおそらく文字通りScopeAddressをBackupするものであろうから、そのIPアドレスは変更すべきではなかろう。
もちろん、図-11のMicrosoft Virtual WiFi miniport AdapterのIPアドレスも同じ値にしておく。
デフォルトゲートウェイ及びDNSサーバーのアドレスは入力する必要はないようである。
※ なお、IPアドレスに関してよく分からないという方は、こちらの記事「IPv4アドレスについて」を御覧下さい。
【追記】:
その後、Microsoftのサポートのサイトに"How to Change the IP Range for the Internet Connection Sharing DHCP service"と題する文書を見つけた。
そこには、「ホストに割り当てられたIPアドレスと接続共有のホスト上のDHCPサービスによって使用されるIPアドレスの範囲を変更するためには、レジストリ・エディタを使って次の値を変更する。」としてこの二つの項目が挙げられている。「ScopeAddressの値は、接続共有で使用したいと望むアドレスの範囲に設定されるものである。StandaloneDhcpAddressの値は、Virtual Wi-FiないしSoftAPが有効とされた場合に使用されるアドレスの範囲である。両値に対して、255.255.255.0のサブネットマスクが使用され、設定で変更することはできない」と説明されている。
まさに、Bingo!ということになる。
そこには、「ホストに割り当てられたIPアドレスと接続共有のホスト上のDHCPサービスによって使用されるIPアドレスの範囲を変更するためには、レジストリ・エディタを使って次の値を変更する。」としてこの二つの項目が挙げられている。「ScopeAddressの値は、接続共有で使用したいと望むアドレスの範囲に設定されるものである。StandaloneDhcpAddressの値は、Virtual Wi-FiないしSoftAPが有効とされた場合に使用されるアドレスの範囲である。両値に対して、255.255.255.0のサブネットマスクが使用され、設定で変更することはできない」と説明されている。
まさに、Bingo!ということになる。
六、アドホックとSoftAPとの比較
前回のブリッジ接続とアドホック・モードの組合せと今回のICSとSoftAPの組合せを試してみた結果を簡単にまとめてみる。
● 3台のノートPCを同時にデスクトップPCに接続させ、インターネットにアクセスさせることについては、どちらの場合も可能であった。3台同時にデスクトップにファイルを送信すること、反対にデスクトップから同時に3台にファイルを送信することは、SoftAPはもちろんアドホックの場合でも可能であった。アドホックの場合、1対1の通信であるから、たとえ接続はできても、1対1で送受信を行なっている間は他の機器は通信することはできないといった記述を多く見かけたが、WindowsPCでブリッジ接続とアドホック・モードを組み合わせて通信を行なう限りは、その記述は当てはまらないといえる。
◆ 但し、通信速度が問題となる。XPの古いノートPCの無線LANアダプターの通信規格はIEEE802.11b/gであるため、アドホックでもSoftAPでも共に速度は54.0Mbpsであった。ところが、無線LANアダプターがIEEE802.11nに対応しているWindows 7のノートPCとデスクトップPCとの接続においては、SoftAPで速度は72.0Mbpsであったものの、アドホックでは54.0Mbpsに留まった。
ところが、3台同時の接続となると、アドホックの場合、最後に接続した1台が11.0Mbpsとなり、何度か再起動をかけ、接続し直してみたが、54.0Mbpsに戻ることはなかった。ご存知のように、この速度はあくまで理論上の最大値に過ぎないのである。両者のトラフィック制御の仕組みは知らないが、実際のスループットのおおよそを簡単に測ってみた。
約500MBのファイルをデスクトップ側から同時に3台のノートに送信し、また、その逆も行なうことにした。
アドホックの場合、1台であれば、順逆共に平均約800KB/sであった。3台となると1台当たり平均約250KB/sとなる。PC間のデータのやり取りだけを考えるとき、アドホックが選択肢に加わることはもはやなかろう。
SoftAPの場合、802.11n対応のアダプター相互の1対1の通信では、順逆とも平均約5.2MB/sであり、802.11gアダプター1台との通信は、平均約1.5MB/sであった。3台が同時にSoftAPに向けて送信した場合、11gの2台は1MB/s前後、11nの1台は3MB/s前後であったが、その逆SoftAPから3台の場合、11nは約5.0MB/sを維持し、残りの11g2台は、400~800KB/s前後を往ったり来たりであった。
同時とはいえ、送信開始は時間を少しずらして順次行なったが、総じて先に開始した方が速度は高く保たれるようである。
このテストは、数値の正確さを期してたものではなく、しかも2回程しか実施していないので、その結果には環境と偶然の要素が多分に入り込んでいることを考慮せざるをえないとしても、両者のスループットの差は歴然である。アドホックに比べSoftAPの送受信能力の高さは際立っており、その点ではSoftAPに軍配を上げざるをえない。専用の物理的アクセスポイントには当然劣るであろうが、このPCI ExpressのWi-Fiカードはかなり高性能であり、それによるSoftAPの実用性は高いといえる。
もっとも、インターネットを利用する場合は、いかにSoftAPの通信能力が高いとはいえ、ルータの先のインターネットへの通信速度を超えることはできないのであるから、複数台が同時にインターネットにアクセスすれば、単位時間当たりの伝送容量をその台数で分け合うしかないのである。ADSLの利用を余儀なくされている私の環境においては、SoftAPの能力の高さを存分に味わえない恨みがある。(【追記】:その後、光回線の利用が可能になったので、この点の心配はなくなった。)
◆ また、セキュリティについても、アドホックがWEPという暗号化方式しか利用できず、それを容易に解読することができるとされている以上、現在一般向けとしては最も安全性が高いとされるWPA2-PSK(AES)を採用しているSoftAPは、当然優位に立つ。
■ しかしながら、アドホック・モードは、その設定や接続を当然ながらGUI(Graphical User Interface)で容易に行なうことができるが、前述したようにSoftAPは、その設定・開始などすべての操作をCLI(Command Line Interface)によって行なわなければならない。バッチファイルを使って操作を簡易化することが可能であるとしても、最初の設定は、そうはいかず、手間であるに違いない。
なお、Wi-FiカードにはGUIでSoftAPの設定を行うことができるユーティリティ・ソフトが付属していることもあり、もちろんそのようなソフトを無償で公開している人もいるようであるから、CLIに不慣れな方はそちらを使われるのもよろしいかと。
Windows 7や8のPCと他のWi-Fi機器との接続について、アドホックかSoftAPか、どちらにすべきか悩まれている方、あるいはそれらの設定方法がよく分からない方に、以上の記事が少しでも参考になれば幸いである。
tag : SoftAPVirtualWi-FiWirelessHostedNetworkICSInternetConnectionSharing
コメントの投稿
山口の「通りがけ」様へ
通りがけ様
恐縮ですが、貴君が投稿されたコメントの内容は当サイトに相応しからざるものと判断し、その掲示を見合わせることに致しましたので、何卒御了承下さい。
恐縮ですが、貴君が投稿されたコメントの内容は当サイトに相応しからざるものと判断し、その掲示を見合わせることに致しましたので、何卒御了承下さい。