/[suikacvs]/webroot/www/2004/id/draft-deri-http-mgmt-00.txt
Suika

Contents of /webroot/www/2004/id/draft-deri-http-mgmt-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Jun 15 08:37:15 2004 UTC (19 years, 11 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
2
3
4 HTTP-based SNMP and CMIP Network Management
5
6 Luca Deri
7 IBM Zurich Research Laboratory
8 lde@zurich.ibm.com
9
10 November 19, 1996
11
12
13 Status of this Memo
14
15
16 This document is an Internet-Draft. Internet-Drafts are working
17 documents of the Internet Engineering Task Force (IETF), its areas,
18 and its working groups. Note that other groups may also distribute
19 working documents as Internet-Drafts.
20
21 Internet-Drafts are draft documents valid for a maximum of six months
22 and may be updated, replaced, or obsoleted by other documents at any
23 time. It is inappropriate to use Internet-Drafts as reference material
24 or to cite them other than as ''work in progress.''
25
26 To learn the current status of any Internet-Draft, please check the
27 ''1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
28 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
29 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
30 ftp.isi.edu (US West Coast).
31
32
33 1. Abstract
34
35 This document describes the application of the HyperText Transfer
36 Protocol (HTTP) [HTTP] for the purpose of SNMP [SNMP] and CMIP [CMIP]
37 management. It shows how SNMP and CMIP resources can be managed by
38 using the standard HTTP protocol by defining a mapping between
39 SNMP/CMIP protocols and HTTP. The mapping is very simple and based on
40 strings which can easily be handled by any programming and scripting
41 language. This will allow light and simple HTTP-based applications to
42 be created, since they have not to include any management service like
43 encoding/decoding nor to handle complex data types.
44
45 This document does not cover management of HTTP [Hazewinkel].
46
47
48 2. World Wide Web and Network Management
49
50 The World Wide Webarchitecture is depicted below:
51
52 ------>
53 HTTP client HTTP HTTP Server
54 <------
55 Figure 1: World Wide Web architecture
56
57 HTTP servers provide information which can be retrieved by WWW
58 browsers using the HTTP protocol. The HTTP protocol is a simple,
59 stateless information retrieval protocol based on TCP/IP. The
60 retrieved information can be specified in several formats including
61 graphics, text, binary and HTML (Hyper Text Markup Language) [HTML].
62
63
64 Expires May 19, 1997 [Page 1]
65
66 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
67
68 In order to manage network resources using HTTP it is necessary to
69 have an application which speaks both HTTP and SNMP/CMIP. This can be
70 achieved in two ways by:
71 1. extending standard HTTP servers
72 2. creating a proxy application which allows to issue SNMP/CMIP
73 protocol requests using HTTP.
74
75 The first solution has the following advantages:
76 1. it is relatively easy to implement since the HTTP server
77 transparently handles the HTTP protocol
78 2. existing character-based network management applications can
79 easily become Web-aware since it is straightforward to enrich
80 the textual output with HTML tags.
81
82 The second solution requires the implementation of the HTTP protocol
83 but it offers better performance. In fact, HTTP servers usually offer
84 standard interfaces such as CGI (Common Gateway Interface) which
85 allows external applications to be executed when a certain URL [URL]
86 (Uniform Resource Locator: a physical address of an object which is
87 retrievable using network protocols such as HTTP) is requested. Since
88 launching applications requires some system resources, the performance
89 is degraded proportionally to the complexity of the CGI application
90 that has to be executed. Apart from offering a better performance,
91 this second solution allows network events (SNMP traps and CMIP
92 notifications) to be handled without the need to rely on another
93 application. This is because the proxy can receive network events and
94 store them. In the case of a CGI-based solution, an external
95 application has to receive the network events which can then be
96 retrieved through a CGI application.
97
98 In both cases, users communicate with an HTTP application regardless
99 of the nature of this application, either HTTP server extended with
100 CGI applications or proxy.
101
102
103 3. URL Convention for SNMP/CMIP Management
104
105 In order to manage network resources using HTTP, a mapping between
106 management operations and URLs has to be defined. The proposed mapping
107 is compliant with the standard URL syntax and therefore it can be
108 handled by conventional HTTP servers and WWW browsers. The URL is
109 composed of 5 elements,
110 http://<host>/<protocol>/<operation>/<context>?<parameters>, where:
111 1. <host> identifies the host where the HTTP server runs;
112 2. <protocol> specifies the protocol used;
113 3. <operation> specifies the protocol operation;
114 4. <context> specifies the context to use, if any;
115 5. <parameters> contain the operation parameters, if any.
116
117
118
119
120
121
122 Expires May 19, 1997 [Page 2]
123
124 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
125
126 Although this mapping is quite general and can be used for instance with
127 protocols like SQL, our interest focuses on SNMP and CMIP:
128 1. SNMPv1
129 <protocol>: SNMP
130 <operation>: GET, GETNEXT, SET, WALK, TRAP(used to retrieve traps)
131 <context>: object identifier which identifies the MIB attribute
132 <parameters>: additional operation-dependent values (for instance the value
133 to be used for the SET)
134
135 2. CMIP
136 <protocol>: CMIP
137 <operation>: GET, SET, CREATE, DELETE, ACTION, EVR (used to retrieve
138 event reports)
139 <context>: Agent AE-Title/managed object instance
140 <parameters>: additional operation-dependent values (for instance the value
141 to be used for the SET)
142
143 Since this mapping is supposed to be used not only by software
144 applications (for instance CGI scripts) but also by human operators
145 from within their WWW browsers, it is very important to have a clean
146 and simple syntax. All the ASN.1 values have to be expressed in string
147 format and binary values (BER) are not allowed since they cannot be
148 handled by humans. The object identifiers contained inside the URL can
149 be both in numeric and symbolic form.
150
151 ASN.1 values for SNMP are fairly simple hence their conversion to
152 string is straightforward:
153
154 +------------------------------------------------------------------+
155 | INTEGER | '1996' |
156 +------------------------------------------------------------------+
157 | OCTET STRING | 'Luca' |
158 +------------------------------------------------------------------+
159 | OBJECT IDENTIFIER | '1.3.6.1.2' or 'mgmt' |
160 +------------------------------------------------------------------+
161 | IpAddress | '9.4.33.33' or 'kis.zurich.ibm.com' |
162 +------------------------------------------------------------------+
163 | Counter32 | '4294967294' |
164 +------------------------------------------------------------------+
165 | Gauge32 | '3265532231' |
166 +------------------------------------------------------------------+
167 | TimeTicks | '2645533545' |
168 +------------------------------------------------------------------+
169 | Opaque | '<BER-encoded data>' |
170 +------------------------------------------------------------------+
171
172
173 In the case of CMIP, ASN.1 values can be very complex hence it is
174 necessary to identify a mapping from ASN.1 to strings and
175 vice-versa. For this purpose, a mapping such as the one defined in
176 [CMIPRun] can be used.
177
178 The following examples show how to use the mapping between SNMP/CMIP
179 and URL. Supposing we have an HTTP server (or the proxy) running on
180 host kis.zurich.ibm.com:
181 1. SNMP
182 get the value of sysDescr.0 contained in the SNMP agent running
183 on host bal.zurich.ibm.com:
184
185 http://kis.zurich.ibm.com/SNMP/GET/sysDescr.0?Host=bal.zurich.ibm.
186 com&Community=public
187 Example 1: SNMP Request
188
189 Expires May 19, 1997 [Page 3]
190
191 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
192
193 2. CMIP
194 set the administrativeState attribute to 'enabled' of the managed
195 object instance systemId=(name IBM) contained on the agent whose
196 AE-title is abc:
197
198 http://kis.zurich.ibm.com/CMIP/SET/abc/systemId=(name+IBM)?administrative
199 State=enabled&timeout=30
200 Example 2: CMIP Request
201
202
203 In the case CGI is used, the HTTP server has to be configured in such
204 a way that it recognises the protocol name and then starts CGI
205 applications whose names correspond to the value of <operation>. For
206 the previous examples, a possible configuration file for an HTTP
207 server is:
208
209 ScriptAlias /CMIP/ /usr/local/httpd/CMIP-bin/
210 ScriptAlias /SNMP/ /usr/local/httpd/SNMP-bin/
211 Figure 2: Sample HTTP configuration for CGI applications
212
213 where on every -bin directory the CGI applications are contained. For
214 instance, in the Example 1., inside the directory
215 /usr/local/httpd/SNMP-bin/ there is a CGI application called GET.
216
217
218 4. SNMP/CMIP requests over HTTP
219
220 Once the mapping between SNMP/CMIP and URLs is defined, it is now
221 necessary to specify what the format of the information returned by
222 the HTTP protocol is. Supposing the URL shown in the Example 1 is
223 selected, an HTTP client will send the following data to the HTTP
224 server running on kis.zurich.ibm.com:
225
226 GET SNMP/GET/sysDescr.0?Host=bal.zurich.ibm.com&Community=public HTTP/1.0
227 [empty line]
228 Figure 3: Data sent by an HTTP client in order to issue
229 the request shown in Example 1
230
231 The HTTP response, returned by the HTTP server, is always positive
232 (HHTP wise) unless the requested URL cannot be found or if some other
233 problem arose (for instance authentication problems). In case the HTTP
234 response is positive, it will contain the SNMP response which can be
235 either positive or negative. The HTTP response contains a set of pairs
236 (<identifier>, <value>) separated with carriage return. In case the
237 SNMP response is negative, the last pair is (<empty line>, <error
238 code>) where <error code> contains the error code corresponding to the
239 SNMP request in numeric or string format (for instance "noSuchName" or
240 "2" as defined in the SNMP RFC). Identifiers are object identifiers,
241 usually in symbolic form, whereas values are strings encoded using the
242 encode scheme used by the HTTP protocol. Each line part of the HTTP
243 response is encoded using the URL encoding. This is necessary to avoid
244 that characters like '\n' or '\r', which may be part of the response,
245 interfere with the carriage return used to separate the
246 lines. Multipart MIME encoding can be used as well but it is much more
247 complicated than URL encoding.
248
249
250
251
252 Expires May 19, 1997 [Page 4]
253
254 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
255
256 A positive response for the previous requests is the following:
257
258 HTTP/1.0 200 OK
259 Server: IBM ZRL Proxy Server
260 Date: Fri, 28 Jun 1996 12:30:16 GMT
261 Content-type: text/x-www-form-urlencoded
262 Content-length: 35
263
264 sysDescr.0
265 IBM+RISC+System%2F6000
266
267 The proposed solution allows to return both a single response or to
268 return multiple responses encapsulated in a single HTTP response. In
269 the case of SNMP Walk for instance, the response contains multiple
270 pairs, one for each element of the MIB. HTTP responses can contain
271 additional fields, like the value type (for instance 'TimeTicks'),
272 which can be used by the client application (for instance the WWW
273 browser) to display the returned value properly.
274
275 Similar considerations can be done for CMIP. The only difference with
276 respect to SNMP is that CMIP scoped requests can return multiple CMIP
277 responses where each CMIP response contains multiple attributes
278 relative to a specific object instance. In this case CMIP responses
279 are separated with a (<empty line>, <empty line>). Please note that if
280 the first line of the HTTP response is an <empty line> when the
281 response is negative otherwise it is positive. Due to this there is
282 not ambiguity between (<empty line>, <empty line>) and (<empty line>,
283 <error code>) in case <error code> is empty.
284
285
286 5. Conclusion
287
288 The network management world can significantly benefit from the use of
289 the WWW. This document proposes a way to issue network management
290 requests using the HTTP protocol. Major characteristics of the
291 proposed solutions are:
292 * use of the standard HTTP protocol;
293 * use of symbolic strings which are handled efficiently by common tools
294 such as awk, sed, and perl and (almost) any programming language;
295 * ability to manage SNMP/CMIP resources located across firewalls using
296 the HTTP protocol.
297
298 This work puts the emphasis on the communication aspect rather the
299 programming aspect. In order to create systems manageable using HTTP,
300 it is necessary to specify the format of the request/response leaving
301 freedom to the developers to select the most appropriate way to issue
302 requests and to handle responses.
303
304 6. Acknowledgements
305
306 The author gratefully acknowledges Robert Akolk, Bela Ban, Benjamin
307 Reed and Bert Wijnen for all their comments and suggestions.
308
309
310 7. References
311
312 [CMIP] ISO/IEC, CCITT, "Information Technology-OSI, Common Management
313 Information Protocol (CMIP)-Part 1": Specification ISO/IEC 9596-1,
314 CCITT Recommendation X.711, 1991.
315
316
317
318 Expires May 19, 1997 [Page 5]
319
320 Internet Draft HTTP-based SNMP and CMIP Network Management Nov. 19, 1996
321
322 [CMIPRun] Wade Allen, "An Alternate API for Representing ASN.1
323 Values", CMIP Run! Magazine, Volume 2, Number 4, 4Q93.
324
325 [Hazewinkel] H. Hazewinkel, E. van Hengstum and A. Pras, "Definitions
326 of Managed Objects for HTTP", draft-hazewinkel-httpmib-00.txt,
327 University of Twente, April 1996.
328
329 [HTML] D. Raggett, "HyperText Markup Language Specification Version
330 3.0 (HTML)", Internet Draft, April 1995.
331
332 [HTTP] T. Berners-Lee, R. Fielding and H. Frystyk, "Hypertext Transfer
333 Protocol HTTP/1.0", RFC 1945, May 1996.
334
335 [SNMP] J. Case, M. Fedor, M. Schoffstall and C. Davin, "The Simple
336 Network Management Protocol (SNMP)", RFC 1157, May 1990.
337
338 [URL] T. Berners-Lee, "Uniform Resource Locators (URL)", Internet
339 Draft, March 1994.
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368 Expires May 19, 1997 [Page 6]
369

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24