Durante o dia anterior, tentei, sem sucesso, permitir que minha VM Ubuntu resolvesse nomes de NetBIOS na rede local, para encontrar alguns dispositivos que não eram de computador (impressoras, máquinas de código de barras especiais, etc.) que não funcionam. t tem um IP fixo.
Primeiro, presumi que não estava conseguindo configurar o uso de winbind / wins para resolver, mesmo que eu tenha lido todas as páginas da Web que já mencionaram nsswitch.conf, e eu tinha certeza de que minha configuração deveria estar correta.
executando nmblookup printername
retorna um resultado bem-sucedido: < x.x.x.x printername<00>
E esta foi a minha primeira pista, a < 00 > tipo de serviço. Ativei wireshark e tentei ping printername
, e vi uma transmissão NetBIOS pedindo printername<20>
, à qual ninguém respondeu.
Parei o serviço winbindd e o executei manualmente em primeiro plano usando:
sudo winbindd -F -S -d 10
tentei o mesmo ping, e vi winbindd tentar a mesma consulta errada com < 20 > em vez de < 00 >.
Por que isso está acontecendo? Onde isso pode ser configurado?
EDIT: Fechando esta questão, pois esta é codificada na fonte.
Vasculhando o código, achei a função em
winbindd_wins_byname.c, codificado como tal:
subreq = resolve_wins_send(state, ev, state->request->data.winsreq,
0x20);