draft-ietf-v6ops-v6onbydefault-00.txt   draft-ietf-v6ops-v6onbydefault-01.txt 
Network Working Group S. Roy Network Working Group S. Roy
Internet-Draft A. Durand Internet-Draft A. Durand
Expires: November 30, 2003 J. Paugh Expires: August 13, 2004 J. Paugh
Sun Microsystems, Inc. Sun Microsystems, Inc.
June 2003 February 13, 2004
Dual Stack IPv6 on by Default Issues with Dual Stack IPv6 on by Default
draft-ietf-v6ops-v6onbydefault-00.txt draft-ietf-v6ops-v6onbydefault-01.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 other Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 1, line 32 skipping to change at page 1, line 32
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference 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."
The list of current Internet-Drafts can be accessed at http:// The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt. www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on November 30, 2003. This Internet-Draft will expire on August 13, 2004.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract Abstract
This document discusses problems that can occur when dual stack nodes This document discusses problems that can occur when dual stack nodes
that have IPv6 enabled by default are deployed in IPv4 or mixed IPv4 that have IPv6 enabled by default are deployed in IPv4 or mixed IPv4
and IPv6 environments. The problems include application connection and IPv6 environments. The problems include application connection
delays, poor connectivity, and network security. Its purpose is to delays, poor connectivity, and network security. Its purpose is to
raise awareness of these problems so that they can be fixed or worked raise awareness of these problems so that they can be fixed or worked
around. around. The purpose of this document is not to try to specify whether
IPv6 should be enabled by default or not, but to raise awareness of
the potential issues involved.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3
2. No IPv6 Router . . . . . . . . . . . . . . . . . . . . . . . 4 2. No IPv6 Router . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Problems with Default Address Selection for IPv6 . . . . . . 4 2.1 Problems with Default Address Selection for IPv6 . . . . . 3
2.2 Neighbor Discovery's On-Link Assumption Considered 2.2 Neighbor Discovery's On-Link Assumption Considered
Harmful . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Harmful . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Other Problems with the On-Link Assumption . . . . . . . . . 6 2.3 Transport Protocol Robustness . . . . . . . . . . . . . . 6
2.3 Transport Protocol Robustness . . . . . . . . . . . . . . . 7 2.3.1 TCP Implications . . . . . . . . . . . . . . . . . . . . . 6
3. Other Problematic Scenarios . . . . . . . . . . . . . . . . 9 2.3.1.1 TCP Connection Termination . . . . . . . . . . . . . . . . 6
3.1 IPv6 Network of Smaller Scope . . . . . . . . . . . . . . . 9 2.3.1.2 Asynchronous Application Notification . . . . . . . . . . 7
3.1.1 Alleviating the Scope Problem . . . . . . . . . . . . . . . 9 2.3.2 UDP Implications . . . . . . . . . . . . . . . . . . . . . 7
3.2 Poor IPv6 Network Performance . . . . . . . . . . . . . . . 9 2.3.3 SCTP Implications . . . . . . . . . . . . . . . . . . . . 8
3.2.1 Dealing with Poor IPv6 Network Performance . . . . . . . . . 10 3. Other Problematic Scenarios . . . . . . . . . . . . . . . 8
3.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1 IPv6 Network of Smaller Scope . . . . . . . . . . . . . . 8
3.3.1 Mitigating Security Risks . . . . . . . . . . . . . . . . . 11 3.1.1 Alleviating the Scope Problem . . . . . . . . . . . . . . 8
4. Application Robustness . . . . . . . . . . . . . . . . . . . 12 3.2 Poor IPv6 Network Performance . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . 13 3.2.1 Dealing with Poor IPv6 Network Performance . . . . . . . . 9
Normative References . . . . . . . . . . . . . . . . . . . . 14 3.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . 9
Informative References . . . . . . . . . . . . . . . . . . . 15 3.3.1 Mitigating Security Risks . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15 4. Application Robustness . . . . . . . . . . . . . . . . . . 10
A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 16 5. Security Considerations . . . . . . . . . . . . . . . . . 11
Intellectual Property and Copyright Statements . . . . . . . 17 Normative References . . . . . . . . . . . . . . . . . . . 11
Informative References . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 12
A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 12
B. Changes from draft-ietf-v6ops-v6onbydefault-00 . . . . . . 12
Intellectual Property and Copyright Statements . . . . . . 14
1. Introduction 1. Introduction
This document specifically addresses operating system implementations This document specifically addresses operating system implementations
that implement the dual stack IPv6 model, and would ship with IPv6 that implement the dual stack IPv6 model, and would ship with IPv6
enabled by default. It addresses the case where such a system is enabled by default. It addresses the case where such a system is
installed and placed in an IPv4 only or mixed IPv4 and IPv6 installed and placed in an IPv4 only or mixed IPv4 and IPv6
environment, and documents potential problems that users on such environment, and documents potential problems that users on such
systems could experience if the IPv6 connectivity is non-existent or systems could experience if the IPv6 connectivity is non-existent or
sub-optimal. sub-optimal. The purpose of this document is not to try to specify
whether IPv6 should be enabled by default or not, but to raise
awareness of the potential issues involved.
It begins in Section 2 by examining problems within IPv6 It begins in Section 2 by examining problems within IPv6
implementations that defeat the destination address selection implementations that defeat the destination address selection
mechanism defined in [ADDRSEL] and contribute to poor IPv6 mechanism defined in [ADDRSEL] and contribute to poor IPv6
connectivity. Starting with Section 3 it then examines other issues connectivity. Starting with Section 3 it then examines other issues
that network software engineers and network and systems that network software engineers and network and systems
administrators should be aware of when deploying dual stack systems administrators should be aware of when deploying dual stack systems
with IPv6 enabled. with IPv6 enabled.
2. No IPv6 Router 2. No IPv6 Router
skipping to change at page 5, line 48 skipping to change at page 5, line 20
Let's assume that the application described in Section 2 is Let's assume that the application described in Section 2 is
attempting a connection to an IPv6 address first, either because the attempting a connection to an IPv6 address first, either because the
destination address selection mechanism described in Section 2.1 destination address selection mechanism described in Section 2.1
returned the addresses in that order, or because the application returned the addresses in that order, or because the application
isn't trying the addresses in the order returned. Regardless, the isn't trying the addresses in the order returned. Regardless, the
user expects that the application will quickly connect to the user expects that the application will quickly connect to the
destination. It is therefore important that the system quickly destination. It is therefore important that the system quickly
determine that the IPv6 destination is unreachable so that the determine that the IPv6 destination is unreachable so that the
application can try the IPv4 destination. application can try the IPv4 destination.
Neighbor Discovery's [ND] conceptual sending algorithm dictates that Neighbor Discovery's [ND] conceptual sending algorithm states that
when sending a packet to a destination, if a host's default router when sending a packet to a destination, if a host's default router
list is empty, then the host assumes that the destination is on-link. list is empty, then the host assumes that the destination is on-link.
This issue is described in detail in [ONLINK]. In summary, this
For an IPv6 enabled host deployed on a network that has no IPv6 assumption makes the unreachability detection of off-link nodes in
routers as is the case in this scenario, the result is that the absence of a default router a lengthy operation. This is due to
link-layer address resolution must be performed on all IPv6 addresses the cost of attempting Neighbor Discovery link-layer address
to which the host sends packets. The Application will not receive resolution for each destination, and potential transport layer costs
acknowledgment of the unreachability of destinations that are not associated with connection timeouts. The transport layer issues are
on-link until at least address resolution has failed, which is no discussed later in Section 2.3.
less than three seconds (MAX_MULTICAST_SOLICIT * RETRANS_TIMER), plus
any transport layer connection timeouts which could be minutes in the
case of TCP. The delay with respect to TCP is discussed later in
Section 2.3.
On a network that has no IPv6 routing and no IPv6 neighbors, making On a network that has no IPv6 routing and no IPv6 neighbors, making
the assumption that every IPv6 destination is on-link will be a the assumption that every IPv6 destination is on-link will be a
costly and incorrect assumption. If an application has a list of costly and incorrect assumption. If an application has a list of
addresses associated with a destination and the first 15 are IPv6 addresses associated with a destination and the first 15 are IPv6
addresses, then the application won't be able to successfully send a addresses, then the application won't be able to successfully send a
packet to the destination until the attempts to resolve each IPv6 packet to the destination until the attempts to resolve each IPv6
address have failed (45 seconds), which could be compounded by any address have failed. This could take 45 seconds
transport timeouts associated with each connection attempt. (MAX_MULTICAST_SOLICIT * RETRANS_TIMER * 15). This could be
compounded by any transport timeouts associated with each connection
attempt.
If IPv6 hosts don't assume that destinations are on-link as described If IPv6 hosts don't assume that destinations are on-link as described
above, then communication with destinations that are not on-link and above, then communication with destinations that are not on-link and
unreachable will immediately fail. The IPv6 implementation should be unreachable should immediately fail. The IPv6 implementation should
able to immediately notify applications that it has no route to such be able to immediately notify applications or the transport layer
IPv6 destinations, and applications won't waste time waiting for that it has no route to such IPv6 destinations, and applications
address resolution to fail. won't waste time waiting for address resolution to fail.
If hosts need to communicate with on-link destinations, then then
they need to be explicitly configured to have on-link routes for
those destinations.
2.2.1 Other Problems with the On-Link Assumption
The on-link assumption is problematic in ways not directly related to
the scenario described, but they should still be briefly mentioned
here.
One problem is that default routes are not special. The on-link
assumption as stated in [ND] would have a host assume that all
destinations are on-link when its default router list is empty.
Clearly it shouldn't make this assumption if it has an off-link route
that covers the destination and that route isn't a default route.
The absence of a default route does not mean that destinations are
not reachable through more specific routes.
Another problem is that the on-link assumption behavior is undefined If hosts need to communicate with on-link destinations in the absence
on multi-homed hosts. When such a host has no default routers and it of default routers, then then they need to be explicitly configured
is trying to reach a destination to which it has no route, should it to have on-link routes for those destinations.
try NUD on all interfaces at once? Should it simply realize that the
destination is unreachable? The latter is the simplest solution.
Determining that a destination is unreachable when there is no route
to that destination is the simple solution for all cases, not just
the multi-homed case.
2.3 Transport Protocol Robustness 2.3 Transport Protocol Robustness
Making the same set of assumptions as Section 2.2, regardless of how Making the same set of assumptions as Section 2.2, regardless of how
long the network layer takes to determine that the IPv6 destination long the network layer takes to determine that the IPv6 destination
is unreachable, the delay associated with a connection attempt to an is unreachable, the delay associated with a connection attempt to an
unreachable destination can be compounded by the transport layer. In unreachable destination can be compounded by the transport layer.
order for our application to quickly fail from an unreachable address When the unreachability of a destination is obviated by the reception
to a potentially reachable one, the transport layer should notify the of an ICMPv6 destination unreachable message, the transport layer
application by failing a connection attempt, or passing ICMPv6 errors should make it possible for the application to deal with this by
up to the application, etc... failing the connection attempt, passing ICMPv6 errors up to the
application, etc... Such messages would be received in the cases
mentioned in Section 2 in which a node has no default routers and NUD
fails for destinations assumed to be on-link, and when firewalls or
other systems that enforce scope boundaries send such ICMPv6 errors
as described in Section 3.1 and Section 3.3.
For cases when packets to a destination are essentially black-holed
and no ICMPv6 errors are generated, there is very little additional
remedy other than the existing timer mechanisms inside transport
layers and applications. The following transport layer implication
discussions deal with the former case, in which ICMPv6 errors are
received.
2.3.1 TCP Implications
In the case of a socket application attempting a connection via TCP, In the case of a socket application attempting a connection via TCP,
it would be unreasonable for the connect() function to block even it would be unreasonable for the application to block even after the
after the system has received notification that the address is system has received notification that the destination address is
unreachable via an ICMPv6 Destination Unreachable message. Therefore, unreachable via an ICMPv6 Destination Unreachable message.
TCP should abort connections in SYN-SENT or SYN-RECEIVED state when
it receives an ICMPv6 Destination Unreachable message. This helps the Following are some ways of solving TCP related delays associated with
cases mentioned in Section 2 in which a node has no default routers destination unreachability when ICMPv6 errors are generated.
and NUD fails for destinations assumed to be on-link, and when
firewalls or other systems that enforce scope boundaries send such 2.3.1.1 TCP Connection Termination
ICMPv6 errors as described in Section 3.1 and Section 3.3.
One solution is for TCP to abort connections in SYN-SENT or
SYN-RECEIVED state when it receives an ICMPv6 Destination Unreachable
message.
It should be noted that the Requirements for Internet Hosts It should be noted that the Requirements for Internet Hosts
[HOSTREQS] document, in section 4.2.3.9., states that TCP MUST NOT [HOSTREQS] document, in section 4.2.3.9., states that TCP MUST NOT
abort connections when receiving ICMP Destination Unreachable abort connections when receiving ICMP Destination Unreachable
messages that indicate "soft errors", where soft errors are defined messages that indicate "soft errors", where soft errors are defined
as ICMP codes 0 (network unreachable), 1 (host unreachable), and 5 as ICMP codes 0 (network unreachable), 1 (host unreachable), and 5
(source route failed), and SHOULD abort connections upon receiving (source route failed), and SHOULD abort connections upon receiving
the other codes (which are considered "hard errors"). ICMPv6 didn't the other codes (which are considered "hard errors"). ICMPv6 didn't
exist when that document was written, but one could extrapolate the exist when that document was written, but one could extrapolate the
concept of soft errors to ICMPv6 Type 1 codes 0 (no route to concept of soft errors to ICMPv6 Type 1 codes 0 (no route to
destination) and 3 (address unreachable), and hard errors to the destination) and 3 (address unreachable), and hard errors to the
other codes. other codes. Thus, it could be argued that a TCP implementation that
behaves as suggested in this section is in conflict with [HOSTREQS].
When [HOSTREQS] was written, hosts were usually assigned a single When [HOSTREQS] was written, most applications would mostly only try
address, and applications would mostly only try one address when one address when establishing communication with a destination. Not
establishing communication with a destination. Not aborting a aborting a connection was a sane thing to do if re-trying a single
connection was a sane thing to do if re-trying a single address was a address was a better alternative over quitting the application
better alternative over quitting the application altogether. With altogether. With IPv6, and especially on dual stack systems,
IPv6, and especially on dual stack systems, destinations are often destinations are often assigned multiple addresses (at least one IPv4
assigned multiple addresses (at least one IPv4 and one IPv6 address), and one IPv6 address), and applications iterate through destination
and applications iterate through destination addresses when addresses when attempting connections.
attempting connections. Since soft errors conditions are those that
would entice an application to continue iterating to another address, Since soft errors conditions are those that would entice an
TCP shouldn't make the distinction between ICMPv6 soft errors and application to continue iterating to another address, TCP shouldn't
hard errors when in SYN-SENT or SYN-RECEIVED state. It should abort a make the distinction between ICMPv6 soft errors and hard errors when
connection in those states when receiving any ICMPv6 Destination in SYN-SENT or SYN-RECEIVED state. It should abort a connection in
Unreachable message. It should make this distinction when a those states when receiving any ICMPv6 Destination Unreachable
connection is in any other state. message. When in any other state, TCP would behave as described in
[HOSTREQS].
Many TCP implementations already behave this way, but others do not. Many TCP implementations already behave this way, but others do not.
This should be noted as a best current practice in this case. This should be noted as a best current practice in this case.
A tangential method of handling the problem in this way would be for
applications to somehow notify the TCP layer of their preference in
the matter. An application could notify TCP that it should abort a
connection upon receipt of particular ICMPv6 errors. Similarly, it
could notify TCP that it should not abort a connection. This would
allow existing TCP implementations to maintain their status quo at
the expense of increased application complexity.
2.3.1.2 Asynchronous Application Notification
In section 4.2.4.1, [HOSTREQS] states that there MUST be a mechanism
for reporting soft TCP error conditions to the application. Such a
mechanism (assuming one is implemented) could be used by applications
to cycle through destination addresses.
2.3.2 UDP Implications
As noted in [HOSTREQS] section 4.1.3.3, UDP implementations MUST pass
to the application layer all ICMP error messages that it receives
from the IP layer. As a result, proper handling destination
unreachability by UDP applications is the responsibility of the
applications themselves.
2.3.3 SCTP Implications
According to [SCTPIMP], SCTP ignores all ICMPv6 destination
unreachable messages. The existing SCTP specifications do not
suggest any action on the part of the implementation on reception of
such messages. Investigation needs to be done to determine the
implications.
3. Other Problematic Scenarios 3. Other Problematic Scenarios
This section describes problems that could arise for a dual stack This section describes problems that could arise for a dual stack
system with IPv6 enabled when placed on a network with IPv6 system with IPv6 enabled when placed on a network with IPv6
connectivity. connectivity.
3.1 IPv6 Network of Smaller Scope 3.1 IPv6 Network of Smaller Scope
A network that has a smaller scope of connectivity for IPv6 as it A network that has a smaller scope of connectivity for IPv6 as it
does for IPv4 could be a problem in some cases. If applications have does for IPv4 could be a problem in some cases. If applications have
skipping to change at page 9, line 37 skipping to change at page 8, line 45
An example of such a network is an enterprise network that has both An example of such a network is an enterprise network that has both
IPv4 and IPv6 routing within the enterprise and has a firewall IPv4 and IPv6 routing within the enterprise and has a firewall
configured to allow some IPv4 communication, but no IPv6 configured to allow some IPv4 communication, but no IPv6
communication. communication.
3.1.1 Alleviating the Scope Problem 3.1.1 Alleviating the Scope Problem
To allow applications to correctly fall back to IPv4 when IPv6 To allow applications to correctly fall back to IPv4 when IPv6
packets are destined beyond their allowed scope, the devices packets are destined beyond their allowed scope, the devices
enforcing the scope boundary should send ICMPv6 Destination enforcing the scope boundary must send ICMPv6 Destination Unreachable
Unreachable messages back to senders of such packets. The sender's messages back to senders of such packets. The sender's transport
transport layer should act on these errors as described in Section layer should act on these errors as described in Section 2.3.
2.3.
3.2 Poor IPv6 Network Performance 3.2 Poor IPv6 Network Performance
By default in dual stack nodes, applications will try IPv6 Most applications on dual stack nodes will try IPv6 destinations
destinations first. If the IPv6 connectivity to those destinations first by default due to the Default Address Selection mechanism
is poor while the IPv4 connectivity is better (i.e., the IPv6 traffic described in [ADDRSEL]. If the IPv6 connectivity to those
experiences higher latency, lower throughput, or more lost packets destinations is poor while the IPv4 connectivity is better (i.e., the
than IPv4 traffic), applications will still communicate over IPv6 at IPv6 traffic experiences higher latency, lower throughput, or more
the expense of network performance. There is no information lost packets than IPv4 traffic), applications will still communicate
available to applications in this case to advise them to try another over IPv6 at the expense of network performance. There is no
destination address. information available to applications in this case to advise them to
try another destination address.
An example of such a situation is a node which obtains IPv4 An example of such a situation is a node which obtains IPv4
connectivity natively through an ISP, but whose IPv6 connectivity is connectivity natively through an ISP, but whose IPv6 connectivity is
obtained through a configured tunnel whose other endpoint is obtained through a configured tunnel whose other endpoint is
topologically such that most IPv6 communication is done through topologically such that most IPv6 communication is done through
triangular routes. Operational experience on the 6bone shows that triangular IPv4 paths. Operational experience on the 6bone shows
IPv6 RTT's are poor in such situations. that IPv6 RTT's are poor in such situations.
3.2.1 Dealing with Poor IPv6 Network Performance 3.2.1 Dealing with Poor IPv6 Network Performance
There are few options from the end node's perspective. One is to There are few options from the end node's perspective. One is to
configure each node to prefer IPv4 destinations over IPv6. If hosts configure each node to prefer IPv4 destinations over IPv6. If hosts
implement the Default Address Selection for IPv6 [ADDRSEL] policy implement the Default Address Selection for IPv6 [ADDRSEL] policy
table, IPv4 mapped addresses could be assigned higher precedence, table, IPv4 mapped addresses could be assigned higher precedence,
resulting in applications trying IPv4 for communication first. This resulting in applications trying IPv4 for communication first. This
has the negative side-effect that these nodes will almost never use has the negative side-effect that these nodes will almost never use
IPv6 unless the only address published in the DNS for a given name is IPv6 unless the only address published in the DNS for a given name is
skipping to change at page 10, line 33 skipping to change at page 9, line 40
Disabling IPv6 on the end nodes is another solution. The idea would Disabling IPv6 on the end nodes is another solution. The idea would
be that enabling IPv6 on dual stack nodes is a manual process that be that enabling IPv6 on dual stack nodes is a manual process that
would be done when the administrator knows that IPv6 connectivity is would be done when the administrator knows that IPv6 connectivity is
adequate. adequate.
3.3 Security 3.3 Security
Enabling IPv6 on a host implies that the services on the host may be Enabling IPv6 on a host implies that the services on the host may be
open to IPv6 communication. If the service itself is insecure and open to IPv6 communication. If the service itself is insecure and
depends on security policy enforced somewhere else on the network depends on security policy enforced somewhere else on the network
(such as from a firewall), then there is potential for new attacks (such as in a firewall), then there is potential for new attacks
against the service. against the service.
A firewall, for example, may not be enforcing the same policy for A firewall, for example, may not be enforcing the same policy for
IPv4 as for IPv6 traffic. One possibility is that the firewall could IPv4 as for IPv6 traffic. One possibility is that the firewall could
have more relaxed policy for IPv6, perhaps by letting all IPv6 have more relaxed policy for IPv6, perhaps by letting all IPv6
packets pass through, or by letting all IPv4 protocol 41 packets pass packets pass through, or by letting all IPv4 protocol 41 packets pass
through. In this scenario, the dual stack hosts within the protected through. In this scenario, the dual stack hosts within the protected
network could be subject to different attacks than for IPv4. network could be subject to different attacks than for IPv4.
Even if a firewall has a stricter policy or identical policy for IPv6 Even if a firewall has a stricter policy or identical policy for IPv6
traffic than for IPv4 (the extreme case being that it drops all IPv6 traffic than for IPv4 (the extreme case being that it drops all IPv6
traffic), IPv6 packets could go through the network untouched if traffic), IPv6 packets could go through the network untouched if
tunneled over a transport layer. This could open the host to direct tunneled over a transport layer. This could open the host to direct
IPv6 attacks. IPv6 attacks.
A similar problem could exist for VPN software. A VPN could protect A similar problem could exist for VPN software. A VPN could protect
all IPv4 packets but drop all others onto the local subnet all IPv4 packets but transmit all others onto the local subnet
unprotected. At least one widely used VPN behaves this way. This is unprotected. At least one widely used VPN behaves this way. This is
problematic on a dual stack host that has IPv6 enabled on its local problematic on a dual stack host that has IPv6 enabled on its local
network. It establishes its VPN link and attempts to communicate network. It establishes its VPN link and attempts to communicate
with destinations that resolve to both IPv4 and IPv6 addresses. The with destinations that resolve to both IPv4 and IPv6 addresses. The
destination address selection mechanism prefers the IPv6 destination destination address selection mechanism prefers the IPv6 destination
so the application sends packets to an IPv6 address. The VPN doesn't so the application sends packets to an IPv6 address. The VPN doesn't
know about IPv6, so instead of protecting the packets and sending know about IPv6, so instead of protecting the packets and sending
them to the remote end of the VPN, it passes such packets in the them to the remote end of the VPN, it passes such packets in the
clear to the local network. clear to the local network. The reason that packets meant to be
protected would be sent in the clear on the local network is either
because of the on-link assumption discussed in Section 2.2, or of
malicious hijacking of traffic by a rogue "fake" router advertising a
prefix.
3.3.1 Mitigating Security Risks 3.3.1 Mitigating Security Risks
Establishing a security policy that is the same for IPv4 and IPv6 The security policy implemented in firewalls, VPN software, or other
would help mitigate this risk. devices, must take a stance whether it applies equally to both IPv4
and IPv6 traffic. It is probably desirable for policy to apply
equally to both IPv4 and IPv6, but the most important thing is to be
aware of the potential problem, and to make the policy clear to the
administrator and user.
There is still a risk that IPv6 packets could be tunneled over a There is still a risk that IPv6 packets could be tunneled over a
transport layer such as UDP, implicitly bypassing security policy. transport layer such as UDP, implicitly bypassing security policy.
Some more complex mechanism could be implemented to apply the correct Some more complex mechanism could be implemented to apply the correct
policy to such packets. This could be easy to do if tunnel endpoints policy to such packets. This could be easy to do if tunnel endpoints
are co-located with a firewall, but more difficult if internal nodes are co-located with a firewall, but more difficult if internal nodes
do their own IPv6 tunneling. do their own IPv6 tunneling.
4. Application Robustness 4. Application Robustness
Enabling IPv6 on a dual stack node is only useful if applications Enabling IPv6 on a dual stack node is only useful if applications
that support IPv6 on that node properly cycle through addresses that support IPv6 on that node properly cycle through addresses
returned from name lookups and fall back to IPv4 when IPv6 returned from name lookups and fall back to IPv4 when IPv6
communication fails. Simply cycling through the list of addresses communication fails. Simply cycling through the list of addresses
returned from a name lookup when attempting connections works in most returned from a name lookup when attempting connections works in most
cases for most applications, but there are still cases where that's cases for most applications, but there are still cases where that's
not enough. Applications also need to be aware that the fact that a not enough. Applications also need to be aware that the fact that a
dual stack destination's IPv6 address is published in the DNS does dual stack destination's IPv6 address is published in the DNS does
not necessarily imply that all services on that destination function not necessarily imply that all services on that destination function
over IPv6. over IPv6. This problem, along with a thorough discussion of IPv6
application transition guidelines, is discussed in [APPTRANS].
One example is an application that resolves a destination name to a
list of addresses with the intent to contact multiple services at
that destination (i.e., http and IMAP). The application tries to
contact the first service via the first IPv6 address in the list and
succeeds. The success of the connection results in the application
throwing away the list of addresses it was given by the name lookup
and remembering this single IPv6 address as the usable address for
the destination. The second service it tries, however, is only
implemented for IPv4. The application tries to communicate to the
second service using the same IPv6 address, the connection fails, and
no fall back to IPv4 occurs because the application is outside of the
context of cycling through the list of addresses returned from the
name lookup.
Applications should not assume that because a service is reachable at
an IPv6 address, that other services at that destination are also
reachable via that IPv6 address.
5. Security Considerations 5. Security Considerations
This document raises security concerns in Section 3.3. This document raises security concerns in Section 3.3.
Normative References Normative References
[ADDRSEL] Draves, R., "Default Address Selection for Internet [ADDRSEL] Draves, R., "Default Address Selection for Internet
Protocol version 6 (IPv6)", RFC 3484, February 2003. Protocol version 6 (IPv6)", RFC 3484, February 2003.
[APPTRANS]
Hong, Y-G., Hagino, J., Savola, P. and M. Castro,
"Application Aspects of IPv6 Transition", October 2003.
draft-ietf-v6ops-application-transition-00
[ND] Narten, T., Nordmark, E. and W. Simpson, "Neighbor [ND] Narten, T., Nordmark, E. and W. Simpson, "Neighbor
Discovery for IP Version 6 (IPv6)", RFC 2461, December Discovery for IP Version 6 (IPv6)", RFC 2461, December
1998. 1998.
[ONLINK] Roy, S., Durand, A. and J. Paugh, "IPv6 Neighbor Discovery
On-Link Assumption Considered Harmful", October 2003.
draft-ietf-v6ops-onlinkassumption-00
Informative References Informative References
[AUTOCONF] [AUTOCONF]
Thomson, S. and T. Narten, "IPv6 Stateless Address Thomson, S. and T. Narten, "IPv6 Stateless Address
Autoconfiguration", RFC 2462, December 1998. Autoconfiguration", RFC 2462, December 1998.
[HOSTREQS] [HOSTREQS]
Braden, R., "Requirements for Internet Hosts -- Braden, R., "Requirements for Internet Hosts --
Communication Layers", STD 3, RFC 1122, October 1989. Communication Layers", STD 3, RFC 1122, October 1989.
[PRIVADDR] [PRIVADDR]
Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.
and E. Lear, "Address Allocation for Private Internets", and E. Lear, "Address Allocation for Private Internets",
BCP 5, RFC 1918, February 1996. BCP 5, RFC 1918, February 1996.
[SCTPIMP] Stewart, R., Arias-Rodriguez, I., Poon, K., Caro, A. and
M. Tuexen, "", November 2003.
draft-ietf-tsvwg-sctpimpguide-10
Authors' Addresses Authors' Addresses
Sebastien Roy Sebastien Roy
Sun Microsystems, Inc. Sun Microsystems, Inc.
1 Network Drive 1 Network Drive
UBUR02-212 UBUR02-212
Burlington, MA 01801 Burlington, MA 01801
EMail: sebastien.roy@sun.com EMail: sebastien.roy@sun.com
skipping to change at page 16, line 8 skipping to change at page 12, line 34
Sun Microsystems, Inc. Sun Microsystems, Inc.
17 Network Circle 17 Network Circle
UMPK17-202 UMPK17-202
Menlo Park, CA 94025 Menlo Park, CA 94025
EMail: james.paugh@sun.com EMail: james.paugh@sun.com
Appendix A. Acknowledgments Appendix A. Acknowledgments
The authors gratefully acknowledge the contributions of Jim Bound, The authors gratefully acknowledge the contributions of Jim Bound,
Mika Liljeberg, Erik Nordmark, Pekka Savola, and Ronald van der Pol. Tim Hartrick, Mika Liljeberg, Erik Nordmark, Pekka Savola, and Ronald
van der Pol.
Appendix B. Changes from draft-ietf-v6ops-v6onbydefault-00
o Clarified in the abstract and introduction that the document is
meant to raise awareness, and not to specify whether IPv6 should
be enabled by default or not.
o Shortened section Section 2.2 and made reference to [ONLINK].
o Added clarification in section Section 2.3 about packets that are
lost without ICMPv6 notification.
o Section Section 2.3 now has subsections for TCP, UDP, and SCTP.
o Removed text in Section 2.3.1.1 suggesting that hosts usually were
only assigned one address when [HOSTREQS] was written.
o Added text in Section 2.3.1.1 suggesting a method for applications
to advise TCP of their preference for ICMPv6 handling.
o Added section Section 2.3.1.2.
o Added section Section 2.3.2.
o Added section Section 2.3.3.
o Strengthened wording in section Section 3.1.1 to suggest that
devices enforcing scope boundaries must send ICMPv6 Destination
Unreachable messages.
o Clarified that the VPN problem described in Section 3.3 is due to
a combination of the VPN software and either the on-link
assumption and/or a "bad guy".
o Shortened section Section 4 and made reference to [APPTRANS].
o Miscellaneous editorial changes.
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and IETF's procedures with respect to rights in standards-track and
skipping to change at page 17, line 29 skipping to change at page 14, line 29
be obtained from the IETF Secretariat. be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF Executive
Director. Director.
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/