![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
На сьогодні існує кілька стандартів на бази даних керуючої інформації для протоколу SNMP. Основними є стандарти MIB-I і MIB-II, а також версія бази даних для віддаленого управління RMON MIB. Крім цього існують стандарти для спеціальних пристроїв MIB конкретного типу (наприклад, MIB для концентраторів або MIB для модемів), а також приватні MIB конкретних фірм-виробників обладнання.
Вся інформація, що управляє для контролю ЕОМ і маршрутизаторами Інтернет концентрується в базі даних MIB (Management Information Base, RFC-1213 або STD0017). Саме ці дані використовуються протоколом SNMP. Система SNMP складається з трьох частин: менеджера SNMP, агента SNMP і бази даних MIB. Агент SNMP має перебувати резидентно в пам'яті об'єкта управління. SNMP-менеджер може бути частиною системи управління мережею NMS (Network Management System), що реалізується, наприклад, в маршрутизаторах компанії CISCO (CiscoWorks).
MIB визначає, наприклад, що IP програмне забезпечення повинне зберігати число всіх октетів, які прийняті будь-яким з мережевих інтерфейсів, керуючі програми можуть тільки читати цю інформацію.
Згідно з нормативами MIB керуюча інформація поділяється на вісім категорій. MIB-категорія включає в себе інформацію про:
· System - загальні дані про пристрій (наприклад, ідентифікатор постачальника, час останньої ініціалізації системи).
· Interfaces - параметри мережевих інтерфейсів пристрою (наприклад, їх кількість, типи, швидкості обміну, максимальний розмір пакета).
· Address Translation Table - опис відповідності між мережевими і фізичними адресами (наприклад, за протоколом ARP).
· Internet Protocol - дані, що належать до протоколу IP (адреси IP- шлюзів, хостов, статистика про IP-пакетах).
· ICMP - дані, що належать до протоколу обміну керуючими повідомленнями ICMP.
· TCP - дані, що належать до протоколу TCP.
· UDP - дані, що належать до протоколу UDP (число переданих, прийнятих і помилкових UPD-дейтаграмм).
· EGP - дані, що належать до протоколу обміну маршрутною інформацією Exterior Gateway Protocol, використовуваному в Internet (число прийнятих з помилками і без помилок повідомлень).
З цього переліку груп змінних видно, що стандарт MIB-I розроблявся з жорсткою орієнтацією на управління маршрутизаторами, що підтримують протоколи стека TCP / IP.
У версії MIB-II (RFC 1213), прийнятої в 1992 році, був істотно (до 185) розширено набір стандартних об'єктів, а число груп збільшилося до 10.
На рис. 5 наведено приклад деревовидної структури бази об'єктів MIB-II. На ньому показані дві з 10 можливих груп об'єктів - System (імена об'єктів починаються з префікса Sys) і Interfaces (префікс if). Об'єкт SysUpTime містить значення тривалості часу роботи системи з моменту останньої перезавантаження, об'єкт SysObjectID - ідентифікатор пристрою (наприклад, маршрутизатора).
Рис. 6. Стандартне дерево MIB-II (фрагмент)
Таблиця 2. Системні змінні MIB
Системна змінна | Опис | Код |
Sysdescr | Текстовий опис об'єкта; | |
Sysobjectid | Ідентифікатор виробника в рамках дерева 1.3.6.1.4.1 | |
Sysuptime | Час з моменту останнього завантаження системи (timeticks); | |
Syscontact | Ім'я системного менеджера і способи зв'язку з ним; | |
Sysname | Повне ім'я домену | |
Syslocation | Фізичне місце розташування системи; | |
Sysservice | Величина, яка характеризує послуги, що надаються вузлом (сума номерів рівнів моделі OSI); |
Таблиця 3. Змінні IFtable (інтерфейси)
Змінна опису інтерфейсів (iftable) | Тип даних | Опис | ifEntry |
IFindex | Integer | Список інтерфейсів від 1 до ifnumber. | |
IfDescr | displaystring | Текстовий опис інтерфейсу. | |
IfType | Integer | Тип інтерфейсу, наприклад, 6 - ethernet; 9 - 802.5 маркерное кільце; 23 - PPP; 28 - SLIP.> | |
IfNumber | Integer | Число мережевих інтерфейсів. | |
IfMTU | Integer | mtu для конкретного інтерфейсу; | |
IfSpeed | Gauge | Швидкість в біт / с. | |
IfPhysaddress | physaddress | Фізична адреса або рядок нульової довжини для інтерфейсів без фізичної адреси (напр. послідовний). | |
IfAdminStatus | [1... 3] | Необхідну стан інтерфейсу: 1 - включений; 2 - вимкнений, 3 - тестується. | |
IfOperStatus | [1... 3] | Поточний стан інтерфейсу: 1 - включений; 2 - вимкнений, 3 - тестується. | |
IfLastchange | Timeticks | Sysuptime, коли інтерфейс виявився в даному стані. | |
IfInOctets | counter | Повне число отриманих байтів. | |
IfInUcastpkts | Counter | Число пакетів, доставлених на верхній системний рівень (unicast). | |
IfInNUcastpkts | Counter | Число пакетів, доставлених на верхній системний рівень (unicast). | |
IfInDiscads | Counter | Число отриманих але відкинутих пакетів. | |
IfInErrors | Counter | Число пакетів, отриманих з помилкою; | |
IfInUnknownProtos | Counter | Число пакетів, отриманих з помилковим кодом протоколу; | |
IfOutOctets | Counter | Число відправлених байтів; | |
IfOutUcastPkts | Counter | Число unicast-пакетів, отриманих з верхнього системного рівня; | |
IfOutNucastPkts | Counter | Число мультікастінга-і широкомовних пакетів, отриманих з верхнього системного рівня; | |
IfOutDiscads | Counter | Кількість відкинутих пакетів з числа відправлених; | |
IfOutErrors | Counter | Число відправлених пакетів, що містять помилки; | |
IfOutQlen | Gauge | Число пакетів в черзі на відправлення; |
Нижче представлена таблиця цифро-точкового подання змінних, що характеризують стан інтерфейсу. Ця таблиця може бути корисною для програмістів, зайнятих проблемами мережевої діагностики.
Таблиця 4
Назва об'єкта | Цифра-точкове подання |
org | 1.3 |
dod | 1.3.6 |
internet | 1.3.6.1 |
directory | 1.3.6.1.1 |
mgmt | 1.3.6.1.2 |
experimental | 1.3.6.1.3 |
private | 1.3.6.1.4 |
enterprises | 1.3.6.1.4.1 |
security | 1.3.6.1.5 |
snmpV2 | 1.3.6.1.6 |
snmpDomains | 1.3.6.1.6.1 |
snmpProxys | 1.3.6.1.6.2 |
snmpModules | 1.3.6.1.6.3 |
snmpMIB | 1.3.6.1.6.3.1 |
snmpMIBObjects | 1.3.6.1.6.3.1.1 |
snmpTraps | 1.3.6.1.6.3.1.1.5 |
mib-2 | 1.3.6.1.2.1 |
ifMIB | 1.3.6.1.2.1.31 |
interfaces | 1.3.6.1.2.1.2 |
ifMIBObjects | 1.3.6.1.2.1.31.1 |
ifConformance | 1.3.6.1.2.1.31.2 |
ifTableLastChange | 1.3.6.1.2.1.31.1.5 |
ifXTable | 1.3.6.1.2.1.31.1.1 |
ifStackTable | 1.3.6.1.2.1.31.1.2 |
ifStackLastChange | 1.3.6.1.2.1.31.1.6 |
ifRcvAddressTable | 1.3.6.1.2.1.31.1.4 |
ifTestTable | 1.3.6.1.2.1.31.1.3 |
ifXEntry | 1.3.6.1.2.1.31.1.1.1 |
ifName | 1.3.6.1.2.1.31.1.1.1.1 |
ifInMulticastPkts | 1.3.6.1.2.1.31.1.1.1.2 |
ifInBroadcastPkts | 1.3.6.1.2.1.31.1.1.1.3 |
ifOutMulticastPkts | 1.3.6.1.2.1.31.1.1.1.4 |
ifOutBroadcastPkts | 1.3.6.1.2.1.31.1.1.1.5 |
ifLinkUpDownTrapEnable | 1.3.6.1.2.1.31.1.1.1.14 |
ifHighSpeed | 1.3.6.1.2.1.31.1.1.1.15 |
ifPromiscuousMode | 1.3.6.1.2.1.31.1.1.1.16 |
ifConnectorPresent | 1.3.6.1.2.1.31.1.1.1.17 |
ifAlias | 1.3.6.1.2.1.31.1.1.1.18 |
ifCounterDiscontinuityTime | 1.3.6.1.2.1.31.1.1.1.19 |
ifStackEntry | 1.3.6.1.2.1.31.1.2.1 |
ifStackHigherLayer | 1.3.6.1.2.1.31.1.2.1.1 |
ifStackLowerLayer | 1.3.6.1.2.1.31.1.2.1.2 |
ifStackStatus | 1.3.6.1.2.1.31.1.2.1.3 |
ifRcvAddressEntry | 1.3.6.1.2.1.31.1.4.1 |
ifRcvAddressAddress | 1.3.6.1.2.1.31.1.4.1.1 |
ifRcvAddressStatus | 1.3.6.1.2.1.31.1.4.1.2 |
ifRcvAddressType | 1.3.6.1.2.1.31.1.4.1.3 |
ifTestEntry | 1.3.6.1.2.1.31.1.3.1 |
ifTestId | 1.3.6.1.2.1.31.1.3.1.1 |
ifTestStatus | 1.3.6.1.2.1.31.1.3.1.2 |
ifTestType | 1.3.6.1.2.1.31.1.3.1.3 |
ifTestResult | 1.3.6.1.2.1.31.1.3.1.4 |
ifTestCode | 1.3.6.1.2.1.31.1.3.1.5 |
ifTestOwner | 1.3.6.1.2.1.31.1.3.1.6 |
ifGroups | 1.3.6.1.2.1.31.2.1 |
ifCompliances | 1.3.6.1.2.1.31.2.2 |
ifGeneralInformationGroup | 1.3.6.1.2.1.31.2.1.10 |
ifFixedLengthGroup | 1.3.6.1.2.1.31.2.1.2 |
ifHCFixedLengthGroup | 1.3.6.1.2.1.31.2.1.3 |
ifPacketGroup | 1.3.6.1.2.1.31.2.1.4 |
ifHCPacketGroup | 1.3.6.1.2.1.31.2.1.5 |
ifVHCPacketGroup | 1.3.6.1.2.1.31.2.1.6 |
ifRcvAddressGroup | 1.3.6.1.2.1.31.2.1.7 |
ifStackGroup2 | 1.3.6.1.2.1.31.2.1.11 |
ifCounterDiscontinuityGroup | 1.3.6.1.2.1.31.2.1.13 |
ifGeneralGroup | 1.3.6.1.2.1.31.2.1.1 |
ifTestGroup | 1.3.6.1.2.1.31.2.1.8 |
ifStackGroup | 1.3.6.1.2.1.31.2.1.9 |
ifOldObjectsGroup | 1.3.6.1.2.1.31.2.1.12 |
ifCompliance2 | 1.3.6.1.2.1.31.2.2.2 |
ifCompliance | 1.3.6.1.2.1.31.2.2.1 |
ifNumber | 1.3.6.1.2.1.2.1 |
ifTable | 1.3.6.1.2.1.2.2 |
ifEntry | 1.3.6.1.2.1.2.2.1 |
ifIndex | 1.3.6.1.2.1.2.2.1.1 |
ifDescr | 1.3.6.1.2.1.2.2.1.2 |
ifType | 1.3.6.1.2.1.2.2.1.3 |
ifMtu | 1.3.6.1.2.1.2.2.1.4 |
ifSpeed | 1.3.6.1.2.1.2.2.1.5 |
ifPhysAddress | 1.3.6.1.2.1.2.2.1.6 |
ifAdminStatus | 1.3.6.1.2.1.2.2.1.7 |
ifOperStatus | 1.3.6.1.2.1.2.2.1.8 |
ifLastChange | 1.3.6.1.2.1.2.2.1.9 |
ifInOctets | 1.3.6.1.2.1.2.2.1.10 |
ifInUcastPkts | 1.3.6.1.2.1.2.2.1.11 |
ifInNUcastPkts | 1.3.6.1.2.1.2.2.1.12 |
ifInDiscards | 1.3.6.1.2.1.2.2.1.13 |
ifInErrors | 1.3.6.1.2.1.2.2.1.14 |
ifInUnknownProtos | 1.3.6.1.2.1.2.2.1.15 |
ifOutOctets | 1.3.6.1.2.1.2.2.1.16 |
ifOutUcastPkts | 1.3.6.1.2.1.2.2.1.17 |
ifOutNUcastPkts | 1.3.6.1.2.1.2.2.1.18 |
ifOutDiscards | 1.3.6.1.2.1.2.2.1.19 |
Таблиця 5. Змінні IP-групи
Змінна IP-групи | Тип даних | Опис | Код |
ipForwarding | integer | Вказівка на те, що даний об'єкт здійснює переадресацію (працює як маршрутизатор). | |
IPdefaultTTL | integer | Значення, яке використовує IP у полі TTL. | |
IPinreceives | counter | Число отриманих дейтаграм. | |
ipInHdrErrors | counter | Число дейтограмм, відкинутих через помилки формату або невірних адрес або опцій, через вичерпаний TTL. | |
ipInHdrErrors | counter | Число дейтограмм, відкинутих за невірного IP-адреси, наприклад, 0.0.0.0, або непідтримуваного класу, наприклад Є. | |
ipForwDatagrams | counter | Число дейтограмм, для яких даний об'єкт не є місцем призначення (маршрутизація відправника). | |
ipInUnknownProtos | counter | Число дейтограмм з непідтримуваним кодом протоколу. | |
ipInDiscards | counter | Число дейтограмм, відкинутих через переповнення буфера. | |
ipInDelivers | counter | Повне число вхідних дейтограмм, успішно оброблених на IP-рівні. | |
ipOutRequests | counter | Повне число IP і ICMP дейтограмм, переданих для відправки. | |
ipOutRequests | counter | Повне число IP і ICMP дейтограмм, переданих для відправки. | |
IPoutNoroutes | counter | Число невдач при маршрутизації. | |
ipReasmTimeout | counter | Максимальне число секунд очікування збирання фрагментів. | |
ipReasmReqds | counter | Число отриманих фрагментів | |
ipReasmOKs | counter | Число отриманих та успішно зібраних IP-дейтограмм | |
ipReasmFails | counter | Число отриманих IP-дейтограмм, які з тих чи інших причин не вдалося зібрати | |
IPFragOKs | counter | Число успішно фрагментованих IP-дейтограмм. | |
ipFragFails | counter | Число IP-дейтограмм, які потрібно фрагментувати, але зробити це не можна (наприклад, через прапор). | |
ipFragCreates | counter | Число IP-дейтограмм фрагментів, сформованих даним об'єктом. | |
ipAddrTable | counter | Таблиця адресної інформації даного об'єкта. | |
ipRouteTable | Послідовність записів маршрутної таблиці | Запис у маршрутній таблиці | |
ipAddrEntry | |||
IPAdEntAddr | IPaddress | IP-адреса для даного ряду | |
IPadentifindex | integer | Число інтерфейсів. | |
IPadentnetmask | IPaddress | Маска субсетей для даного IP-адреси; | |
IPAdEntBcastAddr | [0...1] | Значення молодшого біта широкомовного адреси (зазвичай 1); | |
IPAdEntReasmMaxsize | [0...65535] | Розмір найбільшою IP-дейтаграми, отриманої інтерфейсом, яка може бути зібрана. |
Таблиця 6. Змінні TCP-групи
Змінні TCP-групи | Тип даних | Опис | Код | ||
tcpRtoAlgorithm | integer | Алгоритм виявлення таймаута для повторної передачі TCP-пакетів: 1 - жоден з наступних; 2 - постійне RTO; 3 - стандарт MIL-std-1778; 4 - алгоритм Ван Джакобсон | |||
tcpRtoMin | integer | Мінімальна допустимий час повторної передачі tcp-пакетів. | |||
tcpRtoMax | integer | Максимальне значення таймаута в міллісек. | |||
tcpMaxConn | integer | Максимальний припустиме число tcp-з'єднань. | |||
tcpActiveOpens | integer | Число TCP-з'єднань Active-Open | |||
tcpPassiveOpens | integer | Число TCP-з'єднань Passive-Open (зі стану LISTEN) | |||
tcpAttemptFails | integer | Число невдалих TCP-з'єднань | |||
tcpEstabResets | integer | Число розривів TCP-з'єднань із станів ESTABLISHED або CLOSE-WAIT | |||
tcpCurrEstab | Gauge | Число TCP-з'єднань, для яких поточний стан ESTABLISHED або CLOSE-WAIT | |||
tcpInSegs | counter | Повне число отриманих tcp-сегментів. | |||
tcpOutSegs | counter | Повне число посланих сегментів, виключаючи повторно пересилаються. | |||
tcpRetransSegs | counter | Повне число повторно пересланих сегментів. | |||
tcpConnTable | counter | Таблиця даних специфічних для з'єднання | |||
tcpInErrs | counter | Таблиця даних специфічних для соедіненіяПолное число сегментів, отриманих з помилкою. | |||
tcpOutRsts | counter | Повне число посланих сегментів з прапором rst = 1. | |||
tcpconntable. tcp-таблиця зв'язків | |||||
tcpconnstate | [1...12] | Стан з'єднання: 1 - closed; 2 - listen, 3 - syn_sent; 4 - syn_rcvd; 5 - established, 6 - fin_wait_1; 7 - fin_wait_2; 8 - close_wait; 9 - last_ack; 10 - closing; 11 - time_wait;, 12 - delete TCB. Тільки остання змінна може встановлюватися менеджером, негайно перериваючи зв'язок. | |||
tcpconnlocal address | ipaddress | Місцевий IP-адресу. 0.0.0.0 означає, що приймач готовий встановити зв'язок через будь-який з інтерфейсів. | |||
tcpconnlocal port | [0...65535] | Місний номер порту. | |||
tcpconnlocal address | ipaddress | Віддалений ip-адресу. | |||
tcpconnrem port | [0...65535] | Віддалений номер порту. | |||
Таблиця 7. Змінні ICMP-групи (тип даних - counter)
Змінна icmp-групи | Опис | Код | |
icmpInErrors | Число ICMP-повідомлень, отриманих з помилками. | ||
icmpInDestUnreach | Число ICMP-повідомлень про недосяжність адресата. | ||
icmpintimeexcds | Число ICMP-повідомлень про закінчення часу. | ||
icmpInParmProbs | Число отриманих ICMP-повідомлень про проблеми з параметрами. | ||
icmpInSrcQuench | Число ICMP-повідомлень з вимогою скоротити або перервати посилку пакетів через перевантаження. | ||
icmpInRedirects | Число ICMP-повідомлень про переадресацію. | ||
icmpInEchos | Число отриманих ICMP-запитів відгуку. | ||
icmpInEchoReps | Число отриманих ICMP-ехо-відгуків. | ||
icmpInTimestamps | Число ICMP-запитів тимчасових міток. | ||
icmpInTimestampReps | Число ICMP-відгуків тимчасових міток. | ||
icmpInAddrMasks | Число ICMP-запитів адресних масок. | ||
icmpInAddrMaskReps | Число ICMP-відгуків на запити адресних масок. | ||
icmpOutMsgs | Число відправлених ICMP-повідомлень. | ||
icmpOutErrors | Числа не відправлених ICMP-повідомлень через проблеми в ICMP (напр. брак буферів). | ||
icmpOutDestUnreachs | Число ICMP-повідомлень про недоступність адресата. | ||
icmpOutTimesExcds | Число посланих ICMP-повідомлень про закінчення часу | ||
icmpOutParmProbs | Число посланих ICMP-повідомлень про проблеми з параметрами. | ||
icmpOutSrcQuench | Число посланих ICMP-повідомлень про зменшення потоку пакетів. | ||
icmpOutRedirects | Число посланих ICMP-повідомлень про переадресацію. | ||
icmpOutEchos | Число посланих ICMP-ехо-запитів. | ||
icmpOutEchoReps | Число посланих ICMP-ехо-відгуків. | ||
icmpOutTimestamps | Число посланих ICMP-запитів тимчасових міток. | ||
icmpOutTimestampReps | Число посланих ICMP-відгуків на запити тимчасових міток. | ||
icmpOutAddrMasks | Число посланих ICMP-запитів адресних масок. | ||
Таблиця 8. Змінні AT-групи (attable, перетворення адрес)
Змінні at-групи | Тип даних | Опис | atEntry |
atIfIndex | integer | Число інтерфейсів. | |
atPhysAddress | physaddress | Фізична адреса. Якщо ця змінна дорівнює рядку нульової довжини, фізичну адресу відсутня. | |
atNetAddress | networkaddress | IP-адреса |
Кожен протокол (наприклад IP) має свою таблицю перетворення адрес. Для IP це ipnettomediatable. Спосіб протягнути в пресі цю таблицю за допомогою програми SNMPI описаний нижче.
MIB II містить керовані об'єкти, що належать до групи snmp. SNMP-група надає інформацію про SNMP-об'єктах, інформаційних потоках, про статистику помилок:
Таблиця 9.
Назва об'єкта | Опис | Код |
snmpInPkts | Число пакетів, отриманих від шару, розташованого нижче SNMP. | |
snmpOutPkts | Число пакетів доставлених від SNMP до нижележащему шару. | |
snmpInBadVersions | Індикує число PDU, отриманих з помилкою в полі версія. | |
snmpInBadCommunityNames | Індикує число PDU, отриманих з нечитабельним або нелегальним ім'ям community. | |
snmpInBadCommunityUses | Повне число SNMP-пакетів, отриманих з нечитабельним або нелегальним значення операції для даного імені community. | |
snmpInAsnParsErrs | Вказує повне число помилок ASN.1 або BER, які не можуть бути оброблені у вхідних SNMP-повідомленнях | |
snmpInTooBigs | Вказує число отриманих PDU із занадто великим значенням поля статус помилки. | |
snmpInNoSuchNames | Вказує число PDU, отриманих з індикацією помилки в полі nosuchname. | |
snmpInBadValues | Вказує число PDU, отриманих з індикацією помилки в полі badvalue. | |
snmpInReadOnlys | Вказує число PDU, отриманих з індикацією помилки в полі readonly. | |
snmpNnGenErrs | Вказує число PDU, отриманих з generr-полем. | |
snmpInTotalReqVar | Вказує число об'єктів MIB, які були відновлені. | |
snmpInTotalSetVars | Вказує число об'єктів MIB, які були змінені. | |
snmpInGetRequests | Вказує число відповідних pdu, які були отримані. | |
snmpInGetNexts | Вказує повне число pdu із запитами GetNext | |
snmpInSetRequests | Вказує повне число pdu, отриманих із запитами SET | |
snmpInGetResponses | Вказує повне число pdu, отриманих c відгуками на запити | |
snmpInTraps | Вказує повне число, отриманих і успішно обработанниз TRAP | |
snmpOutTooBig | Вказує число посланих PDU з полем toobig. | |
snmpOutNoSuchNames | Вказує число посланих PDU з полем nosuchname. | |
snmpOutBadValues | Вказує число посланих PDU з полем badvalue. | |
snmpOutGenErrs | Вказує число посланих PDU з полем genErrs. | |
snmpOutGetRequests | Вказує число посланих PDU Get-Request | |
snmpOutGetNexts | Вказує число посланих PDU Get-NEXT | |
snmpOutSetRequests | Вказує число посланих PDU SET | |
snmpOutGetResponses | Вказує число посланих PDU відгуків | |
snmpOutTraps | Вказує число посланих PDU TRAPs | |
snmpEnableAuthTraps | Говорить про те, дозволені чи ні пастки (TRAPS). |
Стандарт на структуру керуючої інформації (SMI) вимагає, щоб всі MIB-змінні були описані і мали імена відповідно до ASN.1 (abstract syntax notation 1, формалізований синтаксис). ASN.1 є формальною мовою, який володіє двома основними рисами.
Використовується в документах нотація легко читана і понимаема, а в компактному кодовому поданні інформація може використовуватися комунікаційними протоколами. У SMI не використовується повний набір типів об'єктів, передбачений у ASN.1, дозволені тільки такі типи примітивів: integer, octet string, object identifier і null. Практично в протоколі SNMP фігурують такі види даних:
· integer. Деякі змінні оголошуються цілими (integer) із зазначенням початкового значення або із заданим допустимим діапазоном значень (як приклад можна навести номери UDP-або TCP-портів).
· octet string (послідовність байтів). Відповідно до вимог BER (basic encoding rules, ASN.1) послідовність октетів повинна починатися з числа байт в цій послідовності (від 0 до n).
· object identifier (ідентифікатор об'єкта). Ім'я об'єкта, що представляє собою послідовність цілих чисел, розділених крапками. Наприклад, 192.148.167.129 або 1.3.6.1.2.1.5.
· null. Вказує, що відповідна змінна не має значення.
· displaystring. Рядок з 0 або більше байт (але не більше 255), які представляють собою ASCII-символи. Являє собою окремий випадок octet string.
· physaddress. Послідовність октетів, що характеризує фізичну адресу об'єкта (6 байт для Ethernet). Окремий випадок object identifier.
· Мережевий адресу. Допускається вибір сімейства мережевих протоколів. У рамках ASN.1 цей тип описаний як choice, він дозволяє вибрати протокол з сімейства протоколів. В даний час ідентифіковано тільки сімейство протоколів Інтернет.
· IP-адресу. Ця адреса використовується для визначення 32-розрядного Інтернет-адреси. У нотації ASN.1 - це octet string.
· time ticks (такти годин). Позитивне ціле число, яке використовується для запису, наприклад, часу останньої зміни параметрів керованого об'єкта, або часу останньої актуалізації бази даних. Час вимірюється в сотих долях секунди.
· gauge (масштаб). Позитивне ціле число в діапазоні 0 - (232-1), яке може збільшуватися або зменшуватися. Якщо ця змінна досягне величини 232-1, вона залишатиметься незмінною до тих пір поки не буде обнулено командою скидання. Прикладом такої змінної може служити tcpcurresta, яка характеризує число TCP з'єднань, що знаходяться в стані established або close_wait.
· counter (лічильник). Позитивне ціле число в діапазоні 0 - (232-1), яке може тільки збільшуватися, допускаючи переповнення.
· sequence. Цей об'єкт аналогічний структурі в мові С.
Наприклад, MIB визначає sequence з ім'ям udpentry, що містить інформацію про активні UDP-вузлах. У цій структурі міститься два записи:
· UDPlocaladdress типу ipaddress, містить місцеві IP-адреси.
· UDPlocalport типу integer, містить номери місцевих портів.
SEQUENCE OF. Опис вектора, всі елементи якого мають один і той же тип. Елементи можуть являти собою прості об'єкти, наприклад, типу ціле. У цьому випадку ми маємо одновимірний список. Але елементами вектора можуть бути об'єкти типу SEQUENCE, тоді цей вектор описує двовимірний масив.
В Інтернет MIB кожен об'єкт повинен мати ім'я (object identifier), синтаксис і метод кодування.
Стандарт ASN.1 визначає форму подання інформації та імен. Імена змінних MIB відповідають у свою чергу стандартам ISO і CCITT. Структура імен носить ієрархічний характер, відображений на рис. 7.
Рис. 7. Структура ідентифікаторів змінних в MIB
У наведеній нижче таблиці охарактеризовано чотири прості змінні, ідентифікатори яких поміщені в нижній частині рис. 7. Всі ці змінні допускають тільки читання.
Таблиця 10.
Ім'я змінної | Тип даних | опис | код |
udpInDatagrams | counter | Число UDP-дейтограмм, надісланих процесам користувача. | |
udpNoPorts | counter | Число отриманих UDP-дейтограмм, для яких відсутня прикладний процес в порте призначення. | |
udpInErrors | counter | Числа не доставлених UDP-дейтограмм з причин, що відрізняється від відсутності процесу з боку порту призначення (напр., помилка контрольної суми). | |
udpOutDatagrams | counter | Число посланих UDP-дейтограмм. | |
udpTable | counter | Таблиця, що містить дані про приймаючу сторону |
Нижче наведений опис таблиці (udptable; index =,), що складається з двох простих змінних (read-only).
Таблиця 11.
ім'я змінної | Тип даних | опис |
udplocaladdress | ipaddress | Місцевий IP-адреса для даного приймача |
udplocalport | (0 - 65535) | Місцевий номер порту приймача. |
Відповідно до цієї ієрархії змінні, відповідні ICMP, повинні мати префікс (ідентифікатор) 1.3.6.1.2.1.5 або в символьному вираженні iso.org.dod.internet.mgmt.mib.icmp. Якщо ви хочете дізнатися значення якоїсь змінної, слід послати запит, що містить відповідний префікс і суфікс, останній визначає ім'я конкретної змінної. Для простої змінної суфікс має вигляд.0. Гілка структури на рис. 7, яка завершується вузлом Interfaces (2) має продовження у вигляді ifTable (2) і ifEntry (1). Таким чином мінлива ifInUcastPkts буде мати уявлення 1.3.6.1.2.1.2.2.1.11.
Крім стандартного набору змінних і таблиць MIB можливе використання індивідуальних розширень цієї бази даних. Це можна продемонструвати на прикладі MIB маршрутизаторів Cisco (рис. 8).
Рис. 8. Розширення бази даних MIB маршрутизаторів Cisco
Префікс є стандартним, далі йде розширення, індивідуальне для маршрутизаторів компанії Cisco. Наприклад, група IPcheckpoint accounting дозволяє контролювати потік байтів з певних адрес локальної мережі, що буває важливо при роботі з комерційними провайдерами послуг.
Коди-префікси для різних виробників телекомунікаційного обладнання наведені в таблиці 9.
Таблиця 12. Коди-префікси виробників
Код префікса | Назва фірми |
зарезервовано | |
Proteon | |
IBM | |
CMU | |
UNIX | |
ACC | |
TWG | |
Cayman | |
PSI | |
Cisco | |
NSC | |
HP | |
Epilogue | |
U of Tennessee | |
BBN | |
Xylogics, inc. | |
Unisys | |
Canstar | |
Wellfleet | |
TRW | |
MIT |
Група локальних змінних IP checkpoint accounting являє собою таблицю, що містить в кожному рекорді по чотири змінних (у дужках вказано суфікс адреси MIBдля змінної):
· ckactbyts [4] - число переданих байт;
· ckactdst [2] - адреса місця призначення;
· ckactpkts [3] - число переданих пакетів;
· ckactsrc [1] - адреса відправника.
Маршрутизатор Cisco підтримують дві бази даних: active accounting і checkpoint accounting. У першу заносяться поточні результати вимірювання вхідного і вихідного трафіку. Ці результати копіюються в базу даних checkpoint accounting і, якщо там вже є попередні дані, вони об'єднуються. Для очищення бази даних checkpointed database видається команда clear IP accounting, а для бази checkpoint - clear IP accounting checkpoint (для використання цих команд необхідні системні привілеї). Об'єм пам'яті, виділеної для цих баз даних задається командою IP accounting-threshold <значення>, за замовчуванням максимальне число записів в базі даних одно 512.
Кращим способом закріпити в пам'яті все вищесказане є використання програми SNMPI (SNMP initiator) або її аналога. Нижче описаний синтаксис звернення до SNMPI.
snmpi [-a agent] [-c community] [-f file] [-p portno] [-d] [-v] [-w]
SNMPI - вкрай проста програма, яка використовується для тестування SNMPD. Для того щоб перевірити, чи працює вона, видайте команду:
% SNMPI dump
Слід зазначити, що у відповідь на цю операцію буде проведена досить об'ємна видача.
Опція-a пропонує можливість ввести адресу SNMP-об'єкта - ім'я ЕОМ, IP-адреса або транспортний адресу. Типово це місцева ЕОМ. Аналогічно опція-p дозволяє задати номер UDP-порта. Типово це порт 161.
Опція-c дозволяє задати груповий пароль (community) для snmp-запиту. За замовчуванням - це public, тобто вільний доступ.
Опція-f дозволяє вибрати файл, що містить відкомпілювалися опису mib-модулів. За замовчуванням - це objects.defs.
Опція-w включає режим спостереження, здійснюючи видачу на термінал всіх службових повідомлень. Догляд з програми по команді quit (q).
Якщо ви працюєте на IBM / PC, і ваша машина підключена до локальної мережі, отримаєте допуск до однієї з UNIX-машин в мережі (якщо ви його не мали) і приступайте. Можна почати з звернення типу:
SNMPI-a 193.124.224.33 (адреса або символьне ім'я треба взяти з вашої локальної мережі)
Машина відгукнеться, відобразивши на екрані SNMPI>, це означає, що програма є і ви можете вводити будь-які команди.
Почати можна зі знайомства з системними змінними системи (надалі курсивом виділено команди, введені з клавіатури):
SNMPI> get sysdescr.0
snmpi> sysdescr.0 = "GS software (gs3-k), version 9.1 (4) [fc1], software copyright (c) 1986-1993 by cisco systems, inc. compiled thu 25-mar-93 9:49 by daveu "
snmpi> get sysobjectid.0
snmpi> sysobjectid.0 = 1.3.6.1.4.1.9.1.1
snmpi> get sysuptime.0
snmpi> sysuptime.0 = 14 days, 7 hours, 0 minutes, 15.27 seconds (123481527 timeticks)
snmpi> get sysservices.0
snmpi> sysservices.0 = 0x6
Код 0x06 (sysservices.0) являє собою суму кодів рівнів моделі iso, підтримуваних системою. Для довідок: 0x01 - фізичний рівень; 0x02 - зв'язковий рівень; 0x04 - Інтернет; 0x08 - зв'язок точка-точка; 0x40 - прикладний рівень.
Якщо ви хочете отримати інформацію про стан інтерфейсів на одній з ЕОМ, підключених до вашої локальної мережі (команди виклику snmpi далі не повторюються; в нижче наведених прикладах в круглих дужках поміщені коментарі автора), видайте команди:
SNMPI> next iftabl (команда next в даному випадку відповідає запиту get-next, тут поняття "наступний" має на увазі порядок змінних в MIB):
snmpi> ifindex.1 = 1
snmpi> get ifdescr.1
snmpi> ifdescr.1 = "ethernet0"
snmpi> get iftype.1
snmpi> iftype.1 = ethernet-csmacd (6)
snmpi> get ifmtu.1
snmpi> ifmtu.1 = 1500
snmpi> get ifspeed.1
snmpi> ifspeed.1 = 10000000 (10Мб / с ethernet)
snmpi> get ifphysaddress.1
snmpi> ifphysaddress.1 = 0x00: 00:0 c: 02:3 a: 49 (фізичну адресу інтерфейсу)
snmpi> next ifdescr.1 iftype.1 ifmtu.1 ifspeed.1 ifphysaddress.1
snmpi> ifdescr.2 = "serial0"
iftype.2 = proppointtopointserial (22)
ifmtu.2 = 1500
ifspeed.2 = 2048000
(2 Мбіт / c радіорелейний послідовний канал, супутниковий канал був би охарактеризований точно також).
ifphysaddress.2 =
У наведеному прикладі розміри пересилаються блоків для Ethernet та радіорелейного послідовного каналу ідентичні і дорівнюють 1500. Пам'ятайте, що SLIP-канал характеризується як pointtopointserial, а не slip. Швидкість обміну по SLIP-каналу не повідомляється.
Тепер переглянемо деякі UDP-змінні. Наприклад:
SNMPI> next UDP
SNMPI> udpindatagrams.0 = 98931
SNMPI> next udpindatagrams.0 (зверніть увагу на суфікс простий змінної)
SNMPI> udpnoports.0 = 60009
SNMPI> next udplocaladdress.0
SNMPI> udplocaladdress.193.124.137.14.7 = 193.124.137.14
(Ідентифікатор цього об'єкта - 1.3.6.1.2.1.7.5.1.1.193.124.137.14.7.)
SNMPI> next udplocalport
SNMPI> udplocalport.193.124.137.14.7 = 7
Якщо виникла необхідність переглянути таблицю, наприклад, udptable, це також можна зробити, використовуючи snmpi:
SNMPI> next udptable
SNMPI> udplocaladdress.193.124.137.14.7 = 193.124.137.14
SNMPI> next udplocaladdress.193.124.137.14.7
SNMPI> udplocaladdress.193.124.224.33.67 = 193.124.224.33
SNMPI> next udplocaladdress.193.124.224.33.67
SNMPI> udplocaladdress.193.124.224.33.161 = 193.124.224.33
SNMPI> next udplocalport.193.124.224.33.67
SNMPI> udplocalport.193.124.224.33.161 = 161
Нижче показана методика з'ясування алгоритму і параметрів завдання величини тайм-ауту:
SNMPI> get tcprtoalgorithm.0 tcprtomin.0 tcprtomax.0 tcpmaxconn.0
SNMPI> tcprtoalgorithm.0 = vanj (4)
(vanj - алгоритм Ван Джакобсон для розрахунку часу тайм-ауту)
tcprtomin.0 = 300
(Мінімальне значення тайм-ауту = 300 мс)
tcprtomax.0 = 60000
(Максимальне - 60 сек)
tcpmaxconn.0 = -1
(Ніяких обмежень на кількість з'єднань)
Щоб отримати інформацію про стан таблиці адресних перетворень, видайте команду: SNMPI-a 193.124.224.33 dump at (процедури з використання субкоманди dump вимагають певного часу для свого виконання).
Таблиця 13.
atifindex.1.1.193.124.224.33= | |
atifindex.1.1.193.124.224.35= | |
atifindex.3.1.192.148.166.203= | |
atifindex.3.1.192.148.166.205= | |
atifindex.5.1.145.249.30.33= | |
atifindex.5.1.192.148.166.98= | |
atphysaddress.1.1.193.124.224.33= | 0x00:00:0c:02:3a:49 |
atphysaddress.1.1.193.124.224.35= | 0x08:00:20:12:1b:b1 |
atphysaddress.1.1.193.124.224.40= | 0x00:00:cd:f9:0d:e7 |
atphysaddress.1.1.193.124.224.50= | 0x00:00:0c:02:fb:c5 |
atnetaddress.1.1.193.124.224.33= | 193.124.224.33 |
atnetaddress.1.1.193.124.224.35= | 193.124.224.35 |
atnetaddress.1.1.193.124.224.40= | 193.124.224.40 |
atnetaddress.1.1.193.124.224.50= | 193.124.224.50 |
atnetaddress.1.1.193.124.224.60= | 193.124.224.60 |
Текст видачі з метою економії місця скорочений.
Звичайно елементи таблиці розташовані в порядку колонка-ряд. Якщо ви дійшли до краю колонки або всієї таблиці, ЕОМ видасть вам, залежно від реалізації програми, ім'я і значення наступного елемента або повідомлення про помилку.
Щоб отримати повний текст адресної таблиці в рамках SNMPI досить видати команду:
SNMPI> dump ipaddrtable
snmpi> ipadentaddr.192.148.166.222 =
192.148.166.222
ipadentaddr.192.168.1.1 =
192.168.1.1
ipadentaddr.192.168.1.2 =
192.168.1.2
ipadentaddr.193.124.224.33 =
193.124.224.33
ipadentaddr.193.124.224.190 =
193.124.224.190
ipadentifindex.192.148.166.222 =3
ipadentifindex.192.168.1.1 =4
ipadentifindex.192.168.1.2 =6
ipadentifindex.193.124.224.33 =1
ipadentifindex.193.124.224.190 =5
(Маски підмереж)
ipadentnetmask.192.148.166.222= | 255.255.255.224 |
ipadentnetmask.192.168.1.1= | 255.255.255.0 |
ipadentnetmask.192.168.1.2= | 255.255.255.0 |
ipadentnetmask.193.124.224.33= | 255.255.255.224 |
ipadentnetmask.193.124.224.190= | 255.255.255.224 |
ipadentbcastaddr.192.148.166.222 = 1(Всі ці підмережі використовують для широкомовлення одні й ті ж біти).
ipadentbcastaddr.192.168.1.1= | |
ipadentbcastaddr.192.168.1.2= | |
ipadentbcastaddr.193.124.224.33= | |
ipadentbcastaddr.193.124.224.190= |
ipadentreasmmaxsize.192.148.166.222 = 18024 (З точки зору фрагментації і подальшого складання дейтаграм дані підмереж еквівалентні).
ipadentreasmmaxsize.192.168.1.1= | |
ipadentreasmmaxsize.192.168.1.2= | |
ipadentreasmmaxsize.193.124.224.33= | |
ipadentreasmmaxsize.193.124.224.190= |
Дана пропечатки спільно з наведеної для IFtable дозволяє отримати досить повну картину про даної конкретної локальної мережі. Щоб познайомитися з ARP таблицею, можна скористатися командою:
sun> arp-a
itepgw.itep.ru (193.124.224.33) at 0:0: c: 2:3 a: 49
nb.itep.ru (193.124.224.60) at 0:80: ad: 2:24: b7
і доповнити отримані дані за допомогою SNMPI:
SNMPI> dump ipnettomediatable
SNMPI> ipnettomediaifindex.1.193.124.224.33 = 1
ipnettomediaifindex.1.193.124.224.35 = 1
ipnettomediaifindex.3.192.148.166.193 = 3
ipnettomediaifindex.3.192.148.166.196 = 3
ipnettomediaifindex.3.193.124.226.110 = 3
ipnettomediaifindex.5.145.249.30.33 = 5
ipnettomediaifindex.5.192.148.166.100 = 5
ipnettomediaphysaddress.1.193.124.224.33 = 0x00: 00:0 c: 02:3 a: 49
ipnettomediaphysaddress.3.192.148.166.196 = 0xaa: 00:04:00:0 c: 04
ipnettomediaphysaddress.3.192.148.166.198 = 0xaa: 00:04:00:0 e: 04
ipnettomediaphysaddress.3.192.148.166.203 = 0x00: 00:01:00:54:62
.........................................
ipnettomediaphysaddress.5.145.249.30.33 = 0x00: 00:0 c: 02:69:7 d
ipnettomediaphysaddress.5.192.148.166.100 = 0x00: 20: af: 15: c1: 61
ipnettomediaphysaddress.5.192.148.166.101 = 0x08: 00:09:42:0 d: e8
ipnettomedianetaddress.1.193.124.224.33 = 193.124.224.33
ipnettomedianetaddress.1.193.124.224.35 = 193.124.224.35
ipnettomedianetaddress.3.192.148.166.193 = 192.148.166.193
ipnettomedianetaddress.3.193.124.226.110 = 193.124.226.110
ipnettomedianetaddress.5.145.249.30.33 = 145.249.30.33
ipnettomediatype.1.193.124.224.33 = other (1)
ipnettomediatype.1.193.124.224.35 = dynamic (3)
ipnettomediatype.1.193.124.224.37 = dynamic (3)
ipnettomediatype.3.192.148.166.195 = dynamic (3)
ipnettomediatype.3.192.148.166.222 = other (1)
ipnettomediatype.5.193.124.224.190 = other (1)
ipnettomediatype.5.193.124.225.33 = other (1)
ipnettomediatype.5.193.124.225.35 = dynamic (3)
Синтаксис кожного об'єкта описується в рамках ASN.1 і показує побітовое уявлення об'єкта. Кодування об'єкта характеризує те, як тип об'єкта відображається через його синтаксис і передається по телекомунікаційних каналах. Кодування проводиться відповідно до базовими правилами кодування asn.1. Всі описи об'єктів базуються на типових шаблонах і кодах asn.1 (див. RFC-1213). Формат шаблону показаний нижче:
object (Об'єкт):
Ім'я типу об'єкта з відповідним йому ідентифікатором об'єкта (object identifier)
syntax (Синтаксис):
asn.1 опис синтаксису типу об'єкта.
definition (Визначення):
Текстовий опис типу об'єкта.
access (доступ):
Опції доступу.
status (стан):
Статус типу об'єкта.
Маршрути також є об'єктами mib. Згідно з вимогами до mib, кожному маршруту в цій базі відповідає запис, схема якої наведена нижче на рис. 9:
Рис. 9. Формат запису маршрутної таблиці в MIB
Поле місце призначення представляє собою IP-адреса кінцевої точки маршруту. Поле індекс інтерфейсу визначає локальний інтерфейс (фізичний порт), через який можна здійснити наступний крок за маршрутом. Наступні п'ять полів (метрика 1-5) характеризують оцінку маршруту. У простому випадку, наприклад для протоколу RIP, достатньо було б одного поля. Але для протоколу OSPF необхідно 5 полів (різні TOS). Поле наступний крок являє собою IP-адреса наступного маршрутизатора. Поле тип маршруту має значення 4 для опосередкованого досягнення місця призначення; 3 - для прямого досягнення мети маршруту; 2 - для нереалізованого маршруту і 1 - для випадків відмінних від вищеперелічених.
Поле протокол маршрутизації містить код протоколу. Для RIP цей код дорівнює 8, для OSPF - 13, для BGP - 14, для IGMP - 4, для інших протоколів - 1. Поле вік маршруту описує час в секундах, що минув з моменту останньої корекції маршруту. Наступне поле - маска маршруту використовується для виконання логічної побітовій операції І над адресою в IP-дейтограмми перед порівнянням результату з кодом, що зберігаються в першому полі запису (місце призначення). Останнє поле маршрутна інформація містить код, що залежить від протоколу маршрутизації і забезпечує посилання на відповідну інформацію в базі MIB.
Новим розширенням MIB є система віддаленого моніторингу мереж (RMON; RFC-1513, -1271). RMON служить для моніторування мережі в цілому, а не окремих мережних пристроїв. У RMON передбачено 9 об'єктних груп (див. табл. 10).
Таблиця 14. Функціональні групи RMON
Група | Призначення |
Statistics | Таблиця, яка відстежує близько 20 статистичних параметрів мережевого трафіку, включаючи загальне число кадрів і кількість помилок |
History | Дозволяє задати частоту і інтервали для вимірювань трафіку |
Alarm | Дозволяє встановити поріг і критерії, за яких агенти видають сигнал тривоги |
Host | Таблиця, що містить всі вузли мережі, дані по яких наводяться в мережевій статистикою |
hostTopN | Дозволяє створити впорядковані списки, які базуються на пікових значеннях трафіку групи ЕОМ |
Matrix | Дві таблиці статистики трафіку між парами вузлів. Одна таблиця базується на адресах вузлів-відправників, інша - на адресах вузлів-одержувачів |
Filter | Дозволяє визначити конкретні характеристики кадрів в каналі. Наприклад, можна виділити TCP-трафік. |
packet capture | Працює спільно з групою filter. Дозволяє специфікувати об'єм ресурсу пам'яті, що виділяється для запам'ятовування кадрів, які відповідають критеріям filter. |
Event | Дозволяє специфікувати набір параметрів чи умов, які повинен контролювати агент. Коли умови виконуються, інформація про подію записується в спеціальний журнал |
Для того щоб реалізувати функціонування RMON-агента, мережева карта повинна бути здатна працювати в режимі 6 (promiscuous mode), коли сприймаються всі пакети, наступні по кабельному мережному сегменту.
Місцевий номер порту приймача.
Відповідно до цієї ієрархії змінні, відповідні ICMP, повинні мати префікс (ідентифікатор) 1.3.6.1.2.1.5 або в символьному вираженні iso.org.dod.internet.mgmt.mib.icmp. Якщо ви хочете дізнатися значення якоїсь змінної, слід послати запит, що містить відповідний префікс і суфікс, останній визначає ім'я конкретної змінної. Для простої змінної суфікс має вигляд.0. Гілка структури, яка завершується вузлом Interfaces (2) має продовження у вигляді ifTable (2) і ifEntry (1). Таким чином мінлива ifInUcastPkts буде мати уявлення 1.3.6.1.2.1.2.2.1.11.
Дата публикования: 2014-11-26; Прочитано: 345 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!