2009年10月14日水曜日

サーバー仮想化 其之弐

とりあえず物理サーバーのスペック

・DELL PowerEdge R410
 CPU:Xeon5550 ×1 (8コアなので1CPUでおなかいっぱい)
 メモリ:4G (足りない、8Gに増設予定)
 HDD:SATA250G×2(Raid0仕様)
 NIC:BroadcomGigaE×2
 OS:WindowsServer2008 64bit

となっております。

一見HDDが足りないように見えますが、仮想HDDはIP-SANに作っているので問題なし。
それよりもメモリがまったく足りてない。
CPUはXeon3300やP4を移すので1サーバー1コア、負荷のかかるサーバーでも2コアあれば十分です。
とにかくXeon5550速すぎ!

サーバー仮想化 其之壱

しばらく間が空きました。
この間なにをしていたかというと「サーバーの仮想化」に取り組んでおりました。

仮想化前、社内には7台のサーバーがあり、しかも3台はデスクトップタイプ
しかもデスクトップ3台のうち2台はXPが走っているデスクトップというわけのわからん状態で、UPSも2台あるけども容量がいっぱいという極限状況。
さらに一番古いNECのサーバーにいたってはシングルコアのP4という・・・もうカオス、まさにカオス状態でした。

最初はまったく仮想化などは考えていなかったわけですが、ひょんなことからXeon5500のサーバーとWindowsServer2008 64bitを入手し、さらにHyper-VというServer2008に標準搭載されている仮想化アプリの存在を知ることとなり、しかも最近追加したサーバー3台ともServer2008を2003R2にダウンインストールしており、Server2008の仮想化シリアルが三台もあるという、まさしく「神の御信託」とも言えるタイミングのよさで仮想化環境が整っておりました。

そこで、まずはデスクトップで動いていたグループウェアと、Xeon3300+1GB RAMで「遅い」と評判のファイルサーバーを仮想化することにした。

2009年9月14日月曜日

GPOでセカンダリのDNSを設定する

と・・・モバイルがあらゆる場所でつながらなくなりました orz
モバイルとはいえADのメンバーですから当然GPOの影響を受けます。

ってことは、DNSが社内のDNSサーバーのアドレスに固定されてしまいます。
こうなると、ホテルなどあらゆるところでLANが使えなくなります。

まぁ、DNSですからIPアドレス直打ちなら大丈夫なはず。
うん、大丈夫なところもあるんですが、だめなところの方が多いようです。

さらにEmobileもつながらなくなるようです。
docomoは大丈夫なのに、Emobileだけだめ。

社内でのdocomoの圧勝はしばらく続きそうです。

2009年9月10日木曜日

GPOでセカンダリのDNSを設定する方法2

先日「GPOでセカンダリのDNSを設定する方法」で紹介したGPOによるDNSサーバーの設定。
うまくいかないと書いたのですが・・・なんと動いてました。

このGPOで設定したDNSはローカル設定のDNS、すなわちTCP/IPのプロパティーやDHCPで設定されたDNSより優先されるんですね。
しかもそれはipconfigを見てもわからないという困ったちゃんw

じゃぁなんで発覚したかというと、GPOを適応したMobilePcでdocomoのFOMAカードを使ってインターネットへつないでもまったくブラウズできない、でもSSL-VPNで社内LANに参加すればブラウズ可能という怪現象が発生。
ブラウズできないPCでnslookupを掛けると、docomoからDHCPで割り当てられているDNSでは無く社内のDNSを見に行っていることが判明。

そこで試しに社内のPCでTCP/IPプロパティーのDNSにでたらめな数値を入れてみると・・・おぉ!普通にブラウズできるwww

ん~GPO恐るべし。

ちなみにGPOでセカンダリDNSを設定する場合は、プライマリDNSのアドレスの後にスペースを入れてセカンダリのアドレスを入れるだけでOKです。

追記:モバイル環境下で不具合が出る事があります。
    詳しくは こちらの記事 を。

2009年9月3日木曜日

GPOでセカンダリのDNSを設定する方法

DNSサーバーを二重化したわけだが、各端末のTCP/IP設定にセカンダリのDNSを設定しなければ意味が無い。
しかし、全ての事務所や工場の端末を一台一台設定して回るわけにもいかない(たとえリモートであっても)ので、GPOでDNSの設定を変えようと思ったんだが・・・

GPOエディターでみると
コンピューターの構成→管理用テンプレート→ネットワーク→DNSクライアント→DNSサーバー
に設定項目がある
とりあえずプライマリとセカンダリを設定してみるもクライアント側には適応されない。
ICP/IPのプロパティーでもipconfigでも確認できなかった。

そこでnetshコマンドを使ってDNSを設定するbatをつくり、GPOで配信することにした。
とりあえず週末に仕込んで月曜の朝、起動時に適応させる事にする。

あとは運用管理ソフトでdnsの設定を見て、効果を確認するだけ。

おまけ[batの中身]
netsh interface ip delete dns name="ローカル エリア接続" all
netsh interface ip set dns name="ローカル エリア接続" source=static addr=192.168.31.3 register=PRIMARY
netsh interface ip add dns name="ローカル エリア接続" addr=192.168.31.2 index=1

まず今あるDNSの設定を一行目で消し
二行目で最終セカンダリになるDNSのアドレスをプライマリとして設定
三行目で本当のプライマリDNSのアドレスを押し込んで二行目で設定したアドレスをセカンダリに蹴落として終了。

2009年8月22日土曜日

VPN、ルータ越えでADのGPOを適応する方法

VPN、またはセグメントを分けたLANでADを構築している場合、VPNやルーターを越えた先にあるクライアントにグループポリシーが届かないという現象がある。

クライアント側のアプリケーションLogに
---------------------------------------------------------------
イベントID:1054
コンピュータネットワークのためのドメインコントローラ名を取得できません。
(指定されたドメインがないか、またはアクセスできません。)
グループポリシーの処理は中止されました。
---------------------------------------------------------------
というログがLogIn時からだいたい5分毎に記録される。

原因はWindowsのデフォルトでのICPMのバッファがでかすぎる事。

クライアントがDCからGPOを取得する場合次のようなステップを踏む。
1.GPOを適応する際には、クライアントはまず0バイトでpingをDCに飛ばす。
2.DCがReplyする
3.ドメインコントローラに対して、2048バイトpingを打つ(MFフラグ付)
ここでDCからReplyがあればGPOを複製して適応となるんだけど、この2048バイトのpingが曲者。

WindowsのデフォルトではICMPは2048という最大長で発信される。
これはTCP/IPのMAX値なので、ベタに同一セグメント内にDCがある場合は、pingはDCは届きDCからReplyが来てなんの問題も無くGPOが適応させる。

しかしVPN等でルーターを超える場合、ほとんどのルーターは2048バイトというICMPを通過させれない。
ましてやインターネットを介してIP-sec等でVPNを構築している場合、インターネットの最大バッファは1500、VPNなら暗号化を掛けているので1300~1400程度がMAXのはず。
そりゃ2048なんてでかいバッファのICMPが通るわけがない。
で、DCからのReplyが無いって事で上記エラーを記録することになる。

解決策はレジストリでICMPの最大値を区切ってやること。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
に新規DWORDを作り名前を「PingBufferSize」にする。
値を10進で500以上で自分のネットワーク環境に合わせた値(ルーターの許可最大値なりVPNの最大値)を入れるだけ。
うちは1024で統一した。

テストをする場合はVPNまたはルーター越しの端末にレジストリーを設定し
gpupdateコマンドを実行する。
あとはポリシーの確認をするだけ。

もしGPOが適応されないならPingBufferSizeの値を調整してリトライ
この値はあくまでICMPの最大値なので数値の大小でネットワークの速度に影響が無いので、最小値500を最初から設定しておくもの有りかもしれない。

テストがうまくいったら設定変更をbatファイルにして配布して終了。
ただし配布をGPOで行っても意味が無いので注意


おまけ[batの中身]
(
@echo Windows Registry Editor Version 5.00
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
@echo "PingBufferSize"=dword:00000400

) > startup.reg

@regedit /s .\startup.reg
@del startup.reg

2009年8月19日水曜日

ファイルを右クリックでフォルダ移動する方法

XPの場合

レジストリ
HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\Move To
{C2FBB631-2971-11D1-A18C-00C04FD75D13}

とする。
Move To はデフォルトにはないのでキーの作成で新規作成する



【追記】

Wim7の場合

レジストリ
HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\Move To

内に 『新規文字列値』 を追加

・名前 : MoveTo
・値   : {C2FBB631-2971-11D1-A18C-00C04FD75D13}

とする。