Porting PicoTCP WIP
This commit is contained in:
563
kernel/picotcp/RFC/rfc2452.txt
Normal file
563
kernel/picotcp/RFC/rfc2452.txt
Normal file
@ -0,0 +1,563 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group M. Daniele
|
||||
Request for Comments: 2452 Compaq Computer Corporation
|
||||
Category: Standards Track December 1998
|
||||
|
||||
|
||||
IP Version 6 Management Information Base
|
||||
for the Transmission Control Protocol
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
||||
|
||||
Abstract
|
||||
|
||||
This document is one in the series of documents that define various
|
||||
MIB objects for IPv6. Specifically, this document is the MIB module
|
||||
which defines managed objects for implementations of the Transmission
|
||||
Control Protocol (TCP) over IP Version 6 (IPv6).
|
||||
|
||||
This document also recommends a specific policy with respect to the
|
||||
applicability of RFC 2012 for implementations of IPv6. Namely, that
|
||||
most of managed objects defined in RFC 2012 are independent of which
|
||||
IP versions underlie TCP, and only the TCP connection information is
|
||||
IP version-specific.
|
||||
|
||||
This memo defines an experimental portion of the Management
|
||||
Information Base (MIB) for use with network management protocols in
|
||||
IPv6-based internets.
|
||||
|
||||
1. Introduction
|
||||
|
||||
A management system contains: several (potentially many) nodes, each
|
||||
with a processing entity, termed an agent, which has access to
|
||||
management instrumentation; at least one management station; and, a
|
||||
management protocol, used to convey management information between
|
||||
the agents and management stations. Operations of the protocol are
|
||||
carried out under an administrative framework which defines
|
||||
authentication, authorization, access control, and privacy policies.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 1]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
Management stations execute management applications which monitor and
|
||||
control managed elements. Managed elements are devices such as
|
||||
hosts, routers, terminal servers, etc., which are monitored and
|
||||
controlled via access to their management information.
|
||||
|
||||
Management information is viewed as a collection of managed objects,
|
||||
residing in a virtual information store, termed the Management
|
||||
Information Base (MIB). Collections of related objects are defined
|
||||
in MIB modules. These modules are written using a subset of OSI's
|
||||
Abstract Syntax Notation One (ASN.1) [1], termed the Structure of
|
||||
Management Information (SMI) [2].
|
||||
|
||||
2. Overview
|
||||
|
||||
This document is one in the series of documents that define various
|
||||
MIB objects, and statements of conformance, for IPv6. This document
|
||||
defines the required instrumentation for implementations of TCP over
|
||||
IPv6.
|
||||
|
||||
3. Transparency of IP versions to TCP
|
||||
|
||||
The fact that a particular TCP connection uses IPv6 as opposed to
|
||||
IPv4, is largely invisible to a TCP implementation. A "TCPng" did
|
||||
not need to be defined, implementations simply need to support IPv6
|
||||
addresses.
|
||||
|
||||
As such, the managed objects already defined in [TCP MIB] are
|
||||
sufficient for managing TCP in the presence of IPv6. These objects
|
||||
are equally applicable whether the managed node supports IPv4 only,
|
||||
IPv6 only, or both IPv4 and IPv6.
|
||||
|
||||
For example, tcpActiveOpens counts "The number of times TCP
|
||||
connections have made a direct transition to the SYN-SENT state from
|
||||
the CLOSED state", regardless of which version of IP is used between
|
||||
the connection endpoints.
|
||||
|
||||
Stated differently, TCP implementations don't need separate counters
|
||||
for IPv4 and for IPv6.
|
||||
|
||||
4. Representing TCP Connections
|
||||
|
||||
The exception to the statements in section 3 is the tcpConnTable.
|
||||
Since IPv6 addresses cannot be represented with the IpAddress syntax,
|
||||
not all TCP connections can be represented in the tcpConnTable
|
||||
defined in [TCP MIB].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 2]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
This memo defines a new, separate table to represent only those TCP
|
||||
connections between IPv6 endpoints. TCP connections between IPv4
|
||||
endpoints continue to be represented in tcpConnTable [TCP MIB]. (It
|
||||
is not possible to establish a TCP connection between an IPv4
|
||||
endpoint and an IPv6 endpoint.)
|
||||
|
||||
A different approach would have been to define a new table to
|
||||
represent all TCP connections regardless of IP version. This would
|
||||
require changes to [TCP MIB] and hence to existing (IPv4-only) TCP
|
||||
implementations. The approach suggested in this memo has the
|
||||
advantage of leaving IPv4-only implementations intact.
|
||||
|
||||
It is assumed that the objects defined in this memo will eventually
|
||||
be defined in an update to [TCP MIB]. For this reason, the module
|
||||
identity is assigned under the experimental portion of the MIB.
|
||||
|
||||
5. Conformance
|
||||
|
||||
This memo contains conformance statements to define conformance to
|
||||
this MIB for TCP over IPv6 implementations.
|
||||
|
||||
6. Definitions
|
||||
|
||||
IPV6-TCP-MIB DEFINITIONS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
|
||||
MODULE-IDENTITY, OBJECT-TYPE,
|
||||
mib-2, experimental FROM SNMPv2-SMI
|
||||
Ipv6Address, Ipv6IfIndexOrZero FROM IPV6-TC;
|
||||
|
||||
ipv6TcpMIB MODULE-IDENTITY
|
||||
LAST-UPDATED "9801290000Z"
|
||||
ORGANIZATION "IETF IPv6 MIB Working Group"
|
||||
CONTACT-INFO
|
||||
" Mike Daniele
|
||||
|
||||
Postal: Compaq Computer Corporation
|
||||
110 Spitbrook Rd
|
||||
Nashua, NH 03062.
|
||||
US
|
||||
|
||||
Phone: +1 603 884 1423
|
||||
Email: daniele@zk3.dec.com"
|
||||
DESCRIPTION
|
||||
"The MIB module for entities implementing TCP over IPv6."
|
||||
::= { experimental 86 }
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 3]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
-- objects specific to TCP for IPv6
|
||||
|
||||
tcp OBJECT IDENTIFIER ::= { mib-2 6 }
|
||||
|
||||
-- the TCP over IPv6 Connection table
|
||||
|
||||
-- This connection table contains information about this
|
||||
-- entity's existing TCP connections between IPv6 endpoints.
|
||||
-- Only connections between IPv6 addresses are contained in
|
||||
-- this table. This entity's connections between IPv4
|
||||
-- endpoints are contained in tcpConnTable.
|
||||
|
||||
ipv6TcpConnTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF Ipv6TcpConnEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A table containing TCP connection-specific information,
|
||||
for only those connections whose endpoints are IPv6 addresses."
|
||||
::= { tcp 16 }
|
||||
|
||||
ipv6TcpConnEntry OBJECT-TYPE
|
||||
SYNTAX Ipv6TcpConnEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A conceptual row of the ipv6TcpConnTable containing
|
||||
information about a particular current TCP connection.
|
||||
Each row of this table is transient, in that it ceases to
|
||||
exist when (or soon after) the connection makes the transition
|
||||
to the CLOSED state.
|
||||
|
||||
Note that conceptual rows in this table require an additional
|
||||
index object compared to tcpConnTable, since IPv6 addresses
|
||||
are not guaranteed to be unique on the managed node."
|
||||
INDEX { ipv6TcpConnLocalAddress,
|
||||
ipv6TcpConnLocalPort,
|
||||
ipv6TcpConnRemAddress,
|
||||
ipv6TcpConnRemPort,
|
||||
ipv6TcpConnIfIndex }
|
||||
::= { ipv6TcpConnTable 1 }
|
||||
|
||||
Ipv6TcpConnEntry ::=
|
||||
SEQUENCE { ipv6TcpConnLocalAddress Ipv6Address,
|
||||
ipv6TcpConnLocalPort INTEGER (0..65535),
|
||||
ipv6TcpConnRemAddress Ipv6Address,
|
||||
ipv6TcpConnRemPort INTEGER (0..65535),
|
||||
ipv6TcpConnIfIndex Ipv6IfIndexOrZero,
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 4]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
ipv6TcpConnState INTEGER }
|
||||
|
||||
ipv6TcpConnLocalAddress OBJECT-TYPE
|
||||
SYNTAX Ipv6Address
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The local IPv6 address for this TCP connection. In
|
||||
the case of a connection in the listen state which
|
||||
is willing to accept connections for any IPv6
|
||||
address associated with the managed node, the value
|
||||
::0 is used."
|
||||
::= { ipv6TcpConnEntry 1 }
|
||||
|
||||
ipv6TcpConnLocalPort OBJECT-TYPE
|
||||
SYNTAX INTEGER (0..65535)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The local port number for this TCP connection."
|
||||
::= { ipv6TcpConnEntry 2 }
|
||||
|
||||
ipv6TcpConnRemAddress OBJECT-TYPE
|
||||
SYNTAX Ipv6Address
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The remote IPv6 address for this TCP connection."
|
||||
::= { ipv6TcpConnEntry 3 }
|
||||
|
||||
ipv6TcpConnRemPort OBJECT-TYPE
|
||||
SYNTAX INTEGER (0..65535)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The remote port number for this TCP connection."
|
||||
::= { ipv6TcpConnEntry 4 }
|
||||
|
||||
ipv6TcpConnIfIndex OBJECT-TYPE
|
||||
SYNTAX Ipv6IfIndexOrZero
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"An index object used to disambiguate conceptual rows in
|
||||
the table, since the connection 4-tuple may not be unique.
|
||||
|
||||
If the connection's remote address (ipv6TcpConnRemAddress)
|
||||
is a link-local address and the connection's local address
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 5]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
(ipv6TcpConnLocalAddress) is not a link-local address, this
|
||||
object identifies a local interface on the same link as
|
||||
the connection's remote link-local address.
|
||||
|
||||
Otherwise, this object identifies the local interface that
|
||||
is associated with the ipv6TcpConnLocalAddress for this
|
||||
TCP connection. If such a local interface cannot be determined,
|
||||
this object should take on the value 0. (A possible example
|
||||
of this would be if the value of ipv6TcpConnLocalAddress is ::0.)
|
||||
|
||||
The interface identified by a particular non-0 value of this
|
||||
index is the same interface as identified by the same value
|
||||
of ipv6IfIndex.
|
||||
|
||||
The value of this object must remain constant during the life
|
||||
of the TCP connection."
|
||||
::= { ipv6TcpConnEntry 5 }
|
||||
|
||||
ipv6TcpConnState OBJECT-TYPE
|
||||
SYNTAX INTEGER {
|
||||
closed(1),
|
||||
listen(2),
|
||||
synSent(3),
|
||||
synReceived(4),
|
||||
established(5),
|
||||
finWait1(6),
|
||||
finWait2(7),
|
||||
closeWait(8),
|
||||
lastAck(9),
|
||||
closing(10),
|
||||
timeWait(11),
|
||||
deleteTCB(12) }
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The state of this TCP connection.
|
||||
|
||||
The only value which may be set by a management station is
|
||||
deleteTCB(12). Accordingly, it is appropriate for an agent
|
||||
to return an error response (`badValue' for SNMPv1, 'wrongValue'
|
||||
for SNMPv2) if a management station attempts to set this
|
||||
object to any other value.
|
||||
|
||||
If a management station sets this object to the value
|
||||
deleteTCB(12), then this has the effect of deleting the TCB
|
||||
(as defined in RFC 793) of the corresponding connection on
|
||||
the managed node, resulting in immediate termination of the
|
||||
connection.
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 6]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
As an implementation-specific option, a RST segment may be
|
||||
sent from the managed node to the other TCP endpoint (note
|
||||
however that RST segments are not sent reliably)."
|
||||
::= { ipv6TcpConnEntry 6 }
|
||||
|
||||
--
|
||||
-- conformance information
|
||||
--
|
||||
|
||||
ipv6TcpConformance OBJECT IDENTIFIER ::= { ipv6TcpMIB 2 }
|
||||
|
||||
ipv6TcpCompliances OBJECT IDENTIFIER ::= { ipv6TcpConformance 1 }
|
||||
ipv6TcpGroups OBJECT IDENTIFIER ::= { ipv6TcpConformance 2 }
|
||||
|
||||
-- compliance statements
|
||||
|
||||
ipv6TcpCompliance MODULE-COMPLIANCE
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The compliance statement for SNMPv2 entities which
|
||||
implement TCP over IPv6."
|
||||
MODULE -- this module
|
||||
MANDATORY-GROUPS { ipv6TcpGroup }
|
||||
::= { ipv6TcpCompliances 1 }
|
||||
|
||||
ipv6TcpGroup OBJECT-GROUP
|
||||
OBJECTS { -- these are defined in this module
|
||||
-- ipv6TcpConnLocalAddress (not-accessible)
|
||||
-- ipv6TcpConnLocalPort (not-accessible)
|
||||
-- ipv6TcpConnRemAddress (not-accessible)
|
||||
-- ipv6TcpConnRemPort (not-accessible)
|
||||
-- ipv6TcpConnIfIndex (not-accessible)
|
||||
ipv6TcpConnState }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The group of objects providing management of
|
||||
TCP over IPv6."
|
||||
::= { ipv6TcpGroups 1 }
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 7]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
7. Acknowledgments
|
||||
|
||||
This memo is a product of the IPng work group, and benefited
|
||||
especially from the contributions of the following working group
|
||||
members:
|
||||
|
||||
Dimitry Haskin Bay Networks
|
||||
Margaret Forsythe Epilogue
|
||||
Tim Hartrick Mentat
|
||||
Frank Solensky FTP
|
||||
Jack McCann DEC
|
||||
|
||||
8. References
|
||||
|
||||
[1] Information processing systems - Open Systems
|
||||
Interconnection - Specification of Abstract Syntax
|
||||
Notation One (ASN.1), International Organization for
|
||||
Standardization. International Standard 8824,
|
||||
(December, 1987).
|
||||
|
||||
[2] McCloghrie, K., Editor, "Structure of Management
|
||||
Information for version 2 of the Simple Network
|
||||
Management Protocol (SNMPv2)", RFC 1902, January 1996.
|
||||
|
||||
[TCP MIB] SNMPv2 Working Group, McCloghrie, K., Editor, "SNMPv2
|
||||
Management Information Base for the Transmission
|
||||
Control Protocol using SMIv2", RFC 2012, November 1996.
|
||||
|
||||
[IPV6 MIB TC] Haskin, D., and S. Onishi, "Management Information
|
||||
Base for IP Version 6: Textual Conventions and General
|
||||
Group", RFC 2465, December 1998.
|
||||
|
||||
[IPV6] Deering, S., and R. Hinden, "Internet Protocol, Version
|
||||
6 (IPv6) Specification", RFC 2460, December 1998.
|
||||
|
||||
[RFC2274] Blumenthal, U., and B. Wijnen, "The User-Based Security
|
||||
Model for Version 3 of the Simple Network Management
|
||||
Protocol (SNMPv3)", RFC 2274, January 1998.
|
||||
|
||||
[RFC2275] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
|
||||
Access Control Model for the Simple Network Management
|
||||
Protocol (SNMP)", RFC 2275, January 1998.
|
||||
|
||||
9. Security Considerations
|
||||
|
||||
This MIB contains a management object that has a MAX-ACCESS clause of
|
||||
read-write and/or read-create. In particular, it is possible to
|
||||
delete individual TCP control blocks (i.e., connections).
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 8]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
Consequently, anyone having the ability to issue a SET on this object
|
||||
can impact the operation of the node.
|
||||
|
||||
There are a number of managed objects in this MIB that may be
|
||||
considered to contain sensitive information in some environments.
|
||||
For example, the MIB identifies the active TCP connections on the
|
||||
node. Although this information might be considered sensitive in
|
||||
some environments (i.e., to identify ports on which to launch
|
||||
denial-of-service or other attacks), there are already other ways of
|
||||
obtaining similar information. For example, sending a random TCP
|
||||
packet to an unused port prompts the generation of a TCP reset
|
||||
message.
|
||||
|
||||
Therefore, it may be important in some environments to control read
|
||||
and/or write access to these objects and possibly to even encrypt the
|
||||
values of these object when sending them over the network via SNMP.
|
||||
Not all versions of SNMP provide features for such a secure
|
||||
environment. SNMPv1 by itself does not provide encryption or strong
|
||||
authentication.
|
||||
|
||||
It is recommended that the implementors consider the security
|
||||
features as provided by the SNMPv3 framework. Specifically, the use
|
||||
of the User-based Security Model [RFC2274] and the View-based Access
|
||||
Control Model [RFC2275] is recommended.
|
||||
|
||||
It is then a customer/user responsibility to ensure that the SNMP
|
||||
entity giving access to an instance of this MIB, is properly
|
||||
configured to give access to those objects only to those principals
|
||||
(users) that have legitimate rights to access them.
|
||||
|
||||
10. Author's Address
|
||||
|
||||
Mike Daniele
|
||||
Compaq Computer Corporation
|
||||
110 Spit Brook Rd
|
||||
Nashua, NH 03062
|
||||
|
||||
Phone: +1-603-884-1423
|
||||
EMail: daniele@zk3.dec.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 9]
|
||||
|
||||
RFC 2452 TCP MIB for IPv6 December 1998
|
||||
|
||||
|
||||
11. Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to
|
||||
others, and derivative works that comment on or otherwise explain it
|
||||
or assist in its implementation may be prepared, copied, published
|
||||
and distributed, in whole or in part, without restriction of any
|
||||
kind, provided that the above copyright notice and this paragraph are
|
||||
included on all such copies and derivative works. However, this
|
||||
document itself may not be modified in any way, such as by removing
|
||||
the copyright notice or references to the Internet Society or other
|
||||
Internet organizations, except as needed for the purpose of
|
||||
developing Internet standards in which case the procedures for
|
||||
copyrights defined in the Internet Standards process must be
|
||||
followed, or as required to translate it into languages other than
|
||||
English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not be
|
||||
revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on an
|
||||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daniele Standards Track [Page 10]
|
||||
|
||||
Reference in New Issue
Block a user