winbind использует неправильный код службы netbios в запросах

В течение последнего дня я безуспешно пытался разрешить моей виртуальной машине Ubuntu разрешать имена NetBIOS в локальной сети, чтобы найти некоторые некомпьютерные устройства (принтеры, специальные устройства для штрих-кодов, и т. д.), у которых нет фиксированного IP.

Сначала я предположил, что не могу настроить использование winbind / wins для разрешения, хотя я читал все веб-страницы, которые когда-либо упоминали nsswitch.conf, и Я был уверен, что моя конфигурация правильная.

выполнение nmblookup printername возвращает успешный результат, который выглядит так:
xxxx printername <00>
И это была моя первая подсказка, <00 > тип службы. Я запустил wirehark и попытался проверить связь с именем принтера и увидел трансляцию NetBIOS. t запрашивает printername <20> , на что никто не ответил.

Я остановил службу winbindd и запустил ее вручную на переднем плане, используя:
sudo winbindd -F -S -d 10
, затем попробовал тот же ping, и я увидел, что winbindd пытается выполнить тот же ошибочный запрос с <20 > вместо <00>.

Почему это происходит? Где это можно настроить?

РЕДАКТИРОВАТЬ: закрытие этого вопроса, поскольку это жестко запрограммировано в исходном коде. Покопавшись в коде, я нашел функцию в winbindd_wins_byname.c, закодированный как таковой:

subreq = resolve_wins_send (state, ev, state-> request-> data.winsreq, 0x20);

0
05.06.2017, 13:01
1 ответ

Вы должны получить возврат:

x.x.x.x printername<20>

windbinddявляется правильным, поскольку тип службы <20> предназначен для служб общего доступа к файлам/принтерам. Вы пробовали настроить службу WINS из samba? Тип службы по умолчанию будет предоставлен, если клиент запрашивает общий ресурс, не указанный в smb.conf.

0
28.01.2020, 04:45

Теги

Похожие вопросы