기술(IT)

SNMP(Simple Network Management Protocol) 프로토콜

2019. 10. 31.
728x90

SNMP(Simple Network Management Protocol)는 IP 네트워크에서 관리되는 장치에 대한 정보를 수집 및 구성하고 장치 동작을 변경하도록 하는 인터넷 표준 프로토콜이다. 일반적으로 SNMP를 지원하는 장치에는 케이블 모뎀, 라우터, 스위치, 서버, 워크스테이션, 프린터 등이 포함된다. SNMP는 네트워크 모니터링을 위한 네트워크 관리에 널리 사용된다. SNMP는 시스템 상태와 구성을 설명하는 MIB(Management Information Base)로 구성된 관리 시스템에 변수 형태로 관리 데이터를 노출한다. 그런 다음 이러한 변수는 애플리케이션을 관리함으로써 원격으로 쿼리할 수 있다. 세 가지 중요한 버전의 SNMP가 개발 및 구축되었다. SNMPv1은 프로토콜의 원래 버전이다. 보다 최신 버전인 SNMPv2c와 SNMPv3는 성능, 유연성 및 보안의 향상을 특징으로 한다.

개요 및 기본 개념
SNMP의 일반적인 사용에서 관리자라고 불리는 하나 이상의 관리 컴퓨터는 컴퓨터 네트워크의 호스트나 장치 그룹을 모니터링하거나 관리하는 작업을 가지고 있다. 각 관리되는 시스템은 SNMP를 통해 관리자에게 정보를 보고하는 에이전트라는 소프트웨어 구성 요소를 실행한다. SNMP 관리 네트워크는 다음 세 가지 구성요소로 구성된다.

관리되는 장치
에이전트 – 중앙 관리 장치에서 실행되는 소프트웨어
NMS – 관리자에서 실행되는 소프트웨어

관리되는 장치는 노드별 정보에 대한 단방향(읽기 전용) 또는 양방향 액세스를 허용하는 SNMP 인터페이스를 구현하는 네트워크 노드다. 중앙 관리 기기는 노드별 정보를 NMS와 교환한다. 때로는 네트워크 요소라고 불리기도 한다. 중앙 관리 기기는 라우터, 액세스 서버, 스위치, 케이블 모뎀, 브리지, 허브, IP 전화, IP 비디오 카메라, 컴퓨터 호스트 및 프린터를 포함하되 이에 국한되지 않는 모든 유형의 장치가 될 수 있다. 에이전트는 중앙 관리 장치에 상주하는 네트워크 관리 소프트웨어 모듈이다. 에이전트는 관리 정보에 대한 현지 지식을 가지고 있으며 해당 정보를 SNMP 전용 형식으로 또는 SNMP에서 변환한다.


구현 이슈
SNMP 구현은 플랫폼 벤더마다 다르다. 일부 경우 SNMP는 추가된 기능이며, 코어 설계의 요소가 될 정도로 심각하게 받아들여지지 않는다. 일부 주요 장비 공급업체는 독점적인 CLI(명령줄 인터페이스) 중심 구성 및 제어 시스템을 과도하게 확장하는 경향이 있다.  따라서 많은 공급업체들은 SNMP 구현을 위해 패치를 발행해야 했다. SNMP 관리 스테이션에서 수신한 SNMP 트랩 메시지 또는 네트워크 장치의 SNMP 에이전트에서 수신한 요청을 해독하는 과정에서 다른 문제가 발견되었다. 네트워크 장치를 구성할 수 있는 SNMP의 강력한 쓰기 기능은 많은 벤더에 의해 완전히 활용되고 있지 않다. 부분적으로는 SNMPv3 이전 버전의 보안 부족 때문이며, 부분적으로는 많은 디바이스가 개별 MIB 개체 변경을 통해 구성할 수 없기 때문이다. SNMP 세트의 작동 요건은 정확히 구현하기 쉽지 않으며, 많은 벤더가 세트 지원을 생략하는 것을 선택했는데, 그 중에서도 개발 비용을 낮추고 코드 크기를 줄이기 위해서일 것이다. SNMP의 단순해 보이는 트리 구조와 선형 인덱싱이 플랫폼의 기본 설계 요소인 내부 데이터 구조 내에서 항상 충분히 잘 이해되지는 않을 수 있다. 따라서 특정 데이터 세트에서 SNMP 쿼리를 처리하면 CPU 활용도가 필요 이상으로 높아질 수 있다. 
이는 동일한 테이블 인덱싱 체계를 사용하지 않을 수 있는 여러 장치에서 정보를 가져올 때 상관 관계 문제를 일으킬 수 있다.


Version 1
SNMPv1은 SNMP 프로토콜의 초기 구현이다. SNMP는 인터넷의 대규모 배치와 그것의 상용화를 위한 조치를 취하기 위해 필요한 임시 프로토콜이라는 믿음에 근거하여 승인되었다.
SNMPv1은 널리 사용되고 있으며 인터넷 커뮤니티에서 사실상의 네트워크 관리 프로토콜이다.  버전 1은 보안이 허술하다는 비판을 받아왔다. 실제로 이 규격은 사용자 지정 인증을 사용할 수 있는 여지를 허용하지만 널리 사용되는 구현에서는 모든 SNMP 메시지를 진정한 SNMP 메시지로 식별하는 사소한 인증 서비스만 지원한다고 한다. 따라서 메시지의 보안은 메시지가 전송되는 채널의 보안에 의존하게 된다. 예를 들어, 조직은 자신의 내부 네트워크가 SNMP 메시지에 암호화가 필요하지 않을 정도로 충분히 안전하다고 생각할 수 있다. 이러한 경우, 클리어텍스트로 전송되는 커뮤니티 이름은, 원래의 사양에도 불구하고, 사실상의 암호로 보는 경향이 있다.

Version 2
단일 요청으로 대량의 관리 데이터를 검색하기 위한 반복적인 GetNextRequests의 대안인 GetBulkRequest를 도입하였다. SNMPv2에서 도입된 새로운 정당 기반 보안 시스템은 많은 이들이 지나치게 복잡한 것으로 간주하여 널리 채택되지 않았다. 이 SNMP 버전은 제안된 표준 성숙도 수준에 도달했지만 이후 버전에서는 쓸모없는 것으로 간주되었다.
사용자 기반 SNMPv2u는 RFC 1909–에 정의되어 있다.  이것은 SNMPv1보다 더 높은 보안을 제공하려고 하지만 SNMPv2의 높은 복잡성을 야기하지 않는 절충안이다. 

Version 3
SNMPv3는 암호 보안의 추가 외에 프로토콜에 대한 변경은 하지 않지만, 새로운 텍스트 규약, 개념, 용어 때문에 많이 달라 보인다. 가장 눈에 띄는 변화는 SNMP에 보안 및 원격 구성 향상 기능을 추가하여 SNMP의 보안 버전을 정의하는 것이었다. 이전 버전의 보안 부족으로 인해 네트워크 관리자는 구성, 회계 및 장애 관리에 텔넷 및 SSH와 같은 다른 수단을 자주 사용했다. SNMPv3는 보안과 관리라는 두 가지 주요 측면에 초점을 맞춘다. 보안 측면은 프라이버시를 위한 강력한 인증과 데이터 암호화를 제공함으로써 해결된다. 관리 측면의 경우 SNMPv3는 통지 발신자와 프록시 전달자 두 부분에 초점을 맞춘다. 또한 이러한 변경으로 SNMP 엔터티의 원격 구성 및 관리가 용이해졌으며 대규모 배포, 회계 및 장애 관리와 관련된 문제를 해결할 수 있었다.

LIST

댓글

추천 글