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

いくら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”);
?>

SANとNAS

SAN(Storage Area Network)とNAS(Network Attached Storage)は同じようなことを言っている(ストレージをネットワーク上に配置して仮想化して位置透過性を実現して利用する)ということなのだが、SANはネットワークそのもの、NASはハードウエアを示している。
SAN: http://e-words.jp/w/SAN.html
NAS: http://e-words.jp/w/NAS.html
ただ、具体的な違いは、ファイルシステム(NASはストレージ自身で持っているが、SANはサーバー側に持つので、互換性のないOSが同じ領域を読み込むと破壊が起こるがSANの方がオーバーヘッドは小さい)ストレージとの接続方法にあるようだ。
http://www.atmarkit.co.jp/fsys/keyword/007san_nas/007san_nas.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060407/234778/?ST=start4

最近はJ-SOX(日本版SOX法)対応や地震などのサービスを継続しがたい状態になった場合でも他のスタンバイサーバーで最新データにて運用を継続するなど冗長化への利用も増えているようだ。

snmpとMRTG

○CPUのLoad Averageをグラフに描画する
snmp.confでの設定は特に不要
Target[192.168.0.1_cpu]: 1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:
public@192.168.0.1 (※改行されていますが、1行です)
MaxBytes[192.168.0.1_cpu]: 300
YLegend[192.168.0.1_cpu]: Load Average
LegendI[192.168.0.1_cpu]: 1min
LegendO[192.168.0.1_cpu]: 5min
ShortLegend[192.168.0.1_cpu]: %
Unscaled[192.168.0.1_cpu]: dwmy
Title[192.168.0.1_cpu]: Load Average for www.hogehoge.com
PageTop[192.168.0.1_cpu]: <H1>Load Average for www.hogehoge.com</H1>
Options[192.168.0.1_cpu]: gauge,growright
ThreshMaxI[192.168.0.1_cpu]: 50
○httpd(inetd)のプロセス数をグラフに描画する
snmp.confに以下の行を設定する
proc httpd
proc指定は.1.3.6.1.4.1.2021.2のMIBで取得可能なので、MRTGでは
Target[192.168.0.1_httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.5.1:
public@192.168.0.1: (※改行されていますが、1行です)
MaxBytes[192.168.0.1_httpd]: 200
Title[192.168.0.1_httpd]: HTTPD Process for www.hogehoge.com
PageTop[192.168.0.1_httpd]: <H1>HTTPD Process for www.hogehoge.com</H1>
Options[192.168.0.1_httpd]: absolute,gauge,nopercent,integer
Unscaled[192.168.0.1_httpd]: dwmy
ShortLegend[192.168.0.1_httpd]: process
YLegend[192.168.0.1_httpd]: HTTPD Process
○PostgreSQLのコネクション数をグラフに描画する
まず、vi /home/postgres_process.shとして以下を記述する
—————————
#!/bin/sh
LANG=C
export LANG
POSTGRESQL=`ps -ef | grep -w postgres | grep -cv grep`
echo $POSTGRESQL
—————————
chmod oug+x /home/postgres_process.shとして実行できるようにする。
ためしに/home/postgres_process.shを実行して数値が帰ってくるか確認する。
snmp.confに以下の行を設定する
exec postgresql /home/postgres_process.sh
exec 指定は.1.3.6.1.4.1.2021.8のMIBで取得可能なので、MRTGでは
Target[192.168.0.1_postgresql]: .1.3.6.1.4.1.2021.8.1.100.1&.1.3.6.1.4.1.2021.8.1.100.1:
public@192.168.0.1: (※改行されていますが、1行です)
MaxBytes[192.168.0.1_postgresql]: 150
Title[192.168.0.1_postgresql]: PostgreSQL Process for www.hogehoge.com
PageTop[192.168.0.1_postgresql]: <H1>PostgreSQL Connection for www.hogehoge.com</H1>
Options[192.168.0.1_postgresql]: gauge,absolute,integer,unknaszero,nopercent
Unscaled[192.168.0.1_postgresql]: dwmy
ShortLegend[192.168.0.1_postgresql]: connections
YLegend[192.168.0.1_postgresql]: PostgreSQL Connection
を設定する。
ところで、デフォルトではグラフの向きが左向きになっているが、日本人の感覚では時系列は右向きであることが自然だ。そこで、全体にgrowrightを効かせる方法(オプションディテクティブ)があるので、これも使ってみると良い。
Options[^]: growright

“snmpとMRTG” の続きを読む

md5sum

md5チェックサムの使い方

生成方法
md5sum (target_file) > (md5チェックサムファイル)

検証方法
md5sum –check (md5チェックサムファイル)


OKの場合
(target_files):OK

NGの場合
・・・エラー内容・・・
md5sum: WARNING: 1 of 1 listed file could not be read