Server_Message_Block
[Wikipedia|▼Menu]

Server Message Block (SMB) は、主にWindowsを中心とした環境でLANを通じてファイル共有やプリンタ共有などに使用される通信プロトコルの総称。OSI参照モデルでは第7層アプリケーション層に該当する。認証つきプロセス間通信機構としても動作する。

下位層のプロトコルとしてNetBEUIを使用していた時代には、サブネットを越えるルーティングはできず、中大規模のネットワークには向かないとされたが、NetBIOS over TCP/IP(英語版)や、NetBIOSも必要としないCIFS(Common Internet File System)により、大規模ネットワークでも使用可能となっている。
歴史
SMB/CIFS/SMB1

2015年現在では、SMB 1.0以前のものを明確には区別せずにダイアレクト(方言)として扱うことが一般的である[1][2]。「SMB1/CIFS」などとまとめて表記することも多い。また、下記のSMB 1.0以前の説明は2015年現在のマイクロソフトの説明に従って記載しているが、マイクロソフトは過去には下記とは矛盾する説明をしていたこともあったため[3]、注意が必要である。
初期のSMB

SMBは1982年か1983年にIBMのBarry Feigenbaumが設計した[4][5]DOSのローカルファイルアクセス用「割り込み 33」(INT 21h) をネットワーク上のファイルシステム向けに変えることを目標としていた。IBMは1984年、PC-DOSにSMBを搭載した[4]

マイクロソフトは、1985年発売のMicrosoft Networks (MS-NET)にSMBを搭載し[6]、1988年頃にはスリーコムと共同開発していた LAN Managerに搭載[4]、1992年にはWindows for Workgroupsに搭載と、多くの製品に搭載し、普及していった。
CIFS

マイクロソフトは1996年にSMBをCommon Internet File System (CIFS) と改称し[4]、Windows NT 3.51、Windows NT 4.0、Windows 98に搭載した[7]

クロスプラットフォームでトランスポートから独立したファイル共有プロトコルとして定義を整理し、TCP/IP上での実装方法として「NetBIOS Transport over TCP」と「TCP Transport」を例示するなど、NetBIOSに依存しない定義へと更新した[7]。「TCP Transport」はこの時点ではまだ実験的な試みであり実際に搭載されなかったが、のちにSMB1.0で改善され、Windows 2000では「Microsoft Direct Hosting of SMB」として採用されている[1]

また、マイクロソフトはさらなる機能追加を行った。@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}例えば、シンボリックリンクハードリンク、より大きなファイルの操作、認証プロトコルNTLMv2(暗号強度は米国輸出規制に準じる)、などへの対応である。[要出典]。

ダイアレクトは「NT LM 0.12」を使用する。

サン・マイクロシステムズがWebNFS(英語版)を発表したことに対抗するように、1997年、マイクロソフトは部分的仕様をいくつかインターネットドラフトとしてIETFに提出した[8]が、いずれも1998年までに有効期限切れとなっている。
SMB 1.0

2000年、マイクロソフトは名称をSMBに戻し[4]、SMB 1.0(SMB1)としてWindows 2000で導入した。Kerberos認証やActive Directoryに対応した[1]。また、ダイレクトホスティングSMBと呼ばれるTCP上で直接動作させる機能も導入された(その場合サーバがTCPポート445番で待機[1])。ダイアレクトはCIFSと同じ「NT LM 0.12」を使用するため、技術的にはCIFSと区別されない。
終焉

その後の技術の進化の結果、SMB1は暗号化強度の面や通信効率の面からも好ましくないとされるようになる。

2012年、マイクロソフトはStorage Developer ConferenceでSMB1を無効化することを技術者たちに提案した[9]

2013年、マイクロソフトはWindows Server 2012 R2以降のOSではSMB1を使用することを非推奨と定義し[10]、速やかに新しい技術への移行を促した。

2014年、マイクロソフトは期限を明確にはしていないものの、将来のWindowsでは機能を削除する方針であることを公表した。

2016年、マイクロソフトは改めて速やかにSMB1の使用を停止するよう呼び掛けた[11]

2017年1月、アメリカ国土安全保障省の配下組織US-CERTは、セキュリティ対策のベストプラクティスとして、SMB1の無効化を呼び掛けた[12]

2017年9月5日、Linux kernel 4.13において既定のプロトコルをSMB3とし、SMB1を無効化した[13][14]

2017年9月、マイクロソフトはWindows 10 Version1709でSMB1を初期状態では無効とした[15]。ただし、セキュリティ上推奨されていないものの、必要であれば設定を変更することで有効化できる[16]

2018年8月、FreeNAS 11.1-U6においてSMB1が初期状態では無効にした[17]

2019年9月、Samba 4.11においてSMB1が既定で無効化された[18]
SMB2

再設計された新たなSMBである。SMB 2.0.0以降のバージョンがSMB2のダイアレクト(方言)として定義されている[19]。SMB 3.xもSMB2のひとつである点は間違いやすく注意が必要である[20]

SMB2では、コマンド/サブコマンドの種類が100以上あったものを19にまとめ、プロトコルのやりとりを集約した[21]

パイプライン化機構があり、前の要求への応答を受け取る前に次の要求を送信できる。複雑な動作を1つの要求にまとめることができ、クライアントとサーバ間のやり取りの回数を劇的に減らすことができ、結果として性能が向上する[22]。従来のSMB1プロトコルにも同様な機能がありAndXと呼ばれていたが、マイクロソフト製のクライアントはほとんどAndXを使っていなかった。

また、SMB2ではより大きなバッファをサポートしており、大きなファイルの転送や高速なネットワークでの性能向上が見込まれる[22]

また、「永続性ファイルハンドル」と呼ばれるものを導入している。これは、ネットワーク接続が切れてもSMBサーバとのコネクションが継続できるようにするもので、無線LANなど接続が切れやすい環境で新たなセッションを構築する必要をなくす。

SMB2はシンボリックリンクもサポートしている。他にもファイル属性のキャッシング、HMAC SHA-256ハッシュアルゴリズムによるメッセージ署名強化、ユーザー数・共有ファイル数などが増加した際のスケーラビリティ強化などの拡張がなされている[23]

従来のSMBプロトコルは16ビットで各種サイズを表していた。SMB2ではそれらの多くを32ビットや64ビットに拡張しており、ファイルハンドルの場合は16バイトとしている。

SMB2はマイクロソフトにとって具体的に次のような利益をもたらした。
知的財産権の明確化。従来のSMBはIBMがもともと設計したもので、Windows以外にもXENIXOS/2VMS (Pathworks) などにも採用されている。X/Openが部分的に標準化したり、IETFにもインターネットドラフトとして提出された。このため、知的財産所有権の所在は曖昧だった[4]。SMB2.0以降はすべてMicrosoftが作成している。

過去の資産との決別。従来のSMBのコードは非常に様々なSMBクライアントやサーバに対応する必要があった。このためプロトコルにはオプション部分が多数存在する(長いファイル名を扱えるか否かなど)。また、コマンドの応答として様々なレベルの情報を扱う。さらにUnicode対応は後から追加されている。SMB2のコードは従来のものより大幅に単純化されている(例えば、Unicodeサポートが前提なので、Unicodeでない場合を扱うコードは不要)。

SMB 2.0.0

2006年、SMBの新バージョン SMB 2.0.0をWindows Vistaで導入した[24]。しかし相互運用性に問題があり、後述の2.0.2に置き換えて廃止された。
SMB 2.0.2

Windows Vista SP1とWindows Server 2008で搭載された。2.0.0の相互運用性に問題を解消したものである。
SMB 2.1

Windows 7とWindows Server 2008 R2で搭載された。SMB 2.0.2と比べてさらにファイル転送の速度が向上、特に複数のクライアントから同時にアクセスされた際は約3.5倍の向上が図られている[25]
SMB 3.0

Windows 8とWindows Server 2012で搭載された。SMB ダイレクト、SMB マルチチャネル、SMB 暗号化などの機能が追加された[26]。開発段階ではSMB2.2と呼ばれていた[27]
SMB 3.0.2

Windows 8.1とWindows Server 2012 R2で搭載された。透過フェイルオーバー使用時の自動リバランス、SMB ダイレクトの性能向上などの更新にとどまる[28]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:46 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef