In den letzten Tagen habe ich erfolglos versucht, meiner Ubuntu-VM die Möglichkeit zu geben, NetBIOS-Namen im lokalen Netzwerk aufzulösen, um einige Geräte zu finden, die keine Computer sind (Drucker, spezielle Barcode-Geräte usw.), die keine feste IP haben.
Zuerst nahm ich an, dass ich es nicht schaffe, die Verwendung von winbind/wins zur Auflösung zu konfigurieren, obwohl ich jede Webseite gelesen hatte, auf der nsswitch.conf jemals erwähnt wurde, und ich sicher war, dass meine Konfiguration korrekt sein sollte.
Beim Ausführen nmblookup printername
wird ein erfolgreiches Ergebnis zurückgegeben, das wie folgt aussieht:
x.x.x.x printername<00>
Und dies war mein erster Hinweis, der Diensttyp <00>. Ich habe Wireshark gestartet und versucht ping printername
, und ich habe eine NetBIOS-Übertragung gesehen printername<20>
, in der nach gefragt wurde, auf die niemand geantwortet hat.
Ich habe den Winbindd-Dienst angehalten und ihn manuell im Vordergrund ausgeführt mit:
sudo winbindd -F -S -d 10
Dann habe ich denselben Ping versucht und gesehen, dass Winbindd dieselbe fehlerhafte Abfrage mit <20> statt <00> versucht hat.
Warum passiert das? Wo kann dies konfiguriert werden?
BEARBEITEN: Ich schließe diese Frage, da dies in der Quelle fest codiert ist. Beim Durchforsten des Codes habe ich die Funktion in winbindd_wins_byname.c gefunden, die wie folgt fest codiert ist:
subreq = resolve_wins_send(state, ev, state->request->data.winsreq, 0x20);
Antwort1
Sie sollten eine Rückerstattung von: erhalten.
x.x.x.x printername<20>
windbindd
ist richtig, da der Diensttyp <20> für Datei-/Druckfreigabedienste vorgesehen ist. Haben Sie die WINS-Dienstkonfiguration von Samba aus ausprobiert? Der Standarddiensttyp wird bereitgestellt, wenn der Client eine Freigabe anfordert, die nicht in aufgeführt ist smb.conf
.