オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

回線遅延シミュレータ:EthdelayProの出荷ラッシュ?

»

私のブログで登場頻度が高い、回線遅延シミュレータ:EthdelayProですが、年度末駆け込み需要なのか、あるいはちょうど使いたいタイミングなのか、お問い合わせが続いています。EthdelayProは不正接続検知/排除システム:IntraGuardian2に比べると売れる数が少ないので、出荷作業は自分たちでやっています(というより、大抵私が自分でやってます)。

Edp4
在庫も少なくなってきましたが、とりあえず4台出荷準備です。4台集まるとネットワークポートの数が24個もあり、ネットワーク好きとしてはワクワクしてしまいます(?)。

Edp42
順番に動作確認中です。EthdelayProは自分で自分を測定することができますので、動作確認も実にスムーズです。

Edp43
当社のアプライアンスとしては高級なハードウェアを使っているので、液晶表示もあり、「NCAD Ethdelay」と管理用IPアドレスが表示されています。

ところで、管理用IPアドレスは出荷時設定で「192.168.100.1」になっていますが、これは全て共通です。そうすると順番に動作確認をしていて意外と困るのが、ブラウザでアクセスするためのPCです。どれもIPアドレスが同じだと、ARPテーブルに1台目のMACアドレスが記憶されてしまい、2台目を確認するときになかなかつながらないのです。特に私が愛用しているMacOSは、「arp -d」でARPテーブルの削除ができないので非常に困ります。

そんなときは、自分でARPリクエストを投げるプログラムを作ってしまえば解決です!とはいえ、ARPリクエストを投げるためには、リンクレイヤーのネットワークプログラミングが必要ですので、当社メンバーたちのようなネットワークプログラミングマニアでない人たちには、少々作るのは面倒かも知れませんので、とりあえずここに置いてみます。
tarpをダウンロード
SnowLeopardでコンパイルしたので、他のバージョンでは動くかどうか確認してません。ダウンロードしたらchmod +x tarpという感じに実行権限を与えてください。
使い方は簡単で、
# ./tarp デバイス名 ターゲットのIPアドレス
という感じです。
# ./tarp en0 192.168.100.1
こんな感じです。そうすると指定したIPアドレスをリクエストするARPパケットを送信し、応答が自分あてに戻ってくると、ARPテーブルが更新される、という仕組みです。

リンクレイヤーのネットワークプログラミングはOSによって異なるため、少々面倒です。MacOSはBSD系のプログラミングになります。BPFを使う感じです。LinuxだとSOCK_RAWを使い、SolarisだとDLPIを使うことになります。興味ある方は是非自作してみてください。なお、ARPパケットを自由に扱えるようになると、IntraGuardian2を自作することもできるかも知れません。チャレンジすると楽しめると思います。

ということで、販売好調のEthdelayProと、ARPに関する話題でした。

Comment(0)