580 likes | 736 Views
Chapter 23. Simple Network Management Protocol (SNMP). CONTENTS. CONCEPT MANAGEMENT COMPONENTS SMI MIB SNMP MESSAGES UDP PORTS SECURITY. 23.1. CONCEPT. 2 3.1 개념. 2 3.1 개념. 관리자와 에이전트 관리자( manager) SNMP 클라이언트 프로그램을 수행하는 호스트 데이터베이스에서 값들을 읽어옴
E N D
Chapter 23 Simple Network Management Protocol (SNMP)
CONTENTS CONCEPT MANAGEMENT COMPONENTS SMI MIB SNMP MESSAGES UDP PORTS SECURITY
23.1 CONCEPT
23.1 개념 • 관리자와 에이전트 • 관리자(manager) • SNMP 클라이언트 프로그램을 수행하는 호스트 • 데이터베이스에서 값들을 읽어옴 • 라우터로 하여금 특정한 동작을 행하도록 함 (예, 재시동) • 에이전트(agent) • SNMP 서버 프로그램을 수행하는 라우터(또는 호스트) • 데이터베이스에 성능 정보를 유지 • 관리 과정에 기여
23.1 개념 • 관리자와 에이전트(계속) • 관리 • 관리자와 에이전트간의 간단한 대화에 의해 수행 • SNMP를 사용한 관리 • 관리자는 에이전트의 행동을 반영하는 정보를 요구하여 에이전트를 검사한다 • 관리자는 에이전트 데이터베이스에 있는 값을 리셋하여 에이전트가 작업을 수행하도록 한다 • 에이전트는 비정상적인 상황을 관리자에게 경고하여 관리 과정에 기여한다
23.2 MANAGEMENT COMPONENTS
23.2 관리 구성요소 SNMP defines the format of packets exchanged between a manager and an agent. It reads and changes the status (values) of objects (variables) in SNMP packets.
23.2 관리 구성요소 SMI defines the general rules for naming objects, defining object types (including range and length), and showing how to encode objects and values.
23.2 관리 구성요소 SMI defines neither the number of objects an entity should manage, nor names the objects to be managed nor defines the association between the objects and their values.
23.2 관리 구성요소 MIB creates a collection of named objects, their types, and their relationships to each other in an entity to be managed.
23.2 관리 구성요소 We can compare the task of network management to the task of writing a program.1. Both tasks need rules. In network management this is handled by SMI.2. Both tasks need variable declarations. In network management this is handled by MIB.3. Both tasks have actions performed by statements.In network management this is handled by SNMP.
23.3 SMI
23.3 SMI • SMI(Structure of Management Information) • SNMP를 위한 지침 • 기능 • 객체에 이름을 붙인다 • 객체에 저장된 데이터의 종류를 결정한다 • 네트워크 상의 전송을 위해 데이터를 어떻게 인코딩 할지를 보여준다
23.3 SMI • SMI • 객체 속성
23.3 SMI • 이름 • 트리 구조에 기초한 계층적 식별자인 객체 식별자를 사용 • 정수-점 표현 : SNMP에 의해 사용 • 예) 1.3.6.1.2.1 • 이름-점 표현 : 사람이 사용 • 예) iso.org.dod.internet.mgmt.mib • SNMP에서 사용되는 객체는 mib 객체 밑에 위치 → 식별자는 항상 1.3.6.1.2.1로 시작
23.3 SMI • 객체 식별자
23.3 SMI All objects managed by SNMP are given an object identifier. The object identifier always starts with 1.3.6.1.2.1.
23.3 SMI • 데이터 유형 • 저장되는 데이터 유형 • SMI는 ASN.1의 부분집합이면서 포함 집합
Type Size Description Integer 4 bytes A cardinal number between 0 and 232-1 String Variable Zero or more ASCII characters ObjectIdentifier Variable An object identifier represented in ASCII digits IPAddress 4 bytes An IP address made of four integers Counter 4 bytes An integer whose value and be incremented form zero to 4, 294, 967, 295; when it reaches its maximum value it wraps back to zero Gauge 4 bytes Same as Counter, but when it reaches its maximum value, it does nto wrap; it remains there until it is reset TimeTicks 4 bytes A counting value that records time in 1/100 sec-onds 23.3 SMI • 단순 유형
23.3 SMI • 구조적 유형 • Sequence • 반드시 같은 데이터 종류일 필요는 없는, 단순 데이터 유형들의 결합 • 예) 프로그래밍 언어에서의 구조체나 레코드의 개념 • Sequence of • 모두 같은 유형인 단순 데이터 유형들의 결합 • 모두 같은 유형인 sequence 데이터 유형들의 결합 • 예) 프로그래밍 언어에서의 배열의 개념
23.3 SMI • 개념적 데이터 유형
23.3 SMI • 인코딩 방식 • BER(Basic Encoding Rules) 표준 사용하여 전송되는 데이터를 인코딩
23.3 SMI • 인코딩 방식(계속) • Tag : 데이터 유형을 정의하는 한 바이트 필드 • Class : 데이터의 범위를 정의 • Format : 단순(0)/구조적(1) 데이터 유형 지정 • Number : 단순/구조적 데이터를 서브 그룹들로 나눈다
Data Class Format Number Tag(Binary) Tag(Hex) Integer 00 0 00010 00000010 02 String 00 0 00100 00000100 04 ObjectIdentifier 00 0 00110 00000110 06 Sequence sequence of 00 1 10000 00110000 30 IPAddress 01 0 00000 01000000 40 Counter 01 0 00001 01000001 41 Gauge 01 0 00010 01000010 42 TimeTicks 01 0 00011 01000011 43 23.3 SMI
23.3 SMI • 인코딩 방식(계속) • Length : 데이터의 길이를 규정 • 한 바이트 : 최상위 비트 0 • 한 바이트 이상 : 첫번째 바이트의 최상위 비트 1 • Value : 데이터의 값을 부호화
23.3 SMI • 예제 1
23.3 SMI • 예제 2 • String HI 정의
23.3 SMI • 예제 3 • 객체 식별자 1.3.6.1(iso.org.dod.internet) 정의
23.3 SMI • 예제 4 • IP 주소 131.21.14.8 정의
23.4 MIB
23.4 MIB • MIB(Management Information Base) • 각 에이전트는 관리자가 관리할 수 있는 모든 객체를 모아놓은 자신의 MIB를 갖는다 • 8개의 서로 다른 그룹으로 분류 • 각 그룹은 값 그리고/또는 테이블을 규정
23.4 MIB • MIB-2
23.4 MIB • MIB 변수 액세스 • Udp 그룹의 예 : 단순변수 4개, 레코드 열 1개
23.4 MIB • 단순 변수 • 그룹 식별자 + 변수의 식별자 : 변수 정의 udpInDatagrams ====> 1.3.6.1.2.1.7.1 udpNoPorts ====> 1.3.6.1.2.1.7.2 udpInErrors ====> 1.3.6.1.2.1.7.3 udpOutDatagrams ====> 1.3.6.1.2.1.7.4 • 실제 값/내용 : 인스턴스 접미사(0) 사용 udpInDatagrams.0 ====> 1.3.6.1.2.1.7.1.0 udpNoPorsts.0 ====> 1.3.6.1.2.1.7.2.0 udpInErrors.0 ====> 1.3.6.1.2.1.7.3.0 udpOutDatagrams.0 ====> 1.3.6.1.2.1.7.4.0
23.4 MIB • 테이블 • 테이블 식별자를 사용 • Udp 그룹 : 1개의 테이블 udpTable ====> 1.3.6.1.2.1.7.5 • 테이블의 엔트리(sequence) 정의 udpEntry ====> 1.3.6.1.2.1.7.5.1 • 엔트리에 있는 각 항목의 정의 udpLocalAddress ====> 1.3.6.1.2.1.7.5.1.1 udpLocalPort ====> 1.3.6.1.2.1.7.5.1.2 • 테이블의 특정 인스턴스를 읽기 위해 색인 추가 udpLocalAddress.181.23.45.14.23 ====> 1.3.6.1.2.1.7.5.1.1. 181.23.45.14.23
23.4 MIB • Udp 변수와 테이블
23.4 MIB • Udp Table에 대한 색인
23.4 MIB • 사전적 순서 • 객체 식별자는 사전적 순서로 되어 있다 • 열-행 규칙에 따라 배열 → 열 순으로 접근 • 관리자가 변수들의 조합을 첫번째 변수를 정의한 후 차례대로 읽는 것이 가능
23.4 MIB • 사전적 순서
23.5 SNMP
23.5 SNMP • SNMP(Simple Network Management Protocol) • 네트워크 관리에 SMI와 MIB를 모두 사용 • 관리자가 에이전트에서 정의된 객체의 값을 읽는다 • 관리자가 에이전트에서 정의된 객체에 값을 저장 • 에이전트가 비정상적 상황에 대한 경고 메시지를 관리자에게 보낸다
23.5 SNMP • SNMP PDU
23.5 SNMP • GetRequest • 변수의 값을 읽기 위하여 관리자(클라이언트)가 에이전트(서버)로 보내는 메시지 • GetNextRequest • 변수의 값을 읽기 위하여 관리자가 에이전트로 보내는 메시지 • 읽혀진 값 : 메시지에 정의된 ObjectID 바로 다음 객체의 값 • GetBulkRequest • 많은 양의 데이터를 읽기위해 보내는 메시지
23.5 SNMP • SetRequest • 관리자가 변수에 값을 설정하기 위해 전송하는 메시지 • Trap • 에이전트가 사건을 관리자에게 보고하기 위해 전송되는 메시지 • 예) 에이전트의 재시동 시간 보고 • InformRequest • 원격 관리자의 제어하에 있는 에이전트로부터 어떤 변수 값을 얻기 위해 한 관리자가 다른 원격 관리자에게 전송 • Report • 오류 유형을 보고하기 위해 사용
23.5 SNMP • SNMP PDU형식
23.5 SNMP • SNMP PDU 형식 • PDU 유형 : 유형 정리 • Request ID : 순서번호 • Error Status : 에이전트에 의해 보고되는 오류의 종류 • Non-repeaters : GetBulkRequest 만 사용 • Error Index : 오류를 일으킨 변수가 어느 것인지 알려주는 옵셋 • Max-repetition : GetBulkRequest에서만 사용 • VarBindList : 관리자가 읽기나 설정하기를 원하는 값을 갖는 변수들의 조합
Status Name Meaning 0 noError No error 1 tooBig Response too big to fit in one message 2 noSuchName Variable does not exist 3 badValue The Value to be stored is invalid 4 readOnly The value cannot be modified 5 genErr Other errors 23.5 SNMP • 오류 종류
23.6 MESSAGES