タグ:DFS ( 7 ) タグの人気記事
ドメインベースDFSの共有フォルダを違うドメインユーザでアクセスしたい
ドメインベースDFSを利用しているWindows7のPCで、現在Windowsにログインしているユーザとは違うユーザで、DFS上の共有フォルダにアクセスしたいという場合の実現方法です。

Windows7のコントロールパネルにある、[資格情報マネージャー]に、違うユーザの情報を保存することでできるようでした。

設定するのは[Windows資格情報]のところで、以下の情報を保存します。
[インターネットまたはネットワークのアドレス] : ドメイン名(hoge.local)
[ユーザ名] : 共有フォルダにアクセス権のあるユーザ名
[パスワード] : 上記のユーザのパスワード

ただし、一つのドメインに対して一つの資格情報しか保存できないので、複数のアクセス権の異なるユーザでDFSの共有にログインしたいみたいなことはできません。

まぁ、あまり使い道はないとは思うのですが、業務システムの都合上特定のユーザでOSにログオンせざるを得ない状況で、共有フォルダは違うユーザでログインしたいみたいな時は役に立つかもしれません。
[PR]
by jehoshaphat | 2014-02-06 00:34 | 豆知識 | Trackback | Comments(0)
DFSサーバ障害時にすべきこと
WindowsServer2008R2を2台使ってドメインDFSサービスを提供しています。
しかし、クライアントOSがXPの場合、片方のDFSサーバに障害が起きると、共有フォルダアクセス時に30秒弱の遅延が発生します。
(フォルダ開く毎に30秒かかるので、作業になりません。Windows7の場合は遅延は最初の一回だけで後はサクサクでした。)

詳しい原因はわかりませんが、パケットキャプチャした結果XPの場合、障害後も両方のサーバにアクセスしているようです。

いろいろ試した結果、障害があったサーバをDFSサーバとして無効にしてやればいいようです。
(削除すると、おかしなことになり、DFSサービスを再インストールする羽目になりました。)

削除の手順としては障害発生時に、正常稼動中のDFSサーバの管理ツール→DFSの管理を起動します。
そして、名前空間ツリー展開→名前空間名 をクリックし、中央ペインの "名前空間サーバ" タブを選択します。
障害がおきているサーバを右クリック→名前空間サーバを無効にする を押下します。

これで障害サーバが切り離されました。
しかし、この設定が各クライアントOSに適用されるまでにおおよそ20分程度掛かりました。(早い場合は数分で適用されます)

サーバが普及した場合は、上記と同じ設定のところで、有効にしてやればいいようです。


障害を考えて冗長化しているので、ほんとはタイムラグ無しで障害サーバを見ないよう切り替わって欲しいわけですが、とりあえずこの方法しか思いつきませんでした。

もっといい方法があれば教えて欲しいですね。
[PR]
by Jehoshaphat | 2012-05-15 23:37 | サーバがらみ | Trackback | Comments(0)
共有フォルダにアクセスするとアクセスできずシステムイベントログに40960,40961が出る
WindowsServer2003 でドメインベースDFSを使って共有フォルダを管理しています。
また、イントラネットのWEBサイトに file:// プロトコルを使ってDFS共有フォルダへのリンクを張っています。

で、XP SP3のクライアントから、イントラネットWEBサイトの共有フォルダへのリンクを押下すると、下記のようなエラーが出ました。

Microsoft Internet Explorer の提供元:
\\hogedomain.local\share\test にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。

セキュリティに危害を与える試みが検出されました。認証したサーバーに連絡してください。


見慣れないエラーです。

Explorerから直接 \\hogedomain.local\share\test にアクセスしようとすると今度は下記エラーとなります。

ファンクションが間違っています。


それで、DFSのリンク先となっている共有フォルダを直接アクセスしようとするとアクセス権があるにも関わらず、ユーザ認証の画面が開きます。

システムのイベントログを確認してみたところ、下記のようになっていました。

イベントの種類: 警告
イベント ソース: LSASRV
イベント カテゴリ: SPNEGO (Negotiator)
イベント ID: 40960
日付: 2011/02/01
時刻: 00:00:00
ユーザー: N/A
コンピュータ: hogepc
説明:
サーバー cifs/10.0.0.25 に対するダウングレード アタックの試みを 検出しました。認証プロトコル Kerberos からのエラー コードは "参照したアカウントは現在無効であり、ログオンできません。
(0xc0000072)" でした。


イベントの種類: 警告
イベント ソース: LSASRV
イベント カテゴリ: SPNEGO (Negotiator)
イベント ID: 40961
日付: 2011/02/01
時刻: 00:00:00
ユーザー: N/A
コンピュータ: hogepc
説明:
サーバー cifs/10.0.0.25 とのセキュリティで保護された接続を確立できませんでした。利用できる認証プロトコルはありませんでした。


ネットで調べるとドメインコントローラに接続できなかったりするとこのエラーがでることがあるようですが、ActiveDirectory情報は検索できるのでドメインコントローラには接続できるようです。


いろいろ調べた結果、原因はDFSリンク先の共有フォルダへのアクセス権情報をPCに記憶させていることでした。
コントロールパネルのユーザアカウントで、任意の共有フォルダへのアクセス権情報を記憶させることができます。
そこに、既に無効になったユーザアカウントのアクセス権情報が記憶されていました。
既に無効になっているので、イベントログで、「参照したアカウントは現在無効であり、ログオンできません。」と出たんでしょうね。

記憶させてるアクセス権情報を削除することでアクセスできるようになりました。
[PR]
by Jehoshaphat | 2011-08-16 21:18 | サーバがらみ | Trackback | Comments(0)
DFSが遅延した原因は。。。。

Windows Server の DFS(分散ファイルシステム) を構築してたんですが、DFS上のファイルを開くのに数十秒かかるという問い合わせが殺到しました。

たしかに自機でもファイルを開くのに時間がかかる時と、そうでない時がありました。

DFSはドメインベースで構築してます。
ドメインコントローラ(ActiveDirecotory用DNSサーバも兼用)は3台構成で、ちょうど別拠点用のドメインコントローラ(DC)の構築が終わって、配送待ちにしている状態でした。

DFSは当初2台のドメインコントローラ上に配置してので、ネットワーク負荷が原因かと思い別サーバに構築し直したり、キャッシュの時間を長くしたり、パケット解析をしたりしましたが、どうにも原因が分かりませんでした。

で、別拠点用のDCを設置すると、とたんに現象が置きなくなったのです。

原因はどうやら、そのDCをセットアップ後、設置まで電源を切っていたことのようです。

DFSの名前解決の具体的なプロセスを知らないため何とも言えませんが、おそらくDFSクライアントがDCにアクセスしに行くんだと思いますが、その時にその別拠点用のDCを参照しに行き、見つからないためタイムアウトしてから別DCに接続し、名前解決をしてファイルオープンという感じではないかなと思います。

この別拠点はサイトを分ける予定だったため、この別拠点用DCも別サイトに設定したんですが、どうやら参照されようとしていたようですね。



同様の現象は下記のようにいくつかWEBに載っていました。
@IT:DFSを利用したファイル共有でパフォーマンスが出ません DCを一台停止したら、遅くなったようです。やはりDFSクライアントが停止DCを参照してたようですね。
@IT:Win2000ServerでDFSにアクセスできたりできなかったりします


となると、もし1台DC壊れたらどうなるんでしょうか。。。その壊れたサーバをDCとして参照しないようにActiveDirectory上から削除しないといけませんが、"ドメインコントローラ 削除"でググるといろいろ方法が出てきます。しかし、結構面倒なようですね。

結局起動してないDCが原因というのは分かりましたが、具体的になぜクライアントが停止DCを見に行くのか、またそれを制御する方法が分からなかったのが心残りです。


サポートツールを入れると DFSUtil.exe というコマンドが使えるようになるわけですが、これの詳しい使い方も情報としてあまり載っていませんでした。


ただクライアントから、ドメインベースの名前空間にアクセスできるドメインコントローラを特定するには spcinfo オプションを使えばいいようです。
例えば下記のような感じだと、+のついているドメインコントローラが現在アクティブになっているものらしいです。

C:\>DFSUtil /spcinfo
[*][dc01.hogedomain.jp]
[*][HOGEDOMAIN]
[*][hogedomain.jp]
[+][HOGEDOMAIN]
[-DC02]
[+DC01]
[-DC03]
[+][hogedomain.jp]
[-dc02.hogedomain.jp]
[+dc01.hogedomain.jp]
[-dc03.hogedomain.jp]
Done processing this command.



ただDFSサーバでパケットキャプチャしてると、
NT Trans Request, NT IOCTL FILE_SYSTEM Function:0x002a, FID: 0x800f
というリクエストに対して、
NT Trans Response, FID: 0x800f, NT IOCTL, Error: STATUS_NOT_A_REPARSE_POINT(0xC0000275)
というように、レスポンスパケットでエラーを吐いています。
NTSTATUSエラーコード一覧によると、このエラーは「NTFS ファイルまたはディレクトリは再解析ポイントではありません。」とのことです。調べましたが、結局よくわからないエラーでした。。

DFSは簡単なようで結構ハマる部分が多いので、参考先、特によく寄せられる質問は熟読しておいた方がいいです。

参考先:
MS:分散ファイル システム : よく寄せられる質問
MSサポート:Windows 分散ファイル システム名前空間のアクセス エラーのトラブルシューティング方法 原因の切り分けに役立ちます(翻訳おかしいですが)
MSサポート:紹介で完全修飾ドメイン名を使用するように DFS を構成する方法
MSサポート:Windows XP クライアントの DFS クエリの頻度を制御するポリシー クライアントは15分置きにDCにクエリしてるようです。このクエリの結果がキャッシュに残り上記のDFSUtil /spcinfoで確認できるようです。

MSサポート:DFS 名前空間のサービスと Windows Server 2003 または Windows Server 2008 を実行しているコンピューターで構成データについて
Active Directory ドメインコントローラの 1台を強制的に入れ替える / DFS 名前空間を強制削除 - Nire.Com 古い DFS 名前空間情報を削除する方法です。
[PR]
by jehoshaphat | 2011-02-20 19:21 | サーバがらみ | Trackback | Comments(0)
(Windows2000)共有フォルダのアクセス資格情報を保存する
マイクロソフトのサポート切れたのに会社ではしぶとく生き残っているWindows2000の話です。

(Windows)ワークグループからドメインの共有フォルダやドメインDFSにアクセスする方法でワークグループ環境からドメインDFSを使う方法を書きました。
WindowsXP以降だと共有フォルダへの認証ダイアログの情報(ネットワークパスワード)は保存できるんですが、Windows2000ではそのような機能が提供されていません。


しかし、ログオンスクリプトで net use コマンドを使うことで認証ダイアログを出さないようにできるようです。
(今回のPCはワークグループ環境なんでローカルグループポリシーのログオンスクリプトに書きます。ローカルグループポリシーは %systemroot%\gpedit.msc で編集できます。ちなみに、ローカルグループポリシーのログオンスクリプトは C:\WINNT\system32\GroupPolicy\User\Scripts\Logon 配下に置くのがデフォルトのようです。)

今回はドメインDFSへのアクセスだったのでドメイン名のルートと、名前空間のルートへの二つのログオンが必要でした。
ログオンスクリプトに指定するバッチの中身は下記のような感じとなります。

net use \\hogedomain.jp passwd /user:hogedomain\user01
net use \\hogedomain.jp\dfstest passwd /user:hogedomain\user01


ただパスワードをバッチに書くのはちょっとセキュリティ的にリスクがありますね。


あと、上記にログイン時に共有フォルダとDFSへの認証を行ってもアイドルタイム(たしか15分)がすぎると、ファイルサーバとのセッションが切れてしまいます。
なので、ログオンスクリプトに指定したバッチをタスクに登録し、15分に一回実行するようにするといいかもしれません。


参考:
net useコマンド - 管理者必見! ネットワーク・コマンド集:ITpro
[PR]
by jehoshaphat | 2011-01-02 17:59 | 豆知識 | Trackback | Comments(0)
(Windows)ワークグループからドメインの共有フォルダやドメインDFSにアクセスする方法

ワークグループのWindowsPCからドメインの共有フォルダやドメインDFSにアクセスするための方法です。
さらに、要件としてドメインのユーザで共有フォルダにアクセスします。(なので、ファイルサーバ側にクライアントと同じユーザ名、パスワードを入れるという使い方はしません。あくまでワークグループに参加できないPCがドメインのファイル資源を使うための方法です。)

まず、DFSでアクセスするときは名前解決ができないといけないので、DNSサーバをドメインが使ってるものにしてします。(大抵はドメインコントローラがDNSサーバも担ってると思いますが。。)

そして、そのワークグループのPCのネットワークアダプタTCP/IPの設定で、DNSサフィックスを指定します。
指定するのは接続したいドメインのサフィックスですね。
(ドメイン名が hogedomain.jp ならそれを指定します。)

これでドメイン内のファイルサーバにUNC名でアクセスできるようになります。

ドメインDFSだとDNSサフィックスを指定しなくても \\hogedomain.jp で共有フォルダの一覧は見えるのですが、DFS名前空間にアクセスしようとすると 「\\hogedomain.jp\testdfs にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバの管理者に問い合わせてください。コンピュータが利用できない、またはアクセスが拒否されているため、ドメイン コントローラから構成情報を読み取れませんでした。 」 と怒られます。おそらく名前解決ができないとDFSサーバにアクセスできないんでしょうね。

さらに、 \\hogedomain.jp にアクセスすると認証ダイアログが出ますが、ここではドメインのユーザを指定してやります。
例えばユーザ名の所に hogedomain\user01 みたいな感じです。

これでドメインDFSで管理している共有フォルダにアクセスできるようなります。

ただ気になるのは DFSで \\hogedomain.jp にアクセスする際にも認証ダイアログが出ますし、そこからDFS名前空間の共有フォルダにアクセスしたときにも認証ダイアログが表示されます。

DNSサフィックスについては(MCP70-642)2.5 クライアントコンピュータの名前解決構成で詳しく取り上げています。
[PR]
by jehoshaphat | 2011-01-02 17:57 | 豆知識 | Trackback | Comments(0)
(WindowsServer2003)分散ファイルシステム(DFS)を使ってみた
WindowsServerのファイルサーバの中に分散ファイルシステムというのがあるのは知ってましたが今まで使ったことはありませんでした。

で、今回ようやくこれを使えるように話を持っていくことができました。

まず、今回DFSにする目的は複数のファイルサーバに分かれてる現状をユーザから見た時に一元的に見えるようにすることです。

現状、実際ファイルサーバは数十台あります。
そのため、ユーザはそれぞれのデータがどこのファイルサーバをあるかを理解してないといけません。おまけにファイルサーバが壊れて別のファイルサーバに移行した時、ユーザにはそれを通知しないといけませんし、ユーザ自身が作ってるファイルサーバへのショートカットも作り直さないといけません。


DFSは一つの名前空間を作成し、複数に分散してるファイルサーバをDFSのサブディレクトリとして扱うことが可能になります。(ファイルサーバ上の共有フォルダをDFSのフォルダにマウントする感じです。)
つまりユーザはDFSルートのアクセスさえ知っていいれば、その配下のマウントしている実際のファイルサーバがどこにあるかなんて意識しなくていいわけですね。

さらにDFSにはレプリケーション機能があるため、あるDFSサブフォルダのターゲット先を複数のサーバに指定しそれらを同期させることができます。対障害性もありますし、レプリケーション先を拠点にしておけば、拠点からアクセスする際のレスポンスの高速化も狙えます。
ただ今回は種々の理由でレプリケーションの機能は使わないということになったのがで、この機能は試せませんでした。

ちょうど、ASCII.jp:DFSでファイルサーバの弱点を克服|Windows Serverで学ぶサーバOS入門にある「DFSの仕組み」という図をみると大体イメージがつかめます。

DFSサーバ自体も簡単に複数用意することができるので冗長性も保つことができます。(ドメインベースDFSの場合)

このDFSですが、ドメインベースの名前空間とスタンドアロンの名前空間という二つの種類があるようです。
機能をフルに使うのであればドメインベースの使用が必要です。下記にドメインベースとスタンドアロンとの比較を表にしてみました。

┌────────────────────┬────────────────────┬───────────────────┬───────────────────┐
│ │スタンドアロン │ドメインベース │ドメインベース │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│ │ │Windows2000モード │Windows2008モード │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│名前空間へのパス │\\名前空間サーバ名\ルート名 │\\ドメイン名\ルート名 │\\ドメイン名\ルート名 │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│名前空間の格納場所 │DFSサーバのレジストリ、メモリキャッシュ │ActiveDirectoryおよびメモリキャッシュ │ActiveDirectoryおよびメモリキャッシュ │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│必要なドメイン機能レベル │ActiveDirectoryは不要 │Windows2000混在以上 │WindowsServer2008 │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│"アクセスベースの列挙サポート │ │ │ │
│(アクセス許可を持たないユーザにファイル │ │ │ │
│フォルダを表示させない機能)" │○ │× │○ │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│"フォールトトレラントな名前空間 │ │ │ │
│(複数のDFSサーバ持てるか?)" │× │○ │○ │
├────────────────────┼────────────────────┼───────────────────┼───────────────────┤
│DFSレプリケーション │△(ActiveDirectory環境であればさポート) │○ │○ │
└────────────────────┴────────────────────┴───────────────────┴───────────────────┘


DFSのインストール方法や構築方法は各種解説サイトにあるので割愛して、実際に使ってみた感想です。(ドメインベースでWindows2000モードで使いました。)
たしかにユーザ側からは一元的に見えるため、ユーザの負担は減りました。

しかし、運用する上でいくつかの不満や改良してほしい点が出てきました。それを下記に列挙してみました。
・ファイルサーバ自体を指定できない。
 DFSでターゲットフォルダと指定できるは共有フォルダだけで、共有フォルダを指定しているファイルサーバの指定ができません。なので、NAS等を指定するときは共有フォルダの数だけDFSでターゲット設定しないといけないため、面倒です。
・ターゲットの変更が簡単にできない。
 ターゲットフォルダの設定でターゲット先を変更する場合は一回削除して、再度追加するという方法にしないといけないようです。
・名前空間が違う場合はコピーや移動ができない。
 同じ名前空間内ならDFSサブディレクトリの移動とかが簡単にできるんですが、異なる名前空間になるとそれができません。また、名前空間も一回作るとルート名の変更ができないので、要注意です。
・ターゲットを複数指定するとどっちかしか見えない。
 一つのDFSフォルダに複数のターゲットフォルダを指定できるのですが、保存しているデータが異なる二つのフォルダを指定するとどちらか片方しか見えません。まぁ当然と言えば当然ですが、複数のターゲットを指定というのは、レプリケーションしてる同士で同じデータが入っている場合にだけ使うというものなんでしょうね。
・DFSにフォルダ追加する時、アクセス権ないとパスが見つからないとエラーになり登録できない。
 ターゲットフォルダ追加時に、現在ログインしてるユーザが、ターゲットフォルダにアクセスできないとエラーになってしまいます。なので、あらかじめエクスプローラでその共有フォルダにログオンしてアクセスできるような状態にしておいてからターゲットの設定をしないといけません。
・複数の名前空間サーバ(DFSサーバ)間での同期のタイミング。
 冗長性のため複数のDFSサーバを置いてる場合、同期のタイミングがあまり速くない時があるので要注意です。つまり、追加してもう一方のサーバに反映されるのに時間がかかります。(クライアントから見るときは、DFSフォルダにアクセスしプロパティのDFSタブから参照するDFSサーバを選ぶ(アクティブに設定)ことができます。)

いろいろ不満点はありますが、ファイルサーバがたくさんあって混乱してるときには導入する価値はあると思いました。

(ちなみにドメインベースDFSを作り、ドメインに参加しているPCだけどローカルユーザでログインした場合にDFS名前空間にアクセスしたときは、ちゃんと認証ダイアログが表示されます。)

参考:
ASCII.jp:DFSでファイルサーバの弱点を克服|Windows Serverで学ぶサーバOS入門 記事中でリンクしてますがDFSの概念理解するの助かります。
第2回 DFSによるファイルサーバー可用性の向上 | Think IT ここも図が多いのでDFSの概念を理解するのは助かります。
強化された分散ファイル・システムDFS - @IT
分散ファイルシステム2つを比べてみる SawanoBlog
[PR]
by jehoshaphat | 2011-01-02 17:38 | 豆知識 | Trackback | Comments(0)