SSブログ

続々 WiFi HOME SPOT [Network]

HOME SPOT CUBEレンタルサービスの終了と無償譲渡について 

au が実施していた WiFi ルーターのレンタルサービスが終了することになったらしい。サービス終了後は、使用中の WiFi ルーターを無償譲渡して貰えるということなので、慌てて配線をいじらなければならないといことはない。

私の場合はレンタル開始が遅かったからかもしれないけど、設置時に通電した後一度も触ることなし(不具合、不調なし)に今まで使ってこれたのはラッキーだったのかもしれない。ただ、サービス終了後は故障時の補償がなくなってしまうということなので、多少心配ではあるけどね。

 


PHP with Microsoft SQL Server 後篇 [Network]

私が PHP に手を出してみようと思った一番の理由はこれ、「PHP から SQL Server にアクセスするのも意外に簡単」ということ。なので、仮に SQL Server に繋ぐ方法が解らなかったら、PHP にチャレンジするのもやめていたかも知れない。SQL Serv er がとても好きっていうわけじゃなく、他が解らないからという理由になってしまうのがちょっと寂しいところではあるけれど...。

さて、前回紹介した通り、Microsoft Drivers for PHP for SQL Server を組み込んでやれば、意外にあっけなく SQL Server との連携ができることがわかった。多少、SQL Server 側で作業をする必要があるのだけれど、大して難しいものでもない。既に SQL Server のインストールが完了しているならこんなところ。

  1. データベースを作成する
  2. データベースロールを作成する
  3. データベースロールに権限を与える
  4. ログインを作成する
  5. データベースユーザーにログインをマップする
  6. データベースロールにデータベースユーザーを追加する

SQL Server Management Studio の GUI でもいいし、クエリでやってもいい。

そういえば、SQL Server も PowerShell で管理ができるようになっていたはず。だた、ネットを探してもあまり有用なネタが見つからないのは、あまり手を出す人が多くないからだろうか、従来からのクエリでやるのと効率も変らないからなんだろうか?

Exchange Server では、管理作業を PowerShell で実施するように結構な手厚いサポートがあったようだ。GUI で管理作業を実行した場合でも、同等の機能を実現するための PowerShell の記述を教えてくれるようになっていたし、基本、1 つのコマンドレットで 1 つの機能を実現できるような構成になっているので PowerShell の文法に詳しくなくてもそこそこ使える。

対して SQL Server ではコマンドレットの提供は殆どなく、SQL Server Management Object (SMO) と呼ばれるクラス群だけ。これらの機能を使おうと思ったら、プログラミングの知識がないと辛い。さらに、PSProvider というものを使い、SQL Server のオブジェクトを扱いやすくしたつもりなのだろうけど、これが殆ど動作しない。SQL Server 2008 R2 と SQL Server 2012 で試してみたけど、見事になにもできない。

ちょっと見たところ、SMO 使えばある程度のところまではできるんじゃないかという感じ。気が向いたら弄ってみようかなぁ。今はとりあえず PHP を続けよう。


PHP with Microsoft SQL Server 前篇 [Network]

Windows Server 2008 R2 の登場以降、すべてのサーバー製品は 64 ビット化するものだと思ってた。Exchange Server を筆頭に続々と 64 ビットバージョンのみをリリースしてなかったので、当然そういう流れなのだと解釈していた。だからこそ、そこに繋ぐための機構も当然対応済み(する)と思ったのだけど...。

実は、昨日から始めた PHP の導入作業、つまらないところで躓いちゃった。昨日も冒頭に書いたけど、使用する OS は Windows Server 2012 にするつもりだった。PHP Manager が使用できないのは痛かったけど、それ以外は何とかなるものだと高をくくってた。割りと簡単に、PHP のリクエストは処理できるようになったので、あとはデータベース(Microsoft SQL Server)と繋ぐだけだと...。

ところが、何度設定を見直しても、データベースに接続ができない。データベースとか、あまり得意な分野ではないので、作業を始める前から「SQL で躓いたら厄介かも」とは憂慮していたのだけれど、まさか接続もできない状況になるなんて思わなかった。

 「OS は 64ビットだし、SQL Server だって 64ビット版、PHP だって 64 ビット版を落としてきたはずだから、ここは問題ないはず。phpinfo() の出力だって、ちゃんと x64 になってるし...。」という思考を経て、思いついたことがある。

以前のバージョンの PHP ではどうなっているか詳しいことは解らない(何しろ、始めたのが昨日なんで...)けど、PHP から Microsoft SQL Server に繋ぐために Microsoft Drivers for PHP for SQL Server というものを利用するらしい。

いろいろ探してみたんだけど、結局 Microsoft Drivers for PHP for SQL Server の 64ビットバージョンというのが存在しない。取り敢えずダウンロードしてきたパッケージに入っていた DLL を覗いてみたところ全て x86 になってる。

Windows の開発環境があるなら、dumpbin.exe というツールを使って実行ファイルの素性を探るのは簡単にできる。

Windows の仕様では、64 ビット版の EXE からは 64 ビット版の DLL しか呼び出せない。同様に、32 ビット版の EXE からは 32 ビットの版 DLL しか呼び出せない。また、32 ビット版の OS では、32 ビット版の EXE、DLL しか使用できないけど、64ビット版の OS の下では 64ビット/32ビットの両方を使用することができる。なので、この状況では上記のドライバーを使う術がなくなってしまう気もしたのだけど!?

Internet Information Services の動作として、PHP に対する要求を受け付けると、PHP の実行モジュール php-cgi.exe を起動し要求を処理させるのが FastCGI というもの。DLL ではなく EXE を叩く...ということは、php-cgi.exe が 32ビット版だとしても(効率はともかく)起動することができるはず、php-cgi.exe が 32ビット版なら、32 ビット版のドライバーも使えるはず!!

結局、目論見通り 32 ビット版で PHP を動作させることには成功したのだけれど、何となくすっきりしないところではある。本当は今日の更新で SQL Server との連携まで進めたかったのだけど、予想以上に時間を食ってしまったので、残りは次回で。


PHP on Internet Information Services [Network]

私の開発主体は殆どが Windows 環境。なので、極一部の検証機以外は、Windows が搭載された仮想マシンだけでネットワークを構築している。基本的に Windows で動作しないものには手を出していないのだけれど、たまたま見つけた記事で PHP を IIS(Internet Information Services)で動作させるための手順を紹介していたので、暇つぶしにそれをトレースしてみた。

 PHP on Windows ガイドライン (ドラフト)

今日は 2 章までのトレースなんだけど、4 章に PHP から SQL Server を使うための設定方法があるようなので、先読みして導入までは実施している。

URL を見ると解る通り、これは Microsoft 謹製のドキュメント。2年近くドラフトのまま放って置かれたようではあるけれど、いくつかのバージョン依存にかかわるもの以外は記載の通り動作する(設定できる)ことが確認できた。

記載内容のまま設定できなかったのは以下の通り。

  • 手元に OS のインストールが完了している開発用の環境はいくつかあったのだけれど、Windows Server 2008 R2 と Windows Server 2012 だけなので全て 64 ビットバージョンとなる。記事の中では 32 ビットバージョンのモジュールを組み込んでいるのだけれど、64 ビットバージョンに読み替えて操作している。
  • (前述の通り 4 章に記述があるのだけれど)PHP と SQL Server と連携させるための手順はまったく異なっている。記事では php_mssql.dll という拡張モジュールを指定しているけど、現行バージョンでは廃止されてしまっている。
    • 現行の PHP では、SQL Server と連携するためには Microsoft Drivers for PHP for SQL Server というドライバーを使用するようだ。ただ、PHP の最新版となる 5.6 に対応するモジュールが(2014-11-09 時点で)公開されていないようなので、PHP のバージョンは 5.5 としている。ただ、PHP 5.5 用のドライバーも CTP ということなので、正式版が出てきたら差し替えたいと思っている。
  • Windows Server 2012 に含まれる IIS のバージョンは 8 になっている。記事で紹介されている PHP Manager が IIS 7.0/7.5 にしか対応していないということなので、これを利用するに Windows Server 2008 R2 をひっぱりだしてきた。設定ファイル(php.ini)の書き換えを手で行うならとりあえず問題にはならないとは思うけど...。

こうやって列挙していくと結構な差異があるようにも見えるけど、インストールが必要なのは PHP Manager だけ、それ以外のものはダウンロードしてきたファイルを解凍し、取り出したファイルを指定のディレクトリにコピーしていくだけなので数の割には時間はかかっていない。

バージョン違いのために断念した(やり直した)いくつかのバージョンを含め、都合 5~6 回の作業をしたけれど、すべての作業に要した時間は 3 時間くらい。何もわからずに設定しても、これくらいの時間で済むのだから結構簡単なほうなんじゃないだろうか。

作業が終わり、Windows Server 2008 R2 と Windows Server 2012 で PHP 5.5 が動作するようになった。ちょっと PHP の文法でも勉強してみようか...。

 


続 WiFi HOME SPOT [Network]

前回の投稿の通り WiFi HOME SPOT が LAN の仲間入りし、干渉の少ない環境でスマートフォンがストレスなく使えるようになった。スマートフォンから AP モードの WiFi HOME SPOT を経由してインターネットにつなぐまでは大して時間を要さなかったのだけれど、その後の設定に若干難航したところがあるのでそれを報告しようと思う。

前回お話したとおり WiFi HOME SPOT は 2.4 GHz 帯 と 5 GHz 帯の両方をサポートしている、マニュアルをみたところ不要であれば無効にすることも可能だという記述がある。実際 2.4 GHz 帯を使うつもりはハナからなかったので、これをサポートするチャネルをオフってしまおうと考えた。

WiFi HOME SPOT では 3 つのチャネルをサポートしていて、SSID1 と SSID2 が 2.4 GHz 帯のチャネル、SSID3 が 5 GHz 帯のチャネルとなっている。3 つのうち 2 つを無効にするのはなんとなく勿体無い気がしないでもないけど、使わないものを野放しにしておくのもセキュリティ上好ましくはないので思い切ってオフることにする。将来的にゲーム機をここにつなげるようにするなら復活させる可能性がないわけではないが...。

ゲーム機ではセキュリティの甘い WEP のみをサポートしているものもあるため、LAN に引き入れるのは躊躇してしまう。WiFi HOME SPOT にはチャネルごとにプライバシーセパレータという機能を適用することができ、当該チャネルからのアクセスをインターネットのみに制限することが可能。これにより、仮にセキュリティの甘いチャネルから侵入されても LAN 内の情報を荒らされる可能性を減らすことができる。

チャネルを無効化するには、WiFi HOME SPOT の管理画面にアクセスし、設定を変更するだけなのだけど...。

WiFi HOME SPOT の設定を変更するには、ブラウザから WiFiHOME SPOT の管理ページにアクセスすればいい。管理ページは取扱い説明書にある通り 192.168.0.254 か 192.168.1.254 になるはず。前回の導入においては、(AP モードに切り替えた以外)何も設定変更していないので、どちらかがアクセスできると思っていたのだけど、ちょっと様子がおかしい。

上記の管理ページの IP アドレスを見たときに、ちょっと嫌な予感がしていた。実は 192.168.1.0/24 のネットワークは既存の LAN で使用していて、192.168.1.254 は別の無線 LAN のアクセスポイントが使用している。 試しにこのアドレスにアクセスしてみると、既存の無線 LAN の管理ページが正しく表示される。

ただ、不思議なのは、既存の無線 LAN も、新規に導入した WiFi HOME SPOT も特に支障なく動作しているようなので、管理ページ以外の動作には問題ないという事なのだろう。

WiFi HOME SPOT をオンラインのまま両方の IP アドレスを試してみたけれど結局、管理ページには繋がらなかった。この時点では、アドレスがバッティングしているのでそのせいかとも思ったんだけど、調べていくうちに、そうではないのかもしれないと考えるようになっていく。

WiFi HOME SPOT を LAN から切り離し、手元にあったノート PC を直結してみる。この際、WiFi HOME SPOT のコネクタは右側 LAN と印刷されている方を使用する。LAN ケーブルは WiFi HOME SPOT に付属していたものをそのまま使用。

一度 WiFi HOME SPOT の(AC アダプタを抜いて)電源を落とし、再起動させる。その後、上記の IP アドレスにアクセスすると、WiFi HOME SPOT の管理ページが見える。

ここで、当初の目的を果たしてしまうことにする。とりあえず 2.4 GHz 帯の使用を無効にしてしまおう。管理ページ上部の [Wi-Fi 設定] のタブを選ぶと当該設定を変更するためのページが表示されるので、[2.4 GHz 無線] の設定を [Off] にする。そして、画面の一番下までスクロールして [適用] をクリックする。そうするとすぐに再起動するか確認してくるので [再起動] をクリックする。

[再起動] をクリックした時点で、すぐに再起動が実施されるようで、いきなり WiFi HOMESPOT の [かんたん接続ランプ] が点滅しだすのにはちょっと面食らったけど、数 10 秒で定常状態にもどり、管理ページもそのまま使用できるようになる。

この先の記述については、取扱説明書に記載がなく、私の環境ではそうなったというレベルのものです。チャレンジする場合は自己責任でお願いいたします。

アクセスポイントの設定変更なんて頻繁に実施するわけではないので、このまま WiFi HOME SPOT をオンラインにしてもよかったんだけど、気になりだすと安眠できなくなるの開発者のサガなのかもしれない。

WiFi HOME SPOT を AP モードで 起動した場合、WiFi HOME SPOT はスイッチング ハブのような動作をするのだろう。管理ページでも WAN 側の IP アドレスの変更はできなくなっている。モード切り替えスイッチを [ROUTER] 側に切り替えると、いきなり再起動をはじめ(もう、慣れた)ルーターとして立ち上がってくる。

[本体設定] タブを選択すると、[WAN の設定] が選べるようになるので、以下のように設定してみる。

  • WAN の接続の種類:固定 IP
  • IP アドレス:LAN 内の空いているアドレス
  • 優先サブネットマスク:LAN のサブネットマスク
  • デフォルトゲートウェイ:LAN 内のルーターのアドレス

そして、[適用] 後に再起動するのはさっきと同様。さらに、起動してきたらモード切替スイッチを [AP] に変更する。

ここで、管理画面のステータスを確認してみると、[WAN IP アドレス] は 0.0.0.0 となっていて、設定した値が忘れられてしまっているようにも見えるのだけれど...。

WiFi HOME SPOT からノート PC を切り離し、WAN 側のコネクタを使って LAN に接続する。これで、管理ページにて行った設定変更以外は、今回の作業を行う前の状態に戻ったはず。念のため、一度 WiFi HOME SPOT を再起動し安定するのを待つ。

 スマートフォンからアクセスポイントの状態を見ると、auhome_******_A という SSID のみが見えるようになっていることから、5 GHz 帯だけを使用するアクセスポイントとなったことが確認できる。

また、WiFi HOME SPOT 管理ページは、自分で設定した IP アドレスが使用できるようになっている。上述のとおり ステータスが反映されないのがちょっと気にはなるけど、とりあえずミッション コンプリート。


WiFi HOME SPOT [Network]

今、スマートフォンを買うともれなく WiFi がついてくる。LTE の容量制限もあるので、自宅や会社では WiFi でつないでるという人も少なくないだろう。この文章を書いている時点で、スマートフォンが対応している最も新しい WiFi の規格は IEEE 802.11acというギガビットのスループットを規定しているもの。とは言っても、MIMO (の発展形)が前提になるため、アンテナのスペースを確保しづらいスマートフォンではここまでのスループットを出すのは難しいだろう、それに WiFi のスループットはベストエフォート、、、実測値とかなりの乖離があるのは周知の事実だしね。

自宅でも WiFi を使おうと思ったら、WiFi に対応したルーター(あるいはアクセスポイント)を設置してやる必要がある。最近は ADSL や FTTH を契約すると終端装置と一緒に WiFi 対応ルーターを貸してくれたりするので、それを使用する手も十分にありえる。

私の場合、残念ながらルーターが WiFi 非対応だったので、別に WiFi のアクセスポイントを設置して使っている。もともとゲーム機をつなぐためだけに設置したようなものだったので、スループットはそれほど気にしていなかった。このアクセスポイントが対応している規格は IEEE 802.11 b/g/n というもので、ちょっとばかり古い。

最近になってスマートフォンが相乗りするようになり、少し状況が変わってきた。

WiFi で使用する無線には、大きく分けて 2 つの帯域がある。1 つは ISM バンドと呼ばれる 2.4GHz 帯で、もう 1 つが 5 GHz 帯。IEEE 802.11 の規格にはこれらの帯域を使用するものが規定されていて、IEEE 802.11 b/g は 2.4GHz 帯を、IEEE 802.11 a/ac は 5GHz 帯を、そして IEEE 802.11 n は両方の帯域をサポートするようになっている。

実は 2.4GHz 帯というのはWiFi 専用の帯域ではない。bluetooth や電子レンジ等が同じ帯域を使用するため、同時に使用すると干渉がおきてスループットが極端に低下することがある。そして、スマートフォンが bluetooth をサポートしていたことで、今回の物語が始まる、、、とは言ってももう結構話はすすんでしまっているけどね。

bluetooth という規格、パソコンでも使えるものはあった(マウスとかヘッドセット)けれど、いまひとつ鳴かず飛ばずで面白いものではなかった。これが、スマートフォンに採用されるようになり、今までとは違う利用方法が見いだされてきている。

たとえば乗用車のナビゲーションシステム。スマートフォンと情報交換することで、ユーザーの嗜好に合わせた探索ができるようになったり、オーディオを使ってハンズフリーの通話をサポートするようなものもある。これらの機能を後ろから支えているのが、bluetrooth を使った通信手段。通信距離も通信速度も大きくない bluetooth ではあるけど、車の中という限られたスペースで使用するのであれば左程問題にはならない。逆に電力使用量が少ないとといメリットが見直されたのかもしれない。

 エコを気にするなら、車に乗り込む時だけスマートフォンの bluetrooth を有効にしてあげればいいのだけれど、なかなか面倒な作業で忘れてしまう。そのまま気付かずに運転していると「携帯電話を忘れていませんか?」とナビに注意されてしまう。逆に、bluetrooth を有効にしたままにすると、こんどは WiFi と干渉してしまって使いものにならなくなる。

本来、携帯電話のキャリアからすれば、ユーザーには自分のネットワークを使って貰いたいところだろうけど、スマートフォンの普及にインフラの構築が追い付かない状況なのだろう、ユーザーに WiFi 接続を促している感じもある。

au では、表題に挙げた WiFi HOME SPOT なるもの(WiFi のアクセスポイント)を無償でレンタルしてくれる。この、WiFi HOME SPOT、性能的にはエントリーレベルのものではあるけど、実は 5GHz 帯の使用が可能なモデルだったりする。試しに WiFi HOME SPOT のレンタルを申し込んで(1 週間もかからないうちに機材が送られてきた)LAN に組み込んでみたら、WiFi のスループットは上がるし、bluetrooth との干渉はなくなるしと、いいとこづくし。唯一回線速度が 100Mbps に制限されてしまうのだけれど、これ以上のスループットは求めていないので問題にはならないと思っている。

梱包を解いてから、スマートフォンの設定が完了するまでに要した時間は 1 ~ 2 分。ルーターを無効にしてアクセスポイントモードに変更した以外は、デフォルトのままで接続完了。5 GHz の帯域が使える WiFi アクセスポイント(というか、ルーターがほとんど?)は割と高価なものが多く、費用対効果を考えるとなかなか手を出しづらいところではあるけれど、無料でレンタルできるなら試してみる価値はあるんじゃないだろうか。気に入らなければ返せばいいんだし。

WiFi HOME SPOT の外観は、一辺が 7cm ほどの立方体。このまま使えるならデザイン的にも良いと思うのだけど、電源や LAN ケーブルを繋ぐ必要があるので、ちょっと減点、、、とは言ってもつながない訳にはいかないからねぇ。


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。