SMB プロトコル
このセクションには、次のトピックが含まれています。
SMB プロトコルの詳細は、次のトピックを使用してください。
サポートされるほかのプロトコルについては、次のセクションを参照してください。
SMB プロトコルのプロパティー
各シェアにはプロトコル固有のプロパティーがあり、そのシェアに対してさまざまなプロトコルの動作を定義します。これらのプロパティーは、シェアごとに定義することも、シェアのプロジェクトから継承することもできます。
表 132 SMB プロトコルのプロパティー
|
|
|
|
シェアモード
|
off | rw | ro
|
継承
|
|
リソース名
|
resource_name
|
継承
|
|
アクセスベースの列挙を有効化
|
abe
|
継承
|
アクセスベースの列挙を実行するかどうかを指定します。
|
ゲストアクセスを有効化
|
guestok
|
継承
|
ゲストアクセスを付与するかどうかを指定します。このプロパティーはデフォルトで無効になっています。
|
DFS 名前空間です
|
dfsroot
|
継承
|
このシェアをスタンドアロンの DFS 名前空間としてプロビジョニングするかどうかを指定します。
|
クライアント側のキャッシュポリシー
|
csc
|
継承
|
|
便宜的ロックポリシー
|
oplocks
|
継承
|
|
連続可用性を有効化
|
cont_avail
|
継承
|
SMB3 クライアントがシェアに永続ファイルハンドルを要求できるかどうかを指定します。有効になっている場合、アプライアンスは、永続ファイルハンドルに関連付けられた状態を、安定した永続ストレージに格納できるようになります。この状態は、クラスタ化されたコントローラでのテイクオーバーやフェイルバック操作などのコントローラの障害の場合に、透過的に復元できます。連続可用 SMB シェアでは、NFS 上で共有することや、開く/閉じるの回数が非常に多いワークロード (ホームディレクトリなど) 上で使用することが許可されていません。連続可用 SMB シェアは、開く/閉じる回数が制限されているエンタープライズアプリケーションでのみ推奨されています。
|
データアクセスを暗号化
|
encrypt
|
継承
|
SMB3 暗号化をシェアレベルで有効にするかどうかを指定します。有効になっている場合、SMB サーバーでは、クライアントがシェアにアクセスする要求を暗号化する必要があります。サーバーが暗号化されていないアクセスを許可する場合は、この強制を無視できます。このプロパティーはデフォルトで無効になっています。グローバルレベルの SMB 暗号化プロパティーについては、 SMB サービスのプロパティーの「データアクセスの暗号化」および「暗号化されていないアクセスの拒否」を参照してください。
|
トラバースチェックを無視
|
bypasstraverse
|
継承
|
シェアのトラバースチェックを無視するかどうかを指定します。このプロパティーはデフォルトで無効になっています。
トラバースの無視が無効になっている場合、UNIX セマンティクスが使用されます。つまり、このシェアでオブジェクトをナビゲートするときは常にフォルダのトラバースアクセス権が強制されます。
トラバースの無視が有効になっている場合、Windows セマンティクスが使用されます。つまり、このシェアでのオブジェクトへのアクセスは、そのオブジェクトに対するユーザーの権限に依存し、フォルダのトラバースアクセス権は無視されます。
|
|
クライアント側のキャッシュプロパティー
クライアント側のキャッシュプロパティー (csc) は、シェアからのファイルおよびプログラムが、アプライアンスから切断されたオフラインでの使用について、ローカルクライアント上でキャッシュされるかどうかを制御します。
|
|
|
キャッシュなし
|
none
|
シェアについてのクライアント側のキャッシュを無効にします。シェアからのファイルまたはプログラムはオフラインで利用できません。このオプションは、クライアントコンピュータ上のオフラインファイルが共有フォルダにファイルおよびプログラムのコピーを作成することをブロックします。
|
手動キャッシュ
|
manual
|
指定されたファイルおよびプログラムのみがローカルクライアント上でキャッシュされ、オフラインで利用できます。これは、共有フォルダを設定するときのデフォルトのオプションです。このオプションを使用すると、デフォルトではファイルまたはプログラムをオフラインで使用できません。ネットワークに接続されていないときに、どのファイルおよびプログラムをアクセスするかを制御できます。
|
自動ドキュメントキャッシュ
|
documents
|
シェアからアクセスされたすべてのファイルがローカルクライアント上でキャッシュされ、オフラインで利用できます。ファイルはローカルクライアントがふたたびオンラインになったときに自動的に再統合されます。シェアからアクセスされたプログラムは、以前ローカルでキャッシュされた場合を除き、オフラインで利用できません。
|
自動プログラムキャッシュ
|
programs
|
シェアからアクセスされたすべてのプログラムがローカルクライアント上でキャッシュされ、オフラインで利用できます。オンラインのとき、プログラムはローカルクライアントから実行されます。さらに、シェアからアクセスされたすべてのファイルがローカルクライアント上でキャッシュされ、オフラインで利用できます。ファイルはローカルクライアントがふたたびオンラインになったときに自動的に再統合されます。
|
|
便宜的ロックプロパティー
便宜的ロックとは、ネットワークトラフィックを削減して、パフォーマンスを向上させるために、ローカルキャッシュを容易にするクライアントキャッシングメカニズムです。このプロパティー (oplocks) は、サーバーがシェアレベルで便宜的ロックを付与または拒否するかどうかを制御し、リース (SMB 2.1 以上) およびレガシー (SMB 2.0 以下) の便宜的ロックの両方に適用されます。
クライアントがシェア内のファイルに対して便宜的ロックを要求すると、その要求はサーバーの構成およびファイルの現在の状態に応じて付与または拒否されます。クライアントが、すでにファイルに対して付与されている便宜的ロックに矛盾する方法でファイルにアクセスしようとした場合、競合が発生します。このような場合、サーバーは、競合する操作を続行する前に、既存の便宜的ロックを解除するプロセスを開始します。
便宜的ロックを有効にすると、シェア内のファイルが 1 つのクライアントによってアクセスされる際にパフォーマンスが向上します。ただし、一部のシナリオでは、同じファイルが複数のクライアントに同時にアクセスされるときなどに、不要なオーバーヘッドが追加される可能性があります。そのため、便宜的ロックは、グローバルに制御する代わりに、ワークロードの予期されるパターンに基づいてシェアごとに有効または無効にできます。
便宜的ロックプロパティーがシェアレベルで定義されていない場合は、デフォルトはサービスレベルで設定されたグローバルな便宜的ロックプロパティーになります。詳細は、セクションSMB サービスのプロパティーの「oplocks を有効化」を参照してください。
|
|
|
|
有効
|
enabled
|
シェアの便宜的ロックを有効にします
|
set sharesmb="myshare,oplocks=enabled,abe=off,dfsroot=false"
|
無効
|
disabled
|
シェアの便宜的ロックを無効にします
|
set sharesmb="myshare,oplocks=disabled,abe=off,dfsroot=false"
|
empty
|
--
|
便宜的ロックプロパティーは有効または無効のどちらでもありません。シェアレベルのプロパティーが設定されていないときには、グローバルな便宜的ロックプロパティーを使用します。
|
set sharesmb="myshare,abe=off,dfsroot=false"
|
|
SMB プロトコルのシェアモード例外
グローバルなシェアモードに対する例外は、クライアント固有のシェアモードまたは例外を設定することによって、クライアントごと、またはクライアントの集まりごとに定義できます。特定のクライアントへのアクセスを制限するために、グローバルなシェアモードをnone に設定して、アクセスを付与するグループを徐々に小さくしていくことをお勧めします。たとえば、グローバルなシェアモードが none に設定されたシェアを作成できます。これは、すべてのクライアントへのアクセスを拒否したあとで、クライアントのサブセットに読み取り専用アクセスを付与します。さらに、クライアントのより小さいサブセットに読み取り/書き込みアクセスを付与して、最後に信頼できるホストのみが読み取り/書き込みアクセスを持つようにできます。
表 133 クライアントタイプ
|
|
|
|
ホスト (FQDN) またはネットグループ
|
none
|
指定された完全修飾名に解決される IP アドレスを持つ単一のクライアント、または、クライアントの IP アドレスを解決した完全修飾名を含んでいるネットグループ。
|
hostname.sf.example.com
|
DNS ドメイン
|
.
|
この接尾辞で終わる完全修飾名に解決される IP アドレスを持つすべてのクライアント。
|
sf.example.com
|
IPv4 サブネット
|
@
|
CIDR 表記で表現される、指定された IPv4 サブネットに含まれる IP アドレスを持つすべてのクライアント
|
192.0.2.254/22
|
IPv6 サブネット
|
@
|
CIDR 表記で表現される、指定された IPv6 サブネットに含まれる IP アドレスを持つすべてのクライアント
|
2001:db8:410:d43::/64
|
|
クライアントごとまたはクライアントの集まりごとに、クライアントがシェアに対して読み取り専用アクセス権を持つか、または読み取り/書き込みアクセス権を持つかを指定します。
ネットグループの管理 - ネットグループは、SMB エクスポートのアクセスを制御するために使用できます。ただし、ネットグループの管理は複雑になることがあります。代わりに IP サブネット規則または DNS ドメイン規則を使用することを検討してください。
ネットグループを使用する場合、有効になっているサービスに応じて、ネットグループが NIS または LDAP から解決されます。LDAP を使用する場合、それぞれのネットグループがデフォルトの場所 ou=Netgroup,(Base DN) に存在し、標準スキーマを使用している必要があります。
通常、ネットグループエントリのユーザー名コンポーネントは SMB に影響を与えず、ホスト名だけが意味を持ちます。ネットグループに含まれるホスト名は正規名であること、また、DNS で解決される場合は完全修飾名であることが必要です。つまり、SMB サブシステムは、要求しているクライアントの IP アドレスを解決すると、指定された FQDN、または指定されたネットグループのいずれかのメンバーに一致する正規ホスト名になることを検証しようとします。ドメインのコンポーネントも含めて正確に一致する必要があります。それ以外の場合、その例外には一致せず、次の例外が調べられます。ホスト名の解決の詳細は、DNS を参照してください。
2013.1.0 ソフトウェアリリースでは、UNIX クライアントユーザーはパフォーマンスを低下させることなく、最大 1024 グループに所属することが可能です。それ以前のリリースでは、UNIX クライアントユーザーにつき最大 16 グループをサポートしていました。
SMB シェアモードおよび例外オプション
CLI では、すべての SMB シェアモードと例外を、sharesmb プロパティーの 1 つのオプション文字列で指定します。この文字列は、値をコンマで区切ったリストです。これは、BUI に関して説明したグローバルなシェアモードに相当する、ro、rw、on、または off のいずれかで始める必要があります。
表 134 SMB シェアモード値 (BUI および CLI)
|
|
|
|
なし
|
off
|
シェアモードは無効化されています。
|
sharesmb=off
|
on
|
シェア名はデータセット名で、rw または ro の SMB 例外が定義されている場合にかぎりシェアを読み取り/書き込みまたは読み取り専用に利用できます。ほかのすべてのクライアントについてはシェアモードが無効です。
|
sharesmb="on,ro=sf.example.com"
|
resource_name
|
シェア名はリソースセット名で、rw または ro の SMB 例外が定義されている場合にかぎりシェア名を読み取り/書き込みまたは読み取り専用に利用できます。ほかのすべてのクライアントについてはシェアモードが無効です。
|
sharesmb="myshare,ro=sf.example.com"
|
読み取り/書き込み
|
on
|
シェア名はデータセット名で、SMB 例外がない場合はシェア名をすべてのクライアント用の読み取り/書き込みに利用できます。
|
sharesmb=on
|
rw
|
シェア名はデータセット名で、ro 例外が定義されているクライアントを除くすべてのクライアント用の読み取り/書き込みに利用できます。
|
sharesmb=rw または sharesmb="rw,ro=sf.example.com"
|
resource_name
|
シェア名はリソース名で、SMB 例外がない場合はシェア名をすべてのクライアント用の読み取り/書き込みに利用できます。
|
sharesmb=myshare
|
resource_name,rw
|
シェア名はリソース名で、ro 例外が定義されているクライアントを除くすべてのクライアント用の読み取り/書き込みに利用できます。SMB 例外は定義される場合もされない場合もあります。
|
sharesmb="myshare,rw" または sharesmb="myshare,rw,ro=sf.example.com"
|
読み取り専用
|
ro
|
シェア名はデータセット名で、rw 例外が定義されているホストを除くすべてのホスト用の読み取り専用に利用できます。
|
sharesmb="ro,rw=sf.example.com"
|
resource_name,ro
|
シェア名はリソース名で、rw 例外が定義されているクライアントを除くすべてのクライアント用の読み取り専用に利用できます。SMB 例外は定義される場合もされない場合もあります。
|
sharesmb="myshare,ro" または sharesmb="myshare,ro,rw=sf.example.com"
|
|
次の例では、すべてのクライアントのシェアモードが読み取り専用に設定されます。
set sharesmb=ro
追加の SMB 例外は、option=collection という形式のテキストを追加することで指定できます。ここで、option は、ro または rw のいずれかです。SMB 例外には root アクセス権を付与できません。collection の指定には、表 114 の接頭辞文字と、DNS ホスト名/ドメイン名または CIDR ネットワーク番号を使用します。
たとえば、sf.example.com ドメイン内のすべてのホストに読み取り/書き込みアクセス権を付与するには:
set sharesmb="ro,rw=.sf.example.com"
この例では IP アドレス 2001:db8:410:d43::/64 および 192.0.2.254/22 を持つクライアントに読み取り専用アクセスを付与します。
set sharesmb="on,ro=@[2001:db8:410:d43::/64]:@192.0.2.254/22"
ネットグループ名は、個別の完全修飾ホスト名を使用できる場所であればどこでも使用できます。たとえば、engineering ネットグループに読み取り/書き込みアクセス権を付与するには、次のように指定します。
set sharesmb="ro,rw=engineering"
シェアレベル ACL
シェアレベルアクセス制御リスト (ACL) は、シェア内のファイルまたはディレクトリの ACL と組み合わせた場合に、そのファイルの実質的なアクセス権を決定します。デフォルトでは、この ACL はすべてのユーザーに完全な制御を許可します。この ACL は、ファイルの ACL の上にもう 1 段のアクセス制御を提供して、より詳細なアクセス制御構成を可能にします。このプロパティーは、SMB リソース名を構成することによってファイルシステムがエクスポートされたあとでのみ構成できます。ファイルシステムが SMB プロトコルでエクスポートされない場合は、シェアレベルの ACL を設定しても何も効果はありません。
アクセスベースの列挙を有効にすると、クライアントが開くことができないファイルがディレクトリエントリとしてクライアントに表示されることがあります。ディレクトリエントリがフィルタリングされるのは、クライアントがそのファイルに対して何もアクセス権を持っていない場合だけです。たとえば、ACL で読み取りアクセス権だけが付与されている場合に、クライアントが読み取り/書き込みアクセスのためにファイルを開こうとすると、その要求は失敗しますが、ファイルはエントリのリストに含まれたままです。
ACL の詳細は、ファイルシステムのアクセス制御リストを参照してください。