리눅스의 snmpwalk와 윈도우의 MIB Browser를 이용하면 SNMP 에이전트가 정상적으로 동작하는지 확인하고, 에이전트가 제공하는 OID 목록과 값을 조회할 수 있다. 이 글에서는 OID 숫자열의 구조와 의미, 스칼라·테이블 및 표준·전용 OID의 차이와 필요한 OID 및 MIB 정보를 찾는 방법을 설명한다.
SNMP OID (Object Identifier)의 의미
OID(Object Identifier)는 SNMP 에이전트가 SNMP 매니저에게 제공하는 데이터를 구분하기 위한 고유 식별 번호이다. OID는 .으로 구분되는 숫자열인데, 무작위로 구성된 것이 아니라 일정한 규칙과 계층 구조를 가진다. 예를 들어 .1.3.6.1.4.1.25506.2.12.1.1.1.2.1이라는 OID는 다음과 같은 의미를 가진다.
| 숫자 | 의미 | 사람의 말로 풀면 |
|---|---|---|
1 | iso | 국제 표준(이라 쓰고 ANSI라 읽는다…) |
3 | identified-organization | 분류법에 따라, |
6 | dod | 미국 국방부가 관리하는 |
1 | internet | 개방 네트워크인 인터넷에 참여하는 |
4 | private | 사설 |
1 | enterprises | 기업 중 |
25506 | H3C | H3C사 장비의 |
2 | hh3cCommon | 공통 설정 항목 중 |
12 | hh3cUser | 사용자 |
1 | hh3cUserObjects | 객체의 |
1 | hh3cUserInfoTable | 사용자 정보 테이블에 있는 |
1 | hh3cUserInfoEntry | 정보 중 |
2 | hh3cUserPassword | 사용자 암호의 |
1 | 첫 번째 항목 | 장비의 기본 관리자 암호 |
즉, .1.3.6.1.4.1.25506.2.12.1.1.1.2.1을 SNMP 에이전트에 요청하면 장비의 기본 관리자 비밀번호가 나온다! 대부분 장비의 첫 번째 사용자는 기본 관리자이기 때문이다. 암호가 암호화되지 않은 상태로 저장되어 있다면 평문 암호가 그대로 공개된다! SNMP 에이전트를 설정할 때 보안에 특별히 신경 써야 하는 이유이다.
SNMP OID의 종류
스칼라(Scalar) OID와 테이블(Table) OID
SNMP에서 관리하는 객체는 크게 하나의 값을 제공하는 스칼라(Scalar) 객체와 여러 행으로 구성되는 테이블(Table) 객체로 나눌 수 있다. 실제 값을 조회할 때는 객체의 OID 뒤에 인스턴스를 식별하는 값을 붙인다.
- 스칼라(Scalar) OID
- 하나의 값만 가지는 객체다.
- 스칼라 객체의 실제 값을
GET으로 요청할 때는 객체 OID 뒤에 인스턴스 식별자인.0을 붙여야 한다..0을 생략하면 오류가 발생할 수 있기 때문으로, 그냥.0로 끝나는 객체라 생각해도 무방하다. .1.3.6.1.2.1.1.3.0(동작 시간),.1.3.6.1.2.1.1.6.0(장비 위치) 등이 있다.- 테이블(Table) OID
- 여러 행(Row)으로 구성되며, 각 행을 구분하기 위한 하나 이상의 인덱스(Index)가 붙는다.
GET요청으로 특정 인덱스에 해당하는 값을 읽을 수 있으며, 테이블 전체를 확인하려면 일반적으로GETNEXT,GETBULK또는snmpwalk를 사용한다..1.3.6.1.2.1.2.2.1.2.X(X번 네트워크 인터페이스의 이름),.1.3.6.1.2.1.2.2.1.8.X(X번 네트워크 인터페이스의 동작 상태) 등이 있다.
표준 OID와 전용 OID
OID에는 모든 SNMP 장비가 공통으로 사용하는 표준 영역과 각 제조사가 할당받아 사용하는 전용 영역이 있다.
- 표준 OID
- IETF에서 정의한 관리 객체다. 같은 표준 MIB을 구현한 장비에서는 제조사와 관계없이 동일한 OID와 의미를 사용한다.
- MIB-II 영역은
.1.3.6.1.2.1로 시작한다. - 전용(Enterprise) OID
- 각 제조사가 자사 장비의 고유한 기능과 정보를 제공하기 위해 정의하는 엔터프라이즈(Enterprise) 영역이다.
.1.3.6.1.4.1로 시작하며, 그 뒤에는 각 업체에 할당된 Private Enterprise Number가 붙는다.9(Cisco),311(Microsoft),11(HP),25506(H3C) 등이 있다.
일부 정보의 경우 표준 OID에 정의되어 있어도 제조사 전용 OID를 통해 확인해야 하는 경우가 있다. 사용자 계정과 장비 고유 설정처럼 표준화하기 어려운 정보도 대부분 전용 OID로 제공된다.
snmpwalk로 OID 목록 확인하기
SNMP를 이용해 장비를 관리하기 위해서는 에이전트(관리 대상) 장비에서 내가 원하는 항목을 제공하고 있는지, 그리고 그 항목을 읽어오기 위한 OID가 무엇인지 알고 있어야 한다. 보통 장비 제조사에 문의하면 알려주긴 하지만, 여의치 못한 경우라면 인터넷을 통해 검색해 보거나, OID 목록을 하나하나 뒤져보는 삽질을 해야 한다.
이런 상황에서 손쉽게 사용할 수 있는 것이 snmpwalk다. (누구인지 몰라도 이름 참 잘 지었다.) snmpwalk는 이름처럼, 지정한 OID부터 하위 객체를 헤집고 돌아다니면서 에이전트가 제공하는 접근 가능한 OID 목록과 그 값을 모두 보여 준다.
리눅스 시스템에서 snmpwalk 사용하기
데비안 계열 리눅스에서는 SNMP 클라이언트 도구가 포함된 snmp 패키지를 설치하면 snmpwalk를 사용할 수 있으며, 아래의 명령을 이용해 설치할 수 있다.
snmpwalk를 사용하는 기본 방법과 주요 옵션은 다음과 같다.
snmpwalk -v 2c -c public 192.168.123.123
-
-v: 사용할 SNMP 버전을 지정한다. 뒤에 붙을 수 있는 옵션들은 다음과 같다.1: SNMPv12c: SNMPv2c (아마 가장 많이 사용하게 될 것이다.)3: SNMPv3
-c: SNMPv1 또는 SNMPv2c에서 사용할 커뮤니티 이름을 지정한다. 여기서는 public를 조회했다.192.168.123.123: 조회할 SNMP 에이전트의 호스트 주소다.
SNMP 버전 3을 사용할 경우에는 좀 더 옵션들이 복잡하게 붙는다. 버전 2와 중복되는 것은 빼고 살펴보면,
snmpwalk -v 3 -l authPriv -u public -a SHA -A "PASSWORD1" -x AES -X "PASSWORD1" 192.168.123.123
-
-l: 보안 레벨을 지정한다. 다음과 같은 옵션이 있다.noAuthNoPriv: 사용자 인증과 데이터 암호화를 모두 사용하지 않는다.authNoPriv: 사용자 인증과 메시지 무결성 검증만 사용한다.authPriv: 사용자 인증과 메시지 무결성 검증을 사용하고 데이터를 암호화한다.
-u: 에이전트에 접근할 SNMPv3 사용자 이름을 지정한다.-
-a: 인증과 메시지 무결성 검증에 사용할 알고리즘을 지정한다.MD5SHA,SHA-224,SHA-256,SHA-384,SHA-512
-A: 인증에 사용할 암호문구(passphrase)를 지정한다.-
-x: 데이터 암호화에 사용할 프라이버시 알고리즘을 지정한다.DESAES,AES-192,AES-256
-X: 데이터 암호화에 사용할 암호문구를 지정한다.
다음은 리눅스 시스템에서 snmpwalk를 이용해 윈도우 시스템의 MIB-II 영역을 조회한 예시다.
newuser@debian:~$ snmpwalk -v 2c -c eqmakerread 192.168.123.123 iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 Family 6 Model 158 Stepping 9 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 19045 Multiprocessor Free)" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.311.1.1.3.1.1 iso.3.6.1.2.1.1.3.0 = Timeticks: (15523306) 1 day, 19:07:13.06 iso.3.6.1.2.1.1.4.0 = STRING: "eqmaker@eqmaker.kr" iso.3.6.1.2.1.1.5.0 = STRING: "WindowsSVR" ... 이하 생략 ...
실행하면 위의 예와 같이 OID와 해당 OID의 데이터가 표시된다. 참고로, OID의 시작이 iso로 표시되고 있다. snmpwalk의 옵션 중 하나로, 해석할 수 있는 OID 번호가 있을 경우 그 부분을 해석해서 보여 주는 것이다. 원하지 않을 경우 명령줄에 추가로 -O n 옵션을 붙여주면, 원래의 OID 목록을 그대로 보여 준다.
newuser@debian:~$ snmpwalk -v 2c -c eqmakerread 192.168.123.123 -O n .1.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 Family 6 Model 158 Stepping 9 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 19045 Multiprocessor Free)" .1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.311.1.1.3.1.1 .1.3.6.1.2.1.1.3.0 = Timeticks: (15557768) 1 day, 19:12:57.68 .1.3.6.1.2.1.1.4.0 = STRING: "eqmaker@eqmaker.kr" .1.3.6.1.2.1.1.5.0 = STRING: "WindowsSVR" ... 이하 생략 ...
윈도우 시스템에서 MIB Browser 사용하기
윈도우 시스템에 SNMP 서비스를 설치하더라도 OID를 조회하는 SNMP 매니저 도구가 함께 설치되지는 않는다. 윈도우의 SNMP 서비스는 외부에서 들어오는 요청에 응답하는 에이전트 기능을 제공할 뿐이므로, OID를 조회하려면 윈도우용 Net-SNMP 클라이언트나 snmpwalk 기능을 지원하는 별도의 프로그램을 설치해야 한다.
본 글에서는 개인 사용자에게 무료로 제공되는 iReasoning의 MIB Browser를 사용해 보겠다.
-
에이전트 주소 입력
프로그램의 메인 화면에서 Address 입력란에 조회할 SNMP 에이전트의 주소를 입력한다. 이어서 옆에 있는 Advanced Properties 버튼을 눌러 추가 접속 정보를 설정한다.
MIB Browser 초기 화면 -
포트와 커뮤니티 입력
SNMP 에이전트의 포트와 커뮤니티 이름 및 사용할 SNMP 버전을 선택한 다음 OK를 누른다. 일반적인 SNMP 포트 번호는
161이지만, 에이전트에서 다른 포트를 사용하도록 설정했다면 해당 포트 번호를 입력해야 한다.
접속 정보 설정 -
OID와 작업 유형 선택
OID 입력란에 조회할 객체 또는 조회를 시작할 OID를 입력하고, Operations에서 실행할 작업 유형을 선택한다. 선택할 수 있는 기능은 다음과 같다.
Get Next- 입력한 OID의 다음 순서에 있는 OID 하나와 그 값을 가져온다.
Get- 입력한 OID에 해당하는 객체의 값을 가져온다. 스칼라 객체를 조회할 때는 일반적으로 인스턴스 식별자인
.0까지 입력해야 한다. Get Bulk- 여러 개의 연속된 OID를 한 번의 요청으로 가져온다. SNMPv2c와 SNMPv3에서 사용할 수 있으며 SNMPv1에서는 지원하지 않는다.
Get Subtree- 입력한 OID 아래에 포함된 하위 객체와 값을 가져온다.
Walk- 입력한 OID부터 하위 OID를 순차적으로 탐색해 값을 가져온다. 여러 번의
Get Next또는 이에 대응하는 요청을 반복하는 방식이다. Set- 에이전트의 객체에 값을 기록한다. 값을 읽는 기능이 아니라 장비의 설정을 변경하는 기능이다.
이 가운데
Get,Get Next,Walk정도를 주로 사용하게 된다.
SNMP 작업 선택 메뉴 - GO 클릭
작업의 유형이 변경되거나, GO 버튼을 누르면 에이전트로 해당 요청이 전송되고, 받아온 데이터들을 표의 형태로 표시해 준다.

Get Next를 이용한 OID 조회 결과
OID 레퍼런스 사이트
snmpwalk를 이용해 에이전트가 제공하는 OID 목록을 긁어 오는 데 성공했다면, 남은 일은 그중에서 내가 사용할 OID를 찾는 것이다. 하지만 수많은 OID 가운데 원하는 값을 제공하는 OID가 무엇인지 하나씩 확인하는 일은 꽤나 고달프다. 다행히 인터넷에는 훨씬 이전부터 우리와 같은 생각을 했던 사람들이 정성껏 모아 놓은 자료들이 있다.
가장 좋은 방법은 장비 제조사에서 제공하는 MIB 파일과 관련 문서를 확보하는 것이다. MIB 파일에는 OID뿐만 아니라 객체 이름과 데이터 형식, 읽기·쓰기 권한, 인덱스 구조 및 객체에 대한 설명이 들어 있다. 하지만 단종된 장비나 오래된 펌웨어는 해당 MIB 파일을 구하기 어려울 때가 많으므로, 다음과 같은 레퍼런스를 함께 참고해 가며 필요한 OID를 찾아야 한다.
-
IANA Private Enterprise Numbers
.1.3.6.1.4.1아래에 할당된 기업별 Private Enterprise Number를 확인할 수 있는 공식 등록부다. 제조사 번호가 어느 업체에 할당되어 있는지 확인할 때 가장 먼저 참고할 수 있다. -
OID Repository
숫자로 된 OID를 입력해 계층 구조와 등록 정보를 확인할 수 있는 검색 데이터베이스다. 단, 엔터프라이즈 번호를 공식적으로 할당하는 기관은 아니므로 기업 번호 자체는 IANA 등록부를 기준으로 확인해야 한다.
과거에는 Global OID reference database (https://oidref.com)도 유용하게 사용할 수 있었지만, 2026년 9월 확인 결과 정상적으로 접속할 수 없었다.
레퍼런스 사이트에서 찾은 OID가 실제 장비에서도 제공된다고 보장할 수는 없다. 같은 제조사의 장비라도 모델과 펌웨어 버전에 따라 구현된 MIB이 다를 수 있으므로, 최종적으로는 제조사 문서와 MIB 파일을 확인하고 snmpwalk 또는 MIB Browser로 직접 조회해 보아야 한다.
아울러, 괜찮은 OID 레퍼런스 사이트가 있다면 본 필자에게도 공유해 주시기를 부탁드리는 바이다.
FAQ
- 장비가 제공하는 SNMP OID를 조회하는 방법이 있는가?
snmpwalk를 이용하면 지정한 OID 아래에 있는 객체를 순차적으로 조회할 수 있다. 예를 들어 snmpwalk -v2c -c eqmakerread 192.168.123.123 .1.3.6.1.2.1을 실행하면 해당 에이전트가 제공하고 현재 커뮤니티에 조회를 허용한 MIB-II 영역의 OID와 값을 확인할 수 있다.- MIB이란 무엇인가?
- MIB은 SNMP로 관리하는 객체의 구조와 의미를 정의한 정보다. MIB 파일에는 OID와 객체 이름뿐만 아니라 데이터 형식, 읽기·쓰기 권한, 인덱스 구조 및 객체에 대한 설명이 들어 있다. MIB 파일을 SNMP 매니저에 불러오면 숫자로 된 OID를 사람이 이해하기 쉬운 객체 이름으로 확인할 수 있다.
- OID와 MIB의 차이는 무엇인가?
- OID는 SNMP 관리 객체를 구분하는 고유한 숫자 식별자다. MIB은 이러한 OID가 어떤 객체를 의미하고 어떤 형식과 권한을 가지는지 정의하는 정보 체계다. 즉, OID가 객체의 주소라면 MIB은 그 주소에 있는 객체를 설명하는 명세라고 이해할 수 있다.
snmpwalk를 실행하면 장비의 모든 OID가 표시되는가?- 아니다. snmpwalk는 지정한 OID(Start OID) 하위의 서브트리만 순회하며, 에이전트에 설정된 MIB View 권한 및 커뮤니티/사용자 접근 권한에 따라 허용된 OID 영역만 확인할 수 있다.
- 스칼라 OID의 끝에
.0을 붙이는 이유는 무엇인가? - 스칼라 객체는 하나의 값만 가지며, 실제 값을 조회할 때 객체 OID 뒤에 인스턴스 식별자인
.0을 붙인다. 예를 들어 시스템 동작 시간을 나타내는sysUpTime의 실제 인스턴스는.1.3.6.1.2.1.1.3.0이다.GET요청에서.0을 생략하면 오류가 발생할 수 있다. - 표준 OID와 제조사 전용 OID의 차이는 무엇인가?
- 표준 OID는 IETF 등의 표준화 기구에서 정의하며, 같은 표준 MIB을 구현한 장비에서는 제조사와 관계없이 같은 OID와 의미를 사용한다. 제조사 전용 OID는 각 업체가 자사 장비의 고유한 상태와 기능을 제공하기 위해 정의하며, 일반적으로
.1.3.6.1.4.1아래에 위치한다. - SNMP 커뮤니티 이름은 비밀번호인가?
- SNMPv1과 SNMPv2c에서 커뮤니티 이름은 요청 권한을 구분하는 문자열이므로 비밀번호와 비슷한 역할을 한다. 그러나 통신 과정에서 암호화되지 않기 때문에 안전한 비밀번호와 같은 보호 기능을 제공하지는 않는다. 기본값으로 자주 사용되는
public과private은 변경하고 접근 가능한 호스트를 제한해야 한다. snmpwalk요청에 응답이 없으면 무엇을 확인해야 하는가?- 에이전트 서비스의 실행 상태, 에이전트 주소와 UDP 포트
161, SNMP 버전, 커뮤니티 또는 SNMPv3 사용자 정보, 방화벽과 접근 허용 호스트를 차례대로 확인한다. 응답은 있지만 일부 OID만 표시된다면 접근 권한이나 조회를 시작한 OID 및 장비가 구현한 MIB 범위를 확인해야 한다. - 윈도우에서 SNMP OID를 조회하려면 어떤 도구를 사용할 수 있는가?
- 윈도우의 SNMP 서비스를 설치해도 OID 조회 도구는 함께 설치되지 않는다. 윈도우용 Net-SNMP 클라이언트나 iReasoning MIB Browser와 같은 별도의 SNMP 매니저 프로그램을 사용할 수 있다. MIB Browser에서는 에이전트 주소와 커뮤니티 및 SNMP 버전을 설정한 후
Get,Get Next,Walk등의 작업으로 OID를 조회할 수 있다.
갱신 내역
- — 최초 게시
- — 수정
- — 수정 및 주소 이전 (https://www.EQMaker.kr/)