Skip to content

2010/11

トラフィック・ジェネレーター「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%、正しいとは限らないので注意が必要です。

.NET Assembly を mono と関連付ける

Linux 上でも mono を使うと .NET Framework を動作させることが出来ます。Linux 環境で mono をインストールする方法は 以前の記事 に書きましたが、このままでは .NET のプログラム(.NET Assenbly)を実行する都度、以下のように mono を実行する必要があります。

1
2
$ mono hello.exe
Hello, World!

binfmt_misc という仕組みを使うと、毎回、"mono" としてしなくても、あたかも ELF と同等に .NET Assembly を実行出来るようになります。余談ですが、binfmt_misc の公式ページ は 404 not found になっているようです。

inotify-tools を使ってファイルシステムへのアクセスをモニタする

かつて Windows では FileMon というユーティリティを使うことでファイルシステムへのアクセス(アクティビティ)をモニタすることが出来ました。しかし、2006 年以降、FileMon は Process Monitor というツールに統合され、ファイルシステム / プロセス / レジストリのアクティビティを横断的にモニタすることができるようになりました。

Linux でも inotify-tools を使うことでファイルシステムのアクティビティをモニタすることができます。今回は inotify-tools を CentOS 5.5 x86_64 へインストールしてみます。

C# で引数に指定されたオプションを取得するには

幾つかのプログラミング言語では引数に指定されたオプションを取得する為に getopt ライブラリが用意されており、代表的なところでは GNU GetOptPython の getopt があるかと思います。

.NET Framework 標準ライブラリ中には getopt と同等のライブラリは無いようですが、幾つかライブラリが公開されているようです。

ここでは一番下の "C# Getopt class" を試してみます。

macOS で新環境へ Mail のデータを移行するには

Mail のデータを移行するには旧 Mac OS X 環境から、移行先である新 Mac OS X 環境へ以下をコピーします。

  • "~/Library/Mail" ディレクトリ
  • "~/Library/Preferences/com.apple.mail.plist" ファイル