Durante el último día, he intentado sin éxito que mi máquina virtual Ubuntu pueda resolver nombres NetBIOS en la red local, para encontrar algunos dispositivos no informáticos (impresoras, máquinas especiales de códigos de barras, etc.) que no tienen IP fija.
Al principio, asumí que no podía configurar el uso de winbind/wins para la resolución, aunque había leído todas las páginas web que alguna vez mencionaban nsswitch.conf y estaba seguro de que mi configuración debería ser correcta.
La ejecución nmblookup printername
devuelve un resultado exitoso que se ve así:
x.x.x.x printername<00>
Y esta fue mi primera pista, el tipo de servicio <00>. Encendí Wirehark, intenté ping printername
y vi una transmisión de NetBIOS solicitando printername<20>
, a lo que nadie respondió.
Detuve el servicio winbindd y lo ejecuté manualmente en primer plano usando:
sudo winbindd -F -S -d 10
luego intenté el mismo ping y vi a winbindd intentando la misma consulta errónea con <20> en lugar de <00>.
¿Por qué está pasando esto? ¿Dónde se puede configurar esto?
EDITAR: cerrando esta pregunta ya que está codificada en la fuente. Buscando en el código, encontré la función en winbindd_wins_byname.c, codificada como tal:
subreq = resolve_wins_send(state, ev, state->request->data.winsreq, 0x20);
Respuesta1
Debería recibir una devolución de:
x.x.x.x printername<20>
windbindd
es correcto, porque un tipo de servicio de <20> es para servicios compartidos de archivos/impresión. ¿Has probado la configuración del servicio WINS desde samba? El tipo de servicio predeterminado se proporcionará si el cliente solicita un recurso compartido que no figura en smb.conf
.