650 likes | 911 Views
snmpbulkget -v 2c -c public -IR -Oqs f1 system. Simple NW Mgmt Protocol. snmp. 연구소 이삼일. 2006-12-11, V1.1. 목차. 개요 MIB, SMI PDU, 명령어 , message 트랩 SNMP 어플리케이션과 툴 Net-SNMP RMON & Host MIB 부록.
E N D
snmpbulkget -v 2c -c public -IR -Oqs f1 system Simple NW Mgmt Protocol snmp 연구소 이삼일 2006-12-11, V1.1
목차 • 개요 • MIB, SMI • PDU, 명령어, message • 트랩 • SNMP 어플리케이션과 툴 • Net-SNMP • RMON & Host MIB • 부록 According to [Stallings], network monitoring is the most fundamental aspect of automated network management. 인젠 연구소: 완전변신 2006
네트워크 관리, 관리자, SNMP • 네트워크 관리 어플리케이션 • 네트워크 맵: 연결성, 토폴로지, 장치 상태를 표시 • 네트워크 부하 표시: 각 링크에 대한 현재 및 과거 사용량 • 에러 로그: 디바이스/링크 실패와 시간 • 성능 리포트 • 관리자의 역할 • 장치와 링크의 작동을 보장하기 위한 작동/성능 모니터링 • 최적의 성능을 위한 네트워크 튜닝 • 실패 시스템/소프트웨어/장치/링크 분리 및 수리 • 변경 또는 업그레이드를 위한 계획 수립 • SNMP 개념 • 매니저/에이전트 아키텍처, 관리 정보 기반 (MIB), 프로토콜 인젠 연구소: 완전변신 2006
SNMP 개요 • Internet Engineering Task Force (IETF)에 의해 1989 정의 • Internet Protocol (IP) 장치 관리 목적 • 에이전트: 관리 대상 프로토콜과 MIB 보유 • 매니저: 에이전트의 MIB 접근을 위해 메시지 교환 • MIB (Management Information Base) • 관리 되어야 할 특정한 정보, 자원 (객체) 의 집합체 • 에이전트에 저장되어 있는 데이터 (대상) • 데이터베이스로 통계와 제어의 표준 집합 • MIB-I은 더 이상 사용되지 않고 MIB-II 많이 사용 • MIB Object • 상태, 통계, 작동 설정들을 설명하는 값 • 각 벤더들은 필요에 따라 Custom MIB를 정의해서 사용 인젠 연구소: 완전변신 2006
SNMP 버전 • SNMP Version 1 (SNMPv1) • 3개 커뮤니티 - Read-only, Read-Write, Trap • SNMP Version 2 (SNMPv2) • 커뮤니티 문자기반으로 기술적으로 SNMPv2c로 불림 • SNMP Version 3 (SNMPv3) • Proposed Standard • 강력한 인증 및 관리 대상들끼리 Private 통신 인젠 연구소: 완전변신 2006
SNMP 통신 매니저 manager 에이전트 agent 조회 UDP 161 조회에 대한 응답 트랩 전송 UDP162 인젠 연구소: 완전변신 2006
커뮤니티 - Community • 에이전트와 매니저들간의 관계를 정의 • 접속 커뮤니티에 따라 읽기전용 또는 읽기쓰기로 접속 • 각각의 명령어는 커뮤니티 값을 갖고 있어야 함 • 보안상 중요 - 일종에 암호로 대접해야 함 인젠 연구소: 완전변신 2006
MIB, SMI Management Information Base Structure of Management Information
MIB 분류 • 정보 내용 분류 • 설정 파라메터 • 주소, 기능 활성화/비활성화, 타이머 값 등등 • 작동 상태 정보 • 인터페이스 상태, 작동 모드 등등 • 성능 통계 • 프레임 카운트, 바이트 카운트, 에러 로그 등등 • 표준 MIB • Ethernet, Token Ring, FDDI 등등 • IP, ICMP, UDP, TCP 등등 • Bridges 인젠 연구소: 완전변신 2006
MIB 구조 • 트리 형태로 표현 • Root: 이름이 안 붙여 졌으며 모든 MIB에 공통적임 • Subtree: 트리의 중간 • Leaf: 최종 단말 • 개별 MIB 개체에 접근 방법 - 명명 규칙 • 심볼릭: 약어 형태 표현 • 번호: 손쉬운 접근을 위해 사용 • 레이블: 심볼릭과 번호 혼합 사용 .iso.org.dod.internet.mgmt.mib-2.system .1.3.6.1.2.1.1 .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1) 인젠 연구소: 완전변신 2006
MIB 트리 Root . iso (1) ccitt (2) iso/ccitt (3) org (3) Subtree dod (6) internet (1) directory (1) mgmt (2) experimental (3) private (4) mib-2 (1) Leaf 인젠 연구소: 완전변신 2006
MS관련 MIB 인젠 연구소: 완전변신 2006
주요 mib-2 그룹 - 1.3.6.1.2.1 • .iso.org.dod.internet.mgmt.mib-2 인젠 연구소: 완전변신 2006
SMI • SMI - Structure of Management Information • MIB를 정의하고 구성하는 Framework • SMI v1 데이터 타입 • Integer, Octet string, Counter, Object Identifier, Null, Sequence (array), Sequence of (array of structure), IpAddress, NetworkAddress, Guage, TimeTicks • SMI v2 • V1대비 일부향상/추가 사항 • 1.3.6.1.6.3.1.1, or ...snmpV2...snmpMIBObjects에 포함됨 • 주석 -- 인젠 연구소: 완전변신 2006
SMI v1 데이터 타입 인젠 연구소: 완전변신 2006
SMI v2 추가 사항 • 객체 정의 향상 • UnitsParts, MAX-ACCESS, STATUS, AUGMENTS • Textual Conventions • DisplayString, PhysAddress, MacAddress, TruthValue, TestAndIncr, AutonomousType, VariablePointer, RowPointer, RowStatus, TimeStamp, TimeInterval, DateAndTime, StorageType, Tdomain, Taddress, • 새로운 데이터 타입 인젠 연구소: 완전변신 2006
PDU, 명령어, message Protocol Data Unit
SNMP Protocol Data Units - PDU • 정보가 패킷 형태로 전송됨 • 일반적으로 요청은 UDP 161, 트랩은 UDP 162 포트 이용 • SNMP V1: 5개 명령어 • 매니저 요청 • GetRequest 특정 OID 값 반환 • GetNextRequest 특정 OID의 다음 최종 노드 값 반환 • SetRequest 특정 값 설정 요청 • 에이전트 응답/메시지 전송 • GetResponse • Traps • SNMP V2: 4개 추가 명령어 • Get-Bulk, Notification, Inform, Report 인젠 연구소: 완전변신 2006
GetRequest 명령어의 첨자 - Instance • MIB 변수는 끝에 .0 왜 갖고있고 이것은 무엇일까? • MIB objects는x.y 형태로 정의되고 • x는 관리 대상에 대한 실제 OID이고 (예1.3.6.1.2.1.1.6 )y는 instance 식별자 이다. • scalar 객체 y는 항상 0 • 테이블의 레코드로 정의 되지 않은 것 • 테이블 경우 instance 식별자로 특정 레코드 선택 가능1은 첫 번째 레코드, 2는 두 번째 레코드 등등 • 예) ifTable 객체 경우 값을 참조해 보기 위해 0이 아닌 instance식별자를 사용해야 한다. 인젠 연구소: 완전변신 2006
Ver. No. CommunityString PDU Type Request ID Variable Bindings … SNMP Message SNMP PDU UDPHeader Actual Data (DNS, RPC, TFTP) IPHeader Actual Data (TCP/UDP follows ) DstAddr Src Addr Type Actual Data ( IP , TCP follows ) CRC 인젠 연구소: 완전변신 2006
SNMP Message - 예) Net-SNMP snmpwalk 인젠 연구소: 완전변신 2006
SNMP Message 분석 - Ethereal 이용 인젠 연구소: 완전변신 2006
SNMP PDU 패킷 분석 다음에 그림으로 작성 인젠 연구소: 완전변신 2006
트랩 장애 및 상황 통보
Traps • MIB V1 traps - TRAP-TYPE, V2 traps - NOTIFICATION-TYPE • 일반적인 트랩 - Generic • 0 ColdStart, 1`WarmStart • 2 LinkDown, 3 LinkUp • 4 AuthenticationFailure • 5 egpNeighborLoss Exterior Gateway Protocol (EGP) • 6 enterpriseSpecific • 기타 트랩 • 에이전트 정보 • Enterprise(sysObjectID), Agent-addr(NetworkAddress), Time-stamp(sysUpTime) • 사용자 정의 • Specific-trap, Variable-bindings, Vendor-specific 인젠 연구소: 완전변신 2006
Trap arguments • 포트, SNMP 버전, 수신자 호스트 (IP 주소), 커뮤니티 • Enterprise OID • 송신자 호스트 (IP 주소) • 프락시를 통해서 보내질 수 있음으로 실제 송신자를 중복 포함 • 일반 trap 번호 • 일반 0 <-> 5 , 회사 지정 6 • 특수 trap 번호 • 일반 트랩 경우 생략 또는 0, 최종 노드의 OID 추천 • Timestamp • 경과시간 (네트워크 대상 시작에서 트랩 발생 시간) • OID_1, type_1, value_1: 실제 인젠 연구소: 완전변신 2006
Trap arguments: Enterprise OID • 루트 - .1 포함 전체 OID로 트랩 번호는 불포함 • 예) 회사 번호가 2789 경우, 트랩을 위해 그룹 5000 만든 경우,그리고 특수 trap 1234을 보내고자 할 경우,enterprise OID는 .1.3.6.1.4.1.2789.5000 이다. • 일반 트랩 경우, enterprise ID를 임의 사용 가능 • 하지만 실제 enterprise ID로 설정하는 것 권장 • Public MIB에 몇 개의 특수 trap이 존재 • 가장 혼동되는 경우이며 enterprise OID처럼 보이도록 구성 • 예) rdbmsOutOfSpace (RDBMS MIB에 정의)OID .1.3.6.1.2.1.39.2.2 (...mib-2...rdbmsOutOfSpace)트랩을 보내기 위해서는 SNMPv2 notification으로, rdbmsTraps까지 모든 OID를enterprise OID로 사용 entire object ID는특수 trap 번호로 사용 인젠 연구소: 완전변신 2006
Trap 처리관련 설정- 예) HP OpenView 인젠 연구소: 완전변신 2006
오라클 SNMP Trap • oraListenerTraps: oraListenerStateChange • Objects: {oraListenerState } • 범위: 2 (only), 중요도: 매우 중요, 표시: 알람 • rdbmsTraps: rdbmsStateChange • Objects:{rdbmsRelState } • 범위: 5 (only), 중요도: 매우 중요, 표시: 알람 • oraAgentTraps: oraAgentEventOcc • Objects: 여러 개 존재 (oraAgentEvent로 시작, 여기서는 생략) • 범위: 다양 N/A, 중요도: 매우 중요, 표시: 알람 • EventName, EventID, EventService, • EventTime, EventSeverity, EventUser, • EventAppID, EventMessage, EventArguments, • EventResults 인젠 연구소: 완전변신 2006
MS 이벤트 뷰어 및 트랩 연계성 • 이벤트 형식: 경고 • 이벤트 원본: Net-SNMP Trap Handler • 이벤트 범주: 없음 • 이벤트 ID: 100 • 날짜: 2005-03-14 • 시간: 오후 4:48:15 • 사용자: N/A • 컴퓨터: PC-SAMILLEE • 설명: • 다음 정보는 이벤트의 일부입니다. 192.168.1.106: Enterprise Specific Trap (.17) Uptime: 0:00:00.00, • .1.3.6.1.2.1.1.6.0 = Hex-STRING: C5 D7 BD BA C6 AE . 인젠 연구소: 완전변신 2006
SNMP 어플리케이션과 툴 기능 및 주요 제품 리스트
NMS 분류 및 리스트 Network management software • SNMP 에이전트 • Net-SNMP (UCD-SNMP), HP Extensible SNMP Agent, Sun Microsystems, Concord SystemEDGE, Microsoft, SNMP Research • NMS suites • OpenNMS, Castle Rock SNMPc, HP OpenView NNM, HP OpenView ITO, Tivoli Netview, BMC, CA Unicenter TNG Framework, Veritas NerveCenter, OpenRiver, GxSNMP, Tkined • 요소 매니저 (특정 벤더 관련) • Sun Management Center, CiscoWorks 2000, 3Com Total Control, Aprisma (Cabletron 장비용, 이전 이름 Spectrum) • 추이분석 - Trend-analysis • 지원 소프트웨어 인젠 연구소: 완전변신 2006
NMS 분류 및 리스트 Network management software • 추이분석 - Trend-analysis • MRTG, Cricket, Concord eHealth, Trinagy (DeskTalk) TREND, InfoVista • 지원 소프트웨어 • Perl, SNMP Support for Perl Net-SNMP Perl Module, Net-SNMP C Library • WILMA, A3Com, SNMP++, Netcool, Network Computing Technologies Trap Receiver 인젠 연구소: 완전변신 2006
NMS - 설정 • HP OpenView Network Node Manager • SNMP Essential, 2001, O'Reilly에서 설명 • Castle Rock SNMPc Enterprise Edition • SNMP Essential, 2001, O'Reilly에서 설명 인젠 연구소: 완전변신 2006
SNMP Agent - 설정 • Parameter 설정 • 설정 가능parameter: • sysLocation, sysContact, sysName, Read-write and read-only community, Trap destination • 보안 사항 • 커뮤니티 이름은 암호와 같이 취급해야 한다. • 커뮤니티 이름은 Clear-text 형태로 전송된다. • 이럴 경우 스니핑 프로그램에 취약하며 대책으로 • 외부 네트워크에 연결된 상황을 제거 • VPN을 통해 외부에서 접속 • SSL을 이용한 웹 관리자를 통해 외부에서 접속 • 에이전트 설정 실습 • Win 95/98, WindowsAgents • Net-SNMP, Cisco Devices, HP OpenView Agent, APC Symetra, Concord SystemEDGE Agent 인젠 연구소: 완전변신 2006
Windows: SNMP 에이전트 서비스 컴퓨터관리자 -> 서비스 SNMP 서비스 에이전트 트랩 보안 인젠 연구소: 완전변신 2006
Windows: SNMP Trap Service 컴퓨터관리자 -> 서비스 • 로컬/원격 SNMP 에이전트가 만든 트랩 메시지를 받아,이 컴퓨터에서 실행 중인 SNMP 관리 프로그램에 메시지 전달 • SMS 및 기타 다른 툴 필요 인젠 연구소: 완전변신 2006
값 추출 및 설정 Polling & Setting • 단순 MIB 값 추출 • HP OpenView 예제 • Net-SNMP 예제 • 다중 MIB 값 추출 • OpenView MIB Tree 예제 • Net-SNMP Tree 예제 • MIB 값 설정 • OID와 Instance ID 둘 다 정확히 지정해야 함 • 오류 응답 (에러관련 메시지) - Error responses 인젠 연구소: 완전변신 2006
SNMP agent: Error Responses (예 Net-SNMP) 인젠 연구소: 완전변신 2006
값 추출 및 임계 값 Polling & Thresholds • 내부에서 값 추출 - Internal Polling • Remote Monitoring (RMON) • 외부에서 값 추출 - External Polling • OpenView • 데이터 수집 및 표시, 그래프, 데이터 수집 및 임계 값 • Castle Rock SNMPc • MRTG (Open Source Tool) 인젠 연구소: 완전변신 2006
Net-SNMP 소개
Net-SNMP 개요 • IPv4/IPv6지원 SNMP v1, v2c, v3관련 어플리케이션 집합 • 명령줄 툴 - applications • SNMP 통보/트랩 수신 위한 데몬 (snmptrapd) • SNMP 질의에 응답하는 확장 에이전트 (snmpd) • 그래픽 MIB 브라우저 (tkmib) - Tk/perl 사용 • 새로운 SNMP 어플리케이션 개발용 라이브러리 - C, perl APIs 인젠 연구소: 완전변신 2006
일반 명령 분류 • 툴 분류 • 정보 추출single requests (snmpget, snmpgetnext) multiple requests (snmpwalk, snmptable, snmpdelta) • 환경 정보 조작 (snmpset) • SNMP 장치 정보 집합 추출 (snmpdf, snmpnetstat, snmpstatus) • MIB 내용/구조 표시 - OID 숫자<->문자 변환 (snmptranslate) • 트랩 발생 (snmptrap) • 기타 • encode_keychange, traptoemail 인젠 연구소: 완전변신 2006
에이전트 데몬 - snmpd • snmpd - SNMP 질의에 응답하는 확장 에이전트 • 다양한 MIB modules 내장 • 확장성 • 동적 로드 모듈 • 외부 스크립트 및 명령어 • SNMP multiplexing (SMUX)과 Agent Extensibility (AgentX) 프로토콜 • 데몬 실행 • 윈도우 서비스로 등록: snmpd -register • 콘솔에서 실행: snmpd -Lo • snmpd.conf - 환경 설정 • 설정 출력하여 snmp.conf 및 snmpd.conf 위치 확인 (주의) • snmpd -Dread_config -H 2> config.txt 인젠 연구소: 완전변신 2006
트랩 - snmptrap, snmptrapd • snmptrapd - 통보/트랩 수신/처리 • syslog, NT Event Log, text 파일 저장 • SNMP management system 전달 • 외부 프로그램에 전달 • 실행 • 윈도우 서비스로 등록: snmptrapd -register • 콘솔에서 실행: snmptrapd -OS -Lo • snmptrap - 트랩 보내기 • 객체정보를 포함하려면 SNMP 에이전트가 실행 되고 있어야 한다. • snmptrap -v 1 -c public localhost .1.3.6.1.4.1.231.231 pc-samillee 6 17 '' sysLocation.0 s "테스트" • snmptrap -v 2c -c public localhost'' .1.3.6.1.4.1.231.231 ifIndex i 2 ifOperStatus i 1 sysLocation s "테스트" 인젠 연구소: 완전변신 2006
환경 설정 예제 • snmp.conf • mibdirs C:/network/net-snmp/share/snmp/mibs • persistentDir C:/network/net-snmp/snmp/persist • tempFilePattern C:/network/net-snmp/temp/snmpdXXXXXX • snmpd.conf • syslocation "잠실, 서울 - JamSil, Seoul" • syscontact "이삼일 - Samil Lee" • rocommunity public default .1.3.6.1.2.1 • rwcommunity private 127.0.0.1 .1.3.6.1.2.1 • snmptrapd.conf • ignoreAuthFailure true • outputOption n • #logOption o 인젠 연구소: 완전변신 2006
MIB 설정 파일 추가 • MIB관 파일들 위치 확인 • 예) C:\network\net-snmp\share\snmp\mibs\ • 해당 파일 MIB 파일을 위 폴더로 다운로드 • MIB 파일 다운로드 사이트 • http://www.assure24.com/databases/snmp-mib • 모든 MIB 파일을 로딩할 수 있도록 환경 변수 설정 • Set MIBS=all 인젠 연구소: 완전변신 2006
정보추출 명령어 • 스칼라 데이터 • snmpget, snmpgetnext, snmpwalk • snmpget -v 2c -c public -IR f1 system.sysDescr.0 • snmpgetnext -v 2c -c public -IR f1 sysDescr • snmpwalk -v 2c -c public -IR -OS f1 system • snmpbulkget -v 2c -c public -C r5 f1 sysDescr • 벡터 데이터 • snmpbulkget, snmpbulkwalk, snmptable • snmpbulkget -v 2c -c public -IR -OS f1 interfaces • snmpbulkget -v 2c -c public -IR -OS f1 ifTable • snmpbulkwalk -v 2c -c public -IR -OS f1 ifTable • snmptable -v 2c -c public -IR -OS f1 ifTable 인젠 연구소: 완전변신 2006
특정 값 추출 및 내용 분석 • 원래 통신상의 추출 명령어에 의한 반환 • snmpwalk -v 2c -c public -On f1 ifOperStatus • .1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1) • .1.3.6.1.2.1.2.2.1.8.65539 = INTEGER: up(1) • 위 결과 표시 중에서 값의 의미 해석은 MIB 파일을 확인 해야 함 • NetSNMP 파싱 (해석) • snmpwalk -v 2c -c public f1 ifOperStatus • RFC1213-MIB::ifOperStatus.1 = INTEGER: up(1) • RFC1213-MIB::ifOperStatus.65539 = INTEGER: up(1) • 반환 값 해석을 위해 해당 MIB 파일 내용 검색 • RFC1213-MIB 파일에서 내용 검색 (ifOperStatus) 인젠 연구소: 완전변신 2006