Skip to content

Blog

VMWareUser.exe プロセスを終了して、Windows ゲストの高負荷状態を回避する

普段は Mac 上で VMware Fusion3 を使っているのですが、ゲスト OS が Windows の場合だけ、なぜか高負荷になる場合があります。VMware Fusion なのかは分かりませんが、他の方も同じような事象に遭遇しているようです。

VMware の Knowledge Base を検索しても、それらしい事象を見つけられないのですが、これはゲスト の Windows OS 上で "VMwareUser.exe" プロセスを終了することで回避出来るようです。ただし、VMwareUser.exe プロセスはホスト 〜 ゲスト間でのドラッグ&ドロップや、クリップボード共有の機能を提供しているので、このプロセスを終了することでこれらの機能は利用出来なくなります。

Wlinee で擬似的にネットワークへ遅延やロスを発生させる

2004 年の書籍ですが、いまどきのソケットプログラミング―遊んで学ぶ、TCP/IPネットワークの奥義 をお書きになっている 波多さん 作の Wlinee を使うと、ネットワーク上で遅延やロスを発生させたり、帯域を一定の状態にポリシング出来ます。Wlinee を使うと、遅延やロスの多い、品質の悪い回線を Windows で手軽にエミュレート出来ますので、悪条件化でのネットワークテストを実施することが出来ます。Wlinee は下図のように、遅延やロスを挿入したい位置へ Wlinee PC を物理的に割り入れる(挟む)構成にして利用しますので、必然的にふたつの NIC がインストールされた Windows PC が必要となります。

file

今回は Windows XP SP3(32bit)環境に Wlinee をインストールしてみました。尚、波多さんは Wlinee 以前に Linux で動作する Linee もお書きになっています。

事前準備

Wlinee を動作させるには、以下のふたつが事前に必要となりますので、予めインストールしておきます。.NET Framework 3.5 であれば 2.0 を含んでいます(最新の 4.0 は下位バージョンを含んでいません)。

Wlinee のインストール

Wlinee は Sourceforge のプロジェクトページ からインストーラをダウンロード出来ます。インストーラがあるので、インストール自体は簡単です。.NET Framework 2.0 と WinPcap がインストールされていれば、起動するはずです。起動画面は以下の通りです。

file

トラフィック・ジェネレーター「D-ITG」を使う

フリーのトラフィック・ジェネレータは幾つかありますが、Linux でも Windows でも、どちらのプラットフォームでも使えるものに D-ITG があります。D-ITG はコマンドラインのツールですが、Java で書かれた GUI のラッパーも公開されています。

List と LinkedList の性能差

数年前から Java やその他の言語を書く機会がめっきり減り、(自分で選択出来るのであれば)C# で書くようになりました。「Eclipse よりも、Visual Studio が好きだから」という理由が大きいのですが・・・川俣晶さんのプログラミング関連書籍は興味深いものが多く、しばしば拝見させて頂いていますが、C# を書く機会が増えたので以下の書籍は購入させて頂きました。ちょうど上から順に "C# 2.0", "3.0", "4.0" がテーマとして取り上げられています。

そもそも、System.Collections.Generic.List も System.Collections.Generic.LinkedList も一次元リストを扱うものですが、List はインデックスを指定することで任意の位置にアクセス出来るが、LinkedList はインデックス指定ではリストにアクセス出来ず、先頭か、もしくは末尾から順に目的のデータ位置まで辿っていかなければならない、という機能差があります。「究極のC#プログラミング」では System.Collections.Generic.List と System.Collections.Generic.LinkedList の性能差について言及してあり、面白そうだったので検証してみました。

IPSecuritas で NetScreen / SSG / ISG と XAuth を用いた IPSec VPN 通信を行う

Juniper の KB(Knowledge Base)にも公式に記載されている通り、Juniper の VPN クライアントである "NetScreen-Remote" は Windows 7 をサポートしません。

私は普段、Mac を中心に使っているのですが、業務上、NetScreen / SSG / ISG(以下、SSG で統一)に IPSec VPN する際は VMware Fusion 内の Windows XP から NetScreen-Remote をして IPSec VPN する、という一手間をかけていました。この手間を解消すべく、Mac OS X 用の VPN クライアントを探したことがあり、以前に equinux 社の VPN Tracker というソフトウェアの 30 日間評価版を試したことがありました。ソフトウェア自体はよく出来ており、不満は無かったのですが、お値段が高めだったので購入は避け、結局、VMware Fusion 内の Windows XP を使い続けていました。

しかし、「ソフトウェアのサポート対象から Windows XP が除外される」など、Windows XP の利用が厳しくなってきた為、代替手段を探したところ、Juniper の KB で KB5546 - Is there a Macintosh Virtual Private Network (VPN) client available? という記事を見つけました。以下はその記事からの抜粋です。

Currently, there are a few VPN clients that runs on the Macintosh platform.

  • MacPGP from PGP Corporation. That product is PGP Corporate Desktop, and is only available for Mac OS 9. For more details on purchasing, please go to http://www.pgp.com.
  • VPN Tracker from Equinux. This is a front end to the IPSec engine that is built into the BSD kernel in Mac OS 10. The minimum requirement here is Mac OS 10.2. You can find further details on this product at http://www.equinux.com/us/products/vpntracker/ You can also find a VPN Interop document written by VPN Tracker at http://www.equinux.com/download/HowTo_NetScreen.pdf
  • VaporSec (http://http://www.macshareware.com/review/vaporsec) is similar to VPN Tracker, except it is Open Source, which means you can download it free of charge. You can also find a VPN Interop document on this. Please click VPN Between NetScreen to VaporSec
  • IPSecuritas from Lobotomo Software. This is also downloadable free of charge. Requires Mac OS 10.3 or higher.

3 項目の VaporSec は公式ページが "404 Not Found" になっていました。結果的に一番、下にある「IPSecuritas」を試してみることにしました(無料のようですし)。

Apache や Wireshark で GeoIP を利用する

"GeoIP" と一般的に呼ばれている機能を使うと、IP アドレスを地理情報に変換することが出来ます。具体的には Apache で「特定の国からのアクセスは拒否する」といった制御を実施したり、Wireshark でキャプチャした IP アドレスが「どこの国の IP アドレスなのか?」解析したり、といったことが出来ます。GeoIP 用のデータベースは有料のものが多いのですが、MaxMind では無料で利用可能なバージョンが配布されています(有料版もあります)。 ただし、GeoIP で判定される地理情報は 100%、正しいとは限らないので注意が必要です。