Transcript SNMP

SNMP
정현배
Network Management
전산자원의 중요성 증대
복잡해진 네트워크 관리구조

다양한 프로토콜, 네트워크 구성 인터페이스로 인
해 네트워크 복잡
서비스 개선

고속의 서비스와 안정적인 서비스 요구
사용자의 다양한 요구충족

성능, availability, 보안등의 사용자 요구
자원의 활용성 증대

분산된 네트워크 자원의 활용성을 모니터링, 제어
Network Management System

네트워크상의 자원들을 모니터링 하고 제
어하기 위한 도구로 네트워크 관리 정보를
입력받아 적당한 관리 동작
Monitor
information
Control
information
Network
Management
System
Reporting
Management
operation
Network Management System구조

Manager-agent 구조
 Agent : 각각의 네트워크 자원에 대한 정보를
수집(네트워크 자원에 있는 프로그램)
 Manager : 각각의 agent가 관리하는 정보를 수
집해 전체적인 정보를 관리하는 시스템
manager
agent
Hub
gateway
agent
workstation
agent
Network Monitoring



NMS를 이용한 네트워크 자원들의 상태를 관찰하
는것
agent의 내용을 manager에게 전달
모니터링 정보
 Static information

네트워크 구성, 구성 요소와 같은 쉽게 변하지 않는 정보
(port 번호 등)
 Dynamic information

네트워크 상태와 event에 의해서 변하는 정보 (패킷의 전
송량, 에러 개수 등)
 Statistical information

동적 정보의 통계치 (평균 전송량)
Network Monitoring

모니터링 방법
 Polling



Request – response 방식
Manager가 agent에게 원하는 정보 요구 agent 응답
SNMP에서 정보를 교환하는 주된 방법
 Event reporting



Manager의 요구 없어도 agent가 정보를 보내는 방
법
특별한 event가 발생했을 경우에 사용
SNMP에서는 trap이라 함
Network Monitoring

모니터링 방법
manager
agent
manager
agent
request
trap
response
Polling
Event reporting
Network Management
모니터링에 의한 관리

결함관리(fault management)
user
user
Fault management
manager
Data network
Remote
system
Network Management
모니터링에 의한 관리

결함관리(fault management)
 결함 처리과정




결함이 발생한 위치 파악(detect)
결함이 발생한 부분을 격리(isolate)
네트워크를 변경, 재구성(reconfigure)
결함일으킨 구성요소 수리, 교체(repair)
Network Management
모니터링에 의한 관리

Accounting management
 네트워크 자원에 대한 utilization 정보를 얻기
위해 사용용도에 따른 quota할당, 사용자를 구
분(identify)해서 사용자별로 관리내역 기록
 자원의 사용정도에 따른 이용료를 부과하기 위
해 필요한 기능
Network Management
모니터링에 의한 관리

성능 관리(performance management)
 네트워크 장비들과 링크에 대한 활용도를 조사, 가장 효
율이 높은 경로를 찾거나, 성능 저하가 있는 부분을 찾아
문제를 해결하는 기능
 네트워크 성능을 측정하기 위한 지표





가동률(availability)
응답시간(response time)
정확도(accuracy)
처리량(throuput)
효율(utilization)
Network Management
네트워크 제어 의한 관리
 네트워크 관리와 연관된 여러 가지 설정 값을 변화시키고
각 자원에 대한 관계를 정의

구성관리(configuration management)

관리하려는 대상을 정의, 대상들간의 관계를 설정해서 관
리자가 관리대상의 설정을 바꾸거나 관리정보를 가져오는
것을 쉽도록 도와주는 기능
 구성정보의 정의

네트워크 자원들에 대한 규격, 상태, 속성 등을 정의
 속성 값의 설정
 자원간 관계의 정의

자원간의 물리적인 연결성이나 포함관계, 상태 등을 정의
Network Management
네트워크 제어 의한 관리

보안관리(security management)

허용되지 않은 사용자들이 자원을 사용하는 것 방지
 보안관리의 고려사항



비밀성(secrecy)
 권한이 있는 사용자만 access하도록 함
무결성(integrity)
 정보를 아무나 변경시키지 못하도록 함
사용가능성(availability)
 정보를 사용할 수 있는 권한을 사용자별로 제한
Network Management
네트워크 제어 의한 관리

보안관리(security management)

허용되지 않은 사용자들이 자원을 사용하는 것 방지
 보안관리를 위한 기능





데이터를 암호화
암호화에 필요한 키를 생성하고 분산시켜 관리
사용자 인증(authentication)
네트워크 자원에 대한 access권한을 제어
보안정보와 감사정보 (audit records or security
logs) 를 모아 저장 점검
네트워크 관리 정보의 정의, 표현방법
SMI(Structure Management Information)
 관리대상이 되는 object를 정의하기 위한 schema
 Object가 가질 수 있는 다양한 type과 서로 다른 object
를 구분 짓기 위한 index로 MIB의 뼈대
MIB(Management Information Base)
 NMS가 관리하는 객체를 정의하고 객체의 특성을 기술해
놓은 데이터 베이스
 SMI의 기초아래 정의
 Tree구조로 구성, 관리되는 객체를 leaf 노드라 함
네트워크 관리 정보의 정의, 표현방법
ASN(Abstract Syntax Notation)
 시스템에 따라 사용하는 바이트 순서와 표현하는 방법이 다르
기 때문에 하나의 시스템에 의존적인 언어나 기계어로 SMI와
MIB를 표현하면 다른 시스템과 호환이 안됨
 호환 문제를 해결하기 위한 객체의 표준 표현방식
 데이터를 표현하기 위해 일반적인 데이터 구조를 가진 단순한
형태의 문법으로 이루어진 언어
변환규칙(Encoding rules)
 ASN으로 정의된 SMI와 MIB의 내용을 상대방 시스템에 전달하
기 위해 데이터를 상대방 시스템에 사용할 수 있는 형태로 변환
 Octet형태의 배열로 변환, Octet형태의 데이터를 원래의 ASN
형태로 변환가능 (decoding)
SNMP
(Simple Network Management Protocol)
 주로 TCP/IP를 관리하는데 사용되는 단순한 프
로토콜
 현재 가장 널리 사용
 1988년 draft로 상정
 1990년 인터넷 관리 프로토콜의 표준으로 제정
 그 후 대부분의 workstation과 bridge, router,
switch, hub등 네트워크 장비에 SNMP agent가
장착
SNMP
(Simple Network Management Protocol)
SNMP관리체제의 구조

Agent-Manager 구조
manager
SNMP
(Simple Network Management Protocol)
SNMP관리체제의 구조
 TCP/IP의 Application layer에 위치
 UDP이용 161, 162포트통해 메시지 교환
Manager process
request
response
Agent process
SNMP
SNMP
UDP
UDP
IP
IP
Link Layer
Link Layer
SNMP
(Simple Network Management Protocol)
SNMP관리체제의 구조
 SNMP메시지 종류

메시지 종류
Get-request
Get-next-request
Set-request
Get-response
Trap
Manger가 agent에 질의하면 agent는 응답을 return하는 형식
설명
Agent가 관리하는 MIB자료를 하나 가져올 것을 요청
Agent가 관리하는 MIB자료를 순차적으로 여러 개 가져올 것을 요청
Agent가 관리하는 MIB자료의 값을 설정
Manager의 질의에 대한 결과를 return
Agent에 특별한 이벤트가 발생한 경우 이를 manager에게 알림
SNMP
(Simple Network Management Protocol)
SNMP관리모형
 SNMP메시지 종류
Port:161
Get-Request
SNMP
Manager
Get-Next-Request
Port:161
Set-Request
Port:161
Get-Response
Port:161
Port:162
Trap
SNMP
Agent
SNMP
(Simple Network Management Protocol)
SNMP MIB

SMI(RFC1155)


SNMP MIB를 정의하기 위한 일반적인 구조
ANS.1 문법에 따라 객체들은 각각의 이름과 표기 문법, 다른 시스
템으로의 전송을 위한 인코딩규칙등을 가짐
 O-ID(Object identifier)


MIB내에서 관리객체를 유일하게 지정하는 식별자
객체가 구성하는 tree에 따라 할당되는 일종의 디렉토리
directory OBJECT IDENTIFIER ::= { internet 1 }
O-ID이름
Parent O-ID O-ID번호
 계층구조이므로 항상 자신의 이름과 번호를 가지고, 자신의 부모
를 가짐
directory : iso.org.dod.internet.directory
directory : 1.3.6.1.1
SNMP
(Simple Network Management Protocol)
SNMP MIB

SMI(RFC1155)
SNMP
(Simple Network Management Protocol)
SNMP MIB

SMI(RFC1155)




directory : OSI directory(X.500)에서 사용하는 객체
들
mgmt : IAB에서 승인하에 정의된 객체들(mib-2,
rmon등 네트워크 객체들)
experimental : 인터넷에서 실험적인 객체들
private : 특정한 목적으로 독립적으로 사용되는 객체
들
SNMP
(Simple Network Management Protocol)
SNMP MIB

SMI(RFC1155)
 Data Type

MIB의 객체를 정의하기 위한 데이터 형
 Networkaddress : 네트워크 인터페이스 카드마다할당
되는 주소를 표현
 Ipaddress : 32-bit의 ip 주소를 표현
 Counter : 0 ~ (2^32)-1까지 증가하는 데이터형
 Guage : 0 ~ (2^32)-1까지 증가혹은 감소
 Timeticks : 어느 시점까지 수백 초의 시간을 카운트
하는 계수기
 Opaque : 임의의 데이터형
SNMP
(Simple Network Management Protocol)
SNMP MIB

CMIB(Concise MIB RFC1212)


보통의 데이터 type과 값을 묶어서 Macro형을 정의
SNMP에서 관리하는 실제 객체의 구조는 Macro형
 Object type





MIB에서 관리하는 객체의 구조
Syntax : 객체의 abstract syntax 종류
Access : 객체에 access 할 수 있는 권한,
 read-only, read-write, write-only, not-accessible
Status : 구현된 MIB객체에 대한 지원상태. 상태에 따른 4
가지 옵션
Value notation : syntax에 해당하는 실제 값
SNMP
(Simple Network Management Protocol)
SNMP MIB

MIB-II(RFC1212)


SNMP프로토콜이 나온 후로 첫번째로 나온 MIB
TCP/IP상에서 관리되어야할 객체들에 대한 정의
 O-ID mib-2밑에 위치한 10개의 그룹






system : 시스템에 대한 전반적인 정보
interface : 네트워크 인터페이스의 정보
at : address translation table에 관한 정보
ip : 시스템에서 IP와 관련된 정보
icmp : ICMP와 관련된 정보
tcp : TCP와 관련된 정보
SNMP
(Simple Network Management Protocol)
SNMP MIB

MIB-II(RFC1212)




udp : UDP와 관련된 정보
egp : EGP와 관련된 정보
dot3 : 인터페이스 전송방법과 프로토콜정보(deprecated)
snmp : SNMP와 관련된 정보
 각 그룹은 단순 변수를 가지고, 단순변수가 실제의 값을
가진다
SNMP
(Simple Network Management Protocol)
SNMP MIB

MIB-II(RFC1212)




udp : UDP와 관련된 정보
egp : EGP와 관련된 정보
dot3 : 인터페이스 전송방법과 프로토콜정보(deprecated)
snmp : SNMP와 관련된 정보
SNMP
(Simple Network Management Protocol)
SNMP 메시지 형식

Community
 인증, 접근방침, proxy의 특성을 정의하는 하나의 agent
와 여러 manager사이의 관계이며, 각 agent를 기준으로
정의
 한 agent는 여러 community를 가질 수 있으나 그 agent
내에서 community각각의 이름은 서로 달라야 하고, 서
로 다른 agent가 같은 이름의 community를 사용할 수
있음
 Community 의 이 름 은 패 스 워 드 의 역 할 을 하 므 로
manager로 부터의 모든 메시지는 이름을 포함해야함
SNMP
(Simple Network Management Protocol)
SNMP 메시지 형식
manager
agent
Get sysDescr, community=‘public’
Community 검사
OK, my sysDescr=‘Cisco router’
관례적으로 공개하는
MIB 객체나, 동작에 대
해서는 ‘public’
community를 사용하고, Set sysDescr=‘bridge’, community=‘public’
SET과 같은 쓰기 동작이
나 private에 대해서 비밀
Community 검사
의 community를 적용
Not allowable, community incorrect
SNMP
(Simple Network Management Protocol)
SNMP 메시지 형식

Access policy
 각각의 community마다 MIB에 대한 각각 다른
형태의 권한으로 접근을 제어
MIB Access
Category
READ-ONLY
READ-WRITE
Not-Accessible
SNMP Access Mode
READ-ONLY
READ-WRITE
Get과 Trap연산 가능
Get, Set, Trap연산 가능
Get, Trap이 가능하고
Get, Set, Trap연산이 가능
그 값은 구현에 따라
하고 Get, Trap시 값은 구현
달라짐
에 따라 달라짐
사 용 불 가
SNMP
(Simple Network Management Protocol)
SNMP 메시지 형식

Proxy 서비스
 SNMP나 TCP/IP를 지원하지 않는 관리 대상을 위한
agent를 말하는 것으로 자신이 대신하는 관리 대상에 대
한 SNMP접근 방침이나 인증서비스를 제공
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)
IP datagram
UDP datagram
SNMP message
common
snmp header
IP
UDP
PDU
Version community
header header
type
Get/Set
snmp header
request error
ID
status
error
index
Variable to
Get/Set
name
value
…
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)
 request-ID

각 request 마다 유일한 ID를 주어 request를 구별
 error-status

Request를 처리하는 도중 발생한 예외를 명시
 error-index

기본적으로 0,0이 아닌 경우 에러원인에 대한 부가
정보를 제공
 Variable binding

Request 에 따른 변수의 리스트 (보통 O-ID와 해당
값)
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)
PDU
type
request
ID
0
0
GetRequest, GetNextRequest, SetRequest PDU
PDU
type
request errorID
status
GetResponse PDU
PDU
type
errorindex
name
value
variablebindings
name
value
…
variablebindings
request agent- generic-specific- timeID
addr
trap
trap stamp
GetRequest, GetNextRequest, SetRequest PDU
…
…
variablebindings
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 agent-addr

Trap을 생성하는 object의 ip주소
 generic-trap

미리 정의된 7가지 trap형식 중 하나
 specific-trap

더 세분히 trap의 본성을 나타내는 코드
 time-stamp

Tramp을 일으키는 네트워크 object의 마지막 초기화 될때
와 trap설정 사이의 시간
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 variable-binding

trap과 관련된 추가 정보, 구현 때 마다 이 필드의 중
요성은 달라짐
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 General-trap의 7가지 값


coldStart (0)
 송신하는 SNMP개체는 에이전트의 구성이나 프
로토콜 개체의 구현이 변경되는 경우에 스스로
재초기화 할 수 있음, 충돌이나 주요결함에 의한
예기치 않은 재시작
warmStart (1)
 송신하는 SNMP개체는 에이전트의 구성이나 프
로토콜 개체의 구현이 변경되는 경우에 관계없이
스스로 재시작 할 수 있음, 정해진 재시작
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 General-trap의 7가지 값


linkDown (2)
 에이전트의 통신 링크 중 하나에 결함이 생겼음
을 알림, Variable binding의 처음은 참조하고
자 하는 인터페이스의 ifIndex의 이름과 값
linkUp (3)
 에이전트의 통신 링크가 가동되었음을 알림,
Variable binding의 처음은 참조하고자 하는
인터페이스의 ifIndex의 이름과 값
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 General-trap의 7가지 값


authenticationFailure (4)
 송신하는 프로토콜 개체가 인증에 실패했다는
메시지를 받았음을 알림
egpNeighborLoss (5)
 송신 개체가 EGP의 동료일 때 EGP 이웃이 사라
졌거나 이웃 관계가 더 이상 존재하지 않을 때
이를 알림
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)

Trap
 General-trap의 7가지 값

enterpriseSpecific (6)
 송신 프로토콜 개체가 어떤 사업에 소속된 사
건이 발생했음을 인식했다는 것을 알림
 Trap PDU는 다른 PDU와 달리 응답 메시지를
이끌어 내지 않음
SNMP
(Simple Network Management Protocol)
PDU(Protocol Data Unit, 패킷)
GetRequest PDU
GetResponse PDU
SetRequest PDU
GetResponse PDU
GetNextRequest PDU
GetResponse PDU
Trap PDU