본문 바로가기
Network/이론

[네트워크] SNMP(Simple Network Management Protocol)란?

by 재현짱 2024. 6. 25.
728x90

SNMP(Simple Network Management Protocol)란?

 

개요

  • 네트워크 장비 관리감시하기 위한 목적으로 TCP/IP 계층 중 응용계층에서 이용되는 프로토콜
  • 네트워크 장치(라우터, 스위치, 서버, 프린터 등) 간에 정보를 교환함
  • Port Number Manager UDP/162 Agent UDP/161

등장 배경

  • 1980년대 급격한 인터넷 및 컴퓨터 네트워크의 발달로 인한 네트워크 관리의 필요성
  • 표준화된 관리 프로토콜의 필요성
  • 기존 관리 프로토콜의 한계 (복잡성, 비효율성, 표준화 부족)
  • 1988년, IAB (인터넷 아키텍처 위원회)의 권장으로 SNMP 초기 개발

구성 요소

 

1. 관리 대상 (Managed Device)

  • 네트워크에 연결된 장치
  • SNMP 에이전트를 실행함
  • ex) 스위치, 라우터, 서버 등

2. 에이전트(Agent)

  • 관리 대상 장치에서 실행되는 소프트웨어
  • 장치의 상태 정보를 수집하여 NMS로 전달
  • 장치의 정보를 MIB (Management Information Base)라는 Database에 저장

*MIB: 계정, 구성, 성능, 고장, 보안에 대한 정보를 가지고 있음

 

동작 방식

 

1. SNMP 에이전트가 데이터 수집

  • 라우터, 스위치, 서버 등의 네트워크 장치에 내장된 SNMP 에이전트가 장치 성능 데이터 수집
  • 수집된 데이터는 MIB에 저장

2. SNMP 관리자가 요청

  • 네트워크를 모니터링하는 SNMP 관리자가 장치 성능 데이터를 확인하기위해 SNMP 에이전트에 SNMP Get 요청

3. SNMP 에이전트가 응답

  • SNMP 에이전트는 MIB에서 요청된 데이터를 찾아 SNMP 관리자에게 응답

4. 이벤트 발생 시 트랩 요청

  • 장치가 오프라인 상태가 되거나 성능이 변경되는 등의 이벤트가 발생
  • SNMP 에이전트는 SNMP 관리자에게 트랩 메시지를 보내 해당 이벤트를 알림

 

[표 1] SNMP 동작 방식 해석

구분 설명
Get Request Manager가 Agent에게 특정 정보 요청
Get Next Request 기본적으로 Get과 같은 의미, SNMP에선 각 정보가 계층 구조로 관리됨 그래서 Get Next는 특정 계층 아래에 있는 정보를 요청할 때 사용
Set Request Manager가 Agent에게 특정 값을 설정할 때 사용
Get Response Manager가 보낸 요청에 응답할 때 사용
Trap Agent에 설정된 특정 임계값을 벗어나는 경우(Event 발생)
Manager에게 알리기 위해 사용

 

SNMP 데이터 수집 방식

 

Polling

  • Manager가 Agent에게 정보를 요청하면 응답해주는 방식
  • 일정 주기로 네트워크 장비의 상태를 모니터링, 성능 데이터를 수집
  • Agent가 UDP/161 사용

Event Reporting

  • Agent가 이벤트 발생시, Manager에게 Trap 메세지로 알리는 방식
  • Manager가 UDP/162 사용

SNMP의 버전

 

SNMPv1

  • 1988년 표준화, 초기 버전
  • 네트워크 장비의 관리 및 모니터링을 위한 기본적 기능 제공
  • 데이터 형식은 ASN.1 (Abtract Syntax Notation One)로 인코딩되고, 전송은 UDP를 사용

SNMPv2c

  • 1993년 도입, SNMPv1의 개선된 버전
  • c는 "community-based"의 약자, SNMPv1과 동일한 보안 모델 사용
  • SNMPv1과 같이 커뮤니티 문자열을 사용하여 보안 강화는 이루어지지 않음

SNMPv3

  • 2002년에 도입된 최신 버전
  • 강력한 보안 기능 제공

[표 2] SNMP 버전별 특징

특성 SNMPv1 SNMPv2c SNMPv3
도입 연도 1988 1993 2002
보안 모델 커뮤니티 기반 보안 커뮤니티 기반 보안 사용자 기반 보안
주요 개선 사항 기본적인 네트워크 관리 기능 제공 향상된 성능 및 추가 메시지 유형 강력한 보안 기능 및 유연한 접근 제어
데이터 무결성 제공되지 않음 제공되지 않음 제공 (MD5, SHA)
데이터 암호화 제공되지 않음 제공되지 않음 제공 (DES, AES)
추가 메시지 유형 GET, GETNEXT, SET, TRAP GET, GETNEXT, SET, TRAP, GETBULK, INFORM GET, GETNEXT, SET, TRAP, GETBULK, INFORM
에러 보고 기본적인 에러 보고 향상된 에러 보고 향상된 에러 보고

 

MIB와 OID

 

MIB(Management Information Base)

 

개요

  • 네트워크 장비가 관리하는 모든 정보를 정의한 데이터베이스
  • SNMP를 통해 네트워크 관리 시스템(NMS)와 관리 대상 장비 간의 데이터 교환을 구조화
  • MIB는 네트워크 장비의 다양한 매개변수와 상태를 포함, 각 매개변수의 객체로 표현

구성

  • 객체(Object): 네트워크 장비의 특정 속성이나 상태를 나타냄 ex) CPU 사용률, 메모리 상태, 네트워크 인터페이스 상태 등
  • 객체 타입(Object Type): 각 객체의 데이터 타입과 의미를 정의 ex) 정수형, 문자열, 카운터형 등
  • 모듈(Module): 관련 객체들을 그룹으로 묶음, 각 모듈은 특정 장비나 장비의 특정 부분을 관리하기 위해 정의

확장

  • 표준 MIB: 표준화 기구에서 정의한 MIB ex) MIB-2 (RFC 1213)
  • 프라이빗 MIB: 특정 벤더나 조직에서 자체적으로 정의한 MIB ex (cisco MIB)

OID(Object Identifier)

 

개요

  • OID는 MIB 내의 객체를 고유하게 식별하는 식별자
  • 계층 구조를 가지고 있으며, 점(.)으로 구분된 숫자의 시퀀스(순차적)로 표현
  • OID는 전 세계적으로 고유, 특정 조직이나 표준화 기구에 의해 관리

사용

  • GET 요청: NMS가 특정 OID를 통해 Agent에게 데이터를 요청
  • SET 요청: NMS가 특정 OID를 통해 Agent의 데이터를 설정
  • TRAP 메시지: Agent가 특정 이벤트나 상태 변화를 나타내는 OID를 포함하여 NMS에게 알림을 보냄

MIB와 OID의 상호작용

  • MIB는 트리 구조로 구성, 각 노드는 객체를 나타내고, 각 객체는 OID로 식별됨
  • NMS는 특정 OID를 사용하여 Agent에게 데이터 요청 (GET)이나 설정 요청 (SET)을 보냄
  • Agent는 요청된 OID에 해당하는 데이터를 반환하거나, 설정 요청에 따라 장비의 설정을 변경

NMS(Network Management System 네트워크 관리 시스템)

주요 기능

 

모니터링 (Monitoring)

  • 네트워크 장비의 상태와 성능을 실시간으로 모니터링
  • SNMP를 통해 네트워크 장비에서 데이터 수집
  • 대시보드를 통해 네트워크의 상태를 시각적으로 표시

경고 및 알림 (Alerts and Notifications)

  • 네트워크에서 이상 상태나 장애가 발생하면 경고 메시지를 생성
  • 이메일, SMS, 푸시 알림 등을 통해 네트워크 관리자에게 알림
  • 경고 조건을 설정하여 특정 이벤트 발생 시 자동으로 알림 보냄

장애 관리 (Fault Management)

  • 네트워크 장비의 장애를 감지하고 기록
  • 장애의 원인을 분석 및 해결 방안 제시
  • 장애 발생 시 자동으로 대응 조취를 취함

성능 관리 (Performance Management)

  • 네트워크 장비의 성능 데이터를 수집 및 분석
  • 네트워크 대역폭, 처리량, 지연 시간 등의 성능 지표를 모니터링
  • 성능 보고서를 생성하여 네트워크의 상태를 평가

구성 관리 (Configuration Management)

  • 네트워크 장비의 설정을 관리 및 변경 사항 추적
  • 장비의 설정 백업과 복원 지원
  • 설정 변경 내역을 기록하여 감사 기능 제공

보안 관리 (Security Management)

  • 네트워크 보안 이벤트를 모니터링하고 대응
  • 보안 정책을 설정 및 적용
  • 침입 탐지 시스템 (IDS)와 통합하여 보안 위협을 감지

구성요소

 

데이터 수집기 (Data Collector)

  • SNMP, NetFlow, Syslog,WMI 등 다양한 프로토콜을 통해 네트워크 장비에서 데이터 수집
  • 수집된 데이터를 중앙 데이터베이스에 저장

중앙 데이터베이스 (Central Database)

  • 수집된 데이터를 저장 및 관리
  • 대용량 데이터를 처리할 수 있는 확장성이 필요

분석 엔진 (Analytics Engine)

  • 수집된 데이터를 분석하여 네트워크의 상태와 성능을 평가
  • 이상 패턴을 감지하고 경고를 생성

사용자 인터페이스 (User Interface)

  • 웹 기반 또는 데스크톱 기반의 대시보드를 제공하여 네트워크 상태를 시각적으로 표시
  • 사용자가 네트워크를 모니터링하고 관리할 수 있는 다양한 도구를 제공

장점

 

실시간 모니터링

  • 네트워크 상태를 실시간으로 모니터링

효율적인 관리

  • 네트워크 장비의 상태와 성능을 중앙에서 관리할 수 있어 효율적
  • 구성 관리 기능을 통해 장비 설정을 일관되게 유지 가능

신속한 문제 해결

  • 경고 및 알림 기능을 통해 문제 발생 시 즉시 알림을 받아 신속하게 대응
  • 장애 관리 기능을 통해 문제의 원인을 분석하고 해결 방안을 제시

성능 최적화

  • 성능 관리 기능을 통해 네트워크 성능을 모니터링하고 최적화 가능
  • 성능 보고서를 통해 네트워크의 상태를 주기적으로 평가

 

주요 NMS 도구 

 

1. SolarWinds Network Performance Monitor

  • 강력한 성능 모니터링과 경고 기능을 제공
  • 사용자 친화적인 대시보드와 다양한 보고서 기능을 갖추고 있음

2. Nagios

  • 오픈 소스 기반의 네트워크 모니터링 도구
  • 확장성과 유연성이 뛰어나 다양한 플러그인과 통합이 가능

3. Zabbix

  • 오픈 소스 기반의 네트워크 모니터링 및 관리 도구
  • 실시간 모니터링, 경고, 보고서 기능을 제공

4. PRTG Network Monitor

  • 사용자 친화적인 인터페이스와 강력한 모니터링 기능을 제공
  • 다양한 센서를 통해 네트워크 상태를 실시간으로 모니터링할 수 있음

5. ManageEngine OpManager

  • 포괄적인 네트워크 및 서버 모니터링 솔루션
  • 성능 모니터링, 장애 관리, 구성 관리 기능을 제공