컴퓨터망 21) SNMP

zh025700·2022년 7월 8일
0

컴퓨터네트워크

목록 보기
21/26

컴퓨터망

21. Network management SNMP

SNMP(Simple Network Management Protocol)는 TCP/IP 프로토콜을 사용하여 인터넷에서 장치를 관리하기 위한 프레임워크이다
인터넷 모니터링 및 유지 관리를 위한 일련의 기본 작업을 제공한다

Concept

SNMP는 관리자와 에이전트의 개념을 사용한다
즉, 관리자(일반적으로 호스트)는 에이전트 집합, 일반적으로 라우터 또는 서버를 제어하고 모니터링한다

SNMP는 몇 개의 관리자가 에이전트 집합을 제어하는 응용 프로그램 수준 프로토콜이다
즉, SNMP는 관리되는 장치의 물리적 특성과 기본 네트워킹 기술을 고려해서 관리 작업을 자유롭게 한다
다른 제조사의 라우터로 연결된 서로 다른 LAN과 WAN으로 구성된 다른 인터넷에서 사용할 수 있다

Management Components

관리 작업을 수행하기 위해 SNMP는 SMI(Structure of Management Information) 및 MIB(Management Information Base)라는 두 가지 다른 프로토콜을 사용한다
즉, 그림과 같이 SNMP, SMI, MIB의 3가지 프로토콜의 협력을 통해 인터넷 관리가 이루어진다

SNMP의 역할

관리자에서 에이전트로 또는 그 반대로 보낼 패킷의 형식을 정의한다
또한 결과를 해석하고 통계를 생성한다
교환된 패킷에는 개체(변수) 이름과 상태(값)가 포함된다
SNMP는 이러한 값을 읽고 변경한다

SNMP는 관리자와 에이전트 간에 교환되는 패킷 형식을 정의한다
SNMP 패킷에서 객체의 상태(변수 값)를 읽고 변경한다

SMI의 역할

SNMP를 사용하려면 규칙이 필요하다
객체 이름 지정 규칙이 필요하다

SMI는 객체 이름 지정, 객체 유형 정의(범위 및 길이 포함), 객체 및 값 인코딩 방법 표시에 대한 일반 규칙을 정의한다

SMI는 규칙을 정의하는 프로토콜이다
그러나 SMI는 규칙만 정의한다
엔티티에서 관리되는 개체의 수나 어떤 개체가 어떤 유형을 사용하는지 정의하지 않는다
SMI는 객체의 이름을 지정하고 해당 유형을 나열하는 일반 규칙 모음이다
객체와 유형의 연관은 SMI에서 수행하지 않는다

MIB의 역할

관리할 각 엔티티에 대해 MIB는 객체의 수를 정의하고 SMI에서 정의한 규칙에 따라 이름을 지정하고 이름이 지정된 각 객체에 유형을 연결한다
MIB는 데이터베이스와 유사한 각 엔터티에 대해 정의된 개체 집합을 만든다

MIB는 관리할 엔터티에서 명명된 개체, 해당 유형 및 서로 간의 관계 컬렉션을 만든다

프로그래밍과 네트워크 관리 비교를 통한 이해

  • SMI, MIB는 형식이고 SNMP는 프로토콜이다

Overview

  • MIB는 수신된 UDP 사용자 데이터그램의 수를 보유하고 있는 객체를 찾는 역할을 한다
  • SMI는 객체의 이름을 인코딩하는 역할을 한다
  • SNMP는 GetRequest 메시지라고 하는 메시지를 만들고 인코딩된 메시지를 캡슐화하는 역할을 한다

SMI

management information structure는 네트워크 관리를 위한 구성 요소이다
기능은 다음과 같다

  1. 물건의 이름을 짓는다
  2. 개체에 저장할 수 있는 데이터 유형을 정의한다
  3. 네트워크를 통한 전송을 위해 데이터를 인코딩하는 방법을 보여준다

SMI는 SNMP에 대한 지침이다
객체를 처리하는 세 가지 속성인 이름, 데이터 유형 및 인코딩 방법을 강조한다

이름

SMI에서는 각 관리 대상 개체(예: 라우터, 라우터의 변수 등)에 고유한 이름이 있어야 한다
객체의 이름을 전역적으로 지정하기 위해 SMI는 트리 구조를 기반으로 하는 계층적 식별자인 object identifier를 사용한다

  • 트리 구조는 루트로 시작한다
  • 각 객체는 점으로 구분된 일련의 정수를 사용하여 정의할 수 있다
  • SNMP에서 사용되는 객체는 mib-2 객체 아래에 있으므로 해당 식별자는 항상 1.3.6.1.2.1로 시작한다

SNMP에 의해 관리되는 모든 개체에는 개체 식별자가 제공된다
객체 식별자는 항상 1.3.6.1.2.1로 시작한다

유형

MIB

MIB2(Management Information Base) 버전 2는 네트워크 관리에 사용되는 두 번째 구성 요소이다
각 에이전트에는 관리자가 관리할 수 있는 모든 개체의 모음인 고유한 MIB2가 있다
MIB2의 객체는 시스템, 인터페이스, 주소 변환, ip, icmp, tcp, udp, egp, transmission, snmp의 10가지 그룹으로 분류된다
이 그룹은 개체 식별자 트리의 mib-2 개체 아래에 있다
각 그룹에는 정의된 변수 및/또는 테이블이 있다

sys

  • 이름, 위치 및 수명과 같은 노드(시스템)에 대한 일반 정보를 정의

if

  • 인터페이스 번호, 물리적 주소 및 IP 주소를 포함하여 노드의 모든 인터페이스에 대한 정보를 정의

at

  • ARP 테이블에 대한 정보를 정의

ip

  • 라우팅 테이블, IP주소와 같은 IP와 관련된 정보를 정의

icmp

  • 송수신된 패킷 수 및 생성된 총 오류와 같은 ICMP와 관련된 정보를 정의

tcp

  • 연결 테이블, 타임아웃 값, 포트 수, 송수신 패킷 수 등 TCP와 관련된 일반 정보를 정의하는 객체

udp

  • 전송 및 수신된 포트 수 및 패킷 수와 같은 UDP와 관련된 일반 정보를 정의

snmp

  • SNMP 자체와 관련된 일반 정보를 정의

다른 변수에 액세스하는 방법을 보여주기 위해 udp 그룹을 예로 사용한다
udp 그룹에는 4개의 단순 변수와 1개의 레코드(테이블) 시퀀스가 있다
그림은 변수와 테이블을 보여준다

SNMP

  • SNMP는 인터넷 네트워크 관리에서 SMI와 MIB를 모두 사용한다
    • SMI, MIB로 저장된것을 읽어온다
  1. 에이전트에 정의된 객체의 값을 검색하는 관리자
  2. 에이전트에 정의된 객체에 값을 저장하는 관리자
  3. 이상 상황에 대한 경보 메시지를 관리자에게 보내는 에이전트

이를 허용하는 응용 프로그램이다

PDU

SNMPv3는 GetRequest, GetNext-Request, GetBulkRequest, SetRequest, Response, Trap, InformRequest 및 Report의 8가지 유형의 프로토콜 데이터 단위(또는 PDU)를 정의한다

GetRequest

  • 변수 또는 변수 집합의 값을 검색하기 위해 관리자(클라이언트)에서 에이전트(서버)로 전송

GetNextRequest

  • 변수 값을 검색하기 위해 관리자에서 에이전트로 전송

GetBulkRequest

  • 많은 양의 데이터를 검색하기 위해 관리자에서 에이전트로 전송
    SetRequest
  • 변수에 값을 설정(저장)하기 위해 관리자에서 에이전트로 전송

Response

  • GetRequest 또는 GetNextRequest에 대한 응답으로 에이전트에서 관리자에게 전송

Trap

  • 이벤트를 보고하기 위해 에이전트에서 관리자에게 전송

InformRequest

  • 원격 관리자의 제어 하에 있는 에이전트로부터 일부 변수의 값을 가져오기 위해 한 관리자에서 다른 원격 관리자로 전송

Report

  • 관리자 간의 일부 유형의 오류를 보고하도록 설계됨

FORMAT

  • 8개의 SNMP PDU에 대한 형식
  • GetBulkRequest PDU는 다른 PDU와 그림과 같이 두 가지 영역에 대해 다름

PDU TYPE

UDP PORTS

  • SNMP는 161 및 162 포트에서 UDP 서비스를 사용
  • 포트 161은 서버(에이전트)에서 사용하고 포트 162는 클라이언트(관리자)에서 사용

에이전트(서버)는 포트 161에서 passive open을 발행한 다음 관리자(클라이언트)의 연결을 기다린다

관리자(클라이언트)는 임시 포트를 사용하여 active open을 발행
요청 메시지는 임시 포트를 소스 포트로 사용하고 포트 161을 목적지 포트로 사용하여 클라이언트에서 서버로 전송
응답 메시지는 포트 161을 소스 포트로 사용하고 임시 포트를 목적지 포트로 사용하여 서버에서 클라이언트로 전송

관리자(클라이언트)는 포트 162에서 passive open을 발행
그런 다음 에이전트(서버)의 연결을 기다린다
보낼 트랩 메시지가 있을 때마다 에이전트(서버)는 임시 포트를 사용하여 active open을 발행
이 연결은 서버에서 클라이언트로 단방향이다

  • SNMP의 클라이언트-서버 메커니즘은 다른 프로토콜과 다르다
  • 클라이언트와 서버 모두 well known 포트를 사용
  • 또한 클라이언트와 서버 모두 무한히 실행
    • 그 이유는 요청 메시지는 관리자(클라이언트)에 의해 시작되지만 트랩 메시지는 에이전트(서버)에 의해 시작되기 때문

Security

  • SNMPv3에는 보안 및 원격 관리라는 두 가지 새로운 기능이 추가되었다

  • SNMPv3를 사용하면 관리자가 에이전트에 액세스할 때 하나 이상의 보안 수준을 선택할 수 있다

  • 관리자는 메시지 인증, 기밀성 및 무결성을 허용하도록 보안의 다양한 측면을 구성할 수 있다

  • SNMPv3는 또한 관리자가 실제로 장치가 있는 장소에 있을 필요 없이 보안 원격 구성을 허용한다

profile
정리

0개의 댓글