世界のやまさ

SEKAI NO YAMASA

Azure File ストレージを Mac でマウント出来なかった話

Azure File ストレージ は SMB を使用したファイル共有サービスです。みんな大好き共有フォルダをクラウドに作成できます。ワイが欲しかったのは Dropbox でも OneDrive でもなくこれだったんや!と思ったんですが、結論から言うと Windows では問題無いのに Mac からはうまくいきませんでした。ちなみに Linux からは使えます。理由は後述します。

以下は使えない原因を調査した記録ですので、あまり役には立たないです。Wiresharkはあまり使ったこと無かったのですが、共有フォルダに繋がらない場合などのトラブルシューティングに役立ちそうな感じはしました。

使ってみようとおもった動機

Azure File ストレージ は今までプレビューで、オンプレミスからは使えませんでした。ですが、今回 AzureCon で GA アナウンスとオンプレミスからの接続がサポートされました。ただし、条件が厳しくてSMB3.0以上とport445が空いていることです。

Mac で使えそうな感じがした

Mac ってそもそも SMB3.0 に対応しているんだっけ?と調べていたら、対応しているようでした。Samba 実装ではなく、Apple が独自に実装しているようでした。

Linux は Samba 実装なので使える。Mac は Apple 実装なので使えない。というのが、 Linux で使えるのに Mac では使えないことの原因かなと思ってます。

Windows では普通に使えた

しばやん先生からIOPSを知りたいと言われたので、CrystaDiskMarkを動かしてみた。まぁ、インターネットの回線に左右されるので参考程度に。

@gogotea3 からPowerShellのコマンドを実行して欲しいと言われたのでその結果。SMBのバージョンや設定だそうな。

Mac ではマウント時にエラーが出た

Mac の Finder から同様にマウント使用とするとエラーが出た。ユーザー認証まで出来ているので、ポートが塞がっているとかそういうことでは無さそう。

Wireshark でパケットを確認してみた

Wireshark である程度確認出来そうだったので見てみました。まずはMac

次に Windows

Windows 10 の共有フォルダを Mac からマウントしたら成功した。

両者の違いをみると成功する Windows 10 の共有フォルダは GSS-API が有効だったのと、Negotiate Flags の Negotiate NTLM keyが有効という違いがあった。

Negotiate Flags について調べると MSDN の [MS-NLMP]: NEGOTIATE がそれっぽい感じでした。22ビット目の H (1 bit): If set, requests usage of the NTLM v1 session security protocol を 0 にすれば Azure File ストレージと同等になりそう。

けれども、期待通りにはならず、フラグはONのままでした。このほかグループポリシーをいろいろいじってみましたが、どうしてもフラグが落ちず断念しました。

ここまでが調べた内容です。SMB はだいぶプロトコルがオープンになりましたが、まだまだ鬼門だなぁという感想。NFS もあればなぁと思いますが、最近 Linux Love な Microsoft さんに期待したいところです。

参考ページ

GAしたAzure File Storageを早速使ってみる | ktkr雑記(仮称) その知識、ホントに正しい? Windowsにまつわる都市伝説(26):SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編) (2/3) - @IT