SNMP

다운로드 14
업데이트 2025. 10. 29.

사용 매뉴얼

개요

SNMP 앱은 네트워크 장비의 정보를 조회하고 모니터링할 수 있는 다양한 쿼리 명령어를 제공합니다. 여기서는 주요 명령어의 사용 방법을 설명합니다.

SNMP(Simple Network Management Protocol)는 네트워크 장비의 상태를 모니터링하고 관리하기 위한 표준 프로토콜입니다. 주로 라우터, 스위치, 서버, 방화벽 등의 네트워크 장비에서 사용되고, 관리자는 SNMP를 통해 장비의 성능, 장애, 구성 상태를 SNMP 매니저에서 확인할 수 있습니다.

SNMP는 관리 시스템(Manager), 관리 대상(Agent) 구조로 동작합니다.

  • Manager: 네트워크를 모니터링하고 SNMP 요청(Request)을 전송하는 주체. 로그프레소 소나는 Manager 역할을 합니다.
  • Agent: 장비 내부에서 실행되어, 요청받은 데이터를 응답하거나 알림(Trap)을 전송하는 주체. 네트워크 장비는 Agent 역할을 합니다.
  • MIB(Management Information Base): 관리 객체를 계층적으로 정의한 데이터베이스
  • OID(Object Identifier): MIB 내의 관리 객체를 고유하게 식별하는 계층적 번호. OID는 루트에서 리프까지의 경로가 특정 관리 객체를 나타냅니다.

SNMP 버전

SNMP는 여러 버전이 존재합니다. 가장 널리 사용되는 버전은 SNMPv2c와 SNMPv3입니다. SNMP 앱은 SNMPv2c, SNMPv3를 지원합니다.

버전주요 특징보안 수준
SNMPv1최초 버전. 단순한 요청/응답 구조와 Trap 지원인증 미지원 (공용 커뮤니티 문자열만 사용)
SNMPv2cv1 기능 확장: Bulk Request, 향상된 Trap 기능 지원여전히 단순 커뮤니티 문자열 기반 (보안 취약)
SNMPv3인증 및 암호화 지원. 사용자 기반 접근 제어 (User-based Security Model, USM) 도입강력한 인증/암호화 (MD5/SHA, DES/AES 지원)

SNMPv2c는 SNMPv1의 한계를 개선한 버전으로, Bulk Request를 통해 한 번에 여러 데이터를 조회할 수 있고, Inform 메시지를 통해 트랩을 양방향으로 교환할 수 있습니다. 그러나 여전히 커뮤니티 문자열(community string)을 이용한 단순 인증만 제공하므로 보안상 취약합니다. 보안이 크게 요구되지 않는 폐쇄망 환경이나 장비 모니터링용으로 주로 사용됩니다.

SNMPv3는 보안 기능을 강화한 최신 버전으로, 다음과 같은 기능을 제공합니다.

  • 인증(Authentication): 메시지 출처 검증 (MD5, SHA 등)
  • 암호화(Privacy): 데이터 전송 암호화 (DES, AES 등)
  • 접근 제어(Access Control): 사용자 기반 보안 모델(USM)과 뷰 기반 접근 제어(VACM) 지원

SNMPv3는 사용자 계정, 인증 프로토콜, 암호화 키 설정이 필요하며, 보안이 중요한 네트워크 환경에서 권장됩니다.

기본 MIB

SNMP 앱은 MIB(Management Information Base) 파일을 사용하여 OID를 사람이 읽을 수 있는 이름으로 변환합니다. 예를 들어, SNMPv2-MIB, IF-MIB, IP-MIB 등이 있습니다.

SNMP 앱에는 다음과 같은 표준 MIB가 포함되어 있습니다:

  • SNMPv2-SMI, SNMPv2-TC, SNMPv2-MIB, SNMPv2-CONF: SNMP v2 기본 정의
  • SNMP-FRAMEWORK-MIB: SNMP 프레임워크
  • IF-MIB, IANAifType-MIB: 인터페이스 정보
  • IP-MIB, INET-ADDRESS-MIB: IP 프로토콜 정보
  • TCP-MIB: TCP 프로토콜 정보
  • UDP-MIB: UDP 프로토콜 정보
  • HOST-RESOURCES-MIB: 호스트 리소스(CPU, 메모리, 디스크)
  • ENTITY-MIB, IANA-ENTITY-MIB: 물리적 엔티티 정보
  • POWER-ETHERNET-MIB: PoE 관련 정보
  • UUID-TC-MIB: UUID 타입 정의#

MIB 내장 앱 지원

SNMP 앱은 MIB 파일을 내장하고 있는 앱이 설치되어 시작되면 다음과 같이 동작합니다.

  1. 앱이 설치되어 시작되면 SNMP 앱이 번들 이벤트를 감지합니다.
  2. 새 번들의 /mib/ 디렉터리에서 .txt 확장자의 MIB 파일을 스캔합니다.
  3. 발견된 MIB 파일을 로드하여 기존 MIB와 함께 전체 MIB를 다시 로드합니다.
  4. OID 이름 해석에 새로운 MIB가 즉시 적용됩니다.

범용 OID

여기서는 여러 벤더의 장비에서 공통적으로 사용되는 일반적인 OID를 소개합니다.

System Group (1.3.6.1.2.1.1)

OID이름설명
1.3.6.1.2.1.1.1.0sysDescr시스템 설명
1.3.6.1.2.1.1.2.0sysObjectID시스템 객체 ID
1.3.6.1.2.1.1.3.0sysUpTime시스템 가동 시간 (TimeTicks)
1.3.6.1.2.1.1.4.0sysContact시스템 연락처
1.3.6.1.2.1.1.5.0sysName시스템 이름
1.3.6.1.2.1.1.6.0sysLocation시스템 위치
1.3.6.1.2.1.1.7.0sysServices시스템 서비스

Interface Group (1.3.6.1.2.1.2)

OID이름설명
1.3.6.1.2.1.2.1.0ifNumber인터페이스 개수
1.3.6.1.2.1.2.2.1.1ifIndex인터페이스 인덱스
1.3.6.1.2.1.2.2.1.2ifDescr인터페이스 설명
1.3.6.1.2.1.2.2.1.3ifType인터페이스 타입
1.3.6.1.2.1.2.2.1.4ifMtuMTU 크기
1.3.6.1.2.1.2.2.1.5ifSpeed인터페이스 속도 (bps)
1.3.6.1.2.1.2.2.1.6ifPhysAddressMAC 주소
1.3.6.1.2.1.2.2.1.7ifAdminStatus관리 상태 (1=up, 2=down, 3=testing)
1.3.6.1.2.1.2.2.1.8ifOperStatus동작 상태 (1=up, 2=down)
1.3.6.1.2.1.2.2.1.9ifLastChange마지막 상태 변경 시각
1.3.6.1.2.1.2.2.1.10ifInOctets수신 바이트 (32비트 카운터)
1.3.6.1.2.1.2.2.1.11ifInUcastPkts수신 유니캐스트 패킷
1.3.6.1.2.1.2.2.1.12ifInNUcastPkts수신 논유니캐스트 패킷
1.3.6.1.2.1.2.2.1.13ifInDiscards수신 폐기 패킷
1.3.6.1.2.1.2.2.1.14ifInErrors수신 에러 패킷
1.3.6.1.2.1.2.2.1.16ifOutOctets송신 바이트 (32비트 카운터)
1.3.6.1.2.1.2.2.1.17ifOutUcastPkts송신 유니캐스트 패킷
1.3.6.1.2.1.2.2.1.18ifOutNUcastPkts송신 논유니캐스트 패킷
1.3.6.1.2.1.2.2.1.19ifOutDiscards송신 폐기 패킷
1.3.6.1.2.1.2.2.1.20ifOutErrors송신 에러 패킷

IP Group (1.3.6.1.2.1.4)

OID이름설명
1.3.6.1.2.1.4.1.0ipForwardingIP 포워딩 활성화 여부
1.3.6.1.2.1.4.2.0ipDefaultTTL기본 TTL
1.3.6.1.2.1.4.3.0ipInReceives수신된 IP 패킷 수
1.3.6.1.2.1.4.4.0ipInHdrErrors헤더 에러 패킷 수
1.3.6.1.2.1.4.20.1.1ipAdEntAddrIP 주소 테이블 - IP 주소
1.3.6.1.2.1.4.20.1.2ipAdEntIfIndexIP 주소 테이블 - 인터페이스 인덱스
1.3.6.1.2.1.4.20.1.3ipAdEntNetMaskIP 주소 테이블 - 넷마스크

TCP Group (1.3.6.1.2.1.6)

OID이름설명
1.3.6.1.2.1.6.5.0tcpActiveOpens능동 연결 시도 횟수
1.3.6.1.2.1.6.6.0tcpPassiveOpens수동 연결 수락 횟수
1.3.6.1.2.1.6.9.0tcpCurrEstab현재 ESTABLISHED 상태 연결 수

UDP Group (1.3.6.1.2.1.7)

OID이름설명
1.3.6.1.2.1.7.1.0udpInDatagrams수신된 UDP 데이터그램 수
1.3.6.1.2.1.7.4.0udpOutDatagrams송신된 UDP 데이터그램 수

Host Resources (1.3.6.1.2.1.25)

OID이름설명
1.3.6.1.2.1.25.1.1.0hrSystemUptime시스템 가동 시간
1.3.6.1.2.1.25.1.5.0hrSystemNumUsers로그인 사용자 수
1.3.6.1.2.1.25.1.6.0hrSystemProcesses실행 중인 프로세스 수
1.3.6.1.2.1.25.2.2.0hrMemorySize총 메모리 크기 (KB)
1.3.6.1.2.1.25.3.3.1.2hrProcessorLoadCPU 로드 (%)

UCD-SNMP (Net-SNMP) MIB (1.3.6.1.4.1.2021)

OID이름설명
1.3.6.1.4.1.2021.10.1.3.1ssCpuUserCPU User 사용률 (%)
1.3.6.1.4.1.2021.10.1.3.2ssCpuSystemCPU System 사용률 (%)
1.3.6.1.4.1.2021.10.1.3.3ssCpuIdleCPU Idle 비율 (%)
1.3.6.1.4.1.2021.4.5.0memTotalReal총 실제 메모리 (KB)
1.3.6.1.4.1.2021.4.6.0memAvailReal사용 가능한 실제 메모리 (KB)
1.3.6.1.4.1.2021.4.11.0memTotalFree전체 여유 메모리 (KB)
1.3.6.1.4.1.2021.9.1.6.1dskPath디스크 마운트 경로
1.3.6.1.4.1.2021.9.1.7.1dskDevice디스크 장치 이름
1.3.6.1.4.1.2021.9.1.8.1dskTotal디스크 전체 크기 (KB)
1.3.6.1.4.1.2021.9.1.9.1dskAvail디스크 사용 가능 크기 (KB)
1.3.6.1.4.1.2021.9.1.10.1dskPercent디스크 사용률 (%)

벤더별 OID

여기서는 Cisco, Palo Alto Networks의 장비 전용 OID를 소개합니다.

Cisco 전용 OID

OID이름설명
1.3.6.1.4.1.9.2.1.56.0avgBusy55분 평균 CPU 사용률 (%)
1.3.6.1.4.1.9.9.48.1.1.1.5cpmCPUTotal5min5분 평균 CPU 사용률 (%)
1.3.6.1.4.1.9.9.48.1.1.1.6cpmCPUTotal1min1분 평균 CPU 사용률 (%)
1.3.6.1.4.1.9.9.109.1.1.1.1.3cpmCPUMemoryUsed사용 중인 메모리 (bytes)
1.3.6.1.4.1.9.9.109.1.1.1.1.5cpmCPUMemoryFree여유 메모리 (bytes)

Palo Alto 전용 OID

OID이름설명
1.3.6.1.4.1.25461.2.1.2.1.1.0panSessionActive활성 세션 수
1.3.6.1.4.1.25461.2.1.2.1.2.0panSessionMax최대 세션 수
1.3.6.1.4.1.25461.2.1.2.1.19.0panSessionUtilization세션 사용률 (%)
1.3.6.1.4.1.25461.2.1.2.2.1.0panGPGWUtilizationPctGlobalProtect 게이트웨이 사용률 (%)

쿼리 확장 명령어

SNMP 앱은 쿼리 확장 명령어 통해 다음과 같은 기능을 제공합니다.

각 확장 명령어의 설명서에서 사용 예를 참고하세요.

문제 해결

Request timeout 오류

원인:

  • 네트워크 연결 문제
  • 방화벽이 SNMP 포트(161/UDP) 차단
  • 잘못된 커뮤니티/프로파일 설정
  • 장비가 SNMP를 지원하지 않거나 비활성화됨

해결 방법:

  1. timeout과 retry 값 증가

    snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.1.1.0 timeout=10 retry=5
    
  2. 네트워크 연결 확인

    ping 192.168.1.1
    
  3. 방화벽 규칙 확인 (Windows)

    netsh advfirewall firewall show rule name=all | findstr SNMP
    

Community name required 오류 (SNMPv2c)

원인: 커뮤니티 문자열이 지정되지 않음

해결 방법:

장비에 설정된 실제 커뮤니티 이름 확인하고 명시적으로 커뮤니티 지정하세요.

snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.1.1.0

Authentication failed 오류 (SNMPv3)

원인:

  • 잘못된 사용자 이름/비밀번호
  • 잘못된 인증 프로토콜 선택
  • 장비에 해당 사용자가 등록되지 않음

해결 방법:

  1. 프로파일 설정 확인:

    • 사용자 이름이 정확한지 확인
    • 인증 비밀번호가 정확한지 확인
    • 인증 프로토콜(MD5/SHA)이 장비 설정과 일치하는지 확인
  2. 장비의 SNMPv3 사용자 설정 확인:

    # Cisco 예제
    show snmp user
    
    # Net-SNMP 예제
    net-snmp-config --create-snmpv3-user -a SHA -x AES username
    

OID가 이름으로 표시되지 않음

원인: 해당 OID의 MIB 파일이 로드되지 않음

해결 방법:

  1. 벤더별 MIB 파일이 앱에 추가되어 있지 않기 때문입니다. 앱에 벤더 전용 OID를 추가해야 합니다.

    MIB 파일 다운로드 소스:

    • Cisco: https://www.cisco.com/c/en/us/support/mibs.html
    • Palo Alto: https://docs.paloaltonetworks.com/resources/mib
    • Fortinet: https://docs.fortinet.com/product/fortigate/mib
    • Net-SNMP: http://www.net-snmp.org/docs/mibs/

Invalid scalar OID 오류 (snmpv2-scalars, snmpv3-scalars 명령어)

원인: scalars 명령어는 스칼라 OID만 지원하며, 반드시 .0으로 끝나야 합니다.

해결 방법:

# 잘못된 예 (테이블 OID)
snmpv2-scalars community=public host=192.168.1.1 oid=1.3.6.1.2.1.2.2.1.2

# 올바른 예 (스칼라 OID, .0으로 끝남)
snmpv2-scalars community=public host=192.168.1.1 oid=1.3.6.1.2.1.1.1.0

# 테이블 데이터는 walk 명령어 사용
snmpv2-walk community=public host=192.168.1.1 oid=1.3.6.1.2.1.2.2

32비트 카운터 오버플로우 문제

원인: ifInOctets, ifOutOctets 등의 32비트 카운터는 약 4GB에서 오버플로우가 발생합니다.

해결 방법:

  • SNMP 앱의 iftables 명령어는 자동으로 32비트 오버플로우를 처리합니다.

  • 수동 계산이 필요한 경우 64비트 카운터를 사용하세요

    # 64비트 카운터 (ifXTable)
    snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.31.1.1.1.6.1  # ifHCInOctets
    snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.31.1.1.1.10.1 # ifHCOutOctets
    

대역폭 사용률이 100% 초과

원인:

  • ifSpeed 값이 실제 인터페이스 속도와 다를 때
  • 버스트 트래픽으로 순간 대역폭 초과할 때
  • 측정 interval이 너무 짧을 때

해결 방법:

  1. interval을 길게 설정하여 평균화

    snmpv2-iftables community=public host=192.168.1.1 interval=60
    
  2. ifSpeed 값 확인. 필요시 장비에서 인터페이스 속도 재설정하세요.

    snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.2.2.1.5.1
    

특정 인터페이스만 필터링하고 싶음

현재 상태: iftables 명령어는 Ethernet 인터페이스(ifType=6)만 필터링

다른 타입 필터링 방법:

 walk로 모든 인터페이스 조회 후 쿼리에서 필터링
snmpv2-walk community=public host=192.168.1.1 oid=1.3.6.1.2.1.2.2
| search ifType=117  # gigabitEthernet만 필터링
| search ifType=161  # ieee8023adLag (Link Aggregation)만 필터링

SNMP 응답 속도가 느림

원인:

  • 장비의 SNMP 에이전트 성능 제한
  • 네트워크 지연
  • 너무 많은 OID 동시 조회

해결 방법:

  1. snmpv2-bulkget, snmpv3-bulkget 명령어를 사용하세요(snmpv2-walk, snmpv3-walk보다 빠릅니다.)

    snmpv2-bulkget community=public host=192.168.1.1 oid=1.3.6.1.2.1.2.2.1 max_repetitions=50
    
  2. 여러 호스트 조회 시 병렬 처리 활용

    snmpv2-get community=public host=192.168.1.1,192.168.1.2,192.168.1.3 oid=1.3.6.1.2.1.1.1.0
    
  3. 필요한 OID만 선별하여 조회

    snmpv2-scalars community=public host=192.168.1.1 oid=1.3.6.1.2.1.1.1.0,1.3.6.1.2.1.1.3.0
    

Unresolved OID 오류

원인:

  • MIB 파일에 해당 OID가 정의되지 않음
  • 잘못된 OID 입력

해결 방법:

  1. OID 형식 확인 (숫자로만 구성, 점으로 구분)

    snmpv2-get community=public host=192.168.1.1 oid=1.3.6.1.2.1.1.1.0
    
  2. MIB 없이 숫자 OID로도 조회 가능

snmpv2-walk community=public host=192.168.1.1 oid=1.3.6.1.4.1.9.9.48.1.1.1

부록: 참고 자료

SNMP 프로토콜 문서

  • RFC 1157: SNMPv1
  • RFC 1213: MIB-II
  • RFC 3411-3418: SNMPv3
  • RFC 2578: SMIv2 (MIB 구조)

유용한 MIB 브라우저 도구

  • iReasoning MIB Browser (무료): http://www.ireasoning.com/mibbrowser.shtml
  • ManageEngine MibBrowser (무료): https://www.manageengine.com/products/mibbrowser-free-tool/
  • net-snmp tools (오픈소스): http://www.net-snmp.org/

SNMP 테스트 도구

Linux/Unix - net-snmp 명령어

snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2
snmpbulkwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2

Windows - PowerShell SNMP cmdlets

Get-SnmpData -IP 192.168.1.1 -OID 1.3.6.1.2.1.1.1.0 -Community public

온라인 OID 조회

  • OID Repository: http://www.oid-info.com/
  • CISCO OID Lookup: https://snmp.cloudapps.cisco.com/Support/SNMP/do/BrowseOID.do