2013-08-22 4 views
6

avahi 명령 줄 도구 (버전 0.6.31)가있는 Fedora 18을 사용하고 있습니다.Avahi 호스트 이름 확인 : 어딘가에 캐싱 중이십니까?

개발 중에 테스트 목적으로 avahi-resolve-host-name을 사용하여 서브넷에있는 장치의 IP 주소를 찾습니다. Wireshark로 요청 및 응답을 모니터링합니다. 하나의 요청 및 응답이 성공하면 더 이상의 요청은 Wireshark에 나타나지 않지만 도구는 여전히 IP 주소를 반환합니다. 가능한 컴퓨터/avahi 데몬/뭔가 다른 '캐싱'결과가 있습니까?

질문 : avahi-resolve-host-name의 EVERY CALL을 사용하여 요청 패킷을 발송하고 싶습니다. 이것이 가능한가?

이유 : 나는 '거짓 긍정'을 말하고 있습니다. 'test1.local'을 해결하려고하는데 결과 IP가 표시되지만이 IP에 더 이상 장치가 없습니다. 매번 요청을 보내서 잘못된 IP 주소로 장치를 보지 않도록하십시오.

답변

2

나는 당신의 질문에 대답하기에는 조금 늦었지만 다른 누군가가이 문제에 걸리면 일반적인 대답을 남기겠다.

내 대답은 avahi-0.6.32_rc를 기준으로합니다. 그것은 다른 컴퓨터 /를 Avahi 데몬/뭔가 '캐시'는 결과 수


인가?

예, avahi-daemon이 조회 결과를 캐싱하고 있습니다. 이 명시 적으로, 기능에 나열하지 않는 것 동안 avahi-daemon(8) 맨 끝이 :

데몬은 [...]를 mDNS를 기록 캐시 avahi-을 활용하는 지역 프로그램이 IPC API를 제공 데몬이 유지합니다.


나는를 Avahi-해결 호스트 이름의 모든 호출에 요청 패킷을 전송하고 싶습니다. 이것이 가능한가?

예, 그렇습니다. 관련 옵션 (avahi-daemon.conf(5)에서) cache-entries-max입니다 :

cache-entries-max= 많은 리소스 레코드는 인터페이스 당 캐시하는 방법을 지정하는 부호없는 정수로 이동합니다. 큰 값은 큰 LAN에서 mDNS가 올바르게 작동하지만 메모리 소비도 증가시킵니다.

이 원하는 효과를 달성하기 위해, 당신은 간단하게 설정할 수 있습니다

cache-entries-max=0 

이 완전히 캐싱을 비활성화하고 모든 요청에 ​​MDNS 패킷을 재발행를 Avahi 데몬을 강제 따라서 당신을 위해 그것을 가능하게 그들을 모니터합니다.

그러나 이것도 avahi를 정상적인 사용에는 거의 쓸모 없게 만듭니다. avahi-daemon이 조회 패킷을 보내는 동안 결과를 저장할 수없고 avahi-resolve-host-name (다른 명령 줄 도구, nss-mdns, D-Bus API ...)의 모든 호출이 실패합니다.

관련 문제