TCP/IP 통신망 특론 제 25장 단순 망 관리 프로토콜
목차 25.1 Introduction 25.2 SNMP 25.3 SMI (Structure of Management Information) 25.4 MIB (Management Information Base) 25.5 ASN.1 & BER 25.6 SNMPv2 25.7 SNMPv3 25.8 요약
25.1 Introduction TCP/IP 네트웍 관리의 개발 IAB : Internet Architecture Board(1988) HEMS SGMP SNMP SNMPv2 SNMPv3 CMOT SGMP (Simple Gateway Management Protocol) : Gateway를 모니터링하는 직접적인 방법 제공 HEMS (High-Level Entity Management System) : 인터넷 최초의 관리 모델인 HMP(Host Monitoring Protocol)의 일반화 version SNMP (Simple Network Management Protocol) : SGMP의 향상 version, 단기 개발 CMOT (CMIP over TCP/IP) : ISO가 네트웍관리를 위해 표준화한 protocol, service, database를 통합
Cont’d TCP/IP 네트웍 관리 구조 SNMP X Management Applications Instrumentation (MIB) Useful Protocols SNMP SNMP Agent BER Encoder/Decoder ASN.1 Encoder/Decoder BER Encoder/Decoder ASN.1 Encoder/Decoder 162 X 161 MIB-II-RFC1213 SMI-RFC1155 get-request get-next-request set-request get-response trap SNMP-RFC1157 Management Station Management Agent
Cont’d Management Station Management Agent MIB SMI SNMP stand-alone system으로 agent와 통신 관리자에게 network management 시스템에 대한 인터페이스 제공 Management Agent Management Station의 요구에 응답, 정보 제공 MIB Object(네트웍상에서 관리되는 resource의 단위)들의 집합 SMI MIB에서 변수를 참조하기 위해 사용된 일련의 공통 구조 및 식별 체계 SNMP Station과 Agent사이의 프로토콜
25.2 SNMP 단순 요구-응답 프로토콜 응용 계층 프로토콜 UDP 사용 신뢰성 부족 5개의 메시지로 구성
Cont’d SNMP Messages SNMP manager SNMP agent get-request get-response get-next-request get-response UDP port 161 set-request get-response trap UDP port 162
Cont’d Message Format IP 데이터그램 UDP 데이터그램 SNMP 메세지 공통 SNMP 헤더 get/set헤더 네트웍층 IP헤더 UDP 헤더 버전(0) 공동체 PDU 유형(0-3) 요구 ID 에러상황(0-5) 에러인덱스 이름 값 트랜스포트층 PDU 유형(0-3) 이름 값
Cont’d Message Format(continued) 버전 : 0 ( 실제 버전 숫자-1) PDU(Protocol Data Unit)유형 공동체 : 관리자와 대행자간의 패스워드 PDU 유형 이 름 1 2 3 4 get-request get-next-request set-request get-response trap
Cont’d 에러상황 에러 인덱스 : 에러를 일으킨 변수를 가리키는 정수 noSuchName, badValue, and readOnly 에러 상태 1 2 3 4 5 이 름 noError tooBig noSuchName badValue readOnly genErr 설 명 모든 것이 OK 대행자는 응답을 단일 SNMP 메시지에 맞출 수 없다 존재하지 않은 변수가 지정되었다 설정에서 무효인 값, 문맥이 지정되었다 관리자가 읽기만 가능한 값을 변경하려고 했다 그 밖의 에러
Cont’d 트랩 대행자로부터 관리자로의 메시지 UDP 포트 162로 전송 트랩 유형 이 름 설 명 1 2 3 4 5 6 트랩 유형 이 름 설 명 1 2 3 4 5 6 coldStart warmStart linkDown linkUp authenticationFailure egpNeighborLoss enterpriseSpecific 대행자가 자기 자신을 초기화 대행자가 자기 자신을 재 초기화 인터페이스가 가동상태에서 정지상태로 변화 SNMP 관리자로부터 무효인 공동체의 메시지를 받음 EGP 상대방이 정지상태로 변화 트랩의 정보에 관한 특정 코드 필드를 보는 것
25.3 SMI(관리 정보 구조) SMI RFC 1155 MIB에서 정의되고 만들어지는 Object들의 일반적인 틀 정의 Object 값을 encoding하는 표준기술제시
Cont’d 데이터 유형 INTIGER OCTET STRING DisplayString 제한 없는 정수(인터페이스의 MTU), 특정 값(flag), 최대값/최소값(포트번호) OCTET STRING 0 혹은 8 바이트 문자(각 바이트는 0~255사이) DisplayString A string of 0 or more 8-bit byte OBJECT IDENTIFIER ( 15번 TP ) NULL no value
Cont’d IpAddress PhysAddress Counter Gauge TimeTicks SEQUENCE 길이 4의 OCTET STRING PhysAddress 물리적 주소 지정(OCTET STRING) Counter 0~232-1(4,294,967,295) 까지 단조롭게 증가, 음이 아닌 정수 Gauge 0~232-1(4,294,967,295)사이의 음이 아닌 정수 TimeTicks 어떤 시점까지 수 백초의 시간을 count하는 계수기 SEQUENCE C languge의 구조체와 유사 SEQUENCE OF 모든 원소가 같은 데이터 유형을 갖는 벡터의 정의
25.5 MIB(관리 정보 베이스) 객체 식별자 식별자 그룹에 대해 책임을 갖는 조직체에 의해 할당되는 데이터 유형 10진 소수점에 의해 분리되는 정수들의 나열 트리 구조 MIB에 잇는 모든 변수는 1.3.6.1.2.1 로 시작 트리의 각 노드에 문자 이름 할당 iso.org.dod.internet.mgmt.mib
Cont’d ... ... ... ... ... ... ... root ccitt(0) iso(1) joint-iso-ccitt(2) org(3) dod(6) internet(1) 1.3.6.1 directory(1) mgmt(2) experimental(3) private(4) mib(1) 1.3.6.1.2.1 enterprises(1) system(1) interfaces(2) at(3) ip(4) icmp(5) tcp(6) udp(7) ... ... ... ... ... ... ...
Cont’d internet- directory(1) mgmt(2) experimental (3) private(4) OSI directory에서 향후 사용될 것을 위해 예약된 부분(X.500) mgmt(2) IAB에서 승인한 문서에서 정의된 객체들을 사용하기 위한 부분 experimental (3) Internet experiments에서 사용되는 객체를 지정하는데 사용되는 부분 private(4) 일방적으로 정의된 객체를 지정하는데 사용되는 부분
Cont’d MIB 관리자가 조회하거나 설정할 수 있는 정보 데이터 베이스 Mib(1) system(1) … tcp(6) Udp(7) 1.3.6.1.2.1.7 udpInDatagrams(1) udpNoPorts(2) udpInErrors(3) udpOutDatagrams(4) udpTable(5) udpEntry(1) udpLocalAddress(1) udpLocalPort(2)
UDP 대기자 테이블, 인덱스 = <udpLocalAddress>,<udpLocalPort> Cont’d UDP그룹 이름 데이터유형 R/W 설명 udpInDatagrams udpNoPorts udpInErrors udpOutDatagrams Counter 사용자 프로세스에 전달되는 UDP 데이터그램의 수 목적지 포트에 응용 프로세스가 존재하지 않는 수신 UDP 데이터 그램의 수 목적지 포트에 응용프로세스가 존재하지 않는 이외의 이유로 전달할 수 없는 UDP데이터그램의 수 송신된 UDP데이터그램의 수 UDP 대기자 테이블, 인덱스 = <udpLocalAddress>,<udpLocalPort> udpLocalAddress udpLocalPort ipAddress [0..65535] 이 대기자의 로컬 IP 주소 0.0.0.0은 대기자가 모든 인터 페이스상에서 데이터그램의 수신을 받겠다는 의사가 있는 것을 나타낸다. 이 대기자의 로컬 포트 번호
Cont’d Case 다이어그램 주어진 그룹내의 여러 MIB 변수들간의 관계 MIB 개발 과정에서 Packet에 대한 모든 데이터 경로가 밝혀졌는가를 확인 IP 층 udpInDatagrams udpNoPort udpInErrors udpOutDatagrams 응용계층
Cont’d 인스턴스 식별 MIB에 있는 각 변수는 SNMP가 그 변수 값을 가져오거나 설정하기 위해서 참조할 때 지정 단순변수참조 변수의 객체 식별자에 “.0”을 붙임 ex) 객체 식별자 : 1.3.6.1.2.1.7.1(udpInDatagrams) 참 조 : 1.3.6.1.2.1.7.1.0 문 자 이 름 : iso.org.dod.internet.mgmt.mib.udp.udpInDatagrams.0 생 략 : udpInDatagrams.0
Cont’d 테이블 참조 udpLocalAddress udpLocalPort BOOTP서버 0.0.0.0 67 161 520 SNMP RIP UDP 대기자 테이블 행 객체 식별자 생략된 이름 값 1.3.6.1.2.1.7.5.1.1.0.0.0.0.67 udpLocalAddress.0.0.0.0.67 udpLocalPort.0.0.0.0.67 1 0.0.0.0 67 1.3.6.1.2.1.7.5.1.1.0.0.0.0.161 2 161 1.3.6.1.2.1.7.5.1.1.0.0.0.0.520 3 520 udpLocalAddress.0.0.0.0.161 udpLocalPort.0.0.0.0.161 udpLocalAddress.0.0.0.0.520 udpLocalPort.0.0.0.0.520 각 행에 대한 참조
Cont’d Example 단순변수 조회 tcpdump 출력 sun % snmpi -a gateway -c secret snmpi> get udpInDatagrams.0 udpNoPorts.0 udpInDatagrams.0 = 616168 udpNoPorts.0 = 33 snmpi> quit 1 0.0 sun.1024 > gateway.161: GetRequest(42) 1.3.6.1.2.1.7.1.0 1.3.6.1.2.1.7.2.0 2 0.348875(0.3489) gateway.161>sun.1024: GetResponse(46) 1.3.6.1.2.1.7.1.0 = 616168 1.3.6.1.2.1.7.2.0 = 33
Cont’d 테이블 엑세스 sun % snmpi -a gateway -c secret snmpi> next udpTable udpLocalAddress.0.0.0.0.67=0.0.0.0 snmpi>next udpLocalAddress.0.0.0.067 udpLocalAddress.0.0.0.0.161=0.0.0.0 snmpi>next udpLocalAddress.0.0.0.0.161 udpLocalAddress.0.0.0.0.520=0.0.0.0 snmpi>next udpLocalAddress.0.0.0.0.520 udpLocalPort.0.0.0.0.67=67 snmpi>next udpLocalPort.0.0.0.0.67 udpLocalPort.0.0.0.0.161=161 snmpi>next udpLocalPort.0.0.0.0.520 snmpInpkts.0=59
25.6 ASN.1 & BER ASN(Abstract Syntax Notation) SNMP의 공식 사양 데이터와 데이터의 속성들을 설명하기 위한 공식 언어 ex) IpAddress의 ASN.1 정의 BER(Basic Encoding Rules) SNMP 메시지로의 실제 비트 변환 IpAddress :: = [APPLICATION 0] -- in network-byte order IMPLICIT OCTET STRING (SIZE (4))
25.7 SNMPv2 RFC 1441 get-bulk-request 추가 inform-request 추가 2개의 새로운 MIB 관리자가 효율적으로 큰 데이터 블록을 검색 inform-request 추가 관리자가 또 다른 관리자에게 정보를 전송 2개의 새로운 MIB SNMPv2 MIB & SNMPv2-M2M MIB(Manager-to-Manager) 향상된 보안 제공 인증과 프라이버시
25.8 SNMPv3 RFC 2271 ~ RFC 2275 IETF SNMPv3 WG 에서 표준화 진행 reference sites http://www.ietf.org/html.charters/snmpv3-charter.html http://www.snmp.com/
25.9 요약 SNMP MIB SMI SNMPv2, SNMPv3 관리자와 대행자간의 단순한 요구-응답 프로토콜 5개의 메시지로 구성 MIB 관리자가 조회하거나 설정할 수 있도록 대행자에 의해 유지되는 변수 정의 SMI MIB에서 정의되고 만들어지는 Object들의 일반적인 틀 정의 SNMPv2, SNMPv3