[Spring] SNMP

Posted by 신희준 on May 31, 2018


2018 - 05 - 31 (목)


SNMP는 무엇인가..

SNMP(Simple Network Management Protocol)은 IP네트워크상의 장치로부터 정보를 수집 및 관리하며, 또한 정보를 수정하여 장치의 동작을 변경하는데 사용되는 인터넷 표준 프로토콜이다.

목적은 SNMP를 통해 간단한 모니터링 프로그램을 만들고자 한다.

SNMP 는 네트워크 관리를 위한 용도로 쓰이는 프로토콜이며 대부분의 운영체제에서 사용되어 진다.

SNMP를 활용하기

  • 네트워크 구성 관리 : 즉, 네트워크상의 호스트들이 어떤 구조를 이루고 있는지 지도를 그리는게 가능하다.
  • 성능 관리 : 각 네트워크 세그먼트간 네트워크 사용량, 에러량, 처리속도, 응답시간 등 성능 분석에 필요한 정보를 얻어낼 수 있다.
  • 장비 관리 : SNMP 의 주목적은 네트워크관리이기도 하지만 시스템 정보를 얻어올 수 있기 때문에 장비관리까지 아우를 수 있다. 본인은 이 기능을 활용하여 장비의 정보를 가져오는 것을 목적으로 예제를 만들 계획이다.
  • 보안 관리 : 정보의 제어 및 보호기능을 제공한다.

SNMP를 통한 망 구성

SNMP는 단순히 프로토콜일 뿐이며 이를 활용해 실제 네트워크 관리 정보를 얻기위해서는 응용프로그램이 필요하다. 보통의 네트워크 프로토콜을 사용하는 애플리케이션과 같이 서버와 클라이언트로 구성된다.

  • 일반적으로 SNMP 망에서는 서버/클라이언트가 아닌 SNMP Manager / SNMP Agent 라고 불린다. Snmp Agent의 경우 관리대상이 되는 시스템에 설치되어서 필요한 정보를 수집하기 위한 SNMP 모듈이며 SNMP Mananger는 클라이언트같은 느낌이다.

MIB

SNMP는 네트워크를 관리하기 위한 프로토콜이기 때문에 무엇을 관리할 것인가 결정해줄 필요가 있다. 어떤 것을 관리해줄지 정한 후 이 것을 더 효과적으로 관리하기 위해 분류하는 것이 MIB(Management Information Base)라고 한다. 관리되어야할 자원 객체의 분류 정보를 말한다.

관리되어야할 객체는 시스템 정보, 네트워크 사용량, 네트워크 인터페이스 정보 등이 있다.

SNMP 프로토콜의 동작과 구성

SNMP는 버전 3까지 나온 상태이지만 버전 2가 널리 사용된다. SNMP는 기본적으로 네트워크 정보를 수집하는데 그 목적이 있고 수집하는 몇가지 각각 다른 방법이 있다.

  • GET : SNMP Manager 에서 Agent 로 특정 정보를 요청하기 위해 사용

  • GET NEXT : 기본적으로는 GET과 같은 일을 하지만 SNMP에서 각 정보들은 계층적 구조로 관리되기 때문에 특정 어떤 계층 아래의 정보를 가져오고 싶은 경우가 생길 수 있다. 이 때 사용한다.

  • SET : SNMP Manager에서 SNMP Agent 로 특정 값을 설정하기 위해서 사용한다.

  • TRAP : SNMP Agent에서 통보해야될 어떤 정보가 발생했을 때 SNMP Manager 에게 해당 상황을 알리기 위해 사용한다. 이 요청은 비동기적인 사건을 알리기 위해서 사용된다.