2011年8月11日 星期四

Reviewing IPv6


Latest RFC for IP Version 6 Addressing Architecture, RFC4291
Unique Local IPv6 Unicast Addresses, RFC4193
Neighbor Discovery, RFC4861 Stateless Address Autoconfiguration, RFC4862
Some useful addressing info to know.


2.4.  Address Type Identification

The type of an IPv6 address is identified by the high-order bits of
the address, as follows:

Address type         Binary prefix        IPv6 notation   Section
------------         -------------        -------------   -------
Unspecified          00...0  (128 bits)   ::/128          2.5.2
Loopback             00...1  (128 bits)   ::1/128         2.5.3
Multicast            11111111             FF00::/8        2.7
Link-Local unicast   1111111010           FE80::/10       2.5.6
Global Unicast       (everything else)


2.5.4.  Global Unicast Addresses

The general format for IPv6 Global Unicast addresses is as follows:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+


2.5.5.  IPv6 Addresses with Embedded IPv4 Addresses

Two types of IPv6 addresses are defined that carry an IPv4 address in
the low-order 32 bits of the address.  These are the "IPv4-Compatible
IPv6 address" and the "IPv4-mapped IPv6 address".


2.5.5.1.  IPv4-Compatible IPv6 Address(deprecated)

The "IPv4-Compatible IPv6 address" was defined to assist in the IPv6
transition.  The format of the "IPv4-Compatible IPv6 address" is as
follows:

|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|0000|    IPv4 address     |
+--------------------------------------+----+---------------------+


2.5.5.2.  IPv4-Mapped IPv6 Address

A second type of IPv6 address that holds an embedded IPv4 address is
defined.  This address type is used to represent the addresses of
IPv4 nodes as IPv6 addresses.  The format of the "IPv4-mapped IPv6
address" is as follows:



|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|FFFF|    IPv4 address     |
+--------------------------------------+----+---------------------+


2.5.6.  Link-Local IPv6 Unicast Addresses

Link-Local addresses are for use on a single link.  Link-Local
addresses have the following format:

|   10     |
|  bits    |         54 bits         |          64 bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+


2.5.7.  Site-Local IPv6 Unicast Addresses

Site-Local addresses were originally designed to be used for
addressing inside of a site without the need for a global prefix.
Site-local addresses are now deprecated as defined in [SLDEP].

Site-Local addresses have the following format:

|   10     |
|  bits    |         54 bits         |         64 bits            |
+----------+-------------------------+----------------------------+
|1111111011|        subnet ID        |       interface ID         |
+----------+-------------------------+----------------------------+


2.6.  Anycast Addresses

An IPv6 anycast address is an address that is assigned to more than
one interface (typically belonging to different nodes), with the
property that a packet sent to an anycast address is routed to the
"nearest" interface having that address, according to the routing
protocols' measure of distance.


2.7.  Multicast Addresses

An IPv6 multicast address is an identifier for a group of interfaces
(typically on different nodes).  An interface may belong to any
number of multicast groups.  Multicast addresses have the following
format:

|   8    |  4 |  4 |                  112 bits                   |
+------ -+----+----+---------------------------------------------+
|11111111|flgs|scop|                  group ID                   |
+--------+----+----+---------------------------------------------+

binary 11111111 at the start of the address identifies the address
as being a multicast address.

+-+-+-+-+
flgs is a set of 4 flags:     |0|R|P|T|
+-+-+-+-+

The high-order flag is reserved, and must be initialized to 0.

T = 0 indicates a permanently-assigned ("well-known") multicast
address, assigned by the Internet Assigned Numbers Authority
(IANA).

T = 1 indicates a non-permanently-assigned ("transient" or
"dynamically" assigned) multicast address.

The P flag's definition and usage can be found in [RFC3306].

The R flag's definition and usage can be found in [RFC3956].

scop is a 4-bit multicast scope value used to limit the scope of
the multicast group.  The values are as follows:

0  reserved
1  Interface-Local scope
2  Link-Local scope
3  reserved
4  Admin-Local scope
5  Site-Local scope
6  (unassigned)
7  (unassigned)
8  Organization-Local scope
9  (unassigned)
A  (unassigned)
B  (unassigned)
C  (unassigned)
D  (unassigned)
E  Global scope
F  reserved

Interface-Local scope spans only a single interface on a node
and is useful only for loopback transmission of multicast.

Link-Local multicast scope spans the same topological region as
the corresponding unicast scope.

Admin-Local scope is the smallest scope that must be
administratively configured, i.e., not automatically derived
from physical connectivity or other, non-multicast-related
configuration.

Site-Local scope is intended to span a single site.

Organization-Local scope is intended to span multiple sites
belonging to a single organization.

scopes labeled "(unassigned)" are available for administrators
to define additional multicast regions.

group ID identifies the multicast group, either permanent or
transient, within the given scope.  Additional definitions of the
multicast group ID field structure are provided in [RFC3306].


   The "meaning" of a permanently-assigned multicast address is
independent of the scope value.  For example, if the "NTP servers
group" is assigned a permanent multicast address with a group ID of
101 (hex), then

FF01:0:0:0:0:0:0:101 means all NTP servers on the same interface
(i.e., the same node) as the sender.

FF02:0:0:0:0:0:0:101 means all NTP servers on the same link as the
sender.

FF05:0:0:0:0:0:0:101 means all NTP servers in the same site as the
sender.

FF0E:0:0:0:0:0:0:101 means all NTP servers in the Internet.

Non-permanently-assigned multicast addresses are meaningful only
within a given scope.  For example, a group identified by the non-
permanent, site-local multicast address FF15:0:0:0:0:0:0:101 at one
site bears no relationship to a group using the same address at a
different site, nor to a non-permanent group using the same group ID
with a different scope, nor to a permanent group with the same group
ID.

Multicast addresses must not be used as source addresses in IPv6
packets or appear in any Routing header.

Routers must not forward any multicast packets beyond of the scope
indicated by the scop field in the destination multicast address.

Nodes must not originate a packet to a multicast address whose scop
field contains the reserved value 0; if such a packet is received, it
must be silently dropped.  Nodes should not originate a packet to a
multicast address whose scop field contains the reserved value F; if
such a packet is sent or received, it must be treated the same as
packets destined to a global (scop E) multicast address.

2.7.1.  Pre-Defined Multicast Addresses

The following well-known multicast addresses are pre-defined.  The
group IDs defined in this section are defined for explicit scope
values.

Use of these group IDs for any other scope values, with the T flag
equal to 0, is not allowed.



Reserved Multicast Addresses:   FF00:0:0:0:0:0:0:0
FF01:0:0:0:0:0:0:0
FF02:0:0:0:0:0:0:0
FF03:0:0:0:0:0:0:0
FF04:0:0:0:0:0:0:0
FF05:0:0:0:0:0:0:0
FF06:0:0:0:0:0:0:0
FF07:0:0:0:0:0:0:0
FF08:0:0:0:0:0:0:0
FF09:0:0:0:0:0:0:0
FF0A:0:0:0:0:0:0:0
FF0B:0:0:0:0:0:0:0
FF0C:0:0:0:0:0:0:0
FF0D:0:0:0:0:0:0:0
FF0E:0:0:0:0:0:0:0
FF0F:0:0:0:0:0:0:0

The above multicast addresses are reserved and shall never be
assigned to any multicast group.

All Nodes Addresses:    FF01:0:0:0:0:0:0:1
FF02:0:0:0:0:0:0:1

The above multicast addresses identify the group of all IPv6 nodes,
within scope 1 (interface-local) or 2 (link-local).

All Routers Addresses:   FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
FF05:0:0:0:0:0:0:2

The above multicast addresses identify the group of all IPv6 routers,
within scope 1 (interface-local), 2 (link-local), or 5 (site-local).

Solicited-Node Address:  FF02:0:0:0:0:1:FFXX:XXXX

Solicited-Node multicast address are computed as a function of a
node's unicast and anycast addresses.  A Solicited-Node multicast
address is formed by taking the low-order 24 bits of an address
(unicast or anycast) and appending those bits to the prefix
FF02:0:0:0:0:1:FF00::/104 resulting in a multicast address in the
range

FF02:0:0:0:0:1:FF00:0000

to

FF02:0:0:0:0:1:FFFF:FFFF



For example, the Solicited-Node multicast address corresponding to
the IPv6 address 4037::01:800:200E:8C6C is FF02::1:FF0E:8C6C.  IPv6
addresses that differ only in the high-order bits (e.g., due to
multiple high-order prefixes associated with different aggregations)
will map to the same Solicited-Node address, thereby reducing the
number of multicast addresses a node must join.

A node is required to compute and join (on the appropriate interface)
the associated Solicited-Node multicast addresses for all unicast and
anycast addresses that have been configured for the node's interfaces
(manually or automatically).


2.8.  A Node's Required Addresses

A host is required to recognize the following addresses as
identifying itself:

o Its required Link-Local address for each interface.

o Any additional Unicast and Anycast addresses that have been
configured for the node's interfaces (manually or
automatically).

o The loopback address.

o The All-Nodes multicast addresses defined in Section 2.7.1.

o The Solicited-Node multicast address for each of its unicast and
anycast addresses.

o Multicast addresses of all other groups to which the node
belongs.

A router is required to recognize all addresses that a host is
required to recognize, plus the following addresses as identifying
itself:

o The Subnet-Router Anycast addresses for all interfaces for which
it is configured to act as a router.

o All other Anycast addresses with which the router has been
configured.

o The All-Routers multicast addresses defined in Section 2.7.1.

沒有留言: