SNMP 에이전트를 작성 중이며 MIB 정의에 Unsigned32 유형의 OID가 포함되어 있습니다.SNMP 유형 Unsigned32의 올바른 인코딩은 무엇입니까?
에이전트의 Unix 구현은 Net-SNMP를 사용하고 ASN_UNSIGNED32가 없기 때문에 OID를 ASN_UNSIGNED 유형으로 설정합니다. Wireshark로 GET 응답을 보면 "Gauge32"값으로 디코딩됩니다. RFC 1902에 따르면 Unsigned32와 Gauge32가 동일하기 때문에 처음에는 의미가 있습니다.
Windows 구현은 Windows의 SnmpAPI.lib을 기반으로하며 OID를 ASN_UNSIGNED32로 설정하고 Wireshark로 GET 응답을 보면 "Unsigned32"로 디코딩됩니다. 그건 나에게 더 좋아 보인다.
어떻게 2 가지 구현이 서로 다른 결과를 이끌어 낼 수 있습니까?
올바른 버전은 무엇이며 어떻게 구현할 수 있습니까?
좋은 캐치. Windows 버그와 같습니다. –
Microsoft는 RFC 1902가 나온 1996 년 이래로 SNMP 서비스를 실제로 업데이트하지 않았습니다. 따라서 그들은 옛 버전을 고수하고 있으며 대부분의 SNMOP 도구가 RFC 1442와 여전히 호환되는 것처럼 보입니다. –