ルーティングテーブル

ルーティングテーブルの追加(192.168.1.0/29が192.168.0.3の先にある場合)
route -p add 192.168.1.0 mask 255.255.255.248 192.168.0.3
ルーティングテーブルの削除
route -p delete 192.168.1.0

WebサービスとSLA

・宅配物を紛失した時には損害賠償が上限があるものの決められている。
・購入した電化製品が1年以内に故障したら無償修理する。
このような品質保証をネットワーク業界ではSLA(Service Level Agreement:サービスレベル保証)と呼んでいるが、Webサービスを見てみると、免責条項はあるもののSLAに該当するような品質保証をしているケースはほとんど見受けられない。
Webサービスを行っている会社がSLAを締結できない理由は、
・Webサービスの多くは無償で提供されている
(今回の話題では、有償サービスを前提としているので、これは除いて考える)
・サービス提供元の会社の資本力が小さくて金銭的な補償を含めた保証ができない
・Webサービスの不具合はすぐに改善することができる(なので不完全なアプリケーションが出やすい)
・何かといえばβ版という言葉が流行している
・品質管理の認識が他業種に比べて低い
からだろうと思う。
SLAを締結することは、サービスを明確にすることになるわけなのだが、締結する会社はかなり厳しい条件になることは承知の上で締結することでそれをアピールポイント(差別化)に変えることができる。提供する価格が多少高くなろうとも、顧客の安心感を買うことができるので、結果的に顧客はおのずと集まる。
と考える。ハードウエアにおいては、稼働率の考え方が定着しているもののWebアプリケーションを含んだ全体的な稼働率という部分での定着はまだまだ薄いような気もする。
稼働率が出せなければ、1日間あたり何秒間システムが完全に稼動しなければ補償しますとか、レスポンスタイム何秒を超過したら補償します(これはネットワークという性質上難しいが・・・)といったようなことができないわけで、ここから始めることがSLA締結への取り組みの第一歩なのだろうと思う。
SLAが締結できないような会社は、おのずと仕事がなくなるといった感じの流れができてくるようであれば、Webアプリケーションもよりよい品質を保つことができるようになるのかもしれない。
とはいうものの、自分が開発を担当しているコンテンツでSLAを提供するなんて話になれば、間違いなく難しいか、会社がつぶれてしまう。
理想と現実はつねに乖離しているものなのですね。

Windowsデスクトップ

Windows XP Professional, Windows 2003 Serverにはリモートデスクトップ機能があり、他のEditionから制御できるようになる。

○設定の仕方(サーバー側)
コントロールパネルからシステムを選択して、リモートタブを選択して、リモートデスクトップに関するチェックを入れます。

○設定の仕方(クライアント側)
プログラム – アクセサリ – 通信 – リモートデスクトップ接続 を選択する。
VNC Viewerと違ってパスワードを保存することができて便利。

Windowsファイアウォールを制御する

TCP 9999番ポートを開く。(testはラベル)
netsh firewall set portopening TCP 9999 test
これができてしまうということは、悪意あるプログラムはバックドアを簡単に作ることができそう。

PHPでグラフ描画

PHPでグラフを描画するライブラリには、JpGraphという有名なライブラリがあるんだけれども、商用利用では有償なのでその他のライブラリについて。
PHPlot
snort+acidにも利用されているらしい。
http://tec-tech.org/phplot5/doc/index-j.php
最終リリースが2004年10月なので、もう枯れた感が否めないが、残念ながら日本語が利用できないみたいだ。
GraPHPite
会社の人に紹介してもらったライブラリ。
PEARに移行済みで、Image_Graphとしてリリース(Ver.0.72 – α版)されている。こちらにサンプルとともにPHPコードがあるので、容易にグラフを作成することが出来る。

Windowsで優先度を変更する方法

Windowsで優先度を変更する場合には、Ctrl+Alt+Deleteプロセス一覧を表示させて、該当のプロセスを右クリックして、優先度を変更できる。(Linuxのreniceコマンドに相当)
起動時にも優先度を指定する(Linuxのniceコマンドに相当)ことができる。
cmd /c start /[low|belownormal|normal|abovenormal|high|realtime] (コマンド名)
で指定すればよい。

スロースタートアルゴリズム

いくら100Mbpsでイーサーネット接続できていたとしても、途中経路に低速な回線や処理能力の低いルータがあれば、100Mbpsで通信することはできず、輻輳(ふくそう:通信上限に達する)が発生する。
これを防ぐために、徐々に通信量を増やして最適になるように調整するアルゴリズムがスロースタートアルゴリズムである。

“スロースタートアルゴリズム” の続きを読む

フィッシングとファーミング

フィッシングとファーミングの違いは以下の通り
フィッシング
何らかの方法(URL偽装)などを利用して正規のサイトとそっくりの偽サイトに誘導し、実際にログインさせることでログイン情報などを取得する。URLを注意深くチェックすればフィッシングサイトに引っかかることは少ないが、Basic認証対応のURLの場合、ライトユーザーにはチェックが難しい。このURLでアクセスできなくなっているブラウザも存在する。
Basic認証対応のURLパターン:http://(ユーザー名):(パスワード)@(ドメイン名)/
http://www.yahoo.co:jp@hogehoge.com/
というサイトがYahooのサイトと認識されても不思議はない??(でも実際のところ無理がありそうな。。。)

ファーミング
DNSの解決の仕組みを悪用して、ホスト名の解決を正規のIPアドレスではなく、悪意あるホストのIPアドレスを返答させる。これを実現するには、DNSサーバーのキャッシュ情報を書き換える(DNSポイズニング)か、hostsファイルをウィルスなどによって書き換える。
この方法が成功すれば、ユーザーが良く訪れる信用あるURLが実は詐称サイトということになる。
この検出はかなり難しい。正しいhostsファイルのMD5を保存しておいて、それが変わった時点でhostsファイルを信頼しないしかない。あとは信頼あるDNSサーバーを登録するとか。。。もはやDNSサーバーが信頼できないなんて、ありえない事態だ。

Dell Remote Access Controller

DELL製品のリモート管理ソリューションです。これを利用することで、リモートから電源のON/OFFをすることができ、高負荷によってリセットできないといった問題から開放される便利なツール。しかし、ラックマウントサーバー Power Edge850(1U)においてRAIDカードをさしてしまうと利用できない(この問題はPower Edge860より解消されている)。DRACという略称が良く使われているらしい。
http://www1.jp.dell.com/content/learnmore/learnmore.aspx?c=jp&l=jp&s=pad&~id=pedge_remote&~line=enterprise&~mode=popup&~series=tower_servers

二重起動防止

Windowsで二重起動を防止させるためには、Mutexインスタンスを生成した際にエラーが出るかどうかで判断できる。
Linuxではその方法がよく分からないので、プロセス管理から見た形で実装をした例がの通り。
<?php
//プロセスコントロールクラス

define(‘PROC_ONLY’, 1); //プログラムベースで比較
define(‘CONTAIN_ARG’, 2); //引数が完全一致するかで比較
class ProcControl{
 //二重起動を防止するためのプログラム
 function isCurProcRuning($check_mode = PROC_ONLY){
  global $argv;
  if ($check_mode == PROC_ONLY){
   $target = $argv[0];
  } else {
   $target = ‘”‘ . implode(‘ ‘, $argv) . ‘”‘;
  }
  $handle = popen(“ps -ef | grep -w $target | grep -cv grep”, ‘r’);
  $read = fread($handle, 2096);
  pclose($handle);
  return $read > 1;
 }
}

//プロセスの2重起動を防止を判定
if (ProcControl::isCurProcRuning(CONTAIN_ARG)) die(“process already exist\n”);
?>