쿼리에서 잘못된 netbios 서비스 코드를 사용하는 winbin

쿼리에서 잘못된 netbios 서비스 코드를 사용하는 winbin

지난 날 Ubuntu VM이 로컬 네트워크에서 NetBIOS 이름을 확인하고 컴퓨터가 아닌 일부 장치(프린터, 특수 바코드 기계 등)를 찾을 수 있도록 시도했지만 실패했습니다. 고정 IP.

처음에는 nsswitch.conf를 언급한 모든 웹 페이지를 읽었음에도 불구하고 해결을 위해 winbind/wins 사용을 구성하지 못했다고 가정했으며 구성이 정확해야 한다고 확신했습니다.

실행하면 nmblookup printername다음과 같은 성공적인 결과가 반환됩니다.
x.x.x.x printername<00>
이것이 나의 첫 번째 단서인 <00> 서비스 유형이었습니다. Wireshark를 실행하고 을 시도했는데 ping printernameNetBIOS 브로드캐스트에서 을 요청했지만 printername<20>아무도 응답하지 않았습니다.

winbindd 서비스를 중지하고 다음을 사용하여 포그라운드에서 수동으로 실행한
sudo winbindd -F -S -d 10
다음 동일한 ping을 시도했는데 winbindd가 <00> 대신 <20>을 사용하여 동일한 잘못된 쿼리를 시도하는 것을 보았습니다.

왜 이런 일이 발생합니까? 어디에서 구성할 수 있나요?

편집: 소스에 하드코딩되어 있으므로 이 질문을 닫습니다. 코드를 뒤져보니 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 서비스 구성을 시도해 보셨나요? 클라이언트가 에 나열되지 않은 공유를 요청하는 경우 기본 서비스 유형이 제공됩니다 smb.conf.

관련 정보