< draft-ietf-nat-snmp-alg-04.txt   draft-ietf-nat-snmp-alg-05.txt >
Network Working Group D. Raz Network Working Group D. Raz
Internet-Draft Lucent Technologies Internet-Draft Lucent Technologies
Expires: December 29, 2000 J. Schoenwaelder Expires: January 5, 2001 J. Schoenwaelder
TU Braunschweig TU Braunschweig
B. Sugla B. Sugla
ISPSoft Inc. ISPSoft Inc.
June 30, 2000 July 7, 2000
An SNMP Application Level Gateway for Payload Address Translation An SNMP Application Level Gateway for Payload Address Translation
draft-ietf-nat-snmp-alg-04.txt draft-ietf-nat-snmp-alg-05.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as other groups may also distribute working documents as
Internet-Drafts. Internet-Drafts.
skipping to change at page 1, line 34 skipping to change at page 1, line 35
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference at any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
To view the entire list of Internet-Draft Shadow Directories, see To view the entire list of Internet-Draft Shadow Directories, see
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/iid-abstracts.txt http://www.ietf.org/ietf/iid-abstracts.txt
This Internet-Draft will expire on December 29, 2000. This Internet-Draft will expire on January 5, 2001.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2000). All Rights Reserved.
Abstract Abstract
This document describes the Application Level Gateway (ALG) for the This document describes the Application Level Gateway (ALG) for the
Simple Network Management Protocol (SNMP) by which IP addresses in Simple Network Management Protocol (SNMP) by which IP addresses in
the payload of SNMP packets are statically mapped from one group to the payload of SNMP packets are statically mapped from one group to
skipping to change at page 3, line 8 skipping to change at page 3, line 8
8. Current Implementations . . . . . . . . . . . . . . . . . . . 14 8. Current Implementations . . . . . . . . . . . . . . . . . . . 14
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 16
A. Description of the Encoding of SNMP Packets . . . . . . . . . 16 A. Description of the Encoding of SNMP Packets . . . . . . . . . 16
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 19 Full Copyright Statement . . . . . . . . . . . . . . . . . . . 19
1. Introduction 1. Introduction
The need for IP address translation arises when a network's internal The need for IP address translation arises when a network's internal
IP addresses cannot be used outside the network either for security IP addresses cannot be used outside the network. Using basic network
reasons or because they are invalid for use outside the network. address translation allows local hosts on such private networks
Using basic network address translation allows local hosts on such (addressing realms) to transparently access the external global
private networks (addressing realms) to transparently access the Internet and enables access to selective local hosts from the
external global Internet and enables access to selective local hosts outside. In particular it is not unlikely to have several addressing
from the outside. This solution is becoming widely popular as the realms that are using the same private IPv4 address space within the
range of IPv4 addresses is limited. In particular it is not unlikely same organization.
to have several addressing realms that are using the same private
IPv4 address space within the same organization.
In many of these cases, there is a need to manage the local In many of these cases, there is a need to manage the local
addressing realm from a manager site outside the domain. However, addressing realm from a manager site outside the domain. However,
managing such a network presents unique problems and challenges. managing such a network presents unique problems and challenges.
Most available management applications use SNMP (Simple Network Most available management applications use SNMP (Simple Network
Management Protocol) to retrieve information from the network Management Protocol) to retrieve information from the network
elements. For example, a router may be queried by the management elements. For example, a router may be queried by the management
application about the addresses of its neighboring elements. This application about the addresses of its neighboring elements. This
information is then sent by the router back to the management information is then sent by the router back to the management
station as part of the payload of an SNMP packet. In order to retain station as part of the payload of an SNMP packet. In order to retain
skipping to change at page 9, line 27 skipping to change at page 9, line 27
the embedded private IPv4 address with 135.180.140.202 leads to the the embedded private IPv4 address with 135.180.140.202 leads to the
OID 06 11 2B 06 01 02 01 04 14 01 02 81 07 81 34 81 0C 81 4A. This OID 06 11 2B 06 01 02 01 04 14 01 02 81 07 81 34 81 0C 81 4A. This
example shows that an advanced SNMP ALG may change the overall example shows that an advanced SNMP ALG may change the overall
packet size since IP addresses embedded in an OID can change the packet size since IP addresses embedded in an OID can change the
size of the ASN.1/BER encoded OID. size of the ASN.1/BER encoded OID.
Another effect of an advanced SNMP ALG is that it changes the Another effect of an advanced SNMP ALG is that it changes the
lexicographic ordering of rows in conceptual tables as seen by the lexicographic ordering of rows in conceptual tables as seen by the
SNMP manager. This may have severe side-effects for management SNMP manager. This may have severe side-effects for management
applications that use lexicographic ordering to retrieve only parts applications that use lexicographic ordering to retrieve only parts
of a conceptual table. Some SNMP managers check lexicographic of a conceptual table. Many SNMP managers check lexicographic
ordering to detect loops caused by broken agents. Such a manager ordering to detect loops caused by broken agents. Such a manager
will incorrectly report agents behind an advanced SNMP ALG as broken will incorrectly report agents behind an advanced SNMP ALG as broken
SNMP agents. SNMP agents.
4.3 Packet Size and UDP Checksum 4.3 Packet Size and UDP Checksum
Changing an IpAddress value in an SNMP packet does not change the Changing an IpAddress value in an SNMP packet does not change the
size of the SNMP packet. A basic SNMP ALG does therefore never size of the SNMP packet. A basic SNMP ALG does therefore never
change the size of the underlying UDP packet. change the size of the underlying UDP packet.
skipping to change at page 10, line 7 skipping to change at page 10, line 7
packet may have the effect that the Response PDU can not be packet may have the effect that the Response PDU can not be
processed anymore. Thus, an advanced SNMP ALG may cause some SNMPv3 processed anymore. Thus, an advanced SNMP ALG may cause some SNMPv3
interactions to fail. interactions to fail.
In both cases, the UDP checksum must be adjusted when making an IP In both cases, the UDP checksum must be adjusted when making an IP
address translation. We can use the algorithm from [18], but a small address translation. We can use the algorithm from [18], but a small
modification must be introduced as the modified bytes may start on modification must be introduced as the modified bytes may start on
an odd position. The C code shown in Figure 3 adjusts the checksum an odd position. The C code shown in Figure 3 adjusts the checksum
to a replacement of one byte in an odd or even position. to a replacement of one byte in an odd or even position.
Unlike TCP, the UDP checksum can be set to 0, which makes all the
applications ignore it. This can be used by an SNMP ALG if the
computational resources are limited.
void checksumbyte(unsigned char *chksum, unsigned char *optr, void checksumbyte(unsigned char *chksum, unsigned char *optr,
unsigned char *nptr, int odd) unsigned char *nptr, int odd)
/* assuming: unsigned char is 8 bits, long is 32 bits, /* assuming: unsigned char is 8 bits, long is 32 bits,
we replace one byte by one byte in an odd position. we replace one byte by one byte in an odd position.
- chksum points to the chksum in the packet - chksum points to the chksum in the packet
- optr points to the old byte in the packet - optr points to the old byte in the packet
- nptr points to the new byte in the packet - nptr points to the new byte in the packet
- odd is 1 if the byte is in an odd position 0 otherwise - odd is 1 if the byte is in an odd position 0 otherwise
*/ */
{ long x, old, new; { long x, old, new;
skipping to change at page 11, line 7 skipping to change at page 10, line 52
An advanced SNMP ALG described in Section 4.2 achieves better An advanced SNMP ALG described in Section 4.2 achieves better
transparency. However, an advanced SNMP ALG can only claim to be transparency. However, an advanced SNMP ALG can only claim to be
transparent for the set of data types (textual conventions) transparent for the set of data types (textual conventions)
understood by the advanced SNMP ALG implementation and for a given understood by the advanced SNMP ALG implementation and for a given
set of MIB modules. The price paid for better transparency is set of MIB modules. The price paid for better transparency is
additional complexity, potentially increased SNMP packet sizes and additional complexity, potentially increased SNMP packet sizes and
mixed up lexicographic ordering. Especially with SNMPv3, there is mixed up lexicographic ordering. Especially with SNMPv3, there is
an opportunity that communication fails due to increased packet an opportunity that communication fails due to increased packet
sizes. Management applications that rely on lexicographic ordering sizes. Management applications that rely on lexicographic ordering
may show erroneous behaviour. will show erroneous behaviour.
Both, basic and advanced SNMP ALGs, introduce problems when using Both, basic and advanced SNMP ALGs, introduce problems when using
SNMPv3 security features. The SNMPv3 authentication mechanism SNMPv3 security features. The SNMPv3 authentication mechanism
protects the whole SNMP message against modifications while the protects the whole SNMP message against modifications while the
SNMPv3 privacy mechanism protects the payload of SNMPv3 messages SNMPv3 privacy mechanism protects the payload of SNMPv3 messages
against unauthorized access. Thus, an SNMP ALG must have access to against unauthorized access. Thus, an SNMP ALG must have access to
all localized keys in use in order to modify SNMPv3 messages without all localized keys in use in order to modify SNMPv3 messages without
invalidating them. Futhermore, the SNMP ALG must track any key invalidating them. Futhermore, the SNMP ALG must track any key
changes in order to function. More details on the security changes in order to function. More details on the security
implications of using SNMP ALGs can be found in Section 6. implications of using SNMP ALGs can be found in Section 6.
skipping to change at page 12, line 32 skipping to change at page 12, line 27
messages with authentication and optionally encryption (auth/noPriv messages with authentication and optionally encryption (auth/noPriv
and auth/priv) can only be processed by an SNMP ALG which supports and auth/priv) can only be processed by an SNMP ALG which supports
the corresponding cryptographic algorithms and which has access to the corresponding cryptographic algorithms and which has access to
the keys in use. Furthermore, as keys may be updated, the SNMP ALG the keys in use. Furthermore, as keys may be updated, the SNMP ALG
must have a mechanism that tracks key changes (either by analyzing must have a mechanism that tracks key changes (either by analyzing
the key change interactions or by propagating key changes by other the key change interactions or by propagating key changes by other
mechanisms). Second, the computational complexity of processing SNMP mechanisms). Second, the computational complexity of processing SNMP
messages may increase dramatically. The message has to be decrypted messages may increase dramatically. The message has to be decrypted
before the translation takes place. If any translation is done the before the translation takes place. If any translation is done the
hash signature used to authenticate the message and to protect its hash signature used to authenticate the message and to protect its
integrity must be recomputed. This process may take time and thus it integrity must be recomputed.
may be required to track and modify the timeliness variable
(msgAuthoritativeEngineTime) in the SNMP message.
In general, key exchange protocols are complicated and designing an In general, key exchange protocols are complicated and designing an
SNMP ALG which maintains the keys for a set of SNMP engines is a SNMP ALG which maintains the keys for a set of SNMP engines is a
non-trivial task. The User-based Security Model for SNMPv3 [12] non-trivial task. The User-based Security Model for SNMPv3 [12]
defines a mechanism which takes a password and generates localized defines a mechanism which takes a password and generates localized
keys for every SNMP engine. The localized keys have the property keys for every SNMP engine. The localized keys have the property
that a compromised single localized key does not automatically give that a compromised single localized key does not automatically give
an attacker access to other SNMP engines, even if the key for other an attacker access to other SNMP engines, even if the key for other
SNMP engines is derived from the same password. SNMP engines is derived from the same password.
 End of changes. 10 change blocks. 
22 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/