- ベストアンサー
SMBとNetBEUIの関係を学びたい
以前に、こちらの掲示板で大変お世話になり、下記の学習用URLを紹介して いただきました。 http://www.atmarkit.co.jp/fwin2k/network/baswinlan001/baswinlan001_04.html MS LAN-ManagerのNetBEUIまではなんとかわかるのですが、SMBが難し過ぎて どうにも雲をつかむような感じで飲み込めないので悩んでいます。 ネットワークマガジンの解説も、丁寧なのですが、やはりよくわかりません でした。 NetBIOSやTCP/IPだと、プロトコルのインストールを別途おこなうので、わか りやすいんですが、SMBプロトコル、という物をあえてインストールすると いうことが無いから分かりにくいのかな?とも思うのですが。 SMBプロトコル、というものは、NetBEUIの上位互換ではなくて、まったく 新たな互換性のないプロトコルになるのでしょうか? (Windows上にあえてNetBIOSoverTCP/IPをインストールしないとLAN-MANの ホストが見えませんでした)
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
> IBMから供給されるNetBEUIは、MSの物と違って古いのかもしれないですね? 古いのか、あるいはIBMとMicrosoftとでそれぞれ違う方向に「拡張」してしまったのか、確かなことはわかりませんが、“同じものではない”とだけは言えますね。 OS/2同士でファイル共有するときも"8.3形式"でしかファイル名が見えないのであれば、OS/2のSMBのバージョンが古いという可能性が高くなりますね。 それと、しつこいようですが私が言及しているのは"SMB"だけです。NetBIOSやNetBEUIに関してはまた違う回答があるかもしれませんが今の私には答える力がありません(^^;。 >「NetBIOS」はNICに装着されたBIOSを作動させる いや、そうではなくて、アプリケーションから見た「BIOS」、つまり、BIOSを呼び出してPCを制御するように、NetBIOSを呼び出してネットワークを制御する、というような意味合いで付けられた名前のようです(前回の回答で「インタフェース」と書いたのはこのためです)。 ハード的な意味でのBIOSは、この場合あまり関係がないように思います。 > 3~4層は不要で物理層が直接に働いていた、ということになる、と理解して差し支えなさそうですね? 物理層ではなくてデータリンク層ですよね? それに近い形であったろうとは思います。 実際、NetBEUIはOSIの7階層モデルのうち、3~4階層部分を担っているわけですが、実際にはNetBIOS名からMACアドレスを呼び出して通信していることやルータを経由できないことなど、NetBIOS層とデータリンク層を直結している感じがします。 NetBEUIについては、@ITに詳しい記事が載っていましたのでそちらを参照してください。(すでにご存知かもしれませんが)
その他の回答 (7)
- Toshi0230
- ベストアンサー率51% (836/1635)
> OS2(LAN-Manager)のファイル名をSMBのWindowsから覗くときちんとロングファイルネームで見えるのですが、その逆だと8.3表記に縮まってしまうのはどういうカラクリでしょうか? 前回の回答で、うまくまとめられなかったのであえて目をつぶっていたところに切り込まれてしまいました。(^^;。 実は前回のロングファイルネームとSMBとの関係の説明には嘘があります(^^;。 (NetBIOSは前回の回答の通り、ファイル名の長さとは全く関係ありません) SMBプロトコルの中には、SMBクライアントがロングファイルネームに対応しているかしてないかを示すためのフラグが存在します。このフラグが立っていると、SMBプロトコルは255文字までの長さのファイル名を扱うようになります。(立っていなければ昔ながらの"8.3形式") もっとも、これは現在のバージョンのSMBでの話ですから、Windows3.1など古いOSではまだこのフラグが定義されていなかった可能性が高いです。 Windowsがクライアントの時はロングファイルネームで見えるのにOS/2がクライアントの時は"8.3形式"になる、という現象の理由ははっきりとはわかりませんが、仮説として、OS/2がクライアントの時はSMBプロトコルのネゴシエーション時に古いバージョンに合わせて設定されてしまうことが考えられます。 > NetBEUIになる前のNetBIOSというのは、3~4層が無しで動いていたことになるんだろうか? いかんせん昔(といっても十数年ほどですが)の話ですので、私もその当時の状況は知りません。 ただ、NetBIOSはもともとMS-DOSなどでネットワークを扱うためのインタフェースとして定義されたと聞いていますので、その下層に位置するプロトコルは何らかの形で存在したと思います。
お礼
いやあ今回はとても嬉しく感激しております!! > 切り込まれてしまいました。(^^;。 いえ,決してそんなでなくて、単純素朴に「では自分のパソコン画面で起きている事象 は一体どういう意味なんだろう?」というそれだけの好奇心ですので^^; > Windows3.1など古いOSではまだこのフラグが定義されていなかった可能性が高いです。 > 仮説として、OS/2がクライアントの時はSMBプロトコルのネゴシエーション時に古いバージョンに合わせて設定されてしまうことが考えられます なるほどそうなんですね、今のWarpという商品名がついたOS/2はWindows95と同世代と いうことになっていますがIBMから供給されるNetBEUIは、MSの物と違って古いのかも しれないですね? 私は「8.3」という単語で書いてしまいましたが、これはファイルシステムのFATに 従って、ということではなくて、LAN-Manの設定画面にある単語では「共有名」という 元ファイル名を自動的に都合よく縮めた別名になっています。 ですからFATファイルシステムでないロングネーム自在のHPFSファイルシステムでも同 様に縮まって見えてしまいます。 > > NetBEUIになる前のNetBIOSというのは、3~4層が無しで動いていたことになるんだろうか? > > いかんせん昔(といっても十数年ほどですが)の話ですので、私もその当時の状況は知りません。 > ただ、NetBIOSはもともとMS-DOSなどでネットワークを扱うためのインタフェースとして定義されたと聞いていますので、その下層に位置するプロトコルは何らかの形で存在したと思います。 そうしますとこれはもしかすると、「NetBIOS」はNICに装着されたBIOSを作動させる 大前提ということですから、3~4層は不要で物理層が直接に働いていた、ということ になる、と理解して差し支えなさそうですね? (いや、それはあり得ない、というようでしたらまた教えてください^^)
- Toshi0230
- ベストアンサー率51% (836/1635)
> 「全部外せ論」はTCP/IPだけ残して他を全部外せ、だったのだな これなら納得できますね。プロトコルをTCP/IPに一本化するのは推奨される構成です。 > つまりSamba等の非ウインドウズ用SMB解釈ソフトが提供してくれるサービスとは(以下略) Windows互換のネットワーク環境を、非Windows環境上に提供する、という理解は正しいのですが、そのほかについては残念ながら間違いです。 既存の知識だけで整理・理解しようとして、短絡しているように見受けられます(はっきり言って惜しい)。 もう少しいろいろ知識を仕入れて、頭の中を整理していきましょう。 Sambaが提供するのは、大きく分けて以下の2点です。 ・NetBIOS名を使用したサーバ間の通信機能 ・SMBプロトコルが提供するファイル共有サービスの「手続き」が利用可能になるようにOSとの間の仲立ちをする 「ロングネーム」は「ロングファイルネーム」のことかと思いますが、これは主にOS(WindowsとかLinuxとか)にのファイルシステムに依存する話であって、SMBやNetBIOSとは直接関係ありません。 Sambaの詳しい機能については、SambaユーザグループのWEBページを参照してください。 (http://www.samba.gr.jp/) また、ネットワーク越しにファイルにアクセスする仕組み全般については、参考URLサイトを参照してください。
お礼
いつも本当にありがとうございます! >既存の知識だけで整理・理解しようとして、短絡しているように見受けられます(はっきり言って惜しい)。 >もう少しいろいろ知識を仕入れて、頭の中を整理していきましょう。 まったっくそのとおりでして、どうかこのこんこんちき状態からの脱却をはかりたいです^^; >Sambaが提供するのは、大きく分けて以下の2点です。 >・NetBIOS名を使用したサーバ間の通信機能 そうなんですよね、Sambaの第一ページ目に書いてあるここから疑問がスタートして 悩みが始まったんです実は。 SMBはNetBIOSではない(NetBIOSを外しても構わない)のに、NetBIOS名の解決 をする、というところが最初のアレレ?でした。 でもこれはOSIレイヤーの絵を良く見ればNetBIOSはNetBEUIと違うレイヤーだから、 ということになりそうですね? そしたらまたまたアレレなんですが、NetBEUIになる前のNetBIOSというのは、3~4 層が無しで動いていたことになるんだろうか?と新たな混乱になってます。 >「ロングネーム」は「ロングファイルネーム」のことかと思いますが、これは主にOS >(WindowsとかLinuxとか)にのファイルシステムに依存する話であって、SMBやNetBIOS >とは直接関係ありません。 今日はじめてこの事実も教えていただいて、またびっくりしているのですが、ロング ファイルネームが使えるOS2(LAN-Manager)のファイル名をSMBのWindowsから覗くと きちんとロングファイルネームで見えるのですが、その逆だと8.3表記に縮まってし まうのはどういうカラクリでしょうか? NetBIOS(今使っているLAN-ManagerはNetBEUIに改良後のものになっていますが) の仕様で縮まってしまっているようにしか思えないのですが… この不細工ぐあいを解決できるのがOS2版Sambaになるのかな、と期待して手をかけ 始めたところなんです。 どうやら解決にはならずに徒労になってしまいそうですね^^; (でも仕組みの勉強をぜひこの機会にしておきたいと思っています) どうぞこんこんちきぶりを矯正してくださいませ^^;
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2です。 >>「プロトコルを全部削除してしまえ」なんて半可通なことを言う人がいるところにいるんであれば無理もありませんが。 > これが、わたしもやってみると、ちゃんと動いてくれるのでキツネにつままれてるんです。 こういう設定をやっている(あるいはやっていた)OSは何になりますでしょうか? 念のためにWindows2000 Pro, 同Server, Windows98の3つで試しましたけど、プロトコルを全部はずすと以下のような状態になってしまい、altosaxさんの言うような状態にはなりません。 ・Windows2000 (Pro/Serverとも) 「ローカルエリア接続のプロパティ」内で、“Microsoftネットワーク用クライアント”“Microsoft用ファイルとプリンタ共有”のチェックボックスが強制的にはずされる(動作が停止される)。 ・WIndows98 プロトコルをすべて削除した直後に、“Microsoftネットワーククライアント”などがすべて画面から削除される 普通に考えれば、ファイル共有などのサービスだけインストールして、プロトコルスタックをインストールしない、という構成では正常に動作しません。OSIのモデルのうち、6番目と7番目だけ会って、間の3~5番目がないわけですから、データを運ぶ主体が存在しないからです。 もしそのような状態があるとすれば、デフォルトで何らかのプロトコルが動作している、ということになるんですが、私の知る限り、Windowsではそのような動作はしないはずですが…
お礼
大変ご親切にありがとうございます!! やはりそうでしたか。 私も今の環境ではNetBIOSが外せないので簡単には実験できないのですが、 プロトコルは外したほうがよい、と教わった当時の実験の記憶を信じてしまってい ましたので混乱が続いていました。 Toshi0230 さんに教えていただいて今思うと、「全部外せ論」はTCP/IPだけ残し て他を全部外せ、だったのだな、と納得しました^^ SMBプロトコルがあればトランスポート層は不要、という考えは間違っている訳で すよね。 これで謎がやっと解けました。 つまりSamba等の非ウインドウズ用SMB解釈ソフトが提供してくれるサービスとは 従来NetBIOSを使用せざるをえなかった為にロングネームが使えなかった不便なども トランスポート層はTCP/IPにして制限を外し、SMBによってWindows95以降の環境 と同等の便利さを与えてあげよう、ということになりそうですね! おかげで永年のもやもやがスッキリできました! 本当にありがとうございました。 #今思うに、これが混乱に輪をかけてました! >普通に考えれば、ファイル共有などのサービスだけインストールして、 >プロトコルスタックをインストールしない、という構成では正常に動作しません。 そうですよね、なのに「サービス」であるSMBがプロトコルという名称なので、 トランスポート層と同等のものかと勘違いしてしまってました。 聞くはいっときの恥で、ほんとに今ここで質問して助かりました!
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2です。 実際に操作画面で見ている光景と、理論がまだ完全に結びついて無いために混乱されているようですね(^^)。まぁ、「プロトコルを全部削除してしまえ」なんて半可通なことを言う人がいるところにいるんであれば無理もありませんが。 > 「OS/2の分散ファイル共有プロトコルとして標準」とも書いてあるのですが、これはかなりの確率で事実と反しているのでは?と思うんです。 > OS/2のIBM-PEER(わたしが質問文でLAN-MANと書いたのは正確にはこれの事なんですが)をウインドウズに繋ぐにはNetBIOSoverTCP/IPをOS/2側に入れて、ウインドウズ側にはNetBEUIを入れておかないと姿が見えないんです。 SMBとNetBIOSを混同してはいけませんよ。 「NetBIOSoverTCP/IPをOS/2側に入れて、ウインドウズ側にはNetBEUIを入れておかないと姿が見えない」のは、おそらくエクスプローラで表示されない、ということを言っているのだと思いますが、これは「ブラウジング」という機能であってSMBとは関係ありません。 PC間で通信を行うときは、トランスポート層での通信が確立される必要がありますから、双方にTCP/IPが入っているか、或いは逆に双方にNetBEUIが入っているか、どちらかの条件を満たす必要があります。 ただし、1台のPCにTCP/IPとNetBEUIの両方が入っていて、かつNetBIOS over TCP/IPが有効になっていると、本来NetBEUIで通信しなければならないのにTCP/IPで通信しようとしたり、或いはその逆の動きをすることがあり、トラブルの元なのでプロトコルは一本化した方が無難です。 SMBとほぼ完全な互換性をもつCIFSというプロトコルの機能を確認してみたのですが、以下のような機能を提供しているそうです。 ・ファイルへのアクセス ・ファイルとレコードのロック ・安全なキャッシュ機構、先読みと遅延書き込み ・ファイル変更通知 ……等々。 SMBは上記のような手続きを提供するためのプロトコルであり、実際に相手のサーバにアクセスする(データをやりとりする)のは、下位のプロトコルに任せています。 NetBIOSはPCやサーバ間の通信のためにホスト名のルールなどを定めたプロトコルであり、実際に相手のPCやサーバにデータを運ぶのがNetBEUIやTCP/IPであるというわけです。
お礼
とてもご親切にありがとうございます!!! 感激です! >実際に相手のサーバにアクセスする(データをやりとりする)のは、下位のプロトコルに任せています。 なあるほど! そうでないとOSIレイヤー図はウソになっちゃいますもんね^^; だから上に位置してるんですね。 ・・・ということはSMB(つまりMicrosoftネットワーククライアント&MSネットワーク共有サービス)単独ではLAN通信は成立しない!ということになりそうなんですが、 これがまた「ワカラン~!」の元凶になってしまい悩みます。 つまり、 >「プロトコルを全部削除してしまえ」なんて半可通なことを言う人がいるところにいるんであれば無理もありませんが。 これが、わたしもやってみると、ちゃんと動いてくれるのでキツネにつままれてるんです。 この通信方法が成立してしまうというのは、一体どんなカラクリになりますでしょうか? (こいつのせいで、すっかり「SMBはNetBEUIに替わる新しいトランスポート層機能を包含した上位プロトコル」なんだ!、と受け止めて混乱まっただ中で解説書がみんなウソに思えてしまってましたーー;)
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2です 質問者さんの提示していた@ITのページを見ないまま回答を書いてました。(^^; あのページにすでにレイヤ図がありますね。失礼しました。 となると、OSIの7階層モデルをきちんと理解する(なぜ7階層に分かれているのか、それぞれ何をしているのか)ことが、理解の早道になると思います。
お礼
たくさんご親身にありがとうございます! こちらこそお恥ずかしくてどうしようもありません。 OSIのレイヤーの絵を見るとますますわけがわからなくなってしまうので降参 なんです(;;) スイッチの勉強のときは、レイヤー図があんなにありがたいと思ったのに… #2のレイヤー図ですと、SMBはTCP/IPか、IPX/SPXか、NetBEUIのいずれかの上にNetBIOSを介して乗っている解説ですが、ウインドウズの設定操作(インストール含)など自分のやったOJT的体験と照らし合わせると、何が何だかわからなくなってしまうんです(;;) 単刀直入に混乱の種の例をいいますと、Microsoftネットワーク共有サービスと、Microsoftネットワーククライアントだけがあれば実際LANが有効になって、人によってはプロトコルのTCP/IPもNetBEUIも何もかも不要だから削除してしまうほうが良い、とアドバイスする方も多いので・・・ (そういう視点がどうしてもこびりついてるので、SMBとはトランスポート層ネットワーク層に位置しているものだと思いこんでしまうんですよね^^;) 「OS/2の分散ファイル共有プロトコルとして標準」とも書いてあるのですが、これはかなりの確率で事実と反しているのでは?と思うんです。 OS/2のIBM-PEER(わたしが質問文でLAN-MANと書いたのは正確にはこれの事なんですが)をウインドウズに繋ぐにはNetBIOSoverTCP/IPをOS/2側に入れて、ウインドウズ側にはNetBEUIを入れておかないと姿が見えないんです。 ・・・と言う訳で、これをスマートにしたいと思って、Samba for OS/2で解決しようと思い立ったところでSMBの理解につまづいている、という次第です。 参考URLが正しかったら、OS/2用Sammbaの存在意義が無意味になってしまいますものね!? うぅぅ、参りました^^;
- Toshi0230
- ベストアンサー率51% (836/1635)
> SMBプロトコル、というものは、NetBEUIの上位互換ではなくて、まったく新たな互換性のないプロトコルになるのでしょうか? SMBというのは、NetBIOSの上位に位置しているプロトコルです。 つまり、NetBEUIや、NetBIOS over TCP/IP (NBT)は、SMBプロトコルを介してファイル転送などの機能を実現させているわけです。 互換性がないのではなく、提供している機能が全く別なのです。 参考URLのページの真ん中あたりに、この辺のプロトコルの解説とレイヤー図がありますのでそれを見てもらった方が早いと思います。
お礼
どうもありがとうございます! お礼文はばらけると変になってしまいそうでしたので、#3で一括に書かせていただきました^^
- priqn
- ベストアンサー率14% (7/49)
ネットワークプロトコルには詳しくない・・・と言うか、無知に等しいんだけど(恥)、質問の件は、oreillyから出版されている「Using Samba」に記載されているような情報でもよいのかな?
お礼
あ、これはよさそうですねえ! 実はわたしも困った原因は初心者用SAMBAの教本を読んでつまづいているんです^^; オーライリーというと高いし難しい専門書というイメージで遠ざかっていました。 でも、オンラインでタダで読ませてもらえるんですね!!! これには驚きました。 がんばってみます♪ ありがとうございました。
お礼
いつも大変ありがとうございます! 本当におかげさまで「教科書の活字」にたちはだかる壁に風穴を開けていただいた 感じがしています! >OS/2のSMBのバージョンが古いという可能性が高くなりますね。 ははあ、何となく、ひもが解けてきたような、又は新たな勘違いかもしれないですが、 SMBというのはそもそもWindows95から(Windows3.1.1から?)新しく導入されたもの と思いこんでたのですが、OS/2のように古くても、とにかく「MSネットワーク」ならば 古来から存在していた上位層プロトコル、ということだった訳ですね? (混乱の元はこの辺の「SMB=新しい」という認識がガンだったかもしれません^^;) >ハード的な意味でのBIOSは、この場合あまり関係がないように思います。 なるほど、仮想的BIOS概念を実現するプロトコルという意味だったのですね! どうもありがとうございました! 今回教えて頂いたURLは、最初に質問時で勉強していた同じ所なのですが、Toshi0230 さん にかみくだいていただいたおかげで、新しく読み直してきちんと復習できそうにおもいます! MSネットワークはNetBEUIからSMBにとってかわった、という基本的な誤解が混乱のもとだった ということにようやく気付きました。 本当にどうもありがとうございました!