Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRaulf Guillaume Modifié depuis plus de 10 années
1
Structures des PDU SNMP Chapitre 4
2
Format du message SNMPv1 Le champ version permet à un nouveau format de message d’être identifié —Permet de s'assurer que l'administrateur et l'agent utilisent la même version —N’était plus utilisé dans la version initiale de SNMPv2 —Utilisé dans SNMPv2C et aussi dans SNMPv3 La communauté est une authentification triviale utilisée par SNMPv1 La plupart des équipements permettent de configurer des noms de communauté différents en lecture et en écriture Le nom de communauté de "lecture" est souvent "public", par défaut —Envoyé sous forme de chaîne de texte ASCII dans les PDU –Quiconque possédant un analyseur de protocole peut le capturer La section "données" contient une des cinq PDU SNMP —On définit seulement deux formats de PDU –GetRequest, GetNextRequest, GetResponse, SetRequest utilisent le même format de PDU –Le Trap de SNMPv1 utilise un format de PDU différent ASCII = American Standard Code for Information Interchange
3
Format des messages SNMPv1 et SNMPv2c Les messages SNMPv1 ont le format suivant : SNMP-Message ::= SEQUENCE { version INTEGER {version-1(0)}, community OCTET STRING, data ANY} version_1(1) GetRequest PDU GetNextRequest PDU GetResponse PDU Trap PDU SetRequest PDU community data Authentification Version SNMP du message Message SNMP
4
Formats des PDU Get, Set et Response Le champ “Request ID” permet à la partie gestionnaire d’identifier la réponse correspondant à la requête formulée Le champ “Error Index” identifie la variable (variable bindings) qui a occasionné l'erreur Chaque ensemble variable bindings (les données) regroupe le nom de la variable avec sa valeur —La variable est nommée par son OID complet (identifiant une instance) —Les PDU GetRequest et GetNextRequest utilisent NULL à la place de la valeur –NULL est un type ASN.1 (UNIVERSAL) particulier
5
Formats des PDU Get, Set et Response (suite)...... versioncommunity SNMP message GetRequest, GetNextRequest, GetResponse, or SetRequest PDU PDU type Request ID Error status Error index Object 1, Value 1Object 2, Value 2 Variable bindings PDU tagPDU 0 1 2 3 4 GetRequest GetNextRequest GetResponse SetRequest Trap 0 1 2 3 4 5 noError tooBig noSuchName badValue readOnly genErr ValueError Meaning Opération manager/agent OK PDU Response dépasse la limite locale OID ne correspond pas à un nom de la MIB SetRequest contient valeur non valide Non défini dans la RFC-1157 D’autres erreurs sont intervenues
6
Format de la PDU Trap Le champ “Enterprise” identifie l'entreprise de l’équipement qui a émis le Trap —Par exemple, le préfixe OID 1.3.6.1.4.1.121 identifie FTP Software Inc. comme constructeur dans l’émission du Trap —Cet OID précise la nature de l’alarme dans la MIB constructeur Le champ “Agent Address” contient l'adresse IP de l'agent envoyant le Trap —L'adresse 0.0.0.0 signifie que l’émission ne vient pas d'un réseau IP Le champ “Specific Trap Type” précise le type de trap constructeur, quand le champ “generic” indique trap constructeur (enterprise specific) —Est défini par les directives de la RFC-1215 —Seulement valide pour les "Trap" spécifiques entreprises Le champ “Timestamp” contient la valeur de l'objet sysUpTime de l’agent au moment de l’envoi de ce trap
7
Format de la PDU Trap (suite) SNMP message.... versioncommunity Trap PDU PDU type (4) Enterprise Agent address Generic trap type Specific trap type TimestampObject 1, Value 1Object 2, Value 2 Variable bindings ValueTrapMeaning 0 1 2 3 4 5 6 coldStart warmStart linkDown linkUp authenticationFailure egpNeighborLoss enterpriseSpecific Sending protocol entity has reinitialized (config. may be altered) Sending protocol entity has reinitialized (config. not altered) A communications link has failed A communications link has come up Improperly authenticated SNMP message from manager An EGP peer neighbor is down A nongeneric trap has occurred
8
Format du message SNMPv2 Il n’y a jamais eu de consensus sur le Format du message SNMPv2 (1993) On a défini trois nouveaux types de PDU : —GetBulkRequest –Utilisé pour récupérer de grandes quantités de données, ex. : le contenu de tables —InformRequest –Devait permettre à un administrateur d'envoyer des informations à un autre administrateur —SNMPv2-Trap –Remplace le PDU Trap SNMPv1 (obsolète) La PDU Trap de SNMPv2 utilise maintenant une structure identique aux autres PDU —La première variable contient sysUpTime Les informations de type "Error Status" sont plus explicites
9
SNMPv2/v3 Error Reporting *Never generated by SNMPv2/v3 entity Error status valueMeaning 0 noError 1 tooBig 2 noSuchName * 3 badValue * 4 readOnly * 5 genErr 6 noAccess 7 wrongType 8 wrongLength 9 wrongEncoding 10 wrongValue 11 noCreation 12 inconsistentValue 13 resourceUnavailable 14 commitFailed 15 undoFailed 16 authorizationError 17 notWritable 18 inconsistentName
10
Format du message SNMPv2c SNMPv2c (c pour community) utilise ces nouvelles PDU SNMPv2 —Mais les encapsule dans un format de message de type SNMPv1...... version SNMPv2 PDU SNMPv2 message PDU type Request ID Error Status or Non-Rptr Error Index or Max-Reps Object 1, Value 1Object 2, Value 2 PDU tagPDU 0 1 2 3 4 5 6 7 GetRequest GetNextRequest Response SetRequest obsolete GetBulkRequest InformRequest SNMPv2-Trap Non-Rptr:Nonrepeaters, how many of the requested variables will not be processed repeatedly (used in GetBulkRequest only) Max-Reps:Maximum-repetitions, the maximum number of repeated executions to retrieve specific variables (used in GetBulkRequest only) Variable bindings community
11
Format du message SNMPv3 SNMPv3 utilise aussi les PDU SNMPv2 —Mais les encapsule dans un nouveau format de message (SNMPv3)...... version (3)SNMPv2 PDU SNMPv3 message PDU type Request ID Error Status or Non-Rptr Error Index or Max-Reps Object 1, Value 1Object 2, Value 2 PDU tagPDU 0 1 2 3 4 5 6 7 GetRequest GetNextRequest Response SetRequest obsolete GetBulkRequest InformRequest SNMPv2-Trap msgGlobalData:Security model-specific parameters (see Chapter 7) msgSecurityParameters:Format defined by security model (see Chapter 7) Variable bindings msgGlobalDatamsgSecurityParameters
12
Transmettre des informations de gestion Le SMI (Structure of Management Information) définit toutes les propriétés d’un objet de la MIB ASN.1 définit le type d'un objet et éventuellement des limites de valeurs Les règles d'encodage de base (BER) définissent comment les valeurs ASN.1 réelles dans l’application sont encodées en flux d'octets (sérialisation) —Ce que vous voyez sur le câble Utilise un encodage Type-Longueur-Valeur (TLV) ValeurLongueurType
13
Encodage du champ Type 1 1 1 1 1 For tags greater than or equal to 31 11... First octet ClassPC Second octetThird octet Last octet 0Z Z Z Z Z Z ZY Y Y Y Y Y Y X X X X X X X Number of tag = XXXXXXX YYYYYYY... ZZZZZZZ For tags from 0 through 30 TypeLengthValue ClassPCTag number One octet
14
Encodage du champ Type (suite) Classe :TAG pour la classe UNIVERSAL : 00= UNIVERSAL1 = BOOLEAN (ASN.1 OSI)) 01= APPLICATION2=INTEGER 10= CONTEXT-SPECIFIC3=BITSTRING 11= PRIVATE4=OCTETSTRING 5=NULL 6=OBJECT IDENTIFIER 16=SEQUENCE / SEQUENCE OF PC = 1 pour un encodage structuré, 0 pour encodage simple
15
Encodage du champ Type (suite) Classe :TAG pour la classe APPLICATION : 00= UNIVERSAL0 = IPADDRESS 01= APPLICATION1=COUNTER32 10= CONTEXT-SPECIFIC2=GAUGE32 11= PRIVATE3=TIMETICKS 4=OPAQUE 6=COUNTER64 Classe :TAG pour la classe CONTEXT SPECIFIC 0 = GetRequest PDU 5 = GetBulkRequest PDU 1 = GetNextRequest PDU 6 = InformRequest PDU 2 = Response PDU 7 = SNMPv2-Trap PDU 3 = SetRequest PDU 4 = SNMPv1-Trap PDU PC = 1 pour un encodage structuré, 0 pour encodage simple
16
Encodage du champ Longueur Le champ “Longueur” détermine le nombre d'octets occupés par le champ “Valeur”... Length = 0 – 127 octets 0X X X X X X X Number of octets in value field Length > 127 octets 1X X X X X X XX X X X X X X XX X X X X X X X Number of subsequent octets Number of octets in Value field
17
Encoder le champ Valeur BOOLEAN (Tag = 1) ASN.1 OSI —Un octet unique avec un contenu de zéro pour FALSE, # 0 pour TRUE —Exemple : FALSE est codé 01 01 00 (en hexadécimal) INTEGER (Tag = 2) —La représentation utilisant le plus petit nombre d'octets possible —Exemple : 500 codé 02 02 01 f4 (en hexadécimal) OCTET STRING (Tag = 4) —Les contenus représentent exactement les valeurs de la chaîne d'octets —Un encodage structuré casse la chaîne en plusieurs sous-chaînes —Exemple : 55 ff 00 codé 04 03 55 ff 00 (en hexadécimal) NULL (Tag = 5) —Il n'y a pas de contenu —Exemple : Null codé 05 00 (en hexadécimal)
18
Encoder le champ Valeur (Objets de la MIB) (suite) OBJECT IDENTIFIER (Tag = 6) —Les deux premiers composants sont encodés selon la formule : premier 40 (décimal) + Second (ici 1x40+3=43 —Les composants suivants sont codés de manière indépendante —Chacun est codé comme entier non-négatif en utilisant aussi peu de blocs de 7 bits que possible —Chaque bloc de 7 bits est enfermé dans un octet avec le bit de poids fort a 1, sauf pour le dernier bloc de chaque sous-identifiant —Exemple : 1.3.6.1.4.1.7.200 est codé 06 08 2b 06 01 04 01 07 81 48 (hexa) SEQUENCE and SEQUENCE OF (Tag = 16) —Concaténation des codages BER des valeurs des composants, dans l'ordre de la définition —Exemple : –Définition : SEQUENCE (INTEGER,INTEGER) –Valeur : (7,11) –Codé en 30 06 02 01 07 02 01 0b (en hexadécimal)
19
Message Get Request avec SNMPv1 30 27 02 01 00 04 05 61 64 6D 69 6E A0 1B 02 03 00 00 0C 02 01 00 02 01 00 30 0E 30 0C 06 08 2B 06 01 02 01 01 03 00 05 00 Type length Value Field type Sequence Integer String Integer Integer Integer Sequence Sequence Object ID Null Context-specific constructed Length 39 1 5 27 3 1 1 14 12 8 0 Value 0 admin 12 0 0 0 Get- request MIB descriptor sequence of 0x27 octets Version number - 1 = version 1 Community name “admin” get-request length 0x1B Request ID 12 Error status = 0 Error index = 0 1.3.6.1.2.1.1.3.0 › SYSUPTIME Comments 3027 020100 040561646D696E A01B 020300000C 020100 020100 300E 300C 06082B06010201010300 0500
20
Message Get Response avec SNMPv1 30 2A 02 01 00 04 05 61 64 60 69 6E A2 1E 02 03 00 00 0C 02 01 00 02 01 00 30 11 Type length Value Field type Sequence Integer String Integer Integer Integer Sequence Sequence Object ID Context-specific constructed Length 42 1 5 30 3 1 1 17 15 8 3 Value 0 admin 12 0 0 Get- response MIB descriptor sequence of 0x2A octets Version number - 1 = version 1 Community name “admin” Get-response with length 0x1E Request ID 0x0C Error status Error index 1.3.6.1.2.1.1.3.0 › SYSUPTIME Time of 7 minutes 10 seconds Comments 302A 020100 040561646D696E A21E 020300000C 020100 020100 3011 300F 06082B06010201010300 4303 00A7F8 Applicationwide TimeTicks hundredths of a second 30 0F 06 08 2B 06 01 02 01 01 03 00 43 03 00 A7 F8 Data link headerIPUDP
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.