Samba の LMB が DMB からブラウズリストを取得できない

提供:Samba-JP
2006年8月22日 (火) 01:54時点におけるRibbon (トーク | 投稿記録)による版 (新規追加)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動
KB番号 J0080
最終更新日 2003/04/24
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.2.5
  • Samba 2.2.4 日本語版
  • Samba 2.2.4

現象

以下のような環境で、Samba 側のIPサブネットのブラウズリストがDMBからブラウズリストを取得できません。

結果として、IPサブネットB側のマシンはIPサブネットA側のマシンをブラウズすることができません。

        DMB                        LMB
       [DC]========= (WAN) =======[samba]
     |                          |
  ┌─┬┴┬─┐       ┌─┬┴┬─┐
 (Windowsクライアント)  (Windowsクライアント)
      IPサブネット:A             IPサブネット:B   

原因

これは Samba 2.2 系列のバグ(デグレード)です。

少なくとも Samba 2.2.4 (日本語版含む) および Samba 2.2.5 のLMBは、DMBに接続してブラウズリストを取得しようとする際に、DMBのポート445(Direct Hosting of SMBのポート)に対して接続して取得しようとします。

しかし、Direct Hosting of SMB は Windows NT / Windows 9x 系 OS ではサポートされていません。また、Windows 2000 では Direct Hosting of SMB 自体はサポートはされているものの、ブラウズリストの取得は行えない実装になっています。

対処策

対処が行われた Samba 2.2.6 以降を利用してください。

なお、対処された箇所は source/nmbd/nmbd_synclists.c:74 の

       /* W2K DMB's return empty browse lists on port 445. Use 139.
        * Patch from Andy Levine andyl@epicrealm.com.
        */

       if (!cli_initialise(&cli) || !cli_set_port(&cli, 139) ||
       !cli_connect(&cli, name, &ip)) {

という箇所ですので、この実装をバックポートすることで、以前のバージョンに対する対処も可能になると考えられます。

本技術情報は、samba-jp:13786 からの一連のスレッドを元にして構成されています。