IE9ピン留め
YAMAHA RTX1100で動的IPマスカレード+静的NAT+IPフィルタをしてみた
(Linux)CentOSでちょっとトリッキーなNATルータを構築してみたに似たようなネットワークをRTXルータを使って構築することにしました。
上記の記事の時との違いは、ルーターが静的NATだけでなく、IPマスカレード(NAPT)+DHCPの機能を提供します。
また、インターネット側への通信ですが、ネットワークBからはping,http,https,dnsのみ許可すると共に、ネットワークA側への通信(DNS以外)は許可しない設定とします。


静的NAT+IPマスカレードの設定
まずは静的NAT+IPマスカレードの設定ですが、以下のようにしました。

ip routing on
ip route default gateway 192.168.0.2
ip lan1 address 192.168.1.1/24
ip lan3 address 192.168.0.1/24
ip lan3 nat descriptor 1
↓静的NATとIPマスカレード変換
nat descriptor type 1 masquerade
↓LAN3のIPを指定(指定したIPがIPマスカレードとして使われる)
nat descriptor address outer 1 primary (もしくは192.168.0.1)
↓NAT、NAPT対象となるアドレス。autoにすると、そのサブネット内すべて
nat descriptor address inner 1 auto (もしくは 192.168.0.1-192.168.0.254)
↓静的NATエントリ(192.168.0.120=192.168.1.10~192.168.0.123=192.168.1.13となる)
nat descriptor static 1 1 192.168.0.120=192.168.1.10 4


ポイントとしては、NATディスクリプタのtypeは masquerade とします。(動的静的NATだけの時はnat ,動的静的NAT+NAPTの時は、nat-masqueradeを指定)
そして、NATディスクリプタの外側のIPを外側のLANインターフェイスのIPとします。
後は静的NATを設定します。ここで設定したIP以外のホストはNAPTとして 192.168.0.1 のIPで外側にアクセスに行くわけですね。

なお、静的NATをさらに追加したい時は以下のように outer にIPアドレス追加、NATエントリに定義追加をします。

nat descriptor static 1 新たなNATテーブル番号 外側IP=内側IP 1


NATテーブルを確認するには以下のコマンドが使えます。IPマスカレードの変換テーブルも見れます。

show nat descriptor address
参照NATディスクリプタ : 1, 適用インタフェース : LAN3(1)
外側アドレス(Outer) 内側アドレス(Inner) TTL(秒)
192.168.0.120 192.168.1.10 static
192.168.0.121 192.168.1.11 static
192.168.0.122 192.168.1.12 static
192.168.0.123 192.168.1.13 static
Masqueradeテーブル
外側アドレス: 192.168.0.150 ポート範囲=60000-64095 5個使用中
プロトコル 内側アドレス 宛先 マスカレード TTL(秒)
UDP 192.168.1.15.40815 74.125.31.104.41836 60039 899
UDP 192.168.1.15.40815 74.125.31.104.40899 60039 678
UDP 192.168.1.15.40815 74.125.31.104.41732 60039 678
TCP 192.168.1.23.38581 74.125.31.104.7009 60038 726
UDP 192.168.1.23.52451 74.125.31.104.41829 60030 665



ハマッたのは nat descriptor address outer の設定でした。
当初以下のようにしてました。

nat descriptor address outer 1 192.168.0.150 192.168.0.120-192.168.0.123
nat descriptor address inner 1 auto
↓静的NATエントリ(192.168.0.120=192.168.1.10~192.168.0.123=192.168.1.13となる)
nat descriptor static 1 1 192.168.0.120=192.168.1.10 4


outerに静的NATの外側IPを列挙してたのです。
outerにNATの外側IPを列挙するのは、nat descriptor type に nat を指定した時だけのようです。
IPマスカレードを使うときは、LANインターフェイス側のIP(primary)を指定する必要があるようです。


IPマスカレード+静的NATの設定はこれでOKなんですが、IPマスカレード設定後、外側(上記図のネットワークA)から、RTXにtelnetでの操作ができなくなりました。
LAN3のIPアドレスにpingを打っても返りません。

仕様なのかどうかわかりませんが、LAN3のIPアドレスを静的NATでLAN1のIPと結びつけたら、pingやtelnetができるようになりました。
こんな感じです。

nat descriptor static 1 1 192.168.0.120=192.168.1.10 4
↓静的NATエントリ2(外側からTELNETするため)
nat descriptor static 1 2 192.168.0.119=192.168.1.1 1


なおIPマスカレードを使わず、静的NATだけ使う場合はouter、innerのIPはLANインターフェイスとは違うIPを指定します。(outerはNATの外側IPの一つ、innerはNATの内側IPの一つを指定)
以下のような感じです。

ip lan1 address 192.168.1.1/24
ip lan3 address 192.168.0.1/24
ip lan3 nat descriptor 1
nat descriptor type 1 nat
nat descriptor address outer 1 192.168.0.100
nat descriptor address inner 1 192.168.1.64
nat descriptor static 1 1 192.168.0.100=192.168.1.64 3

これで以下のような静的NATが定義されます。

192.168.0.100=192.168.1.64
192.168.0.101=192.168.1.65
192.168.0.102=192.168.1.66



DHCPの設定
次に、DHCPの設定です。

これは簡単で以下のようにするとOKでした。

↓DHCPサーバとして動作させる(relayを指定するとDHCPリレーエージェントとして動作)
dhcp service server
↓払出すIPスコープ定義 48時間リースする
dhcp scope 1 192.168.1.15-192.168.1.50/24 gateway 192.168.1.1 expire 48:00

DNSも配信するように以下の設定をします。

↓DNSリカーシブサーバで動作(DNSサーバとクライアントとの間に入り、DNSパケット中継。DHCPがONなら、DHCPクライアントにDNSサーバのIPを配信)
dns service recursive
↓DNSサーバの指定
dns server 192.168.0.11 192.168.0.12

DHCPで上記DNSの設定を取得すると、必ず、ルータの内側IPもDNSサーバとして設定されてしまいます。
まぁちゃんと動くからいいんですが。。


IPフィルタ
今回一番手間取ったのは、このフィルタの設定でした。

ネットワークBからのアクセスをインターネットだけにかつping,dns,http,httpsだけに制限するための設定をフィルタを使って行います。

RTXでは各インターフェイス(LAN1,LAN2,LAN3)毎にin,out方向にフィルタを定義できるようです。

各インターフェイスに設定できるので、今回の例の場合、LAN1,LAN3のどちらに設定すればいいのかという問題がでてきます。
今回は、内側からの通信を規制したいわけなので、内側になるインターフェイス、つまりLAN1に設定したほうがよいようです。
逆に通常のブロードバンドルーター的な使い方をして、LAN1が内側、LAN2がインターネット側という構成であれば、LAN2のインターフェイスに設定すればよいでしょう。

さて、どのインターフェイスに設定するか決まれば、次のはどの方向に設定するかですが、この in,outにハマりました。以下のような意味になるようです。

in:LAN側からインターフェイスに入ってくる通信
out:インターフェイスからLAN側に出ていく通信



RTXには、フィルタの種類として静的フィルタと動的フィルタがあります。
静的フィルタは文字通りどの方向のどの通信を許可/拒否するかを設定します。
動的フィルタですが、クライアントからサーバへの要求パケットを検出した時点で、その通信で使われるパケットを通すための双方向フィルタが自動的に生成されます。
つまり、RTXの動的フィルタは、戻りパケットの通過を許す手間を省くためのものみたいなかんじですね。(静的フィルタだと行き返り定義しないといけないけど、動的フィルタは行きだけ定義するだけで、返りを自動的に定義してくれるということ。また、通信時以外はポートがクローズされていることになる)
そして、動的フィルタは基本的に通信を許可するときに使用します。

しかし、最初のパケットは静的フィルタが優先されるため、静的フィルタで行きが定義されてないと、動的フィルタが評価されないっぽいです。

このあたりは、ヤマハ:ファイアウォール機能に詳しく書いています。
引用すると、"動的なフィルタは、静的なフィルタよりも優先して動作します。すなわち、 特定のコネクションに対応するドアが開いた後は、 そのコネクションを静的なフィルタで制御することはできません。逆にいえば、 コネクションの最初のパケットだけは、静的なフィルタで制御できます。 詳細は、2.3.3.の絵を参照してください。...繰り返しになりますが、トリガーのコネクションの最初のパケットは、 静的フィルタで通す必要があります。"と書いてます。
最初動的フィルタだけ設定して、この記述を見逃してたのでハマってしまいました。

さて、具体的なフィルタの書き方は以下のようになります。

ip filter 任意のフィルタ番号 pass(許可)/reject(拒否) 送信元IP 送信先IP プロトコル 送信元ポート 送信先ポート


======静的フィルタの設定=======
↓全アクセスを許可する設定
ip filter 1000 pass * * * * *
↓DNSの問合せは通す設定
ip filter 1001 pass * 192.168.0.11-192.168.0.12 tcp,udp * domain
↓HTTPを通す設定
ip filter 1002 pass * * tcp * www
↓Pingを通す設定
ip filter 1003 pass * * icmp
ip filter 1004 pass * 192.168.0.1 icmp
↓HTTPS通す設定
ip filter 1010 pass * * tcp * https
↓DHCPでクライアントからDHCPサーバ(今回はRTX)を通す設定
ip filter 1011 pass * * udp 68 67
↓DHCPでDHCPサーバ(今回はRTX)からクライアントを通す設定
ip filter 1012 pass * * udp 67 68
↓ローカルアドレスへのアクセスを拒否する設定
ip filter 5000 reject * 192.168.0.0-192.168.254.254 * * *
↓全アクセスを拒否する設定
ip filter 10000 reject * * * * *

======動的フィルタの設定=======
↓DNS許可
ip filter dynamic 100 * * domain
↓HTTP許可
ip filter dynamic 101 * * www
↓ICMP許可
ip filter dynamic 103 * * filter 1003
↓HTTPS許可
ip filter dynamic 106 * * filter 1010

=====フィルタの適用========
ip lan1 secure filter in 1001 1004 5000 1003 1002 1011 10000 dynamic 100 101 103 106
ip lan1 secure filter out 1012 10000

ip インターフェイス secure filter in/out で適用するフィルタ番号を列挙します。
この時の、左から順に適用されて行くようです。(つまり左側が優先度高い)
上記のin側の例だと、最初にDNSの通信かどうか判断し、次に、ルータへのICMPか判断し、ローカルアドレスへのアクセスかどうか、という順番で評価していきます。(基本的に、外側への全通信を拒否するポリシーの上で、許可するポリシーを設定するような仕様にしています)
静的フィルタの条件に合致すれば、次は、動的フィルタの条件に合致するか判断し、合致すれば自動的に双方向のフィルタが作られ、以降のパケットは動的フィルタが使われます。


動的フィルタの確認は以下コマンドでできます。

how ip connection
LAN1[in]
ID FILTER T APPS P INITIATOR D RESPONDER S
519 101 www T 192.168.0.10:4220 > 74.125.235.81:80
521 101 www T 192.168.0.10:4222 > 173.194.38.127:80
522 101 www T 192.168.0.10:4224 > 74.125.235.81:80
524 101 www T 192.168.0.10:4226 > 173.194.38.69:80


フィルタ解除は以下のようにできます。

no ip lan1 secure filter in
no ip lan1 secure filter out

動的フィルタが上手くいかないなら、静的フィルタで設定するというスタンスがいいと思います。


Linuxのiptablesとはまた違った感覚のフィルタ設定でした。
ただルータなのでiptables程は細かいフィルタはできないようです。


RTXの設定は、とにかくヤマハのドキュメントを読みこなすことが必要だと感じました。


追記:
上記の設定例はhttp,https,dhcp,icmpを通す設定でしたが、これにメールの通信も許可したいとの依頼がありました。
ということで、以下のフィルタを追加しました。

======静的フィルタの設定=======
↓smpt,smtp(サブミッション),smtps,imap,imaps,pop3,pop3sの通信を許可する
ip filter 1013 pass * * tcp * smtp,587,imap2,pop3,995,993,465

======動的フィルタの設定=======
↓smpt,smtp(サブミッション),smtps,imap,imaps,pop3,pop3sの通信を許可する
ip filter dynamic 107 * * filter 1013

=====フィルタの適用========
ip lan1 secure filter in 1001 1004 5000 1003 1002 1013 1011 10000 dynamic 100 101 103 106 107



参考:

YAMHAルーターのDHCPサーバー機能と動的フィルタ
RTXシリーズの設定メモ
YAMAHA RTシリーズのIPパケット・フィルタ
ヤマハルータの基本的なフィルタ設定
イーサアクセスVPNルーターRTX1500~開発コンセプト~
YAMAHA RTX1100に関するメモ
Yamaha:NATディスクリプタ機能 概要
Yamaha:静的NATや静的IPマスカレードなどを用いたサービス/サーバ公開方法 かなり参考になりました。
Yamaha:11.静的NATや静的IPマスカレードなどを用いたサービス/サーバ公開方法
Yamaha:ネットワークごと一括設定(静的NAT) 静的NATの設定例です。
Yamaha:NATディスクリプタの間違え易い設定例 LAN間の静的NATを1組試しましょ。
RTシリーズの設定事例集

# by Jehoshaphat | 2012-01-14 18:14 | ネットワーク | Trackback | Comments(0)
YAMAHA RTX1100の設定をしてみた
今回下記のように3つのネットワークをルーティングさせる必要がでてきました。
更に、LAN1側のあるサーバに対して、LANからは192系のアドレスでアクセスさせるようにするため、静的NATを定義します。


LAN1 10.10.0.0/24
LAN2 192.168.0.0/24
LAN3 10.0.0.0/24


そこで、ヤマハのRTX1100を使ってルーティングしてみました。
RTXシリーズのルータはリモートアクセスやVPN等多彩な機能を持っている名機みたいです。
実は3流PGは業務系ルータの設定変更するのははじめてだったりします。


設定はTELNETとシリアルコンソールからできます。
しかし、TELNETはIP振ってないことにはアクセス出来ません。

ということで、シリアルポートをもつPCとRTX1100をRS-232 9pinケーブルで接続します。(RS232はクロスケーブルである必要があります)

ターミナルソフトは何でもいいのですが、今回は使い慣れてる PuTTY を使いました。(PuTTYでもシリアル接続は可能です)

パスワードは初期値は空なのでそのままEnterします。


RTX1100 Rev.8.03.08 (Tue Jun 14 13:43:24 2005)
Copyright (c) 1994-2005 Yamaha Corporation.
Copyright (c) 1991-1997 Regents of the University of California.
Copyright (c) 1995-1996 Jean-loup Gailly and Mark Adler.
Copyright (c) 1998-2000 Tokyo Institute of Technology.
Copyright (c) 2000 Japan Advanced Institute of Science and Technology, HOKURIKU.
Copyright (c) 2002 RSA Security Inc. All rights reserved.
Copyright (c) 1997-2004 University of Cambridge. All rights reserved.
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.
Memory 32Mbytes, 3LAN, 1BRI

(administrator コマンドで管理者権限として各種コマンドを実行できます。)
> administrator
Password:
#

(規定では300秒操作しなかったらタイムアウトするので時間を伸ばします)
# login timer 1000


(LAN1のポートの状態を見てみます。)
# show status lan1
LAN1
説明:
イーサネットアドレス: 00:xx:xx:xx:xx:xx
動作モード設定: Type (Link status)
PORT1: Auto Negotiation (Link Down)
PORT2: Auto Negotiation (Link Down)
PORT3: Auto Negotiation (Link Down)
PORT4: Auto Negotiation (Link Down)
最大パケット長(MTU): 1500 オクテット
プロミスキャスモード: OFF
送信パケット: 0 パケット(0 オクテット)
受信パケット: 0 パケット(0 オクテット)

# pp disable (パケットの扱いを中止してデータの不整合や不安定状態の影響をなくします)

(IPパケットをルーティングするように設定します。)
# ip routing on

(LAN1~3のIPアドレスを設定します)
# ip lan1 address 10.10.0.1/24
# ip lan2 address 192.168.0.100/24
# ip lan3 address 10.0.0.1/24

(デフォルトルートつまりこのルータで解決できないパケットは別ルータに送るよう指定します)
# ip route default gateway 192.168.0.1

(静的NATの設定をします。lan2から192.168.0.101へのアクセスをlan1の10.10.0.2にNATするようにします。)
# ip lan2 nat descriptor 1 (LAN2インターフェイスに適用するNAT識別番号指定(適当な番号で良い))
# nat descriptor type 1 nat (NATのタイプを通常のNATとする)
# nat descriptor address outer 192.168.0.101
# nat descriptor static 1 1 192.168.0.101=10.10.0.2

# pp ebable (パケットの扱いを再開します)

さて、デフォルトルートゲートウェイは設定しましたが、LAN1,2,3間のルーティングを設定しようとしましたが、インターフェイス間のルーティングの書き方がわかりません。(マニュアルを読んでも静的ルーティングはIPアドレスだけの指定でインターフェイスの指定がありません)

そこで、現在のルータ内のルーティングテーブルを表示してみました。

# show ip route detail
宛先ネットワーク ゲートウェイ インタフェース 種別 付加情報
default 192.168.0.1 LAN2 static
10.0.0.0/24 10.0.0.1 LAN3 implicit
10.10.0.0/24 10.10.0.1 LAN1 implicit
192.168.0.0/24 192.168.0.100 LAN2 implicit

# save (セーブしないと電源切れたときに設定が保存されません。ちなみに設定は入力した瞬間に反映されます)

あれ?設定してないのに経路情報ができています。
種別がimplicitとなっているので、IP設定した時点でRTX自身が暗黙的にルーティングを設定するようです。
この暗黙的設定されたルーティングで解決できないものが、デフォルゲートウェイに飛ぶわけですね。

ちなみに、スタティック(静的)ルーティングしたい場合は、以下のように設定します。

# ip route 10.0.0.0/24 gateway 10.0.0.1


設定した内容を表示する場合は以下のコマンドで可能です。(IPの確認もこれで行えます)

# show config



設定した情報をローカルに保存できるように tftp の設定をして、アクセスを許可するホストのIPを設定します。

# tftp host 10.10.0.2


クライアントのコマンドプロンプトで、設定ファイルを取得し保存します。

tftp 10.10.0.1 get config/管理者パスワード setting.txt

管理者のパスワードを設定していなけば / の後は空白だけでいいようです。


逆にローカルの設定ファイルをRTXに書きこむ場合は下記コマンドになるようです。

tftp 10.10.0.1 put setting.txt config/管理者パスワード

ログインパスワード変更は以下コマンドで行います。

login password

管理者パスワード変更は以下コマンドで行います。

administrator password


なお、以下のコマンドでRTXの環境表示ができます。

# show environment
RTX1500 BootROM Rev.6.02
RTX1500 Rev.8.03.24 (Thu Oct 27 11:08:38 2005)
main: RTX1500 ver=c1 serial=N0Y006932 MAC-Address=00:a0:xx:xx:xx:xx MAC-Addr
ess=00:a0:xx:xx:xx:xx MAC-Address=00:a0:xx:xx:xx:xx
CPU: 4%(5sec) 4%(1min) 4%(5min) メモリ: 15% used
実行中ファームウェア: exec0 実行中設定ファイル: config0
デフォルトファームウェア: exec0 デフォルト設定ファイル: config0
起動時刻: 1980/01/05 15:25:24 +09:00
現在の時刻: 1980/01/08 10:58:28 +09:00
起動からの経過時間: 2日 19:33:04
セキュリティクラス レベル: 2, タイプ: ON, TELNET: ON
筐体内温度(℃): 47



今回は本当に基礎レベルの設定でしたが、取扱説明書とコマンドリファレンスがあれば結構簡単に行なえます。

参考:
ASCII.jp:経路が複数あるときのルータ設定とその動作|試してわかるルーティング 今回一番役に立ちました。
@IT:ルーティングの設定は正しいか?
Network/YAMAHA RTX - Memo

# by Jehoshaphat | 2012-01-14 18:11 | ネットワーク | Trackback | Comments(0)
ファイルコピーベンチマークのためダミーファイルを作りたい
今回共有フォルダでのファイル転送ベンチマークを測定しようと思ってました。
それで、ファイルサイズが小さい分と、大きい分のテストデータが必要になります。

そのダミーファイルを簡単につくる方法がないかとおもったら、有りました。
@IT:巨大なサイズのファイルを簡単に作る方法に載ってます。

fsutil というコマンドを使えば簡単にダミーファイルを作れるようです。
書式は下記のうような感じ。


fsutil file createnew ファイル名 サイズ


サイズは10進指定なので、WindowsでいうMやGの単位に合わせたいときは注意が必要ですね。(正確には2進接頭辞で表すとMi,Gi)

1Ki = 2^10 =1024
1Mi = 2^20 =1024x1024 = 1048576
1Gi = 2^30 =1024x1024x1024 = 1073741824
1Pi = 2^40 =1024x1024x1024x1024 =1099511627776

(このあたりの単位換算はWikipedia:2進接頭辞伊勢雅英のIT見聞録情報の単位を参照)


ただ、NTFSでファイルを作ったときは注意が必要なようです。
NTFSの場合、ファイルのブロックを予約するだけで実際のデータの記録はしてないようです。
ですので、fsutil でファイルを作ったら一旦コピーしてから使ったほうが無難ですね。


ファイルコピーの時間計測

コピーの時間の計測も参考元@ITにあるように、下記コマンドで測れます。

time /t && copy testfile testfile2 && time /t


しかし、これだと時間が分までしかでません。
ということで、秒単位で測るならバッチファイルにしてしまったほうが良いかと思います。

下記ようなバッチにしました。

@echo off

echo %time%
xcopy testfile testfile2 /q /i /E /Y
echo %time%
pause



これで簡単に任意のサイズのファイルを使ったベンチマークができますね。

# by Jehoshaphat | 2012-01-14 16:25 | 豆知識 | Trackback | Comments(0)
(WindowsServer2008R2)GACに.Netアセンブリを登録したいがassemblyフォルダへのドラッグで拒否られる
WindowsServer2008 R2 のサーバで、.Net のアセンブリをGACに、C:\Windows\assembly フォルダへのドラッグアンドドロップで登録したかったんですが、結構ハマリました。
(エクスプローラからのGACからのアンインストールも同様だと思います。)

原因はUACです。まぁUAC切ればいいんですが、本番稼働中のRDSサーバのためそうはいきません。

Administratorsグループのユーザで、普通にドラッグアンドドロップすると下記のように怒られます。

アセンブリキャッシュビューア - インストールできませんでした。
アクセスが拒否されました。


Windowsエクスプローラ(explorer.exe)を右クリック→"管理者として実行"からやっても同様です。

explorer.exeのショートカットを作成し、互換性タブから管理者権限をつけようとしましたが、グレーアウトしてできません。
エクスプローラはOSの一機能なので互換性タブは使えないようです。

結局下記の方法で出来ました。


1.
まず、フォルダオプションで、"別のプロセスでフォルダーウィンドウを開く" のチェックが外れいていることを確認します。

2.
タスクマネージャーを起動し、explorer.exeを殺します。

3.
タスクマネージャーの "新しいタスク" で、C:\Windows\explorer.exe を 右クリック→"管理者として実行" します。

これで、アセンブリをドラッグアンドドロップすればGACに登録できました。


多分、Windows7やVistaでも同様だと思います。
いやぁー、結構面倒です。。。


# by Jehoshaphat | 2012-01-10 23:36 | .Net開発 | Trackback | Comments(0)
WindowsServer2008R2をiSCSIターゲットにする
iSCSIのターゲット(サーバ側)って、今まで本格的なストレージ製品しかないと思ってたんですが、そうじゃなかったんですね。

WindowsServerR2でも、Microsoft iSCSI Software Target を入れれば iSCSI のターゲットになれるように最近なったようです(しかも無償で)。
また、WindowsStorageServer2008 でも TechNetサブスクリプション から Microsoft iSCSI Software Target 3.2 をダウンロードしてインストールすれば iSCSI のターゲットになれるようです。(言語を英語にしないと出てきませんが。。。)
(WindowsStoreServer2008 R2の方はもとからiSCSIターゲット3.3は入ってるようです)

WindowsStorageServer の方で検証してみても良かったんですが、通常の WindowsServer2008 R2 で無償で使えるようになった Microsoft iSCSI Software Target 3.3 を試してみました。
Microsoft iSCSI Software Target 3.3のダウンロードは、こちら(iSCSITargetDLC)からできます。
解凍したx64フォルダ内の iscsitarget_public.msi インストーラからインストールすると、サーバーマネージャーの記憶域配下に "Microsoft iSCSI Software Target" ができ、iSCSIターゲットして振る舞えるようになります。


iSCSI Software Targetでは iSCSI の領域を仮想ディスク(VHD)として利用するようです。
また、通常のLANとは分けたEthernetを使ったほうが良いようです。(分けなくても使えました。)


新規 iSCSI ターゲットの作成は"Microsoft iSCSI Software Target" MMCから、"iSCSIターゲット"を右クリック→"iSCSIターゲットの作成"から行えます。


ウィザード中の iSCSI ターゲット名 は適当に決めます。
"IQN識別子"はIPアドレスにしました。
注意としてこの時のIPアドレスはiSCSIイニシエータ側(アクセスするクライントホスト側)のIPアドレスになります。

次に、iSCSIターゲットの実体となる仮想ディスクを作成します。
(先に固定長のVHDを作り、それを割り当てたほうがパフォーマンスはいいようです)


さて、はまった点ですが、iSCSIターゲット作成中にイニシエータのIPアドレスを指定した場合、設定を変更しないといけません。
iSCSIターゲットのプロパティの"iSCSIイニシエータ"タブで、識別子のメソッドが "IQN" になっていると思います。
これを "IP" に編集しないといけません。



後は、イニシエータ(ホスト)側で、iSCSIイニシエータを起動します。(最初はiSCSIのサービスを起動してないというので、OKを押下しサービスを起動してやります)
"ターゲット" にiSCSIターゲットを動かしているサーバのIPアドレスを入れて、"クイック接続" すると、接続が完了します。


イニシエータ側のディスクの管理を見ると、ちゃんと割り当ててますね。
ただ、最初はオフラインになっているので、オンラインにしてから、ディスクの初期化とパーティション作成をしてやる必要があります。


今回は評価目的なので一台のサーバの上にHyper-VでiSCSIターゲット用仮想サーバ、iSCSIイニシエータ用仮想サーバで検証しました。
一応iSCSIイニシエータ側からiSCSIアクセスしたときと、iSCSIターゲットで仮想VHDをマウントした後ファイル共有をかけ、iSCSIイニシエータ側からネットワークドライブした状態のベンチマークを測りました。
仮想環境なので信頼できるか情報かはわかりませんが、下記のような感じです。

↓iSCSIでアクセスしたとき。


↓ネットワークドライブ経由でアクセスしたとき。


読み込みに関してはほぼ同じですが、書き込みはネットワークドライブ経由のほうが1~2割程優れているという結果が出ました。
まぁ、評価環境に問題あるので信用置けませんが。。

Impress の記事でも実HDDの約10%~約20%のオーバーヘッドで済むようです。

ターゲットのプロパティで、複数のiSCSIイニシエータを接続しようとすることは出来ましたが、下記のような警告が出ます。
クラスタの検証で使うので、構わないんですが、そうでない場合はターゲットとイニシエータは1:1でないとダメなようです。


Windowsフェールオーバークラスタの検証には、共有ディスクが必要になるんですが、これで簡単に評価ができるようになり助かりました。


参考:
【仮想化道場】 無償の純正iSCSIターゲットソフト「Microsoft iSCSI Target」を試す -クラウド Watch
iSCSI Software Target 3.2をWindows Server 2008で利用する - http://pnpk.net
Windows Storage Server2008 インストール 2
@IT:特集:最新IPストレージ技術「iSCSI」 - Part.1
iSCSI - Wikipedia
MSFCとクイックマイグレーション この記事ではRocketEivisionというiSCSIターゲットソフトを使ってますが、このあたりもMSのiSCSIターゲットに置き換えられそうですね。
@IT:Hyper-V 2.0実践ライブ・マイグレーション術 第1回 Hyper-Vのライブマイグレーションの評価にもiSCSIによる共有ディスクは必要になります。

# by Jehoshaphat | 2012-01-10 23:28 | サーバがらみ | Trackback | Comments(0)


< 前のページ 次のページ >