SNMP Framework and OpenNMS and joeSNMPHanyang University HPC OT Lab 김민석AgendaPART Ⅰ - SNMP(Simple Network Management Protocol) Framework Background Introduction Operations Agent SMI MIB PART Ⅱ - OpenNMS Introduction Architecture Screenshot PART Ⅲ - joeSNMP Introduction Architecture MechanismBackgroundNetwork Management 정의 적절한 비용으로 실시간, 동작성능, 서비스 품질 등의 요구 사항들을 만족시키기 위한 망과 요소 자원들을 감시, 폴링, 시험, 구성, 분석, 제어하기 위하여 하드웨어, 소프트웨어, 인간요소 등을 배치하고 통합하고 조정하는 것 Motivation 이질적인 네트워크 장치들을 분산 환경에서 관리해야 함 급격히 증가하는 네트워크를 관리하기 위한 프로토콜이 절실히 필요 Category 성능관리 장애관리 구성관리 계정관리 보안관리Introduction to SNMPSNMP network device사이에서 management information을 교환하기 위한 application-layer protocol. Components NMS(Network Management System) or Manager Agent Protocol 출현 배경 '88년 초 IAB(Internet Architecture Board)에서 표준화 작업 SGMP(Simple Gateway Monitoring Protocol, RFC 1028)가 근간 Vesrsions SNMPv1 SNMPv2c 몇가지 operation 추가 SMIv2 도입 보안 강화 SNMPv3 강력한 보안Introduction to SNMPStandard RFC1157 Simple Network Management Protocol (SNMP) - HISTORICotocol Operations for the Simple Network Management Protocol (SNMP) RFC3417 Transport Mappings for the Simple Network Management Protocol (SNMP) RFC3418 Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)Introduction to SNMPNetwork Management SystemManaged DevicesCommunityManaged DeviceAgentMIBNetwork Management SystemMIB(Management Information Base)MIB Managed Device가 가지고 있는 여러가지 정보들을 트리형태로 가지고 있는 개념적 Database 모듈로 분산 DNS Server MIB(RFC 1611) Mail Monitoring MIB(RFC 2249) Agent는 MIB를 구현 Object IDentifier Managed Object(Node)는 Object ID를 가진다 자신의 부모 이름에 점(dot)를 추가한후 자신의 이름을 추가하는 것으로 표현 1.3.6.1 iso.org.dod.internet MIB는 SMI(Structure of Management Information)로 표현MIBSMI(Structure of Management Information)SMI Define managed objects and their behavior Attributes Name : numeric or string Type and syntax Managed Object의 타입을 표현 ASN.1(Abstract Syntax Notation One) 이용 SNMP는 다른 system 사이에서의 표현방식에 대한 문제점을 보완하기위해 ASN.1의 일부를 사용하여 해결함 machine-independent Encoding BE서 다음 MIB 객체 인스턴스의 값을 가져온다 set : 하나 또는 그 이상의 MIB 객체 인스턴스의 값을 세팅한다 get-response : Agent가 Manager에게 응답할때 trap : Agent로부터 trap 발생시get-requestget-responseget-next-requestget-next-responseset-requestset-responsetrapUDP port 162UDP port 161UDP port 161UDP port 161ManagerAgentPDU (Protocol Data Unit) FormatsFields PDU Type specifies the type of PDU transmitted Request ID SNMP request type Error Status error 발생시 error의 수와 종류를 포함 response operation에서만 사용됨, other operation에서는 zero Error Index error가 발생한 변수의 위치를 알리는 정수 값PDU typerequest-id00GetRequest, GetNextRequest, SetRequest, SNMPv2-Trap, InformRequest PDUPDU typerequest-iderror-statuserror-indexResponse PDUversioncommunityPDUSNMP messagename1value1name2value2......name+nname1value1name2value2......name+nvalue+nvalue+nPDU (Protocol Data Unit) FormatsField Enterprise trap을 생성하는 managed object 의 OID Agent Address trap을 생성하는 object의 IP 주소 Generic Trap Type 미리 정의된 trap 형식 중의 하나 0:coldStart – 초기화(변경) 1:warmStart – 초기화 2:linkDown – 통신 링크 실패 3:linkUp D Tool을 사용한 graphical analysis Daemons특정 임계값에 도달한 애트리뷰트 값에 근거하여 노드/서비스 감시.threshdThreshold service daemonSNMP 트랩(이벤트) 핸들.trapdSNMP trap daemon실시간으로 데이터를 수집하여 관리되는 노드/서비스의 사용자 정의 카테코리에 가용성 정보 제공.rtcdRTC manager daemon관리되는 노드/서비스를 정기적으로 등록하여 작동 상태 결정.pollerdPoller daemon이벤트를 결합하여 각 관리되는 노드/서비스에 outage 뷰 제공.outagedOutage manager daemon외부 공지 수행.notifdNotification daemon다른 컨커런트 태스크에서 나온 이벤트의 관리 및 (RDBMS에) 저장eventdEvents manager daemon관리되는 네트워크 노드의 초기 및 지속적인 발견.discoveryDiscovery daemonOpenNMS에 DHCP 클라이언트 기능 제공.dhcpdDHCP daemon발견된 노드에서 가능한 서비스를 검사capsdCapability daemon관리되는 노드에서 데이터 수집.collectdCollection daemon자동 액션 실행 장치. 인커밍 이벤트에 근거한 자동화된 액션.actiondAction daemonDescriptiondaemon 이름Concurrent TaskOpenNMS - ArchitectureOpenNMS-MainOpenNMS – Nodes of OutageOpenNMS – Adding Nodes(Discovery setting)discovery-configuration.xmlOpenNMS – Adding Nodes(Poller Setting)poller-configuration.xmlOpenNMS-MainOpenNMS – Web Server MonitoringOpenNMS-MainOpenNMS – Performance ResultsOpenNMS-MainOpenNMS – Eventn related details from the SnmpSession and SnmpTrapSession. SnmpPortal.Receiver class Defines the inner class that monitors the datagram socket and receives all the PDU responses.joeSNMP – SnmpParameters classSnmpParameters class is used to define the parameters for an SnmpSession Includes read/write community strings protocol version ASN.1 encoder used to encode/decode transmissionsjoeSNMP – SnmpPeer classSnmpPeer class 커뮤니케이션 하는 agent를 표현 SnmpSession에서 remote agent를 정의할때 사용 peer의 주소와 포트뿐만 아니라 retries와 timeout값도 정의 Parameter를 정의하지 않으면 SnmpParameter의 기본 생성자를 사용한 인스턴스가 defaultjoeSNMP – SnmpVarBind classSnmpVarBind class SNMP 변수들을 정의 SNMP 변수는 이름(SnmpObjectId)과 값(SnmpSyntax)으로 정의joeSNMP – SnmpSyntax interfaceSnmpSyntax interface Manager와 Agent 사이에서 이동하는 데이터들은 필히 implement int, counter, string, etc.. Encoding과 Decoding method 정의joeSNMP – SnmpPduPacket classSnmpPduPacket class Base class for all Protocol Data Unit (PDU) implementationsSNMP Get-Request OperatorSNMP Get-Request Operator(Sessiow}
The Design and Performance of a Real-time CORBA Event ServiceHanyang University HPC OT Lab 김민석AgendaIntroduction Overview of the OMG CORBA Event Service Overview of TAO's Real-time Event Service An Object-Oriented Framework for Real-time Event Service DispatchingIntroductionOO techniques are not suitable for RT systems? However, many RT applications domains can use the benefits of flexible and open distributed object computing architectures This paper descrives the design and performance of a real-time Event ServiceCORBA Event ServiceThe CORBA Event Service model Simplifies application software by allowing Decoupled communications between objects Asynchnous event delivery Distributed group communication Lacked features in RT applications Real-time event dispatching and scheduling Periodic event processing Efficient event filtering Correlation mechanism This paper focuses on the push-modelConventional Avionics Application ArchitectureAircraft Sensors 주기적으로 센서 데이터 생성 Sensor Proxies For d Appropriate Sensor Proxy I/O Façade Depend on data from one or more Sensor Proxies Sensor proxy I/O Façade(aircraft position) application objects(navigation)Overview of Conventional Avionics Application ArchitectutreOverview of the OMG CORBA Event ServiceAlleviating Drawbacks with Conventional Avionics ArchitectureObserver PatternLacks several important features required by RT applicationsFeatures missing in the CORBA Event ServiceSupporting Guarantees for RT Event Dispatching and scheduling Event(H) must run before I/O Event(L)Features missing in the CORBA Event ServiceSupporting Centralized Event Filtering and Correlation Consumers can execute only when an event arrives from a specific supplierFeatures missing in the CORBA Event ServiceSupporting Periodic Processing Periodic processing is not supported in standard COS Event Service implementationsTAO's RT Event Service ArchitectureRT Event Channel Plays the same role as standard Event Channel Factory interface(externally) Consuation object allow consumers and suppliers to connect and disconnect from the channelTAO's RT Event Service ArchitectureSubscription and Filtering Module Standard Event Channel broadcasters Reasons why TAO implements filtering in an Event Channel Relieves consumers Reduces networking load filter at the supplier dependency Filtering Ways Supplier-based filtering consumers register for certain supplier using source ID field Type-based filtering using event type field(enum) Combined supplier/type-based filtering type-based subscription tables for every supplierTAO's RT Event Service ArchitecturePriority Timers Proxy Manages all timers Cooperates with the RT Scheduler Heap-based O(logN)TAO's RT Event Service ArchitectureEvent Correlation To support event group using Conjunction Conjunction groups give the consumer the ability to delay the delivery of some events using queue To support various event groups using Disjuction called EFDs(Event Filtering Discriminators) Provide “data reduct the events to consumers SchedulingTAO's RT Event Service ArchitectureFederated Event ChannelsEvent Channels are connected through a Gateway The Gateway must subscribe to the disjuction of all the subscriptions in its consuming Event ChannelStatic and Dynamic Event Channel ConfigurationThe Performance requirements of an RT Event Service may vary need to different Event Channel Full Event Channel Subset Event Channel Event Forwarding Discriminator configuration Removing The Dispatching Module EFD configuration is applicable for RT applications that do not require priority-based queuing and dispatching in the Event Channel Subscription and Filtering configuration Removing the Correlation Module This configuration is useful for applications that have no complex inter-event correlation dependencies Broadcaster Repeater Configuration Removing Dispatching/Correlation module EFD configuration + Subscription and Filtering configuration TAO's RT Event channel support both static and dynamic (remework separates its dispatching mechanism from its scheduling policy To Maximize resue To Allow flexibility between multiple scheduling policiesAn OO Framework for RT Event Service Dispatching and SchedulingParticipants Run-time Scheduler Determine priority values Decoupling the RT scheduler from the Dispatcher The RT Scheduler can be replaced Priority Queues Priority Queues When an tuple arrives, it is inserted onto the queues by preemption priority The sub-priority is used by the Dispatcher to determine where in the Priority Queue the tuple is placed DispatcherAn OO Framework for RT Event Service Dispatching and SchedulingParticipants Dispatcher Removing event/consumer tuples from the priority queues Forwarding the events to consumers by calling their push operations Depending on the placement of each tuple in the Priority Queues, the Dispatcher may preempt a running thread to dispatch the new tuple Sub-priority can determine order of dequeuingAn OO Framework for RT Event Service Di