Az alkalmazási réteg vizsgálata (SNMP) Összeállította: dr. Tóth Csaba adjunktus Mûszer- és Méréstechnika Tanszék Mohácsi János Irányítástechnika és Informatika Tanszék
Alkalmazási réteg 99 1. ÁLTALÁNOS SZÁMÍTGÉPHÁLÓZATI ALAPISMERETEK 1.1 Bevezetés Az alkalmazási réteg az OSI modell (Open Systems Interconnection, Nyílt rendszerek összekapcsolása) legfelsô rétege. A felhasználók legtöbbször ennek a rétegnek a szolgáltatásait veszik igénybe. 1.1.1 Tipikus alkalmazási rétegbeli szolgáltatások A példák többsége az OSI és a TCP/IP protokollkészletekbôl való. Elektronikus levelezés: ISO MOTIS: Message-Oriented Text Interchange Systems (Üzenetorientált szövegkicserélô rendszer), TCP/IP SMTP: Simple Mail Transfer Protocol (Egyszerû levéltovábbító protokoll). File átvitel: ISO FTAM: File Transfer, Access and Management (Állománytovábbítás, hozzáférés és menedzsment), TCP/IP FTP: File Transfer Protocol (állománytovábbító protokoll). Virtuális terminál szogálat: OSI VTS: Virtual Terminal Service, TCP/IP TELNET. Katalógus szolgálat: CCITT X.500, TCP/IP DNS: Domain Name System (Internet név-cím katalógusszolgálat). Hálózatmenedzsment: ISO CMIP: CommonManagement Information Protocol (Közös menedzsment információs protokoll), TCP/IP SNMP: Simple Network Management Protocol (Egyszerû hálózatmenedzsment protokoll). Az elsô négy csoport szolgáltattásait bárki igénybe veheti, az utolsót általában csak az adott hálózat mûködtetéséért felelôs személy, a hálózatmenedzser használja. A gyakorlat célja az alkalmazási réteg általános tulajdonságainak bemutatása, de ehhez elkerülhetetlenül ki kell választanunk egy konkrét protokollt. A gyakorlaton a hálazatmenedzsmenttel, mint az alkalmazási réteg egyik érdekes és fontos elemével fogunk foglalkozni. A hálózatmenedzsmentbôl csak annyit mutatunk be, amennyi a gyakorlat sikeres elvégzéséhez feltétlenül szükséges.
100 Alkalmazási réteg 1.2. Hálózatmenedzsment A hálózatmenedzsment a számítógép-hálózatok erôforrásainak folyamatos megfigyelését és felügyeletét jelenti. Az ISO (International Standards Organization, Nemzetközi Szabványügyi Hivatal) meghatározása szerint a hálózatmenedzsmentet az alábbi öt funkcióval lehet legjobban definiálni: Konfiguráció menedzsment (Configuration Management) Feladata: a hálózat pillanatnyi állapotának nyomonkövetése, a hardver, a szoftver komponensek üzembehelyezése, módosítása, szükség szerinti konfigurálása. Hiba menedzsment (Fault Management) Feladata: a lappangó vagy már megmutatkozó hibák felismerése, lokalizálása és a hibák megszüntetése. Biztonság menedzsment (Security Management) Feladata: a jogosultságok, hozzáférési jogkörök definálása, ellenôrzése (számlaszám, jelszó, prioritás). Teljesítôképesség menedzsment (Performance Management) Feladata: a hálózat teljesítôképességének elfogadható szinten tartása. A hálózati forgalom monitorozásával és elemzésével eldönthetô, hogy szükséges-e megváltoztatni az adott konfigurációt, kell-e újabb berendezéseket vásárolni, stb. Számla menedzsment (Accounting Management) A hálózatok egy részében az erôforrások használatáért fizetni kell (tipikusan ilyenek a nagytávolságû hálózatok), és ehhez felhasználónként számlákat kell összeállítani. 1.3. Menedzsment kategóriák A hálózatmenedzser programok általában két kategóriába tartoznak attól függôen, hogy a végfelhasználók berendezéseit, illetve erôforrásait (pl. diszkeket, nyomtatókat menedzselik, vagy a kommunikációt lebonyolító eszközöket) pl. ismétlôket, hidakat, forgalomirányítókat). Az elôbbiek az erôforrás menedzsment (resource management), az utóbbiak a vivô vagy hordozó menedzsment (carrier management) kategóriába tartoznak. A hálózatmenedzsment protokollok többsége az utóbbi kategóriába tartozik, az erôforrás menedzsmentre egyelôre nem léteznek elfogadott nemzetközi szabványok. A jelenlegi szabványosítási törekvések igyekeznek ezt a két kategóriát eggyé olvasztani. 2. SPECIÁLIS HÁLÓZATI ISMERETEK Az Internet SNMP protokollja a legelterjedtebb hálózatmenedzser protokoll. Tiszta, áttekinthetô felépítésének és viszonylag egyszerû megvalósíthatóságának köszönheti a népszerûségét. Az architektúrája eléggé általános ahhoz, hogy erôforrás menedzsment feladatokat is el tudjon látni.
Alkalmazási réteg 101 Az SNMP részletes leírását az érdeklôdôk megtalálják a következô RFC-kben (RFC: az Internet szabványokat ún. RFC-kben, Requests For Comments dokumentumokban adják ki): RFC 1155: Structure of Management Information (SMI), RFC 1156: Management Information Base (MIB-1), FRC 1157: Simple Network Management Information Protocol (SNMP), RFC 1158: Management Information Base (MIB-2). 2.1. Az SNMP felépítése és környezete 1. ábra Management Station (Menedzsment állomás) A hálózatmenedzser programot futtató, kliens funkciót ellátó állomás. A menedzser állomás a hálózati elemek ügynökeit (agent, lásd alább) vezérli. Lehetôsége van egy ügynöktôl információkat kérni, vagy megváltoztatni az ügynököt tartalmazó elem mûködését. Az ügynököktôl gyûjtött információkat értelmeznie kell, és ennek függvényében megváltoztathatja azok mûködését, hogy optimális hálózati mûködést biztosítson a felhasználóknak. Network Element (Hálózati elem) Menedzsment ügynökkel rendelkezô intelligens hálózati berendezés, mint pl. számítógép ismétlô (repeater), híd (bridge), forgalomirányító (router), terminál kiszolgáló (terminal server). SNMP Agent (SNMP ügynök) Az ügynök a hálózati elem része (SNMPEngine, Instrumentation, Management Profile), hozzáférési joga van az elem menedzsmenttel kapcsolatos információihoz, és olyan szerver, amely végrehajtja a menedzser parancsait. Az ügynök nagyrészt passzív, vagyis csak akkor szólal meg, ha a menedzser felkéri valamely feladat végrehajtására. Egészen kivételes esetekben joga van szólítatlanul üzenetet küldeni a menedzsernek. Ez a felépítés biztosítja az egyszerûséget, a könnyû megvalósíthatóságot.
102 Alkalmazási réteg A menedzser állomás és a hálózati elem tipikus komponensei: User Interface A kezelônek lehetôvé teszi, hogy parancsokat adjon ki, és üzeneteket fogadjon. A komolyabb programok grafikus interfésszel is rendelkeznek. Management Applicatons A hálózatról gyûjtött információk elemzésében segít. Databases (Adatbázisok) Tartalmazza - a hálózati elemek címeit, konfigurációit, - a teljes MIB adatbázist (MIB: Management Information Base), - az alkalmazói adatbázist. SNMP Engine Az SNMP protokollt megvalósító folyamat. Transport/Link A hálózati modell alsó rétegeit tartalmazza a szállítási rétegig bezárólag. Instrumentation Olyan alkalmazási folyamat, amely lehetôvé teszi a protokoll gépnek (SNMPEngine) a menedzselt objektum változóihoz való hozzáférést. Management Profile Az objektumok egy részhalmaza a MIB-ben, amely az adott készülékre vonatkozik. Minden egyes objektumnak megvan a maga SNMP hozzáférési módja: read-only vagy read-write. Simple Network Management Protocol Az SNMP a menedzser állomás és az ügynökök között használt egyszerû kérdésfelelet protokoll. A protokoll nem definiálja a menedzselhetô objektumokat. Mivel az összes létezô és a jövôben elkészülô hálózati készülék minden menedzselhetô ojbektumát nem lehet univerzális módon definiálni, ezért a szabvány lehetôséget ad a gyártóknak, hogy a készülékspecifikus paramétereket a fa megfelelô részéhez csatolják. Erre mutat példát a 2. ábra (a Synoptics cég készülékei az enterprise 45. ágához csatlakoznak).
Alkalmazási réteg 103 3. ábra Példák: A Synoptics cég készülékei {enterprise 45} vagy 1.3.6.1.4.1.45. Synoptics 3000 Ethernet koncentrátor {s3000ethernet 1} vagy 1.3.6.1.4.1.45.1.3.2.1.
104 Alkalmazási réteg 2.2. Management Information base (MIB) A MIB egy adott ügynök vagy menedzser felügyelete alá tartozó objektumokra vonatkozó információk összessége. Az adatokat fastruktúrában ábrázolják. 2.2.1. Name Tree A SNMP fastruktúrát az OSI regisztrálja annak érdekében, hogy az SNMP-bôl az OSI bázisú hálózatmendzsment felé történô átmenet zökkenômentes lehessen. A 3. ábrán a fastuktúra szokásos ábrázolása látható, kiemelve a MIB-1-hez tartozó csoportokat, továbbá megjelölve a MIB-2 kiterjesztést. Példák: 2. ábra Internet: {dod1} vagy 1.3.6.1. vagy iso org dod internet Mgmt: {internet2} vagy 1.3.6.1.2. vagy iso org dod internet mgmt MIB: {mgmt1} vagy 1.3.6.1.2.1. vagy iso org dod internet mgmt mib IP: {mib4} vagy 1.3.6.1.2.1.4. vagy iso org dod internet mgmt mib ip
Alkalmazási réteg 105 2.2.2. Management Objects Az objektumok az aktuális erôforrások reprezentációi az SNMP környezetben. Az Internet MIB-ben jelenleg több, mint száz objektumot szabványosítottak. Minden objektumhoz tartozik név, szintaxis és kódolás. Object Name (Objektum név) Az objektum nevét OBJECT IDENTIFIER és OBJECT DESCRIPTOR segítségével lehet megadni. Az objektum típusát meghatározó OBJECT IDENTIFIER egész számok sorozata, amely megmutatja az adott elem helyét a MIB fastruktúrában (MIB Name Tree). Az OBJECT DESRIPTOR szöveg-string, amely az OBJECT IDENTIFIER szinonímájaként használható a könnyebb megjgyezhetôség kedvéért. Object Syntax (Objektum szintaxis) Egy objektum típus szintaxisa az adott típus adatstruktúráját határozza meg. Az ASN.1 (Abstract Syntax Notation One) egy jól meghatározott részhalmazát használják erre a célra. Object Encoding (Objektum kódolás) Egy objektum típus kódolását a szintaxisa és az ASN.1 kódolási szabályok határozzák meg. MIB Object Groups (MIB Objektum csoportok) Az SNMP az objektumokat csoportokba gyûjti. Egy Internet hálózati elemben (menedzselhetô készülékben) nem kell léteznie valamennyi változónak. Az viszont kötelezô, hogy ha egy csoport bármely elemét implementálták, akkor annak a csoportnak az összes változóját implementálni kell. Példák MIB objektumokra: Formátum: OBJECT Syntax Definition Access Read-only, read-write, not-accessible (csak olvasható, csak írható, nem hozzáférhetô) Status Mandatory, optional, obsolete (kötelezô, opcionális, elavult) Példák: OBJECT sysuptime {system 3} Syntax: TimeTicks Definition: The time (in hundredths of seconds) since the network management portion of the system was last re-initialised. (A rendszer menedzselhetô részének a legutolsó kezdeti állapotba hozása óta eltelt idô századmásodpercekben.) Access: read-only (csak olvasható) Status: mandatory (kötelezô)
106 Alkalmazási réteg OBJECT Syntax: Definition: Access: Status: ifmtu {ifentry4} INTEGER The size of the largest IP datagram which can be sent/received on the interface, specified in octets. (Az interfészen kereszül továbbítható legnagyobb IP datagramma byte-okban megadott mérete.) read-only (csak olvasható) mandatory (kötelezô) OBJECT ipaddrentry {IpAddrsTable 1} Syntax: ipaddrentry::=sequence { ip AdEntAddr IpAddress, ipadentifindex INTEGER IpAdEntNetMask IpAddress, IpAdEntBcastAddr INTEGER } Definition: The addresing information for one of this entity's IP addresses.(ennek az egységnek az IP címeihez tartozó címzési információk.) Access: read-only (csak olvasható) Status: mandatory (kötelezô) 2.3. SNMP Protokoll Az objektum definíciókat és a PDU-kat (Protocol Data Unit) az ASN.1 segítségével írják le. Csak a kötelezô ASN.1 típusok használatosak: INTEGER, OCTET STRING, OBJECT IDENTIFIER, NULL, SEQUENCE, SEQUENCE OF. Az SNMP kapcsolatmentes szállítási szolgáltatást (UDP: User Datagram Protocol) használ a PDU-k továbbítására a menedzserek és az ügynökök között (lásd a 4. ábrát).
Alkalmazási réteg 107 4. ábra 2.3.1. PDU típusok GetRequest-PDU A menedzser állomás a PDU-ban felsorolja azoknak az objektumoknak a neveit, amelyek értékeit meg szeretné kapni az ügynöktôl. Az ügynök a válaszában jelzi, hogy sikeres vagy sikertelen volt-e a kérés, és ha sikeres, akkor a válaszüzenetben elküldi a kért objektumok értékeit. GetNextRequest-PDU Táblázatok lekérdezésére való. Mivel az objektumok attributumait lexikografikus rendben tárolják (mint pl. a szótárak szavait), az elôzô GetNextRequest PDU eredményét a következô argumentumaként lehet használni. Ily módon a menedzser változó hosszúságú táblázatokat tud lekérdezni úgy, hogy az azonos típusú objektumok valamennyi értékéhez hozzáférjen. GetResponse-PDU Az SNMP ügynök ezzel a PDU-val válaszol a menedzsernek akár a kért változó értékeirôl, akár hibaüzenetekrôl van szó. Hibaüzenet pl. akkor keletkezik, ha érvénytelen vagy nemlétezô objektum értékeit kéri a menedzser. SetRequeset-PDU A menedzser ezzel a PDU-val állíthatja be az ügynök valamely objektumának értékét. A PDU tartalmazza az objektum nevét és értékét. Az ügynök megpróbálja beállítani a megadott értéket, de hibaüzenetet is generálhat, ha - az objektum értéke nem változtatható meg, mert az objektum státusa readonly, - a megadott érték illegális, - a menedzsernek csak olvasási joga van az írható-olvasható objektumhoz.
108 Alkalmazási réteg A Request/Response PDU-k formátumát mutatja az 5. ábra. 5. ábra Trap-PDU Az ügynök bizonyos események bekövetkezésekor a menedzser felszólítása nélkül is küldhet üzenetet a menedzsernek. Ilyen események lehetnek: Cold Start Hideg újraindítás-a konfiguráció megváltozhat Warm Start Meleg újraindítás - a kongifuguráció nem változik Link Down Változás a kommunikációs jellemezôkben Link Up Változás a kommunikációs jellemzôkben Authentication Failure EGP neighbour Loss A 6. ábra a Trap PDU keretformátumát mutatja. Jogosulatlan hozzáférés Forgalomirányító (router) egy hibajelzése (EGP: Exterior Gateway Protocol) Az SNMP által támogatott tevékenységek: 6. ábra Agent Receive GetRequest Read Variable Return GetResponse Receive GetNextRequest Read Variable Return GetResponse Receive SetRequest Set Variable Return GetResponse Detect Event Network Manager Station Send GetReequest Send GetNextReequest Send SetRequest Listen for Trap Messages Wait for and process response Wait for and process response Wait for and process response Modify Behavior as Require
Alkalmazási réteg 109 System Group Identifier Name Definiton system 1 sysdescr Text description of managed entity system 2 sysobject/d Vendor's object identifier system 3 sysuptime Time since last re-initialization system 4 (MIB-2) syscontact Text naming contact person for this node sytem 5 sys-name Administratively-assigned name (MIB-2) for this node system 6 syslocation Physical location of the node (MIB-2) system 7 (MIB-2) sysservices Set of servies offered by the node
110 Alkalmazási réteg Identifier Name Definition interfaces 1 ifnumber The number of network interfaces Identifier Name Definition interfaces 2 iftable A table containing entries for each interface iftable 1 ifentry An entry (row) in the interface table ifentry 1 ifindex Interface number ifentry 2 ifdescr Text description of the interface ifentry 3 iftype Interface type based on physical/link protocols ifentry 4 ifmtu MTU for send/receive on the interface ifentry 5 ifspeed Interface bandwidth in bits/second ifentry 6 ifphysicaladdress Interface physical address ifentry 7 ifadminstatus Desired state of the interface (up, down, test) ifentry 8 ifoperstatus Current State of the interface (up, down, test) ifentry 9 iflastchange sysuptime when interface entered current state ifentry 10 ifinoctets Number of octets received on the interface ifentry 11 IfInUcastPkts Unicast packets delivered to higher level protocol ifentry 12 ifinnucastpkts Non-unicast packets delivered to higher protocol ifentry 13 IfInDiscards Inbound packets discarded without errors ifentry 14 IfInErrors Inbound packets discarded due to errors ifentry 15 IfInUnknownProtos Inbound discarded due to unknown protocols ifentry 16 IfOutOctets Octets transmitted out the interface ifentry 17 IfOutUcastPkts Unicast packets from higher level protocols ifentry 18 IfOutNUcastPkts Non-unicast packets from a higher level protocol ifentry 19 IfOutDiscards Outbound packets discarded without errors ifentry 20 IfOutErros Outbound packets discarded with errors ifentry 21 IfOutQLen Length of outbound queue in packets ifentry 22 (MIB-2) if Specific Reference to MIB definitions specific to the particular media used by the interface