![MIBS 환경 변수가 정의될 때 snmpget 출력이 다른 이유는 무엇입니까?](https://rvso.com/image/782622/MIBS%20%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%EA%B0%80%20%EC%A0%95%EC%9D%98%EB%90%A0%20%E2%80%8B%E2%80%8B%EB%95%8C%20snmpget%20%EC%B6%9C%EB%A0%A5%EC%9D%B4%20%EB%8B%A4%EB%A5%B8%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
$ export MIBS=
$ snmpget -Oqv -v 2c -c public 10.xxx.yyy.zzz .1.3.6.1.4.1.3375.2.1.14.3.2.0
"ACTIVE"
하지만
$ export MIBS=F5-BIGIP-SYSTEM-MIB
$ snmpget -Oqv -v 2c -c public 10.xxx.yyy.zzz .1.3.6.1.4.1.3375.2.1.14.3.2.0
ACTIVE
MIBS 환경 변수에 값이 있을 때 출력에 차이가 나는 이유는 무엇입니까?
답변1
SNMP mib는 SNMP OID에 대한 데이터 유형을 정의하므로 MIB가 로드되면 원시 값을 표시하는 대신 "형식화된" 버전의 값을 표시할 수 있습니다.
예를 들어 다음을 비교하십시오.
MIBS= snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.3.1
iso.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24
와 함께:
$ snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.3.1
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
mibs가 로드되면 snmpget
값을 해석하는 방법을 알고 있습니다.
귀하의 질문의 특별한 경우에 mibs는 "해당 값을 문자열로 표시"라고 말합니다.
답변2
좀 더 구체적으로 말하자면.
MIB 문서가 없으면 SNMP 도구는 프로토콜 자체에서 정의한 매우 기본적인 데이터 유형만 알려줄 수 있습니다.
- 정수
- 옥텟 문자열
- 없는
- 객체 식별자
- IP 주소
- 카운터32
- 게이지32
- TimeTicks
- 불투명체
- NetAddress
- 카운터64
데이터는 ASN.1 BER로 인코딩되므로 디코딩 알고리즘은 유선을 통해 원시 바이트에서 이러한 데이터 유형을 추출할 수 있습니다.
따라서 MIB 문서 없이 NET-SNMP snmpget
명령을 실행하면 데이터를 OCTET STRING으로 디코딩하고 "ACTIVE"
.
그러나 SMI v1 또는 v2의 MIB 문서에서는 소위 "텍스트 규칙"을 통해 이러한 기본 유형에 대해 사용자 정의 데이터 유형을 정의할 수 있습니다. 귀하의 경우 MIB 문서는 아래와 같이 F5-BIGIP-SYSTEM-MIB
객체를 정의합니다 ..1.3.6.1.4.1.3375.2.1.14.3.2
sysCmFailoverStatusStatus OBJECT-TYPE
SYNTAX LongDisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The failover status on the system."
::= { sysCmFailoverStatus 2 }
실제 데이터 유형은 LongDisplayString
에 정의되어 있습니다 F5-BIGIP-COMMON-MIB
.
LongDisplayString ::= TEXTUAL-CONVENTION
DISPLAY-HINT "1024a"
STATUS current
DESCRIPTION "A longer version of SNMPv2-TC::DisplayString."
SYNTAX OCTET STRING (SIZE (0..1024))
따라서 MIB 문서를 로드하기 위해 NET-SNMP 명령을 요청하면 snmpget
의 데이터 유형을 완전히 인식 LongDisplayString
하고 인쇄합니다 ACTIVE
.
따라서 관찰 가능한 유일한 변화는 인용문일 뿐이며 그 뒤에서 많은 일이 발생합니다.