TCP / IP network management structure and mark XING on August 25, 2002, a total of 15584 words
1 Introduction
The general structure and method used to manage TCP / IP networks will be described herein. This article does not explain the specific solution, nor the protocol and data structure, and if you need this, please refer to the description of SNMP and MIB. In the IEEE, there is an article about Internet management structure and methods. This article basically comes from this article, but there is different: that article mainly shows the management of the OSI type network, and does not apply for SNMP. This article has to achieve two goals: versatility and scalability, although network management has been launched for many years, but the depth and breadth of understanding of this problem are not necessarily. By giving a universal SMI, you can lay a foundation for future development.
2. Management information structure and tag
The management object is stored through virtual information, and we call this structure to manage the information library or MIB. The objects in the MIB are defined by ASN.1. Each object has its own name, syntax, and encoding. The name is like an object tag, which is a name of management management. The request of the object type defines the abstract data structure that is consistent with the object type. Although this can be defined by ASN.1, it still limits in this article. This limitation is more general for the definition. Object Type Coding Description Object Type of instances are expressed by the type of object of the object. The syntax and encoding of the object are usually connected through the definition of the object, which is also the form of the object to transmit on the network. As for the definition of MIB or management protocols, this is not the work of this article, this article is just a general principle of a generality. Of course, at some time, the definition has also been restricted, which is for a particular manner, which can be used without tuberculosis when specific implementation.
2.1 name
The name is used to mark management objects. The object tag concept is used to define. Regardless of the semantics of the object, the object mark is a method of determining certain objects. Object markers are based on overall strings. This tree is connected to some marked nodes. Each node has a sub-node. Our understanding of object markers should be based on the overall trees. A marker is a simple text description and an integer. The root node is not marked, it must be at least three sub-nodes, a sub-node is managed by international standardized organization, marked as ISO (1); another is managed by ccitt, marked as ccitt (0); third by two To manage, marked as: Joint-ISO-CCITT (2). Under ISO (0), ISO has a subtree for other international organizations, org (3), for sub-nodes, two left to US National Standards and Technical Bureau, another transfer from NIST to US Department of Defense DOD (6).
For this paper, DOD does not specify how it manages its own object marker subtree. This article assumes that the DOD will separate a zone to the Internet, which is managed by the IAB:
Internet Object Identifier :: = {Iso ORG (3) DOD (6) 1}
That is to say, the object-marked Internet sub-tree starts at 1.3.6.1. This paper shows the standard of IAB agreed by the IAB, indicating the strategy of managing object marking subtro. At the beginning, four nodes are like this:
Directory Object Identifier :: = {Internet 1}
Mgmt Object Identifier :: = {Internet 2}
Experimental Object Identifier :: = {Internet 3}
Private Object Identifier :: = {Internet 4}
2.1.1. Catalog
Directory (1) How the child is still used as an Internet directory.
2.1.2. Mgmtmgmt (2) Sub tree is used to mark the object defined in the IAB file. For example, if the RFC of the initial Internet standard MIB is specified as a Manage Document No. 1, this RFC can be used as an object tag: {mgmt 1} or 1.3.6.1.2.1 to define the Internet standard MIB. The second half of this article will define a new MIB standard.
2.1.3. EXPERIMENTAL
The Experimental (3) subtree defines the objects used for Internet experiments. For example, the experimenter may receive the definition number 17, which is: {Experimental 17} or 1.3.6.1.3.17. IANA is made on how to use this subtree.
2.1.4. Private
Private (4) Sub trees are used to define other objects. This subtree has only one child:
Enterprises Object Identifier :: = {Private 1}
Provide a mechanism for providing a network subsystem to register a model of the product when using Enterprises (1). When receiving a subtree, a company can define a new MIB object in the subtree. And this company should also register its network subsystem under this subtree, which can be effectively managed in the management protocol. For example, if "FlintStones, Inc." produces the network subsystem, it requires a node under the corporate sub-tree, which may be numbered as follows: 1.3.6.1.4.1.42, it may be registered here Its own router is: 1.3.6.1.4.1.42.1.1
2.2. Grammar
The syntax is to define an object structure based on the object type, and some of the generalization needs to be used in ASN.1 in ASN.1. ObjectSyntax defines syntax available for different object types.
2.2.1. Original type
The original type in ASN.1 includes Integer, OcTet String, Object Identifier, and NULL. If an enumeration integer is listed as an object type, the name of the owner 0 should not appear in the enumeration list and cannot be used.
2.2.2. Construct Type
Sequence available in ASN.1 is available, using it can be built for columns or tables. For columns, the syntax is as follows:
SEQUENCE {
Where
SEQUENCE OF
Where
2.2.3. Definition type
It is allowed to define a new type within a new application product, and the new type must be able to decompose into basic types, columns, tables, or new types.
2.2.3.1. NetworkAddress
This type represents an address format in multiple possible protocols. Only only the Internet protocol is only allowed.
2.2.3.2. Ipaddress
This type of definition represents a 32-bit IP address, which is represented as a string of length 4. When the ASN.1 type is used. The basic coding rule is encoded, only the original coding form can be used.
2.2.3.3. Counter
This type of definition represents a non-negative integer, which can only increase until the maximum. When the maximum is reached, it will return 0 to start again. This article specifies its maximum value of 2 ^ 32-1, that is, 4294967295.
2.2.3.4. Gauge
This type represents a non-negative integer, which can be increased or decreased, but stop at maximum. This article specifies that its value is 2 ^ 32-1, that is, 4294967295.
2.2.3.5. Timeticks
This type is non-negative integer, which is used to record how many seconds of seconds from a time point.
2.2.3.6. Opaque
This type supports the ability to expand the ASN.1 syntax. The only type only requires the recipient to decrypt the data without requiring the recipient to understand its content. 2.3. Code
After the instance of the object type, its value can transmit the basic coding rules of ASN.1 for syntax of the object type.
3. Management object
This article does not define the MIB object, but this article specifies a format that can be used by other articles. An object definition typically includes the following five domains:
Object: is a string name, called Object Descriptor, which specifies the type of object, this type and Object Identifier corresponds.
Grammar: Abstract syntax of object types. It must be resolved on an instance of ASN.1 type ObjectSyntax.
Definition: Text description of the semantic semantics of the object type. Implementation must ensure that the object's instance meets this definition, as this MIB is used in multi-vendor environment, to take care of them. Objects have the same significance on different machines.
Access: Take read read, read and write, write or not access these four values.
Status: Mandatory, optional or Obsolete.
Other domains may be defined in future documents.
3.1. Object Name
There is no 0 in the object name in the MIB in the Internet standard, and this value is left as an extension. Object Descriptor of each and object types should have unique, memory and printed characters. This is very beneficial for people's reading and development of object user interfaces.
3.2. Object type and instance
An object type is a custom definition of manageable objects, and the object instance is an instance of an object type, and this instance has a value. For example, the definition of the routing table entry has been defined in the MIB, this definition, and an object type, the value in the single entry of the given routing table is an example of the object type. Many object types are defined in the MIB, each type through the Object Identifier tag, and there is a text name called Object Descriptor. This indicates that data in the MIB is determined by a particular protocol without being specified by a particular protocol.
An object type can be defined in the MIB, such an instance of an object type can represent a collection of some information and is also represented by instances of some secondary object type models. For example, suppose the following object is defined in the MIB:
Object: atindex {planetry 1}
Syntax: integer
Definition: interface number of physical address
Access: read-write.
Status: Mandatory.
Object: atphysaddress {planeTry 2}
Syntax: OcTet String
Definition: Physical address related to media
Access: read-write.
Status: Mandatory.
Object: atnetaddress {aTENTRY 3}
SYNTAX: NetworkAddress
Definition: Network address corresponding to the physical address of the media
Access: read-write.
Status: Mandatory.
The fourth object type may also be defined in the MIB:
Object: aTentry {attable 1}
SYNTAX:
ATENTRY :: = sequence {
Atindex
Integer,
Atphysaddress
OcTet string,
AtnetAddress
NetworkAddress
}
Definition: Inlets in the address mapping table
Access: read-write.
STATUS: MANDATORY. Each object type is honestly includes information represented by the first three object type instances. Type this defined object type is called a list (List). Similarly, a collection of list types can make a table (Table). For example, the definition of the fifth object is as follows:
Object: attettable {at 1}
SYNTAX: Sequence of ATENTRY
Definition: address mapping table
Access: read-write.
Status: Mandatory.
The above address mapping table is constructed by the collection of ATENTRY. Let us think about how to get objects in the table. Let's take an example below, below is an object type:
{Atphysaddress}
The following is an example of object related to the agreement:
{Atnetaddress} = {Internet "10.0.0.52"}
This two amounts of the icon will be able to refer to an instance of AtphysadDress. The atphyaddress here is part of any address mapping table entry with the atNETADDRESS-correlation value of {Internet "10.0.0.52}. Let's see how to access the collection object (List) in a package, name the object type:
{ATENTRY}
Then specify the object instance related to the protocol:
{Atnetaddress} = {Internet "10.0.0.52"}
The above object instance accesses all instances of the entrance in the table, where the table is related to the value {Internet "10.0.0.52"} of AtnetAddress.
Each management protocol provides a mechanism for accessing non-collection object types, each management protocol, also illustrates whether it supports access to the collection object type. Moreover, the protocol must specify which instance is returned when an object type / instance is accessing multiple types of instances. To support different management protocols, all information that can distinguish between objects is defined by an instance of the object type in the MIB.
3.3. Management object macro
You can use the Object-Type macro to process the definitions in the MIB. This macro allows an object type to adopt a unified representation.
Object-type macro :: =
Begin
TYPE NOTATION :: = "Syntax" Type (Type Objectsyntax)
Access "Access
"Status" status
Value Notation :: = Value (Value Objectname)
Access :: = "read-only"
| "Read-Write"
| "Write-only"
| "Not-accessible"
Status :: = "mandatory"
| "Optional"
| "Obsolete"
End
Based on the object type defined above, we can see the definition below defined in the MIB:
Atindex Object-Type
SYNTAX INTEGER
Access Read-Write
Status Mandatory
:: = {aTENTRY 1}
Atphysaddress Object-Type
SYNTAX OCTET STRING
Access Read-Write
Status Mandatory
:: = {aTENTRY 2}
AtnetAddress Object-Type
Syntax NetworkAddress
Access Read-Write
Status Mandatory
:: = {aTENTRY 3} ATENTRY Object-Type
Syntax ATENTRY
Access Read-Write
Status Mandatory
:: = {attetable 1}
ATTable Object-Type
SYNTAX Sequence of ATENTRY
Access Read-Write
Status Mandatory
:: = {at 1}
ATENTRY :: = sequence {
Atindex
Integer,
Atphysaddress
OcTet string,
AtnetAddress
NetworkAddress
}
4. MIB extension
Each Internet Standard MIB document is marked in the previous document as an outdated. The name marked in the following marks is not changed when changing the version:
{MGMT Version-Number}
The new version can announce the old object type, but do not delete their names; extend an object type definition by adding non-set object types to the list (list); either define new objects. The new version cannot change the semantics of the object without changing the name of the object. This ensures that the same name will have the same semantics in different versions, so that it is more convenient to implement it. However, management representatives may return an object, which is a supercoming of the object. Considering robustness, the management procedure should ignore these additional information. But we have to pay attention: If an instance does not have the same syntax with the hoped object type, the control will fail. In the case of monitoring and control, the object name returned by an operation must be consistent with the object name of the operation requirements.
5. Definition
RFC1155-SMI definitions :: = begin
Exports - Everything, EVERYTHING
Internet, Directory, MGMT,
Experimental, Private, Enterprises,
Object-type, objectname, objectsyntax, simplesyntax,
Applicationsyntax, NetworkAddress, iPaddress,
Counter, Gauge, Timeticks, Opaque
- The path to the root
Internet Object Identifier :: = {Iso ORG (3) DOD (6) 1}
Directory Object Identifier :: = {Internet 1}
Mgmt Object Identifier :: = {Internet 2}
Experimental Object Identifier :: = {Internet 3}
Private Object Identifier :: = {Internet 4}
Enterprises Object Identifier :: = {Private 1}
- Definition of Object Types
Object-type macro :: =
Begin
TYPE NOTATION :: = "Syntax" Type (Type Objectsyntax)
Access "Access
"Status" status
Value Notation :: = Value (Value Objectname)
Access :: = "read-only"
| "Read-Write"
| "Write-only"
| "Not-accessible"
Status :: = "Mandatory" | "optional"
| "Obsolete"
End
- Names of Objects in the MIB
Objectname :: =
Object Identifier
- Syntax of Objects in the MIB
Objectsyntax :: =
Choice {
SIMPLE
SimpleSyntax,
- Note That Simple Sequences Are Not Directly
- Mentioned Here to Keep Things Simple (I.E.,
Prevent Mis-Use). However, Application-Wide
- Types Which Are Implicitly Encode Simple
- Sequences May Appear in The Following Choice
Application-Wide
Applicationsyntax
}
SimpleSyntax :: =
Choice {
Number
Integer,
String
OcTet string,
Object
Object Identifier,
EMPTY
NULL
}
ApplicationsYntax :: =
Choice {
Address
NetworkAddress,
Counter
COUNTER,
gauge
Gauge,
Ticks
Timeticks,
Arbitrary
Opaque
- Other Application-Wide Types, As They Are
- Defined, Will Be Added Here
}
- Application-Wide Types
NetWorkaddress :: =
Choice {
internet
IPaddress
}
Ipaddress :: =
[Application 0] - in network-byte order
Implicit OcTet String (Size (4))
Counter :: =
[Application 1]
Implicit integer (0..4294967295)
Gauge :: =
[Application 2]
Implicit integer (0..4294967295)
Timeticks :: =
[Application 3]
Implicit integer (0..4294967295)
Opaque :: =
[Application 4] - Arbitrary Asn.1 Value,
Implicit OCTET STRING - "Double-Wrapped"
End