본문 바로가기
IT기술

SNMP(Simple Network Management Protocol)란 무엇인가

by romydady 2024. 6. 14.

 

 

SNMP 프로토콜의 역사와 개요

SNMP 프로토콜의 탄생

SNMP(Simple Network Management Protocol)는 1980년대 초반부터 개발되기 시작했습니다. 당시 TCP/IP 프로토콜이 널리 보급되면서 네트워크 관리의 필요성이 대두되었습니다. 이에 따라 1987년 SGMP(Simple Gateway Monitoring Protocol)라는 초기 네트워크 관리 프로토콜이 등장했습니다.

SGMP는 네트워크 장치들의 상태 정보를 수집하고 관리할 수 있었지만, 기능이 제한적이었습니다. 이후 IETF(Internet Engineering Task Force)에서 SGMP를 발전시켜 SNMP 프로토콜을 개발했습니다. SNMP는 SGMP의 한계를 극복하고 보다 강력한 네트워크 관리 기능을 제공하도록 설계되었습니다.

SNMP 프로토콜의 첫 버전인 SNMPv1은 1988년에 RFC 1065, 1066, 1067로 표준화되었습니다. 이후 SNMPv2(1993년)와 SNMPv3(1999년)가 차례로 개발되면서 SNMP의 기능과 보안성이 지속적으로 향상되었습니다.

SNMP 프로토콜의 개요

SNMP는 IP 네트워크에서 다양한 네트워크 장치들의 정보를 수집하고 관리하기 위해 사용되는 표준 프로토콜입니다. 네트워크 관리자들은 SNMP를 통해 라우터, 스위치, 서버, 컴퓨터 등의 성능과 상태 정보를 모니터링하고 구성을 변경할 수 있습니다.

SNMP는 클라이언트-서버 모델을 기반으로 동작합니다. 관리 시스템(Manager)이 클라이언트 역할을 하며, 관리 대상 장치(Agent)가 서버 역할을 합니다. 관리자는 에이전트에게 정보를 요청하고, 에이전트는 관리 대상 장치의 정보를 수집하여 관리자에게 전달합니다.

이를 위해 SNMP는 MIB(Management Information Base)라는 데이터베이스를 사용합니다. MIB에는 네트워크 장치의 관리 정보가 정의되어 있으며, 관리자와 에이전트 간 통신에 활용됩니다.

SNMP의 주요 기능으로는 GET(정보 요청), SET(구성 변경), TRAP(이벤트 알림) 등이 있습니다. 이를 통해 네트워크 관리자는 중앙에서 다수의 네트워크 장치들을 효과적으로 모니터링하고 관리할 수 있습니다.

이처럼 SNMP 프로토콜은 1980년대 초반부터 개발되기 시작하여 지속적으로 발전해왔으며, 현재 IP 네트워크 관리의 핵심 프로토콜로 자리잡고 있습니다. 다양한 기능과 보안 강화를 통해 SNMP는 네트워크 관리 분야에서 필수적인 역할을 하고 있습니다

SNMP 구성 요소

SNMP 프레임워크는 다음과 같은 주요 구성 요소로 이루어져 있습니다:

  1. SNMP Manager (관리자):
    • SNMP 관리 시스템으로, 네트워크 장치들을 모니터링하고 관리하는 역할을 합니다.
    • 관리 대상 장치(Agent)에게 정보 요청, 구성 변경 등의 명령을 내립니다.
  2. Agent Device(관리 대상 장치):
    • 관리되는 네트워크 장비로, 주로 라우터, 스위치, 서버 등이 해당됩니다.
    • Manager의 요청에 따라 자신의 상태 정보를 수집하여 Manager에게 전달합니다.
    • 자체적으로 이벤트 발생 시 Manager에게 TRAP 메시지를 보내 알림을 전달합니다.
  3. MIB 데이터베이스(Management Information Base):
    • 네트워크 장치의 관리 정보를 정의하고 저장하는 데이터베이스입니다.
    • Manager와 Agent 간 통신 시 MIB에 정의된 객체 식별자(OID)를 사용합니다.
    • MIB는 SMI(Structure of Management Information)에 따라 구조화되어 있습니다.
  4. SMI (Structure of Management Information):
    • MIB 내 객체들의 구조와 표현 방식을 정의하는 규칙 및 언어입니다.
    • 객체의 이름, 타입, 접근 권한 등을 정의하여 MIB 구조를 체계화합니다.

이와 같은 SNMP 구성 요소들이 상호작용하며 네트워크 관리 기능을 수행합니다. Manager는 Agent로부터 수집한 정보를 바탕으로 네트워크 상태를 모니터링하고, 필요 시 Agent에게 구성 변경 명령을 내릴 수 있습니다. 이를 통해 네트워크 관리자는 중앙에서 효과적으로 네트워크를 관리할 수 있습니다.

반응형

SNMP 주요 기능 및 동작, 버전별 차이

SNMP의 주요 기능

  1. 모니터링 (Monitoring):
    • SNMP Manager는 Agent로부터 네트워크 장치의 상태 정보를 수집합니다.
    • 수집된 정보에는 CPU 사용률, 메모리 사용량, 트래픽 통계 등이 포함됩니다.
    • 이를 통해 네트워크 관리자는 실시간으로 네트워크 상태를 모니터링할 수 있습니다.
  2. 구성 관리 (Configuration Management):
    • SNMP Manager는 Agent에게 구성 변경 명령을 내릴 수 있습니다.
    • 이를 통해 네트워크 관리자는 원격으로 장치의 설정을 변경할 수 있습니다.
    • 예를 들어 라우터의 라우팅 테이블, 방화벽 규칙 등을 변경할 수 있습니다.
  3. 장애 관리 (Fault Management):
    • Agent는 자체적으로 이벤트를 감지하면 TRAP 메시지를 Manager에게 전송합니다.
    • TRAP 메시지에는 장애 발생 정보, 임계치 초과 등의 내용이 포함됩니다.
    • Manager는 이를 통해 신속하게 장애를 감지하고 대응할 수 있습니다.
  4. 성능 관리 (Performance Management):
    • SNMP를 통해 수집된 성능 지표 데이터를 분석하여 네트워크 병목 현상을 파악할 수 있습니다.
    • 이를 바탕으로 네트워크 용량 계획, 트래픽 최적화 등의 조치를 취할 수 있습니다.
  5. 보안 관리 (Security Management):
    • SNMPv3에서는 인증, 암호화, 접근 제어 등의 보안 기능이 강화되었습니다.
    • 이를 통해 SNMP 통신 과정에서의 무단 접근 및 정보 유출을 방지할 수 있습니다.

SNMP는 네트워크 장치의 상태 모니터링, 원격 구성 관리, 장애 감지, 성능 최적화, 보안 관리 등 다양한 기능을 제공합니다. 이를 통해 네트워크 관리자는 효과적으로 네트워크를 관리할 수 있습니다. 

SNMP의 주요 동작

1. GET

  • SNMP GET 명령은 SNMP Manager가 SNMP Agent에게 정보를 요청하는 기능입니다.
  • Manager는 특정 MIB 객체의 값을 읽어오기 위해 GET 명령을 사용합니다.
  • 예를 들어 라우터의 CPU 사용률, 메모리 사용량 등의 정보를 GET 명령으로 가져올 수 있습니다.
  • GET 명령의 문법은 snmpget -v2c -c <커뮤니티명> <IP> <OID> 와 같습니다.

2. SET 

  • SNMP SET 명령은 SNMP Manager가 SNMP Agent에게 정보를 설정하는 기능입니다.
  • Manager는 특정 MIB 객체의 값을 변경하기 위해 SET 명령을 사용합니다.
  • 예를 들어 라우터의 인터페이스 설정, 방화벽 규칙 등을 원격으로 변경할 수 있습니다.
  • SET 명령의 문법은 snmpset -v2c -c <커뮤니티명> <IP> <OID> <타입> <값> 과 같습니다.

3. TRAP

  • SNMP TRAP은 SNMP Agent가 SNMP Manager에게 비동기적으로 이벤트를 전송하는 기능입니다.
  • Agent는 특정 이벤트 발생 시 (예: 장애 감지, 임계치 초과 등) TRAP 메시지를 Manager에게 보냅니다.
  • TRAP 메시지에는 이벤트 정보, 원인 등이 포함되어 있어 Manager가 신속하게 대응할 수 있습니다.
  • TRAP 기능을 통해 Manager는 모든 장치를 폴링하지 않고도 중요한 이벤트를 파악할 수 있습니다.

4. INFORM

  • 트랩과 유사하지만 NMS로부터 수신 확인을 추가합니다(SNMPv2 이상에서 사용 가능).

5. RESPONSE

  • NMS의 GET, SET 및 기타 요청에 대한 응답으로 에이전트가 전송합니다.

SNMP GET, SET, TRAP 기능은 네트워크 관리에 매우 중요한 역할을 합니다. GET과 SET을 통해 관리자는 장치의 상태를 모니터링하고 설정을 변경할 수 있으며, TRAP을 통해 신속한 장애 감지와 대응이 가능합니다. 이러한 SNMP 기능들은 네트워크 관리의 효율성과 생산성을 크게 향상시킵니다. 

SNMP 버전 비교

  1. SNMPv1 (RFC 1157)
    • 최초 SNMP 버전으로 1988년 처음 등장했습니다.
    • 단순한 구조와 기능을 가지고 있습니다.
    • 보안이 취약하여 커뮤니티 문자열을 통한 인증만 지원합니다.
  2. SNMPv2 (RFC 1441)
    • 1993년 등장한 SNMP 버전으로 SNMPv1의 기능을 확장했습니다.
    • 대량의 데이터 전송, 에러 처리 등 개선된 기능을 제공합니다.
    • 보안 기능은 SNMPv1과 유사하여 여전히 취약합니다.
  3. SNMPv3 (RFC 3411-3418)
    • 2002년 등장한 SNMP 버전으로 보안이 크게 강화되었습니다.
    • 사용자 기반 보안(USM), 메시지 무결성, 암호화 등의 기능을 제공합니다.
    • 인증, 무결성, 기밀성 등 강력한 보안 기능을 갖추고 있습니다.
    • 관리 프레임워크와 보안 모델이 분리되어 유연성이 높습니다.

SNMP 버전 간 주요 차이점

  • 보안: SNMPv1/v2는 커뮤니티 문자열 기반 인증으로 취약하지만, SNMPv3는 사용자 기반 인증, 암호화 등 강력한 보안 기능을 제공합니다.
  • 기능: SNMPv2는 SNMPv1 대비 대량 데이터 전송, 에러 처리 등 기능이 향상되었습니다. SNMPv3는 보안 기능이 강화되었습니다.
  • 호환성: SNMPv1/v2는 호환성이 높지만, SNMPv3는 이전 버전과 호환되지 않습니다.
  • SNMP의 보안 취약점을 해결하기 위해 SNMPv3에서는 다음과 같은 보안 기능이 강화되었습니다:
    • 인증: 사용자 기반 보안 모델(USM)을 통해 사용자 인증 기능 제공
    • 암호화: 메시지 암호화를 통해 데이터 기밀성 보장
    • 무결성: 메시지 무결성 검증으로 데이터 변조 방지

최신 SNMP 버전인 SNMPv3를 사용하는 것이 가장 안전하고 효과적인 네트워크 관리 방법입니다. 보안이 중요한 환경에서는 SNMPv3의 사용을 적극 권장합니다. 

SNMP 프로토콜의 제약사항

SNMP 프로토콜의 제약사항

  1. 보안 취약성:
    • SNMPv1/v2는 커뮤니티 문자열 기반 인증으로 보안이 취약합니다.
    • 누구나 쉽게 커뮤니티 문자열을 알아낼 수 있어 무단 접근이 가능합니다.
  2. 확장성 제한:
    • SNMP는 UDP 기반으로 동작하므로 대규모 네트워크에서 확장성이 낮습니다.
    • 많은 수의 디바이스를 관리하기 어려울 수 있습니다.
  3. 실시간 모니터링 한계:
    • SNMP는 폴링 방식으로 정보를 수집하므로 실시간 모니터링에 어려움이 있습니다.
    • 폴링 주기가 길어지면 실시간 상황 파악이 어려워집니다.
  4. 복잡한 MIB 구조:
    • SNMP는 관리 정보 베이스(MIB)를 사용하는데, MIB 구조가 복잡합니다.
    • MIB 구조를 이해하고 관리하는 것이 어려울 수 있습니다.

NetFlow

NetFlow는 SNMP의 제약사항을 극복하기 위해 등장한 프로토콜입니다. NetFlow의 주요 특징은 다음과 같습니다:

  1. 보안 강화:
    • NetFlow는 IP 주소 기반 인증으로 보안이 강화되었습니다.
    • 불법적인 접근을 효과적으로 차단할 수 있습니다.
  2. 확장성 향상:
    • NetFlow는 TCP 기반으로 동작하여 대규모 네트워크에서도 안정적으로 동작합니다.
    • 많은 수의 디바이스를 관리할 수 있습니다.
  3. 실시간 모니터링 지원:
    • NetFlow는 플로우 기반 데이터 수집으로 실시간 모니터링이 가능합니다.
    • 폴링 주기에 구애받지 않고 실시간 상황 파악이 가능합니다.
  4. 단순한 구조:
    • NetFlow는 SNMP에 비해 상대적으로 단순한 구조를 가지고 있습니다.
    • 관리와 운영이 SNMP보다 용이합니다.

SNMP와 NETCONF의 차이점

  • 프로토콜 방식: SNMP는 UDP 기반의 질의-응답 방식인 반면, NETCONF는 SSH/TLS 기반의 RPC 방식을 사용합니다.
  • 데이터 모델링: SNMP는 MIB(Management Information Base)를 사용하지만, NETCONF는 YANG 데이터 모델을 사용하여 더 유연하고 확장 가능한 데이터 모델링이 가능합니다.
  • 기능: SNMP는 주로 모니터링에 사용되지만, NETCONF는 설정 관리에 특화되어 있습니다.

NETCONF의 주요 장점

  1. 설정 관리 효율성: NETCONF는 XML 기반의 구조화된 데이터 모델을 사용하여 네트워크 장비의 설정을 체계적으로 관리할 수 있습니다.
  2. 자동화 지원: NETCONF는 API 기반의 프로그래밍 인터페이스를 제공하여 네트워크 자동화를 지원합니다.
  3. 오류 처리 개선: NETCONF는 트랜잭션 기반의 오류 처리 기능을 제공하여 설정 변경 시 발생할 수 있는 오류를 효과적으로 관리할 수 있습니다.
  4. 확장성: YANG 데이터 모델을 사용하여 다양한 벤더의 장비 정보를 효과적으로 모델링할 수 있습니다.
  5. 보안 강화: SSH/TLS 기반의 안전한 통신 채널을 제공하여 보안성이 향상됩니다.

NETCONF는 SNMP의 한계를 극복하고 네트워크 자동화와 설정 관리를 위한 새로운 패러다임을 제시하고 있습니다. 특히 NFV(Network Function Virtualization) 기술에서 NETCONF-YANG 구조가 널리 활용되고 있습니다.

YANG은 SNMP의 단점을 보완하기 위해 개발된 데이터 모델링 언어

  1. 확장성 향상:
    • YANG은 XML 기반의 데이터 모델링 언어로, SNMP의 MIB 구조보다 확장성이 뛰어납니다.
    • 새로운 기능 및 데이터 모델을 쉽게 추가할 수 있습니다.
  2. 가독성 및 관리 용이성:
    • YANG은 사람이 읽고 이해하기 쉬운 구조를 가지고 있습니다.
    • MIB 구조에 비해 YANG 모델을 이해하고 관리하기 쉽습니다.
  3. 다양한 프로토콜 지원:
    • YANG은 NETCONF, RESTCONF 등 다양한 프로토콜과 연계하여 사용할 수 있습니다.
    • 프로토콜 간 호환성이 높아 유연한 네트워크 관리가 가능합니다.
  4. 실시간 모니터링 지원:
    • YANG은 NETCONF와 함께 사용되어 실시간 모니터링이 가능합니다.
    • 폴링 방식의 SNMP보다 효과적인 실시간 모니터링이 가능합니다.

YANG은 SNMP의 제약사항을 극복하고 확장성, 가독성, 프로토콜 호환성, 실시간 모니터링 등의 기능을 강화한 데이터 모델링 언어라고 할 수 있습니다.

SNMP 설정 예

시스코 스위치 SNMP 설정

  • 활성화 및 커뮤니티 문자열 설정:
    • snmp-server community public ro - 읽기 전용 커뮤니티 문자열 "public" 활성화
    • snmp-server community private rw - 읽기-쓰기 커뮤니티 문자열 "private" 활성화
  • SNMP 트랩 수신자 구성:
    • snmp-server host 192.168.100.139 version 2c public - SNMPv2c 트랩을 IP 주소 192.168.100.139로 전송

아리스타 스위치 SNMP 설정

  • 활성화 및 커뮤니티 문자열 설정:
    • snmp-server community public ro - 읽기 전용 커뮤니티 문자열 "public" 활성화
    • snmp-server community private rw - 읽기-쓰기 커뮤니티 문자열 "private" 활성화
  • SNMP 트랩 수신자 구성:
    • snmp-server host 192.168.100.139 version 2c public - SNMPv2c 트랩을 IP 주소 192.168.100.139로 전송

주니퍼 스위치 SNMP 설정

  • 활성화 및 커뮤니티 문자열 설정:
    • set snmp community public - 읽기 전용 커뮤니티 문자열 "public" 활성화
    • set snmp community private authorization read-write - 읽기-쓰기 커뮤니티 문자열 "private" 활성화
  • SNMP 트랩 수신자 구성:
    • set snmp trap-group my-trap-group targets 192.168.100.139 - SNMPv2c 트랩을 IP 주소 192.168.100.139로 전송

주요 스위치 제조사별로 SNMP 설정 방법이 다소 차이가 있지만, 기본적인 활성화, 커뮤니티 문자열 설정, 트랩 수신자 구성 등의 과정은 유사합니다. 각 제조사의 문서를 참고하여 네트워크 환경에 맞게 SNMP를 구성하시기 바랍니다.

 

 

 

반응형

댓글