NAT WG meeting minutes - 43rd IETF - Orlando, FL - December 9, 1998
Chairs: Matt Holdrege <
[email protected]>
Pyda Srisuresh <
[email protected]>
Reported by: Ben Rogers <
[email protected]>
Edited by: Matt & Suresh
____________________________________________________________________
Mailing list:
[email protected]
To subscribe: Send e-mail to
[email protected] with
"subscribe" in the body of the message.
To unsubscribe: Send e-mail to
[email protected]
with "unsubscribe" in the body of the message.
Mailing list:
[email protected]
(This is nat mailing list, in daily-digest format.
To receive the digest, you can subscribe as follows.)
To subscribe: Send e-mail to
[email protected] with
"subscribe" in the body of the message.
To unsubscribe: Send e-mail to
[email protected] with "unsubscribe" in
the body of the message.
All presentations, along with WG meeting minutes will be avilable
on-line from the following URL.
http://www.livingston.com/tech/ietf/nat
____________________________________________________________________
In order to avoid confusion, the following indentation and format legend
should be used as a guide to interpreting the minutes.
<Presenter> - "<presentation/Discussion Topic>"
<Any other remarks by minutes taker or editors>
Detailed Slides and/or Comments made by the presenter
Questions from the Audience:
[<Audience-Name> - <Question/Comment>]
<Response from the Presenter>
_________________________________________________________________________
Matt Holdrege - Introduction
Two NAT Drafts sent to mailing list completed WG last call and
are currently awaiting IESG review for advancing into informational
RFC status.
Agenda
1. "NAT Friendly Application Design Guidelines" 20 mins.
<draft-ietf-nat-app-guide-00.txt> by Daniel Senie
2. "A Multihoming solution using NATs" 20 mins.
< draft-akkiraju-nat-multihoming-00.txt >
by Praveen Akkiraju and Yakov Rekhter
3. "Security for IP Network Address Translator 20 mins.
(NAT) Domains"
<draft-ietf-nat-security-00.txt> by Pyda Srisuresh
4. "IP Network Address Translator (NAT) Protocol Issues" 20 mins.
<draft-ietf-nat-protocol-issues-01.txt>
by Matt Holdrege & Pyda Srisuresh
5. "IP Network Address Translator Application 20 mins.
Programming Interface"
<draft-ietf-nat-api-00.txt> by Pyda Srisuresh
6. "IP Host Network Address (and Port) Translation" 20 mins.
<draft-ietf-nat-hnat-00.txt>
by Jeffrey Lo & K. Taniguchi
Daniel Senie - "NAT Friendly Application Design Guidelines"
<draft-ietf-nat-app-guide-00.txt>
http://www.amaranthnetworks.com/nat - This is the link to Daniel's
web page that will have the most uptodate copy of applications that
are NAT friendly
General Goal
o Develop new application protocols which do not require ALG
assistance from NAT and Firewall implementations
These guidelines tend to apply to both NAT and Firewall
implementations as the requirements for a firewall a similar.
General Recommendations
o Use of Multiple Session Bundle
* Use single TCP or UDP port for all traffic where possible
* If possible, originate all sessions from the same endpoint
(this avoids the FTP problem)
o Use DNS names, not IP addresses
o Avoid passing addressing data in payload (IP addresses, port numbers)
o End to end IPsec problematic
* Consider using TLS instead. Host NAT is a possibility for the future
o Service Location
* Avoid location via broadcast or multicast
o Subsequent Sessions
* Address bindings not guaranteed between subsequent sessions.
Reliance on the appearance of co-location can be problematic
o Operational Reliability
* TCP preferred over UDP since NAT can track TCP sessions more
easily and know when sessions end.
* UDP sessions are tracked by timeouts.
ALG's can overcome this problem, but we'd rather design
applications to not need this processing.
o Processing Overhead
* Each new session requires resources and processing to
establish associations. Using a single session for app
reduces overhead.
There is still some overhead, but this is unavoidable.
Additional Items
o Comments since the last draft
* Performance: latency and throughput can be affected by NAT.
Depends on implementation.
The hardware solution can be optimized to lessen this problem
* NAT implementations presently tend to only support TCP and UDP
applications (... for implementations of NAPT). A device
performing just NAT, without any ALG support, supports
many applications as is.
Questions from the Audience:
[Eliot Lear - UDP session management. UDP may make it more
difficult to maintain the mapping]
An application may maintain keep-alives to make this
less of a problem.
[Someone said there are similar issues with SOCKS, and these ideas can
be shared with NAT. Do we have any plan to make a
utility to verify the guidelines? ]
Multiple sessions can work, but are not as reliable, nor
as friendly as single sessions. An analyzer might be
created to diagnose traffic in a non-NAT environment.
[Can we add a recommendation to change current applications (eg.
modify FTP to use passive) to avoid these problems
in current protocols.]
An RFC exists on this particular issue, RFC1579 by
Steve Bellovin. It doesn't reduce FTP to a single
session, though, just makes the connections start
from the same endpoint.
Praveen Akkiraju - "A Multihoming solution using NATs"
<draft-akkiraju-nat-multihoming-00.txt>
Agenda
o Terminology
o Bootstrapping
- Routing configuration
- DNS configuration
o Scenario 1: internally originated connections
o Scenario 2: externally originated connections
o Discussion
Problems with Multihoming
o Creates scaling problems for the global routing infrastructure.
o Use of multiple address blocks from upstream ISPs provides a
possible solution, but results in added address management complexity
o Controlling load balancing based on address assignment is complex
o Difficult to achieve symmetric flow of packets in and out of
an enterprise
Terminology
o Inside Global Address (IGA): Block of address space assigned by
the ISP to the enterprise.
o Inside Local Address (ILA): Address space used within the enterprise
behind the NAT
o Outside Global Address (OGA): Legal address space outside the
enterprise and the NAT
o Outside Local Address (OLA): Address space in the enterprise
used to translate OGA addresses
[Brian Carpenter - terminology is quite confusing and is worth
rethinking, because outside and inside are
backwards from what we're currently used to.]
Topology
An enterprise with 2 NAT routers interfacing with 2 different ISPs.
Routing Configurations
o NAT configured to assign IGA prefixes to internal addresses and
OLA prefixes to external addresses.
o OLA prefixes must not overlap with ILA or OGA address space
o NATs EBGP peer with upstream ISPs to advertise IGA prefixes
o NATs injects OLA prefixes into the enterprise IGP routing
o NATs also IBGP peer with each other
DNS configuration
Goal: Bootstrap exchange of DNS messages across NAT
Reaching the parent zone server
o Assign an OLA prefix to the external parent server and create
a translation entry in the NAT mapping the server OGA to its
OLA
o Configure internal DNS server with the parent zone server's OLA
Reaching foo.com's DNS server
o Assign a IGA prefix to the internal DNS server and create the
corresponding translation entry in both the NATs
o Configure DNS Server for authoritative parent zone with the
IGA's from both NAT's to reach foo.com's authoritative server
(DNS message handling as in draft-ietf-nat-dns-alg-01.txt)
Initial NAT Table
Internal DNS server and Root DNS server are both mapped to provide
inside/outside pairs for each.
NAT bootstrapped with foo.com and parent zone DNS
server mappings.
DNS Summary
o DNS response processing in a NAT consists of 2 stages
* translation of the IP-UDP header
* translation of the reply message
(Walk-through of full packet flow for a DNS lookup, and changes to
the NAT table.)
The structure of this query-response system ensures that all traffic
flow passes through the same NAT.
Resolving X.foo.com (externally initiated session)
(Walk through of full packet flow for the incoming DNS-lookup)
Discussion
o Scheme places no addressing restrictions on the multihomed network
except in OLA allocation.
o Scheme is independent of the enterprises internal routing
architecture.
o Changing providers doesnt require renumbering.
o Due to address allocation packet flow between a pair of
hosts will always flow through the same NAT resulting
in symmetry
o In case of link failure between the NAT and ISP, fallback
connectivity may be provided using RFC 2260 mechanisms.
o Controlling the selection of the NAT which processes a DNS
response controls the rest of the packet flow to the target
host.
* Load balancing is tied to the flow of DNS packets
* Translation of the IP-UDP and DNS reply are handled in the
same NAT
* Under policy control Translation of the IP-UDP and DNS reply
may be handled in seperate NATs
* This allows for more flexible policy based load balancing
of traffic flows.
Misc.
o Draft includes lab-tested router and DNS server configurations
o Concept tested by Ed Kern at NANOG
http://www.academ.com/nanog/feb1998/nat.html
o Refer draft-rfced-info-srisuresh-05.txt for details on
NAT operations and issues.
Questions from the Audience:
[Brian Carpenter - DNS server for foo.com has to be inside
foo.com, and zone transfer will result in a
disaster.]
Correct
[continued... Very clever zone transfer (at minimum) is
needed, if this is possible at all. This is not
very clear in the text.]
[Suresh - Names are apparently end-to-end unique. Is the DNS
information here a duplicate effort of the DNS-ALG
draft (or) Is there something particularly different
in this draft?]
DNS information here is same as in DNS-ALG draft.
The information is included here for Completeness.
[continued.. Twice nat and BGP are implied as required in this
draft, while they are only required for the given
scenarios.]
Twice nat is not necessarily required, but BGP seems to
be.
[continued.. BGP doesn't have to be on boxes connecting to two ISPs.
The draft must be scoped properly. Terminology should
be cleared up to be consistent with other drafts.
Also, DNS based Load sharing discussed here seems
orthogonal to multihoming and NAT issues.]
[Eliot Lear - We can probably get away with no BGP, but we would
still need to use some dynamic routing protocol.
[Yakov - BGP is mentioned because an existing RFC 2260 for robust
multihoming is based on BGP]
[Radia Perlman - Talked about ISP link going down, but not what
happens when the NAT itself goes down. Can we
force new DNS queries so that address caching does
not occur.]
Force of 0 ttl should address this problem.
[Bob Brandt - This seems to infer that there is a 1-1 mapping
between external DNS servers and internal addresses.
This seems to create a scaling problem.]
Addresses are assigned for a limited time, so we can
timeout the addresses quickly.
Pyda Srisuresh - "Security Model for NAT domains"
<draft-ietf-nat-security-00.txt>
Problems with End-to-end IPsec.
Security from NAT box to external node seems to be possible
Model made to be in line with IPsec model to provide security for
NAT nodes-> external nodes
Terminology
o Clear-NAT - Nat applied to Outer packet Header
o Secure-NAT - NAT applied to packets embedded within a secure tunnel
o Secure-NAT gateway device - Supports both Clear-NAT and Secure-NAT
o Terminology from IPsec RFCs + nat draft
Secure-NAT Model
o Secure Policies administered using private realm addressing
o Secure-NAT address mapping
o Security Association Parameters
Secure-NAT Gateway Outbound Packet Processing
(Flow-chart to describe NAT processing decision)
(Verify Outbound packet against outbound Secure policies.
In case of a match, subject the pakcet to Secure-NAT prior
to tunneling using Outbound IPsec SA.)
Secure-NAT Gateway Inbound IPsec Packet Processing
(Detunnel packet using IPsec SA, perform inbound Secure-NAT, then
verify that it matches inbound security policies)
Slides thus far make the assumption that keys are statically
configured.
IKE support to secure-NAT GW
(Large diagram describing the role of IKE-ALG in the translation
of secure policies)
Secure-NAT applications
o Secure Extranet connectivity - Allows private domains to
connect securely to external domains.
o Secure mobile user connectivity - allows mobile users to
connect securely to enterprise routers.
There is a draft by Vipul (<draft-gupta-ipsec-remote-access-00.txt>)
that describes how secure remote access is possible for a mobile user,
without requiring both Home and Care-of addresses on Mobile Node.
Matt Holdrege - "NAT Protocol Issues" draft
<draft-ietf-nat-protocol-issues-01.txt>
Title has been a point of contention (issues?)
"Limitiations" proposed on the list
"NAT Protocol Complications" is the new proposed title.
We need input from the community
We will continue to document the additional information we receive
on protocols in the current format.
We are working on a better method to get more contributions.
The draft will be titled after we can put more information into
this draft.
Questions from the Audience:
[Brian Carpenter - RFC on renumbering issues brought up a similar
set of problems. There was not at the time a
clean way to find all the affected protocols.
Y2K was solved by searching 2000 RFCs, but an
appeal to the community may be better in this
case.]
Diverse group in the room should be able to
talk to members of other WGs to help find these
types of issues.
Pyda Srisuresh - "NAT API"
<draft-ietf-nat-api-00.txt>
Draft title is not necessarily representative of the objectives of
this draft. In particular, the intent is not to mandate standardization
of the NAT API.
Objective
o Identify external agents and their interface requirements with NAT
o Provide a framework for the development of one or more protocols
by which agents can interface with NAT
o Identify NAT objects that could be externalized with MIB
o Provide an API framework for agents on the same device to
interface with NAT.
External Agents
o Host-NAT and Host-NAPT clients need some way to obtain their
addresses and routes.
o Management application needed to configure a NAT (which ALGs are
available, ...)
o Backup NAT may be needed.
o ALGs
A number of agents with different requirements would need to
interface with the NAT. (Hence the API name.)
NAT is doing significant resource management, and this information
is useful for network management applications.
These constitute the behind-the-scene's agenda for the creation of
this draft. There is no intention to standardize on an API.
NAT elements
Draft will contain more gory details than are discussed in this
meeting.
o NAT Descriptor - ID, Type, Address map, etc.
o BINDing Descriptor - ID, Type, specific addresses (port) bound,
Leased time, Controlling Agent ID, etc.
o Session Descriptor - ID, Controlling BIND ID, Original and
Translated session parameters, Session Tag, Session Termination
heuristic, etc.
External Agent descriptor
o Agent ID
o Agent Type
o Agent Call back requirements
o Agent Call-back functions
o Agent Accessibility information
Function calls provided to agents
(List of function calls that an agent could invoke)
Functions are provided to perform inquiries on bindings, sessions
to register with NAT (as an ALG, ...)
to set parameters within BIND or Session
to free BIND or Sessions
Callback functions in agents
(List of callback function an agent could provide)
Callbacks may occur on events or packets, or simply periodically.
The ADs have advised that this WG is the right forum to discuss
Host-NAT issues. However, we need to ensure that the base documents
of the WG are given priority.
Questions from the Audience:
[Eliot Lear - This seems to be required. Brian raised the issue
of architectural implications of NAT. This draft
addresses some of those problems, especially in
terms of Host NAT.]
This doesn't provide for Host NAT, per-se.
[Brian Carpenter - Hasn't read the draft.]
Jeffrey Lo - "Host Network Address Translation"
<draft-ietf-nat-hnat-00.txt>
This draft came out recently, so there may not have been many people
who have taken a look at it. (Some indication of Distributed NAT.)
Framework
o Uses a common "control" protocol for HNAT parameter negotiation
o Uses tunneling mechanisms for routing externally addressed
packets within private domain.
Motivations
o Lack of a common protocol that enables Host-NAT-client and
Host-NAT-Server to interoperate.
o Hence goal is to design a common protocol that enables
Host-NAT-client and Host-NAT-server to interoperate.
Protocol requirements
o Client type registration and identification
- Client ID assignment
o Enables negotiation of multiplexing fields
- Global address, port, protocol ID
o Enables negotiation of HNAT related parameters
- Max. Leased Time, NAT type
o Support negotiation of tunnel type
o Support subnet query
Considerations
o Exploitation of existing protocols?
* DHCP, ICMP, COPS, TCP/UDP/RUTS based?
o Independence
* Support negotiation of all fundamental parameters required to
perform HNAT.
o Extensibility
* Flexible packet format
* Able to support vendor specific information
- New error codes
* Able to accommodate new policies.
Proposal
o Dynamic Bindings Acquisition Protocol (DBAP)
* ICMP based
* Enable assignment of various parameters
End host implementation
(Chart of relations between various pieces of client and server)
Questions from the Audience:
[Daniel Senie - Choice of ICMP versus TCP]
This was designed around a larger scale
implementation.
[Nair Venugopal - Does this mean that we can use transport mode
IPsec.]
Yes.