Internet DRAFT - draft-giacalone-grp
draft-giacalone-grp
Network Working Group S. Giacalone
INTERNET-DRAFT Predictive Systems
Expiration Date: August 2001
Filename: draft-giacalone-grp-00.txt February 2000
The Gateway Response Protocol (GRP) for Networks Using
Zero Configuration IPv4 Addresses
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This memo defines a simple mechanism, termed gateway response
protocol (GRP), which permits hosts using Zero Configuration IPv4
Addresses [1] to find and use a default gateway, thereby gaining
access to outside networks, including the Internet. GRP is fully
compliant with rules limiting Zero Configuration addresses to local
networks and does not negate source/destination address assumptions.
Please send comments to zeroconf@merit.edu
Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved.
Table of Contents
Overview ..............................................
Compliance with Zero Configuration Forwarding Rules....
.
.
.
Expires August 2001 [Page 1]
Internet Draft Gateway Response Protocol February, 2001
Acknowledgements ......................................
References ............................................
A Compatibility .......................................
B GRP and Dynamic Host Configuration Protocol (DHCP) ....
C Security Considerations ...............................
D Authors' Addresses ....................................
E Full Copyright Statement ..............................
Overview
The system of address allocation defined in [1] permits hosts to
automatically find and use IP addresses for local network
connectivity with no pre-configuration (hence the term Zero
Configuration). While Zero Configuration address assignment is an
extremely useful capability, increased user expectations of constant
network connectivity mean that it would be even more beneficial if
Zero Configuration hosts could gain access to outside networks
automatically- something which is not currently possible in [1].
This memo defines a simple, lightweight mechanism, termed GRP, which
enables hosts to find default gateways with no static or dynamic
configuration, thereafter using them to forward data to off-network
locations.
By using GRP, large globally connected networks could be deployed
with no pre-configuration of hosts, no configuration of address
servers, and very minimal configuration of routers.
As in [1] this memo assumes that Zero Configuration address space is
not subnetted.
Compliance with Zero Configuration Forwarding Rules
By convention, Zero Configuration IP addresses are not permitted to
cross routed boundaries, and GRP does not violate this rule. As with
all routers, GRP enabled routers must not receive and then forward
packets containing Zero Configuration addresses.
GRP is fully dependant on the use of Network Address Translation
(NAT) for the translation of Zero Configuration source addresses in
packets leaving the Zero Configuration network. While NAT is outside
the scope of this document, GRP's reliance on it necessitates a
general discussion of its use.
In GRP networks, Zero Configuration hosts are able to access external
networks, but by using NAT, Zero Configuration addresses are not
transported across routers, which insures compliance with forwarding
rules. This document assumes that NAT "inside" source address
translation is used, that it is configured to translate source
addresses in the 169.254/16 range using a dynamic pool, and that the
Expires June 2001 [Page 2]
Internet Draft Gateway Response Protocol February, 2001
Zero Configuration network is configured to be the "NAT inside"
network.
When sending data to Zero Configuration addresses, GRP enabled local
hosts can, by rule, assume that the data will not leave the local
LAN. Since source NAT will replace the source Zero Configuration IP
addresses of packets leaving the Zero Configuration network, not the
destination addresses of egress packets, GRP's use of NAT is
compliant with this destination address assumption. Therefor, in
order for a packet to leave a GRP Zero Configuration network, it must
arrive at the router destined to legitimate non Zero Configuration
address which can be routed to. Additionally, note that data sent
directly to a Zero Configuration address residing on a GRP enabled
router must not be forwarded.
NAT Pool=1.1.1.0/24
|
|
NAT Inside | NAT Outside
| |
| | +-+-+-+-+-+-+
| ----- | |
Zero Config Net |-----| R |-----+ Outside +
| ----- | Networks |
Host1-| +-+-+-+-+-+-+
Example 1.1
->S=169.254.5.5 D=1.1.1.1-------------->S=2.2.2.2(NAT) D=1.1.1.1
Example 1.2
->S=169.254.5.5 D=169.254.1.1--Not translated or forwarded
In Example 1.1, a packet from Zero Configuration host "Host1" arrives
at GRP enabled gateway router "R" (assume that Host1 has previously
determined that R is its gateway via GRP). After translating Host1's
Zero Configuration source address, the packet is forwarded. Since
only the source address is modified, and the packet was destined to
legitimate (non Zero Configuration) IP address, hosts can assume that
packets destined to Zero Configuration will not leave the local
network. Furthermore since the packet does not contain a Zero
Configuration address when it transits the router, it does not
violate Zero Configuration networking rules.
In Example 1.2, assume that a packet from Host1 destined to a Zero
Configuration addresses to a Zero Configuration address finds its way
to router R. Since GRP routers don't translate outbound destination
addresses or forward packets with Zero Configuration addresses, the
packet is dropped after verifying that it is not a GRP packet,
thereby upholding Zero Configuration networking rules.
Expires June 2001 [Page 3]
Internet Draft Gateway Response Protocol February, 2001
Zero Configuration hosts can also assume that when they receive a
packet with a Zero Configuration source address, it originated from
another host on the local network. Using GRP, this assumption remains
possible because (inside) source NAT modifies the source address of
packets leaving the Zero Configuration network, not those entering
it.
NAT Pool=1.1.1.0/24
|
|
NAT Inside | NAT Outside
| |
| | +-+-+-+-+-+-+
| ----- | |
Zero Config Net |-----| R |-----+ Outside +
| ----- | Networks |
Host1-| +-+-+-+-+-+-+
Example 2.1
D=169.254.5.5 S=1.1.1.1<-------------D=2.2.2.2(NAT) S=1.1.1.1<-
Example 2.2
Not translated or forwarded<---------D=2.2.2.2(NAT) S=169.254.5.100<-
In example 2.1, a reply packet to the query made in example 1.1
arrives at router R. Since router R has an entry in its NAT table
binding the inbound packet's destination address (2.2.2.2) to the
Zero Configuration address 169.254.5.5, the destination address is
modified and then the packet is forwarded to the local LAN. Since
source NAT only changes the destination address in inbound packets,
hosts can assume that packets with a Zero Configuration source
address originated from the local LAN, as per Zero Configuration
networking rules. Furthermore as the packet does not contain a Zero
Configuration address when it transits the router, it does not
violate Zero Configuration networking rules.
In example 2.2, a packet with a Zero Configuration source address
arrives at router R. In this case, router R has an entry in its NAT
table binding the packet's destination address (2.2.2.2) to the Zero
Configuration address 169.254.5.5. However, since NAT is not
configured to translate source addresses in the inbound direction,
and Zero Configuration address must not transit routers, the packet
is dropped. Therefor, host assumptions regarding the local
origination packets with Zero Configuration source addresses are
upheld.
General Operation
GRP operates on Zero Configuration hosts and routers.
The host portion of GRP includes:
Expires June 2001 [Page 4]
Internet Draft Gateway Response Protocol February, 2001
-Discovery of GRP gateway routers
-Caching router response messages
-Monitoring GRP router keepalive messages
-Transitioning (failing over) to active gateway routers as
required
GRP operation on routers includes:
-Responding to GRP queries sent to the Zero Configuration GRP
router address.
-Originating GRP keepalive messages
-Properly handling the GRP keepalive messages originated by
other routers.
-Interoperation with NAT
GRP Host Operation
After a host determines its Zero Configuration address as per [1], it
may attempt to find a default gateway using GRP. To accomplish this,
the host should, by default, broadcast an ARP request for the
(currently reserved) zero configuration GRP address 169.254.0.1,
after a short randomized delay. GRP hosts must use normal ARP
procedures for this router discovery operation.
Using the first ARP response received, hosts must program a default
IP route in their route cache. Note that operations governing host
cache population should not need modification. Thereafter, hosts must
use the default route (and the corresponding gateway) to forward
traffic destined outside the zero configuration network.
Note GRP implementations may offer a non-default feature whereby
hosts rely solely on GRP keepalives to find a default gateway. Hosts
program their caches from the information in the first keepalive
message received. Specific route cache programming does not change
when this option is used. However, this option may increase
establishment time for "off network" user connectivity.
After initial router discovery, hosts listen for keepalives from all
GRP routers. Note that GRP keepalives are unrelated to initial router
discovery functions. If a keepalive is not received from the GRP
router that is the current default gateway within the "dead" timer
interval, the host must:
-Change the default route in the route cache to use information
stored from either the second fastest ARP response received in
Expires June 2001 [Page 5]
Internet Draft Gateway Response Protocol February, 2001
the initial router discovery, or from the last keepalive
heard from a non-default GRP router. The storage of ARP
response and keepalive information is implementation specific.
-If there was no stored information with which to update the
cache, wait for the next GRP keepalive, and then change the
default route in the route cache using that information.
-If there was no stored information, and no keepalive is
received within another dead interval (learned from the
previous GRP gateway), send an GRP ARP query to 169.254.0.1,
after a short randomized delay. If no response is received
within another dead interval, GRP hosts move into "probe mode"
in which queries are repeated every dead interval plus a
randomized delay. After some time, queries are sent following
an exponential back-off algorithm. The specific timing of
probe mode operations (including the initiation of back-off)
is implementation specific, but should balance network
utilization and fault tolerance.
The GRP keepalive dead timer is three times the keepalive time. Hosts
determine the keepalive time by averaging the arrival time of the
first four keepalive messages they receive. This method permits the
use of very simple keepalive messages and the minimal centralized
manual configuration and adjustment of keepalive timers (on GRP
routers, not hosts).
Once a GRP host finds a default route, it must not re-program it's
ARP cache for GRP router address (169.254.0.1 by default) or the
default router unless the GRP dead timer expires or manually prompted
to do so.
In a steady state network, Hosts will send traffic destined outside
the network to the default router's MAC address which is learned
through GRP.
GRP Router Operation
All GRP routers must respond to ARP requests made for 169.254.0.1,
which is by default the GRP router address, using normal ARP
procedures. Note that it must be possible to configure which
interfaces will respond in this way, and non configured interface
must not respond in any way. GRP routers should unicast ARP responses
for 169.254.0.1 if possible.
All GRP routers must drop (not listen to) all ARP responses for the
GRP address being used (which is 169.254.0.1 by default).
To permit network managers to influence which default router hosts
choose, it must be possible for network operators to manually insert
a ARP response delay for the GRP address on a router by router basis.
Expires June 2001 [Page 6]
Internet Draft Gateway Response Protocol February, 2001
Note that implementations must place an upper bound on GRP ARP
processing to prevent denial of service attacks.
Once GRP is initialized, routers must originate GRP keepalives, only
on interfaces configured to do so. The pace at which keepalives are
sent must be manually configurable, but must default to 2 seconds.
The maximum keepalive interval should be 15 seconds. The format of
the GRP keepalive is of a gratuitous ARP.
All GRP routers must drop (not listen to) all GRP keepalive messages
not self-originated.
GRP routers must never forward (that is receive and subsequently
transmit) traffic which includes addresses in the range of
169.254/16. Therefor, GRP is intended for exclusive use with NAT.
When a GRP router receives traffic with a Zero Configuration source
IP address, it must translate the source into an acceptable NAT
address if it intends to route it.
Although GRP related NAT operation is outside the scope of this
document, router's NAT timers may need to be optimized in order to
cope with the possibility of Zero Configuration hosts dynamically
selecting new addresses.
Redundancy and adjustability
GRP does not limit the number of default gateways attached to a zero
configuration network.
GRP provides an number of tuning options, including:
-The pace of keepalive origination, which is centralized and
automatically adjusted to by hosts
-The keepalive dead timer which is dynamically set by hosts
averaging keepalives
-Influencing the gateway which hosts use
-Selecting alternate GRP router addresses
-Initialization by keepalive
Simple GRP/Zero Configuration network example
The example diagram below depicts a fully automatic GRP/Zero
Configuration network. Note that each local LAN is capable of re-
using Zero Configuration host IP addresses.
Internet
-----------
Expires June 2001 [Page 7]
Internet Draft Gateway Response Protocol February, 2001
|
|
| | |
| ----- |
|-----| A |-----|
| ----- |
| |
| | | |
| ----- | | ----- |
Net1|--| B |-----| |-----| C |-|Net2
| ----- | | ----- |
Host1-| | | |-Host2
-Step 1: "Host1" and "Host2" find zero configuration addresses as per
[1]. Assume that routers B and C use the same zero configuration
address ranges as specified in [1]. Furthermore, assume that Host1
and Host2 auto-configure the same zero configuration IP address.
-Step 2: Using GRP, both hosts auto discover their default gateway
routers (router B and C, respectively).
-Step 3: The hosts monitor GRP router keepalive messages.
-Step 4: Intra-subnet communication occurs as in [1], and when the
hosts need to send data off the subnet (to the Internet, for
example), they send the data to the MAC address of the selected GRP
default gateway routers. Routers B and C use NAT to hide the zero
configuration addresses of each host, providing compliance with Zero
Configuration networking rules.
Acknowledgements
References
[1] Cheshire, S., "Dynamic Configuration of IPv4 link-local
addresses" work in progress.
A Compatibility
IP devices which don't conform to the specifications in this memo
must cope with what will appear to be ARP packets with fluctuating
and conflicting contents.
B GRP and Dynamic Host Configuration Protocol (DHCP)
-GRP is intended to enhance Zero Configuration networking services by
enabling hosts to find default gateways. While DHCP can provide
hosts with the IP address of a default gateway, GRP is a superior
discovery protocol for Zero Configuration environments for the
following reasons:
Expires June 2001 [Page 8]
Internet Draft Gateway Response Protocol February, 2001
-Since the primary purpose of DHCP is the assignment of host
addresses, using DHCP to serve gateway addresses to hosts running
Zero Configuration protocols (the purpose of which are also to
assign host addresses) is conflicting and self defeating. For
example, if a network runs DHCP to assign gateway addresses to Zero
Configuration hosts, then DHCP might also serve host addresses,
negating the need of Zero Configuration protocols.
-While DHCP can provide multiple gateway addresses to hosts, it does
not specify a means for determining whether gateways are
operational, as does GRP. The GRP protocol provides an adjustable
dynamic keepalive/query system and therefor provides more fault
tolerant gateway discovery and maintenance than DHCP.
-Using GRP eliminates the need to design, build, implement, and
manage DHCP servers and proxies. By providing gateway discovery with
very little management overhead, GRP is closer to providing total
networking with zero configuration than DHCP.
-Adding GRP functionality to products may be more simple than
DHCP, and therefor GRP is more inline with the concept of
lightweight, zero configuration networking than DHCP.
-GRP initialization is less network intensive than DHCP
initialization.
C Security Considerations
If a host responds to GRP ARPS requests, begins issuing keepalives
and a gateway fails, or in some other way masquerades as a GRP
router, it may maliciously attract traffic. Some form of
authentication should be investigated.
D Authors' Addresses
Spencer Giacalone
Predictive Systems, Inc.
25a Vreeland Road
Florham Park, NJ 07932
Phone: +1 (973) 301-5646
EMail: spencer.giacalone@predictive.com
E Full Copyright Statement
Copyright (C) The Internet Society (2001). 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
Expires June 2001 [Page 9]
Internet Draft Gateway Response Protocol February, 2001
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.
Expires June 2001 [Page 10]