2013/12/20

Windows 以外でも SMB2/SMB3 が利用可能になってた


Windows 以外も SMB2 以降への対応が知らない間に進んたという話。

Mac は OS X 10.8 Mountain Lion 以前は SMB 1.0/CIFS に対応。OS X 10.9 Mavericks からは SMB 1.0/CIFS と SMB2に対応し、SMB2がデフォルト(AFP よりも優先)。

OS X 200を超える新機能 > コアテクノロジー > SMB2
[URL] http://www.apple.com/jp/osx/whats-new/features.html#core
SMB ネットワークにアクセスできない(Mac OS X 10.9 Mavericks)
[URL] http://helpx.adobe.com/jp/x-productkb/global/cq11102248.html

SMB 2.0 なのか、SMB 2.1 までなのか、Mac を持っていないので確認はできませんが、以前公開されていた OSXMaverics Core Technology Overview のドキュメントには、"as well as large MTU support ..."とあるので SMB 2.1 だと思います。terminal で smbutil statshares -a を実行すると、マウント中の SMB 共有の SMB バージョンを確認できるみたいです。OS X 10.9 Mavericks をお持ちの方はお試しあれ(こんどどっかのお店で試してこようかな)。ちなみに、Apple が公開している smbutil のソース コード (statshares.c) を見ると、SMB_2.002 (SMB 2.002 は SMB 2.0 のこと)、SMB_2.1、SMB_1 を出力するようになっています。

Linux の CIFS クライアント (cifs.ko) は、2012 年 12 月に出た Linux kernel 3.7 以降、この 1 年間で SMB 2.0 以降への対応が一気に進んだようです。kernel 3.11 からは SMB 3.02 (の一部) まで対応しているらしいです。

CIFS SMB2 SMB2.1 SMB3 SMB 3.02 And Linux: A Status Update
[URL] http://snia.org/sites/default/files2/SDC2013/presentations/Revisions/StevenFrench_SMB3_Meets_Linux_ver3_revision.pdf#search='kernel+3.11+smb3'

早速、Ubuntu 13.10 (kernel 3.11) で試してみたら...


Ubuntu の標準の UI (Files, nautilus) を使用して Windows 8.1 の SMB 共有をマウントし、Windows 8.1 が側で Get-SMBSession を実行してみると... あいかわらず SMB 1.0/CIFS (Dialect 1.01) が使用されます。
SMB 3.02 And Linux: A Status Update の PDF を見ると、mount コマンドで vers=2.1 や vers=3.0  オプションを指定すれば SMB 2.1 や SMB 3.0 で接続できるとのこと。

Ubuntu 13.10 の場合、mount コマンドで SMB 共有をマウントするには、mount.cifs の前提コンポーネントである cifs-utils をインストールする必要がありました。

sudo apt-get install cifs-utils

cifs-utils をインストール後にこんなコマンドラインでマウントすると...

sudo mount -t cifs //<コンピューター名>/<共有名> /mnt/<マウントポイント> -o username=<ユーザー名>,vers=3.0


SMB 3.0 (Dialect 3.00) で接続できましたとさ。 へぇ

2015/02/10 追記)
Ubuntu 標準の Files (nautilus) の SMB 対応は、cifs.ko ではありませんでした。nautilus が gvfsd-smb 経由で Samba のクライアント機能 (libsmbclient) を使用して、ファイル共有に接続します。/etc/samba/smb.conf の [global]セクションに max client protocol = SMB3 と追加することで、SMB 2.0、2.1、3.0 を使用できます。既定(指定なし) は max client protocol = NT1 で Windows への接続には SMB 1.0/CIFS を使います。

0 件のコメント: