SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編)その知識、ホントに正しい? Windowsにまつわる都市伝説(26)(3/3 ページ)

» 2015年02月27日 15時00分 公開
[山市良,テクニカルライター]
前のページへ 1|2|3       

ローカルのIPv6名前解決はBonjourで

 TCPより下位のIPプロトコルレベルではどうでしょうか。ここまでのSMBセッションは、全てIPv4で行われていました。その理由は、筆者の環境にIPv6対応のDNS(Domain Name System)やその他の名前解決環境がないからです。そのため、UDPポート137の「NetBIOS Name Service」を使用するNetBIOS名の名前解決や、UDPポート138の「NETBIOS Datagram Service」によるブラウジングによって(いずれもIPv4ブロードキャスト)、コンピューター名がNetBIOS名としてIPv4アドレスに名前解決されたのです。

 Windows Vista以降は非ドメイン環境において、NetBIOSの名前解決やブラウジングに加えて、SSDP(Simple Service Discovery Protocol)、WS-Discovery(WSD)、LLTD(Link-Layer Topology Discovery、Windows 7まで)、LLMNR(Link-Local Multicast Name Resolution)といった、ブロードキャストやマルチキャストを使用したIPv4およびIPv6アドレスの名前解決が可能です。

 また、Windows Vista以降は、利用可能な場合にIPv6をIPv4よりも優先して使用します。これにより、同じLANセグメントにあるWindows間の通信は、特に意識しなくてもIPv6(自動生成されるリンクローカルIPv6アドレス)が使用されます。

 Windows Vista以降に実装されたブロードキャストベースのIPv6対応の名前解決の仕組みは、Windows独自のものです。一方、Macは「Bonjour」(旧称、Rendezvous)というMac独自の技術で、UDPポート5353のマルチキャストDNSを使ってネットワークを探索します。

 Windows側にアップルが提供する「Bonjour for Windows」を導入することで、WindowsとMac間でBonjour名「コンピューター名.local」によるネットワーク探索が利用可能になります(画面10)。Bonjour for Windowsは、単体のソフトウエアとしては提供されていませんが、アップルのソフトウエア(「iTunes for Windows」や「AirMacユーティリティ」など)やサードパーティ製品に同梱されています。

画面10 画面10 Windowsに「Bonjour for Windows」を導入すると、WindowsとMac間で相互にマルチキャストDNS(UDPポート5353を使用)によるIPv6アドレスの名前解決が可能になる。Bonjourによる名前解決を行うには、Bonjour名「コンピューター名.local」で接続する

YosemiteのSMBサーバーはSMB 3.0、ポート445で動く

 続いて、YosemiteのSMBサーバー機能について見てみましょう。以下の画面11は、Windows 8.1からYosemiteの共有フォルダーに接続したところです。

 Bonjour for Windowsを導入していれば、Bonjour名を使用した「\\コンピューター名.local\共有名」で接続することで、IPv6アドレスによる接続が可能でした。「Get-SmbConnection」コマンドレットでSMBセッションのダイアレクトを調べると、SMB 3.0で接続していることが分かります(画面11)。

画面11 画面11 Windows 8.1からYosemiteの共有フォルダーに接続すると、最新のSMB 3.02ではなく、SMB 3.0で接続された

 Windows XPやWindows 7からの接続も試してみましたが、Windows XPはSMB 1.0/CIFS、Windows 7はSMB 2.1で接続できました。YosemiteのSMBサーバーの方はSMB 1.0/CIFSからSMB 3.0に対応していますが、最新のSMB 3.02には対応していないようです。

 SMB 3.0が選択されたのは、互換性に問題があったからかもしれません。そこで、2台のYosemite間でファイル共有を試してみました。「smb://」のアドレスを明示的に指定するのではなく、「Finder」の「共有」セクションのブラウジング結果から開いていったところ、AFPではなくSMBで接続されました(画面12)。「smbutil statshares -a」コマンドの結果を見ると、SMB 3.0で接続されています。やはり、YosemiteのSMBサーバー機能の対応はSMB 3.0まで、ということのようです。

画面12 画面12 2台のYosemite間のファイル共有でも、SMB 3.0が使用される。ブラウジングベースで接続した場合でも、AFPではなくSMBが使用されることにも注目

 SMBセッションの接続に使用されたのは、Microsoft-DSのTCPポート445でした。試しに、Windows 8.1の「セキュリティが強化されたWindowsファイアウォール」の「送信の規則」に、TCPポート445に対するブロック規則を設定したところ、共有フォルダーへの接続は失敗しました(画面13)。YosemiteのSMBサーバーは、NBTのTCPポート139をリッスンしていないようです。

画面13 画面13 Windows 8.1側のファイアウォールでTCPポート445への送信トラフィックをブロックすると、Yosemiteの共有フォルダーには接続できなくなる。NBTには対応していないってこと?

MacのSMB対応の大きな変更はMavericksから。でも始まりはLionから

 Yosemiteが対応しているSMBダイアレクトは、以下の五つになります。SMBクライアント機能はSMB 1.0/CIFSからSMB 3.02までに対応し、NBTとMicrosoft-DSの両方を使用できます。SMBサーバー機能はSMB 1.0/CIFSからSMB 3.0までに対応し、Microsoft-DSだけを使用します。

  • NT LM 0.12(SMB 1.0/CIFSのこと)
  • SMB 2.002(SMB 2.0のこと)
  • SMB 2.1
  • SMB 3.0
  • SMB 3.02(SMBクライアントのみ)

 確認したわけではありませんが、Mavericksも同じような実装のはずです。違いは、SMBサーバーとSMBクライアントの両方がSMB 2.1までの対応となる部分です。OS X 10.8 Mountain Lion以前はSMB 1.0/CIFSまでの対応だったので、OS XのSMB対応の大きな変更はMavericksからということができます。

 しかし、本当の変更の始まりは、OS X 10.7 Lionからでした。OS XにおけるSMBサーバー機能は、Snow Leopardまでは「Samba」がベースでした。これが、Lionでアップル独自の実装に置き換えられ、現在に至っています。

 ところで、最近Sambaの深刻な脆弱(ぜいじゃく)性(CVE-2014-0240、https://www.samba.org/samba/security/CVE-2015-0240)が話題になりましたが、MacのSambaは影響のない古いバージョン(3.0.x以前)なのでご安心ください。もちろん、Sambaを使用しなくたったLion以降のOS Xも関係ありません。

 アップル独自のSMBサーバー機能の実装を「SMBX」と呼ぶ人もいます。アップル自身もプレビュードキュメントの中で「SMBX」という表現を使っていましたが、現在公開されているドキュメントの中で「SMBX」という表現が使われることはないようです。

 アップル独自のSMB実装の最初のバージョンは、SMB 1.0/CIFSだけに対応したものでした。これは筆者の想像に過ぎませんが、将来、SMB 2.x、SMB 3.xに対応するという意味合いを込めて「SMBX」と表現したのかもしれません。

 ちなみに、MacはOS X 10.1 PumaからSMBクライアント機能を標準搭載しており、FreeBSDの「smbfsプロジェクト」をベースにしたオープンソースの「smb」(APSLおよびBSDライセンス)を使用しています。LionにおけるSambaから独自実装への乗り換えとは関係ありません。同じコンポーネントの新しいバージョンで、SMB 2.0/2.1(smb-697.1.1)、SMB 3.0/3.02(smb-759)へと対応が進んだということです。

 MacのSMBクライアント機能はオープンソースであり、ソースコードが以下のサイトで公開されているので、興味があったらコードを追いかけてみてください。今回、お話ししたSMBクライアント機能の裏付けを得られるでしょう。

 次回は、SambaベースのOS Xとの違いや、アップル独自のSMB実装に変わってからの互換性問題について説明します。

「その知識、ホントに正しい? Windowsにまつわる都市伝説」バックナンバー

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。