rfc3303.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,285 行 · 第 1/5 页
TXT
1,285 行
Network Working Group P. Srisuresh
Request for Comments: 3303 Kuokoa Networks
Category: Informational J. Kuthan
Fraunhofer Institute FOKUS
J. Rosenberg
dynamicsoft
A. Molitor
Aravox Technologies
A. Rayhan
Ryerson University
August 2002
Middlebox communication architecture and framework
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
A principal objective of this document is to describe the underlying
framework of middlebox communications (MIDCOM) to enable complex
applications through the middleboxes, seamlessly using a trusted
third party. This document and a companion document on MIDCOM
requirements ([REQMTS]) have been created as a precursor to
rechartering the MIDCOM working group.
There are a variety of intermediate devices in the Internet today
that require application intelligence for their operation. Datagrams
pertaining to real-time streaming applications, such as SIP and
H.323, and peer-to-peer applications, such as Napster and NetMeeting,
cannot be identified by merely examining packet headers. Middleboxes
implementing Firewall and Network Address Translator services
typically embed application intelligence within the device for their
operation. The document specifies an architecture and framework in
which trusted third parties can be delegated to assist the
middleboxes to perform their operation, without resorting to
embedding application intelligence. Doing this will allow a
middlebox to continue to provide the services, while keeping the
middlebox application agnostic.
Srisuresh, et al. Informational [Page 1]
RFC 3303 MIDCOM Architecture and Framework August 2002
1. Introduction
Intermediate devices requiring application intelligence are the
subject of this document. These devices are referred to as
middleboxes throughout the document. Many of these devices enforce
application specific policy based functions such as packet filtering,
VPN (Virtual Private Network) tunneling, Intrusion detection,
security and so forth. Network Address Translator service, on the
other hand, provides routing transparency across address realms
(within IPv4 routing network or across V4 and V6 routing realms),
independent of applications. Application Level Gateways (ALGs) are
used in conjunction with NAT to examine and optionally modify
application payload so the end-to-end application behavior remains
unchanged for many of the applications traversing NAT middleboxes.
There may be other types of services requiring embedding application
intelligence in middleboxes for their operation. The discussion
scope of this document is however limited to Firewall and NAT
services. Nonetheless, the MIDCOM framework is designed to be
extensible to support the deployment of new services.
Tight coupling of application intelligence with middleboxes makes
maintenance of middleboxes hard with the advent of new applications.
Built-in application awareness typically requires updates of
operating systems with new applications or newer versions of existing
applications. Operators requiring support for newer applications
will not be able to use third party software/hardware specific to the
application and are at the mercy of their middlebox vendor to make
the necessary upgrade. Further, embedding intelligence for a large
number of application protocols within the same middlebox increases
complexity of the middlebox and is likely to be error prone and
degrade in performance.
This document describes a framework in which application intelligence
can be moved from middleboxes into external MIDCOM agents. The
premise of the framework is to devise a MIDCOM protocol that is
application independent, so the middleboxes can stay focused on
services such as firewall and NAT. The framework document includes
some explicit and implied requirements for the MIDCOM protocol.
However, it must be noted that these requirements are only a subset.
A separate requirements document lists the requirements in detail.
MIDCOM agents with application intelligence can assist the
middleboxes through the MIDCOM protocol in permitting applications
such as FTP, SIP and H.323. The communication between a MIDCOM agent
and a middlebox will not be noticeable to the end-hosts that take
part in the application, unless one of the end-hosts assumes the role
of a MIDCOM agent. Discovery of middleboxes or MIDCOM agents in the
Srisuresh, et al. Informational [Page 2]
RFC 3303 MIDCOM Architecture and Framework August 2002
path of an application instance is outside the scope of this
document. Further, any communication amongst middleboxes is also
outside the scope of this document.
This document describes the framework in which middlebox
communication takes place and the various elements that constitute
the framework. Section 2 describes the terms used in the document.
Section 3 defines the architectural framework of a middlebox for
communication with MIDCOM agents. The remaining sections cover the
components of the framework, illustration using sample flows, and
operational considerations with the MIDCOM architecture. Section 4
describes the nature of MIDCOM protocol. Section 5 identifies
entities that could potentially host the MIDCOM agent function.
Section 6 considers the role of Policy server and its function with
regard to communicating MIDCOM agent authorization policies. Section
7 is an illustration of SIP flows using a MIDCOM framework in which
the MIDCOM agent is co-resident on a SIP proxy server. Section 8
addresses operational considerations in deploying a protocol adhering
to the framework described here. Section 9 is an applicability
statement, scoping the location of middleboxes. Section 11 outlines
security considerations for the middlebox in view of the MIDCOM
framework.
2. Terminology
Below are the definitions for the terms used throughout the document.
2.1. Middlebox function/service
A middlebox function or a middlebox service is an operation or method
performed by a network intermediary that may require application
specific intelligence for its operation. Policy based packet
filtering (a.k.a. firewall), Network address translation (NAT),
Intrusion detection, Load balancing, Policy based tunneling and IPsec
security are all examples of a middlebox function (or service).
2.2. Middlebox
A Middlebox is a network intermediate device that implements one or
more of the middlebox services. A NAT middlebox is a middlebox
implementing NAT service. A firewall middlebox is a middlebox
implementing firewall service.
Traditional middleboxes embed application intelligence within the
device to support specific application traversal. Middleboxes
supporting the MIDCOM protocol will be able to externalize
application intelligence into MIDCOM agents. In reality, some of the
Srisuresh, et al. Informational [Page 3]
RFC 3303 MIDCOM Architecture and Framework August 2002
middleboxes may continue to embed application intelligence for
certain applications and depend on MIDCOM protocol and MIDCOM agents
for the support of remaining applications.
2.3. Firewall
Firewall is a policy based packet filtering middlebox function,
typically used for restricting access to/from specific devices and
applications. The policies are often termed Access Control Lists
(ACLs).
2.4. NAT
Network Address Translation is a method by which IP addresses are
mapped from one address realm to another, providing transparent
routing to end-hosts. Transparent routing here refers to modifying
end-node addresses en-route and maintaining state for these updates
so that when a datagram leaves one realm and enters another,
datagrams pertaining to a session are forwarded to the right end-host
in either realm. Refer to [NAT-TERM] for the definition of
Transparent routing, various NAT types, and the associated terms in
use. Two types of NAT are most common. Basic-NAT, where only an IP
address (and the related IP, TCP/UDP checksums) of packets is altered
and NAPT (Network Address Port Translation), where both an IP address
and a transport layer identifier, such as a TCP/UDP port (and the
related IP, TCP/UDP checksums), are altered.
The term NAT in this document is very similar to the IPv4 NAT
described in [NAT-TERM], but is extended beyond IPv4 networks to
include the IPv4-v6 NAT-PT described in [NAT-PT]. While the IPv4 NAT
[NAT-TERM] translates one IPv4 address into another IPv4 address to
provide routing between private V4 and external V4 address realms,
IPv4-v6 NAT-PT [NAT-PT] translates an IPv4 address into an IPv6
address, and vice versa, to provide routing between a V6 address
realm and an external V4 address realm.
Unless specified otherwise, NAT in this document is a middlebox
function referring to both IPv4 NAT, as well as IPv4-v6 NAT-PT.
2.5. Proxy
A proxy is an intermediate relay agent between clients and servers of
an application, relaying application messages between the two.
Proxies use special protocol mechanisms to communicate with proxy
clients and relay client data to servers and vice versa. A Proxy
terminates sessions with both the client and the server, acting as
server to the end-host client and as client to the end-host server.
Srisuresh, et al. Informational [Page 4]
RFC 3303 MIDCOM Architecture and Framework August 2002
Applications such as FTP, SIP, and RTSP use a control session to
establish data sessions. These control and data sessions can take
divergent paths. While a proxy can intercept both the control and
data sessions, it might intercept only the control session. This is
often the case with real-time streaming applications such as SIP and
RTSP.
2.6. ALG
Application Level Gateways (ALGs) are entities that possess the
application specific intelligence and knowledge of an associated
middlebox function. An ALG examines application traffic in transit
and assists the middlebox in carrying out its function.
An ALG may be a co-resident with a middlebox or reside externally,
communicating through a middlebox communication protocol. It
interacts with a middlebox to set up state, access control filters,
use middlebox state information, modify application specific payload,
or perform whatever else is necessary to enable the application to
run through the middlebox.
ALGs are different from proxies. ALGs are not visible to end-hosts,
unlike the proxies which are relay agents terminating sessions with
both end-hosts. ALGs do not terminate sessions with either end-host.
Instead, ALGs examine, and optionally modify, application payload
content to facilitate the flow of application traffic through a
middlebox. ALGs are middlebox centric, in that they assist the
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?