INTERNET-DRAFT T. Jinmei, Toshiba
October 21, 1999 A. Onoe, Sony
An Extension of Format for IPv6 Scoped Addresses
<draft-ietf-ipngwg-scopedaddr-format-00.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026 [STD-PROC].
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.
This Internet Draft will expire on April 21, 2000.
Abstract
This document defines an extension of the format for IPv6 scoped
addresses. In the format, a scope identifier is attached to a scoped
address in order to supplement the ambiguity of the semantics of
the address. Using the format with some library routines will make
scope-aware applications simpler.
1. Introduction
There are several types of scoped addresses defined in the "IPv6
Addressing Architecture" [ADDRARCH]. Since uniqueness of a scoped
address is guaranteed only within the according scope, the semantics
for a scoped address is ambiguous on a scope boundary. For example,
when a user specifies to send a packet from a node to a link-local
address of another node, the user must specify the link of the
destination as well, if the node is attached to more than one link.
This characteristic of scoped addresses may introduce additional cost
to scope-aware applications; a scope-aware application may have to
provide a way to specify an instance of a scope for each scoped
address (e.g. a specific link for a link-local address) that the
application uses. Also, it is hard for a user to "cut and paste" a
scoped address due to the ambiguity of its scope.
draft-ietf-ipngwg-scopedaddr-format-00.txt [Page 1]
INTERNET-DRAFT Format for IPv6 Scoped Addresses October 1999
This document defines an extension of the format for scoped addresses
in order to overcome this inconvenience. Using the extended format
with some appropriate library routines will make scope-aware
applications simpler.
1.1 Requirements
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, if and where they appear
in this document, are to be interpreted as described in [KEYWORDS].
2. Proposal
The proposed format for scoped addresses is
<scoped_address><delimiter><scope_id> where <scoped_address> is a
literal IPv6 address, <scope_id> is a string to identify the scope of
the address, and <delimiter> is a string to distinguish between
<scoped_address> and <scope_id>.
It can't be assumed that a same identifier is common to all nodes in
the according scope. Hence the proposed format MUST be used only
within a node and MUST NOT be sent on a wire. This also means that
any character or string can be used as <delimiter> unless it
conflicts with other symbols used in literal IPv6 addresses (for
instance, ":" would be confusing and should not be used as
<delimiter>.) However, the notation of <delimiter> and <scope_id>
should be common within a single node.
The proposed format should be applied to multicast addresses as well
as to unicast addresses.
Here are examples. If the dash character (`-') is used as <delimiter>
and numerical identifiers are used as <scope_id>, the following
addresses
fe80::1234 (whose link identifier is 1)
fec0::5678 (whose site identifier is 2)
ff02::9abc (whose link identifier is 5)
ff08::def0 (whose organization identifier is 10)
would be represented as follows:
fe80::1234-1
fec0::5678-2
ff02::9abc-5
ff08::def0-10
As mentioned above, other strings could be used as <delimiter> and
<scope_id>. The addresses in the example could be represented as
follows:
Address <delimiter> <scope_id>
fe80::1234,ether1 `,' "ether1"
fec0::5678%foo.com `%' "foo.com"
draft-ietf-ipngwg-scopedaddr-format-00.txt [Page 2]
INTERNET-DRAFT Format for IPv6 Scoped Addresses October 1999
ff02::9abc++A "++" "A"
ff08::def0=ORG=XY-net "=ORG=" "XY-net"
3. Interaction with API
The proposed format would be useful with some library functions
defined in the "Basic Socket API" [BASICAPI], that translate a
nodename to an address, or vice versa.
For example, if getaddrinfo() parses a literal IPv6 address in the
proposed format and fill an identifier according to <scopde_id> in
the sin6_scope_id field of a sockaddr_in6 structure, then an
application would be able to just call getaddrinfo() and would not
have to care about scopes.
Also, if getnameinfo() returns IPv6 scoped addresses in the proposed
format, a user or an application would be able to reuse the result by
a simple "cut and paste" method.
Note that these extensions to the API ensure lower compatibility and
do not affect any existing applications.
4. Issues
This document does not define a specific string for <delimiter>,
since it would be used only within a node and hence be implementation
dependent. However, it might be better to define a standard one in
order to ensure portability on various implementations.
In this document, it is assumed that an identifier of a scope is not
necessarily common in the scope. However, it would be useful if some
common notation is introduced (e.g. an organization name for a
site). In such a case, the proposed format could be commonly used to
designate a single interface (or a set of interfaces for a multicast
address) in a scope.
When the network configuration of a node changes, the change may
affect <scope_id>. Suppose that the case where numerical identifiers
are sequentially used as <scope_id>. When a network card is newly
inserted in the node, some identifiers may have to be renumbered
accordingly. This would be inconvenient, especially when addresses
with the numerical identifiers are stored in non-volatile storage and
reused after rebooting.
There is the preferred format for literal IPv6 addresses in URL's
[URLFORMAT]. When the preferred format is used for an IPv6 scoped
address, it might have to be combined with the proposed format
defined in the document. For example,
http://[fec0::1234-bar.com]:80/index.html
should be used instead of
http://[fec0::1234]:80/index.html
draft-ietf-ipngwg-scopedaddr-format-00.txt [Page 3]
INTERNET-DRAFT Format for IPv6 Scoped Addresses October 1999
(in this example, the dash character '-' is used as <delimiter>, and
the string "bar.com" is used as <scope_id>.) The combination would
introduce some restrictions to <delimiter> and <scope_id>. For
instance, `]' should not appear in <delimiter> nor in <scope_id>.
5. Implementation Experiences
The WIDE KAME IPv6 stack implements the extension to the
getaddrinfo() and the getnameinfo() functions described in Section 3
of this document. The source code is available as free software,
bundled in the KAME IPv6 stack kit.
The current implementation supports the extension only for link-local
(unicast and multicast) addresses. Also, the implementation assumes
that there is one-to-one mapping between links and interfaces, and
hence it uses interface names as <scope_id> for links. As <delimiter>
it uses the atmark(@).
For instance, the implementation shows its routing table as follows:
Internet6:
Destination Gateway Flags Intface
default fe80::fe32:93d1@ef0 UG ef0
This means that the default router is fe80::fe32:93d1 on the link
identified by interface "ef0". A user can "cut and paste" the result
in order to telnet to the default router like this:
% telnet fe80::fe32:93d1@ef0
6. Security Considerations
The use of this approach to represent IPv6 scoped addresses does not
introduce any known new security concerns, since the use is
restricted within a single node.
7. Authors' Addresses
Tatuya JINMEI
Research and Development Center, Toshiba Corporation
1 Komukai Toshiba-cho, Kawasaki-shi
Kanagawa 210-8582, JAPAN
Tel: +81-44-549-2238
Fax: +81-44-520-1841
Email: jinmei@isl.rdc.toshiba.co.jp
Atsushi Onoe
Internet Systems Laboratory, IN Laboratories, Sony Corporation
6-7-35 Kitashinagawa, Shinagawa-ku, Tokyo 141-0001, JAPAN
Tel: +81-3-5448-4620
Fax: +81-3-5448-4622
Email: onoe@sm.sony.co.jp
draft-ietf-ipngwg-scopedaddr-format-00.txt [Page 4]
INTERNET-DRAFT Format for IPv6 Scoped Addresses October 1999
8. References
[ADDRARCH] Hinden, R., Deering, S., "IP Version 6 Addressing
Architecture", RFC 2373, July 1998.
[BASICAPI] Gilligan, R. E., Thomson, S., Bound, J., Stevens, W.,
"Basic Socket Interface Extensions for IPv6", RFC 2553,
March 1999.
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[STD-PROC] Bradner, S., The Internet Standards Process -- Revision 3,
RFC 2026, October 1996.
[URLFORMAT] Hinden, R., Carpenter, B., Masinter, L., "Preferred
Format for Literal IPv6 Addresses in URL's", Internet
Draft, September 1999,
<draft-ietf-ipngwg-url-literal-04.txt>
draft-ietf-ipngwg-scopedaddr-format-00.txt [Page 5]