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

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

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

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

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

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

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

EDIT: Закрываю этот вопрос, так как это жестко закодировано в исходнике. Покопавшись в коде, я нашел функцию в winbindd_wins_byname.c, закодированную следующим образом:

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

решение1

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

x.x.x.x printername<20>

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

Связанный контент