![]()
IPv6 architecture makes it possible to secure all IP packets using
IPsec, even ICMPv6 messages and even to multicast addresses.
IPsec architecture has a Security Policy Database that specifies which
traffic is protected, and how. It turns out that the specification of
policies in the presence of ICMPv6 traffic is not easy.
For instance,
a simple policy of protecting all traffic between two hosts on the
same network would trap even address resolution messages, leading to a
situation where IKE can't establish a Security Association since in
order to send the IKE UDP packets one would have had to send the
Neighbor Solicitation Message, which would have required an SA.
The purpose of this draft is to inform system administrators and IPsec
implementers in which manner they can handle the ICMPv6 messages.
System administrators do not want to study the IPv6 specifications in
order to understand how they shall configure their routers.
IPsec
implementers want to understand what kind of policies they can offer
with respect to the ICMPv6 messages.
Common understanding of the way that these messages are handled is
also very much necessary for interoperability, as some vendors may be
hardcoding some of the low-level policy operations in their products.
If the rules between two vendors' products are incompatible for a particular message we may end with the sender sending cleartext and the
receiver requiring IPsec, causing the packet to be dropped and possibly all connectivity between the two nodes lost.
The ICMPv6 Packet Too Big messages are used as a part of the Path MTU Discovery procedure.
The Destination Unreachable, Packet Too Big, Parameter Problem, and
Time Exceeded messages are a part of the error handling procedure.
Note that the Packet Too Big message also plays a role in the Path MTU
Discovery procedure.
The Echo Request and Echo Reply messages are used solely for this purpose.
The Router Solicitation and Router Advertisement messages are used for this and only this purpose.
The Neighbor Solicitation and Advertisement messages are used for this purpose, among other things. Furthermore, Router and Prefix Discovery and Duplicate Address Detection have an effect to the Address auto configuration tasks.
The Neighbor Solicitation and Advertisement messages are used also for this purpose.
The Neighbor Solicitation and Advertisement messages are used also for this purpose.
The Neighbor Solicitation and Advertisement messages are used also for this purpose.
The Redirect message is used solely for the Redirect procedure.
The Router Renumbering message is used solely for the Router Renumbering procedure.
IPsec can be used for the protection of both unicast and multicast traffic. However, in order to automatically negotiate mutually acceptable security associations and to refresh keys, IKE needs to be used.IKE is only capable of negotiating SAs for unicast communications.
Obviously, policies MUST be configured so that multicast traffic doesn't require dynamic SAs. However, while this is a necessary condition it is not sufficient to make sure that that IKE works. The policies MUST also exclude unicast traffic which is contains ICMPv6 messages required before UDP can work between the two nodes.
Between hosts similar rules apply. However, messages related to the establishment of communication between the hosts - such as for address resolution - MUST NOT be passed through the tunnel at least when the tunnel does not exist yet and IKE would be needed to establish it.
Note that the distinctions in network topology are more due to the actual network architecture than the selected IPsec mode, be it tunnel or transport.
ICMPv6 messages can be classified according to whether they are meant
for end-to-end communications or communications within a link. There
are also messages that we classify as 'any-to-end', which can be sent
from any point within a path back to the source, typically to announce
an error in processing the original packet. For instance, the address
resolution messages are solely for local communications, whereas
the Destination Unreachable messages are any-to-end in nature. End to
end and any-to-end messages MUST always be passed through tunnels.
Local messages may be passed through IPsec process under certain conditions.
Therefore, Neighbor reachability MUST also be allowed to work independent of IKE SA establishment.
As IKE messages may contain certificates, it is quite possible that an MTU limit may be exceeded somewhere within the network. If this is possible in a given network, the policies MUST allow ICMP Packet Too Big messages to be received. Note that these messages may well be received either in the clear, on manually configured SAs, or on dynamic SAs. If the router generating the Packet Too Big message does not yet have an SA with the original host, it can initiate IKE negotiations to create one. In case that this new negotiation fails due to reaching another MTU limit, other routers may be involved along the way. But ultimately the process reaches the closest router to which the MTU is known and will not cause any ICMP error messages.
As we have talked about some messages in some situations having to be independent of IKE, it does not necessarily imply that they have to passed through in the clear. Instead, systems MAY use manually configured IPsec SAs to protect e.g. all ICMPv6 communications within one network.
A plausible security policy configuration could therefore be one where all ICMPv6 messages within the local network must be protected by manual SAs, and all other communications must be protected by IKE-negotiated SAs.
This message is always sent between unicast addresses. It is an end to end message Destination Unreachable is never a relevant message for establishing dynamic SAs, unless advanced failover schemes rely on the knowledge to quickly determine unreachable IKE peers.
This message is also always sent between unicast addresses even if might be sent as a response to a multicast message. It is an end-to-end message.
Packet Too Big has, however, a role in establishing communications.
End-to-end communications, that is. In order to pass through long IKE
packets, Packet Too Big responses from the network MUST be considered.
Therefore, it MUST be possible for policies to be configured so that
such messages can be received. Note that as discussed previously, the
Packet Too Big messages themselves can be protected in various ways.
This message is also always sent between unicast addresses and is an end-to-end message. Like Packet Too Big, it too has a role in establishing end-to-end communications under certain special situations.
This message is similar to Packet Too Big in the sense that it uses
only unicast messages even if it could be sent as a response to a
multicast packet.
It's role is also end-to-end. While in theory its
role in establishing communications is similar to Packet Too Big and
Time Exceeded, in practice it is hard to see the kind of IKE and IPv6
stack version problem that could result in this message being sent.
Echo Request uses unicast addresses as source addresses, but may be sent to any legal IPv6 address, even multicast and anycast addresses. Echo Requests run end-to-end but never have a role in establishing communications.
Echo Reply is similar to Echo Request in other respects, but uses only unicast addresses.
The Redirect message is always sent between unicast addresses. It is only used for local purposes, not for end-to-end communications. It isn't strictly necessary in order to establish communications.Nevertheless, it can be viewed as a logical add-on to the Neighbor Discovery messages such as Router Advertisement, and as such SHOULD be treated in a similar manner.
This message uses either the unspecified address or an unicast address
as a source address. The destination address is typically a multicast
address.
This message is always used only local. Since address auto configuration and routing depend on the ability of the routers and
address prefixes to be found, this message is required before any communications can be established.
Therefore, this message MUST be
allowed to work independent of IKE SA establishment.
This message has always a unicast source address, but the destination
address can be either a unicast or a multicast address.
Like the
solicitation message, the advertisement is also link local only and
required for establishing any communications. Therefore, this message
MUST be allowed to work independent of IKE SA establishment.
The source address of this message is either a unicast address or (if
Duplicate Address Detection is in progress) the unspecified address.
The destination is either a multicast address, unicast
address, or an anycast address.
Neighbor Solicitation and Advertisement messages are used for multiple purposes: address auto configuration, duplicate address detection, and reachability detection.
In all
these roles they act only locally on the link, and getting them
through is required before any communications can be established.
Therefore, this message MUST be allowed to work independent of IKE SA
establishment.
The source address of this message is a unicast address, and the destination is either a unicast or a multicast address.
Like the solicitation message, this message is link local only and is required before
any communications can be established.
Therefore, this message MUST
be allowed to work independent of IKE SA establishment.
The code is 0 for a Router Renumbering Command, 1 for a Router Renumbering Result, and 255 for a Sequence Number Reset.
These messages are sent from a unicast address to either a multicast
or a unicast address.
The message are not solely link local, they are
used for end-to-end purposes such as having a central management station renumber all routers in a corporate network. As a result of the
RR procedure, automatically configured addresses and prefixes may be
changed.
However, it is expected that a transition period exists where
both addresses are still acceptable, making it possible to still proceed with IKE negotiations to create SAs for the RR procedure.
We can
therefore assume that the procedure MAY use manual or dynamic SAs as
desired by the system administrators.
| MESSAGE | ROLE | USE IKE? |
|---|---|---|
| Destination Unreachable | Any-to-End | MAY(1,2) |
| Packet Too Big | Any-to-End | MAY(1,3) |
| Time Exceeded | Any-to-End | MAY(1,3) |
| Parameter Problem | End-to-End | MAY(4) |
| Echo Request | End-to-End | MAY(4) |
| Echo Reply | End-to-End | MAY(4) |
| Redirect | Link Local | SHOULD NOT(5) |
| Router Solicitation | Link Local | MUST NOT(6) |
| Router Advertisement | Link Local | MUST NOT(6) | Neighbor Solicitation | Link Local | MUST NOT(6) | Neighbor Advertisement | Link Local | MUST NOT(6) | Router Renumbering | End-to-End | MAY(4) |
These policy rules may be expressed in various ways on a particular
host or a router.
It is necessary to use the ICMPv6 type in making the
policy decisions.
As states, "This is consistent with, although
not mentioned by, the Security Architecture specification".
Only the
following requirement for all implementations is stated here. Products
that provide hardcoded security policies for ICMPv6 messages SHOULD
enable user specified policies to be expressed at a higher priority
level so that a possibility is still retained for modifying the rules
due to e.g. interoperability problems.