네트워크 공부 & 실습/네트워크 이론

[Network] MIB 와 OID 란 무엇일까?

강_토발즈 2025. 5. 9. 21:42

 

1. MIB 와 OID 란 무엇이고 왜 필요한가?

 

서버나 네트워크 장비에 문제가 생겼을 때, 혹은 장애가 발생하기 전 상태를 모니터링 하기 위해서 SNMP라는 프로토콜로 장비의 상태를 물어보곤 한다.

그런데, 장비는 ‘사람처럼 대화’ 할 수 없다. 즉  “CPU 온도 알려줘” , "현재 메모리는 얼마나 사용하고 있어?" 같은 말 대신, 장비는 숫자로 된 명령을 알아듣는다.

그 숫자의 체계가 바로 OID, 그리고 그 의미를 풀어주는 사전이 MIB 라고 할 수 있다. 이해하기 쉽게 비유적으로 표현해보자면

 

  • MIB: 네트워크 장비와 대화하기 위한 단어장 또는 사전으로 표현할 수 있다.
  • OID: 사전 안에 있는 단어에 해당하는 좌표 (주소)

예를 들어:

  • 1.3.6.1.2.1.1.5.0 ← OID

단어장에서 위의 숫자를 좌표로 찾아가면 원하는 정보를 찾을 수 있고, 위의 숫자를 찾아 들어가서 찾을 수 있는 정보는 "시스템 이름(sysName)"이다.

 

즉 CPU 사용률, 메모리, 네트워크 인터페이스의 트래픽, 장비 모델명, Uptime 등 EMS/NMS가 장비 정보를 수집하는 데 OID 와 MIB 가 반드시 필요하다. 

 

 

2. 실습 – 터미널에서 직접 OID 조회하기

 

2-1. 사전 준비

sudo apt install snmp
 

snmp 패키지를 설치하여 일단은 MIB 없이도 숫자 OID로 특정 정보를 바로 요청 가능하도록 하게 한다

 

 

2-2. 시스템 이름(sysName) 정보 반환 받기

snmpget -v2c -c public [타겟IP] 1.3.6.1.2.1.1.5.0

 

 

 

 

2-3. 시스템 가동 시간(sysUpTime) 정보 반환 받기

 

 
snmpget -v2c -c public 192.168.0.27 1.3.6.1.2.1.1.3.0

 

 

 

 

 

3. MIB 의 tree 구조

 

http://www.ktword.co.kr/test/view/view.php?m_temp1=835&id=430

MIB 는 위의 그림과 같이 tree 구조 형태로 정의 되어 있다.  즉, 실습의 예로 1.3.6.1.2.1.1.5.0 (시스템이름) 주소의 값을 반환 받겠다고 한다면

root - iso(1) - org(3) - dod(6) - internet(1) - mgmt(2) - mib-2(1) - system(1) 까지 찾아 들어가는 것 이고,
이후 5 와 0 번에 배정된 값을 읽어오는 것이다. 네트워크 장비는 약속된 대로 1.3.6.1.2.1.1.5.0 위치에 시스템이름을 저장해 놓는 것이다.

 

또 internet(1) 하위의 mgmt(2) 는 public 객체라고 칭하며, 대부분의 네트워크 장비들이 지키고 있는 규칙이라고 할 수 있다. 반면 private(4)은 사설 객체로 칭하며, 제조사별로 정한 규칙대로 특정 정보를 저장하는 데 사용할 수 있다.

 

 

4. 마무리 정리

  • MIB는 "장비가 어떤 데이터를 제공하는지" 정의한 문서라고 할 수 있다.
  • OID는 그 데이터를 요청하는 주소이다.
  • SNMP 명령어는 OID를 사용해 장비에 요청하고, 값을 받아온다.
  • private 객체를 통해 기본 정보보다 좀 더 의미있거나, 특정한 정보들을 받아올 수 있다.