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
- 포괄적인 네트워크 및 서버 모니터링 솔루션
- 성능 모니터링, 장애 관리, 구성 관리 기능을 제공
'Network > 이론' 카테고리의 다른 글
[네트워크] 방화벽(Firewall)이란? (0) | 2024.06.26 |
---|---|
[네트워크] IPv6란? (0) | 2024.06.24 |
[네트워크 - 이중화] FHRP(First Hop Redundancy Protocol)란? (1) | 2024.06.18 |
[네트워크] ARP(Address Resolution Protocol)란? (0) | 2024.06.10 |
[보안] ACL(Access Control List)란? (0) | 2024.04.19 |