Internet DRAFT - draft-pansiot-logical-addressing
draft-pansiot-logical-addressing
HTTP/1.1 200 OK
Date: Tue, 09 Apr 2002 10:44:30 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Mon, 28 Jun 1999 12:34:00 GMT
ETag: "361e1d-cdfb-37776bb8"
Accept-Ranges: bytes
Content-Length: 52731
Connection: close
Content-Type: text/plain
Internet Draft J-J. Pansiot
June 1999 D. Grad
Expires December 1999 T. Noel
A. Alloui
LSIIT, Strasbourg
LAR : a Logical Addressing and Routing Architecture
for IPv6 Wide-area Multicasting
<draft-pansiot-logical-addressing-01.txt>
Status of this Memo
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 document describes an architecture for IPv6 wide-area
multicasting. It is based on two levels of addressing : A logical
addressing level is used to identify logical objects independently
of their current IPv6 address, such as multicast groups or mobile
hosts. Logical addresses are used on top of regular IPv6 addresses.
This architecture allows to define in a unified way mechanisms for
inter-domain multicasting and mobility.
1. Introduction
In this draft we present an architecture (called LAR for Logical
Addressing and Routing) for efficient IPv6 multicasting and
mobility. This architecture is based on two types of addresses:
- Routing addresses (such as current IPv6 unicast addresses) are
used in the routing process. These addresses may change, reflecting
changes in routing (mobility, renumbering).
Pansiot et al. Draft - Expires December 1999 [Page 1]
INTERNET-DRAFT LAR June 1999
- Logical addresses are used to uniquely identify hosts or other
objects. These addresses must not change when routing changes. For
example multicast addresses may be considered as identifiers.
We observe that in some situations many protocols in the Internet
already use packets containing two levels of addressing. This can be
illustrated by two examples (for the time being, we consider only
destination addresses):
- In PIM-SM [RFC2362] or CBT [RFC2189], packets sent by a source
which is not part of the multicast tree are encapsulated towards the
RP or Core: the outer header contains a routing address (of the RP)
while the inner header contains a logical address (a multicast
address).
- In Mobile IPv6 [MOBILE], when a packet is forwarded to a mobile
host from its Home Agent, it contains an encapsulation header.
The outer header contains a routing address (the current address of
the mobile), while the inner header (the routing header) contains
the home address of the mobile. This last address may be considered
as an identifier, since it should not change over time when routing
changes.
In both cases, the outer address is a routing address and the inner
one an identifier.
Our architecture is a generalization of this idea. It allows some
simplification of multicast protocols, in particular in the case of
sparse and inter-domain groups, and unifies mechanisms used for
multicasting and mobility.
Our architecture considers logical objects, each having a logical
address (called a LAR address). In the following we call a LAR host
(respectively a LAR router) a host (resp. a router) implementing
LAR. A node is either a host or a router. The basic logical object
is a logical node. For example a mobile host has a LAR address,
independently of its physical location in the network. Other logical
objects (e.g. groups) have logical addresses derived from host
addresses, greatly simplifying multicast address allocation. LAR
packets contain a logical header, containing source and destination
logical addresses, in addition to the usual header containing source
and destination routing addresses. The LAR destination address
corresponds to the final destination while the routing destination
address may correspond to an intermediate node, for example a
multicast router that duplicates packets sent to a group. Routing
addresses may be changed from a logical hop to the next, much in the
same way as MAC addresses are changed when going through a router.
A node maintains a LAR cache table, similar to the ARP cache,
containing the current correspondence between routing addresses and
LAR addresses of their correspondents. In the case of multicasting,
a node maintains a Logical Routing table that associates a LAR group
address to the list of LAR addresses of neighbors in the
multicasting tree. This table contains an entry for a group only if
Pansiot et al. Expires December 1999 [Page 2]
INTERNET-DRAFT LAR June 1999
the node has an active role in the group (it duplicates packets).
Hosts wishing to join a group send their join request to the group
manager. This group manager, possibly after some security checking,
forwards the request down the tree towards the new member.
Advantages of this architecture:
- Since join requests travel downstream from root to members,
routers don't need to know in advance root (or RP, core) addresses:
there is no need for a bootstrap router mechanism. Similarly, Border
Routers don't need to know where is the root domain ( a la BGMP).
- Since LAR multicast addresses are just identifiers derived from
host LAR addresses, there is no need for a multicast address
allocation protocol such as [MASC].
- For a given group, only routers that duplicate packets (i.e.
routers with at least 3 interfaces in the multicast tree) must
maintain information for that group. This implies a big saving in
state, especially for sparse wide area groups. In particular it is
possible for a multicast tree to get through whole transit domains
without any state information maintained in these domains.
- Since a multicast router knows its neighbors (in a given
multicast tree) by their logical addresses, a change of unicast
route between two neighbors does not break the tree as long as
another unicast route exists. In particular the failure of a single
link interrupts a multicast communication only the time for the
unicast routing protocol to find another route, without any action
at the LAR multicast routing level (see section 6).
- Since nodes maintain in a cache the correspondence between LAR
addresses and routing addresses, mobility mechanisms are just
updates of this cache. This works not only for unicast (such as in
Mobile IPv6) but also for multicast. When a mobile moves, it just
needs to update the table of its neighbors in multicast trees it
belongs to. There is no need to remove a tree branch at the former
location and add a tree branch at the new location. The duration of
traffic disruption is about the same as in the unicast case, namely
the time of a binding update.
- The LAR cache hides routing addresses from applications: An
application need not know of events such as renumbering, or change
of interface for a multihomed host. Transport or application level
connections are not broken by these events.
- LAR multicast trees can be constructed even if some intermediate
routers (or even whole routing domains) do not implement LAR, or do
not wish to duplicate packets for a given group. At worse, the
multicast tree won't be optimal. In particular, it is not mandatory
for a group member to be directly connected to a LAR router.
Pansiot et al. Expires December 1999 [Page 3]
INTERNET-DRAFT LAR June 1999
- In the LAR architecture, it is possible to define a group (a set
of hosts sharing some goals) and subgroups (subset of hosts sharing
an application at a given time).
Note that this draft is not the specification of a protocol, but the
general description of an architecture. Section 2 deals with
addressing and naming, section 3 with communication management,
section 4 with logical routing, section 5 with mobility, section 6
with robustness, section 7 with inter-domain , mainly scalability
and policy issues. Section 8 deals with security considerations,
section 9 presents an outline of how we implemented LAR. Finally,
section 10 presents a brief comparison with related propositions.
2. LAR addressing and naming
In this architecture, we propose the addition of a new addressing
space in addition to the usual IPv6 addressing. It allows a
unique and simplified framework for multicasting and mobility.
2.1. Addressing
The basic model is as follows: any logical object has a logical
address that is globally unique and non-ambiguous in the Internet.
There are primarily two types of logical objects: logical hosts and
communications.
The basic object that can be addressed in our architecture is a host
implementing LAR. Such a host acquires an individual logical address
by the same mechanisms it acquires a fully qualified domain name.
The main differences between usual IPv6 addresses and LAR addresses
are the following:
- A host may have only one LAR address even if it is multihomed.
This is because applications usually don't care about the actual
interface used, and should not be disrupted when the interface
used changes. Note that it is possible for a physical host to
have several logical addresses, if it is hosting several logical
hosts. This could be the case of several web servers with
different names sharing the same host.
- A LAR address is independent of routing information. Therefore it
remains unchanged when a host changes its physical location
(mobility) its Internet provider (renumbering) or the interface
used (multihoming).
Therefore host LAR addresses are logical host identifiers and one
may compare them to other identifiers such as MAC addresses or EUI-
64 identifiers except that:
- a LAR address identifies a host, not an interface
- a LAR address is independent of the hardware (it remains
Pansiot et al. Expires December 1999 [Page 4]
INTERNET-DRAFT LAR June 1999
unchanged even if the actual machine or interface is changed)
- one can easily retrieve the name of a host from its LAR address
(see section 2.2).
The other type of logical object with a logical address is a
communication. Indeed, a communication LAR address identifies either
a point-to-point or a multipoint (group) communication. In the
point-to-point case, the use of logical addressing provides stable
communications with mobiles and may offer a solution for letting TCP
connections survive when network addresses change[ETCP].
A group LAR address is similar to an IPv6 group address. A group, in
our architecture, has a manager, which deals with the control of the
group (see section 3 for more details).
Several applications may be run simultaneously in the group,
possibly involving subgroups of members. Indeed, members of a same
group do not necessarily all have the same needs nor the same
resources. For example, some will ask for a video stream whereas
others simply wish to dialogue using a white board application. The
group manager can decide to create two communication instances (two
trees) with two different communication (logical) addresses,
allowing each member to take part in one or the other (or both)
communication(s). One may have several trees in the same group to
deal with applications having different requirements, for example a
shared centered tree for a whiteboard, and several source rooted
shortest path trees for video sources. Moreover filtering may be
used to deliver data to only interested members of the group: a
packet sent to a subgroup travels along a tree but may be filtered
at some intermediate nodes. That is only one tree has to be
maintained for several applications with distinct subsets of
receivers.
On the other hand, there is a particular shared tree connecting all
group members, called the control tree. It offers a support for the
exchange of control messages inside the whole group. It can be used
in particular by the group manager to advertise the creation of new
instances, and their logical addresses, and the launching of new
applications.
A group LAR address is constructed by adding a suffix to the logical
address of the group's creator. Thus, group address allocation may
be achieved in a simple and distributed way without the need for a
multicast address allocation protocol. In the same way, the logical
address of a communication instance is derived from the address of
the group by adding a suffix.
2.2. Naming, addressing and their relationship
In many cases it is helpful for logical objects to have a name for
human use. We define an addressing schema and a name service
providing the name to LAR address and LAR address to name mappings
Pansiot et al. Expires December 1999 [Page 5]
INTERNET-DRAFT LAR June 1999
in a simple way. This service may be achieved using an extension to
the DNS, by adding a new record type and using dynamic updates.
Addresses and names used in LAR are built in the same hierarchical
way: host (creator) > group > instance (tree). One can query the
name service with the (LAR) name of a host to get its logical
address and its IPv6 address, and similarly a request with a group
(LAR) name will provide the logical address of the group as well as
the name of its manager.
Unlike the current Domain Name System, where the name and address
hierarchies are completely independent, we propose an addressing
schema in which logical addresses and names reflect the same
hierarchy. This is possible only because LAR addresses are
independent of routing. A host LAR address is a coding of a Fully
Qualified Domain Name. Each domain gives a unique number to its
child domain. The "human" representation of LAR addresses will be
dotted decimal. For example, if top domain fr is given number 15
among all top domains, domain u-strasbg is given number 155 inside
domain fr, and host clarinet is given number 2654 inside domain
u-strasbg.fr, we have:
clarinet.u-strasbg.fr <-> 15.155.2654
This notation is very similar to the designation of objects in a
SNMP MIB [RFC 1155]. With this notation, we don't need to create a
new hierarchy of Domain Name Servers. The address to name table can
be automatically constructed from the name to address table. In the
same way, one can easily add a level of hierarchy to the logical
names, taking into account that groups created by a host add a level
to the tree structure. In our example if host clarinet is
responsible for the creation of a group called jazz with (local)
number 3 then one has the mapping:
jazz.clarinet.u-strasbg.fr <-> 15.155.2654.3
As far as encoding is concerned, we may use the compact encoding
used in SNMP for object identifier. This is possible only if this
variable length encoding fits into a fixed size LAR address field.
We think this is possible in the case of IPv6 addresses. Indeed with
an SNMP-like encoding, we expect that each host can be assigned a
LAR address using at most ten bytes. Therefore we suggest that LAR
addresses be taken inside the IPv6 address space, with a specific
prefix. If we assume for example a 12 bits prefix LAR_PREFIX, a 4-
bit address length field, a LAR address will be of the form:
LAR_PREFIX.ADDRESS_LENGTH.LAR_HOST.SELECTORS coded with 16 bytes.
The LAR_HOST part should be in most cases less than 10 bytes,
leaving 4 bytes for selectors. This leaves for example the
possibility for one host to create 2^16 groups, each one with 2^16
instances.
Pansiot et al. Expires December 1999 [Page 6]
INTERNET-DRAFT LAR June 1999
Note that with this choice current applications should not be aware
of the difference between LAR addresses and IPv6 addresses, and
should be able to use both types of addresses.
3. Communication manager
3.1. Communication manager functionalities
Any LAR host has a Communication Manager. This LAR entity manages
LAR communications initiated or used by this host. Indeed, the
creator of a group can define a certain number of parameters
associated with this group. For example, it can authorize only
certain hosts to join. It can also define a set of applications that
can operate above the LAR communication. It has the possibility also
of defining some security rules for adhesion. This functionality
offers some security, since requests to join a LAR communication
must go through the communication manager of the group creator (or
its delegated manager). Joining a LAR group communication does not
depend only on the single initiative of the new candidate, but also
on the management rules used for this particular group
communication.
The Communication manager of a LAR host memorizes the
characteristics of the communications it belongs to. At the time of
its initialization, each local manager must have at least the
following configuration parameters:
- Its logical address,
- Its logical name,
- LAR host addresses for which it is the delegated manager.
If an application wishes to join a group communication, it asks its
(local) manager to make the steps of joining. The manager must get
in touch with the manager of the group. Thereafter, it has the
responsibility to inform and communicate the LAR communication
address to the application. The manager memorizes for each group for
which it is responsible, the characteristics of the group and
available applications. It deals with LAR address allocation, it
queries and updates the domain name service (DNS) for logical names
and addresses, it receives and processes join requests. We describe
these mechanisms by detailing the various group operations in the
LAR architecture: creating, joining and leaving a group.
3.2. Group naming
A group communication is identified by a logical hierarchical name,
similar to a DNS (Domain Name Service) name. For instance,
"jazz.clarinet.u-strasbg.fr" could represent a conference organized
by some user of host clarinet, whose goal could be to multicast jazz
songs all over the internet. The association between a group name
and the corresponding unique LAR address can be performed by a DNS.
This DNS should support dynamic updates [RFC 2136] because groups
Pansiot et al. Expires December 1999 [Page 7]
INTERNET-DRAFT LAR June 1999
may be created dynamically. This association may also be obtained by
other means.
To join a LAR communication, the group LAR address and the name of
the group manager are needed. Thus, with the name of the group
communication are associated the LAR group address and the LAR name
of the manager. In most cases, we expect that the manager name is
the name of the group creator, and is a prefix of the group name. In
the previous example, the communication manager of
jazz.clarinet.u-strasbg.fr is the hostname clarinet.u-strasbg.fr.
But in some cases, the communication manager of a group
communication may be located on another host.
3.3. Group creation
Preliminary remark : in our architecture, groups are explicitly
created, contrary to the current multicasting model.
Let us take the example of an application on host H named NAME_H
wishing to create a group named PARTIAL_NAME. The application
transmits to the host local manager a group creation message that
specifies this name. Upon receipt of this message, the manager gives
a full name and address to the group. It prepends the partial name
provided by the host's application to its name (i.e.: NAME_G =
PARTIAL_NAME.NAME_H), then it creates a LAR address identifying the
group, by addition of a selector to its own logical address (i.e.
@LG = @LH.SEL). The selector uniquely identifies this group among
all groups created by this manager. Then the manager dynamically
updates the DNS which associates the group name (NAME_G) and its LAR
communication address (@LG) as well as the name of the group manager
(in this case NAME_H). Finally, the manager triggers the creation of
a multicast tree reduced to a single node H if H is the root of the
tree. The logical routing table for H associates the group address
with its own LAR address (i.e. @LG -> @LH). . If the root R of the
tree is not H, the tree is reduced to an edge joining H to R, and
the logical routing table of H contains @LG -> @LH, @LR.
When an application creates a group, it has the possibility to
define some rules for group management. For example, it can
authorize or not hosts to send data to the group without being a
member (open group). It can also ask the group manager to authorize
only certain hosts to join the communication.
As seen above, when an application wants to create a group, it asks
its local manager to manage it. However it is possible for the local
manager to delegate this responsibility to another (remote) manager.
For example, this could be the case for a mobile host delegating
management to a fixed host.
Pansiot et al. Expires December 1999 [Page 8]
INTERNET-DRAFT LAR June 1999
3.4. Joining a group
We suppose that host H learns a group name by any mean independent
of our architecture, for example www, session directory, electronic
mail, or news, and H wishes to join this group. The host queries the
DNS, which returns the LAR group address (noted @LG), and the LAR
manager address, noted @LM. The host could also learn this address
directly.
The host can then send a join request to the group manager. Upon
receipt of the request, the manager accepts or not H as a new member
of the group. In a positive case the manager triggers the insertion
of H in the multicast tree associated to the group (see algorithm in
section 3.5). Finally, host H receives the LAR address of its
neighbor in the tree, and stores it in the logical routing table
entry corresponding to this group.
3.5 Tree construction
The first node of a tree is the root. When the membership of a new
host H has been accepted, the group manager sends a join
acknowledgment to the root. This message travels hop-by-hop down the
tree, until the point where the unicast route to the new member
leaves the tree. Note that there are several cases :
- At some tree node A, the next hop toward H is different from the
next hop toward any tree node. Then a new edge (A, H) is created.
- At some tree node A, the next hop towards H is the same as the
next hop towards some tree node B, but B is not on the unicast route
towards H. This means that the route from A to B and the route from
A to H are the same up to a router C, C not yet a LAR node in the
tree. In this case, the edge (A, B) is split into two edges (A, C)
and (C, B) by adding a new tree node C. Then an edge (C, H) is
created.
In both cases, H knows it has been inserted in the tree when it
receives the edge creation message. This message contains the
logical and network addresses of its neighbor in the tree. Note that
adding a new member adds at most one new router in the tree.
3.6. Leaving a group
A group member may announce its leaving to its neighbor with a
LAR_LEAVE message. The neighbor node may also detect that the host
as left (or failed) if it has not received a LAR_HELLO message for a
specified time.
3.7 Tree instances
Once a group is created, with its associated bi-directional tree
connecting all members called the control tree, one or several
applications may be launched using this tree. If an application has
Pansiot et al. Expires December 1999 [Page 9]
INTERNET-DRAFT LAR June 1999
a need for a special kind of tree (for example a source rooted tree
for a video stream), it may ask the manager to trigger the creation
of a new communication instance (with a new address derived from the
group address), corresponding to a new tree. The creation of this
new instance is advertised via the control tree, and other members
may join this new tree.
4. Logical Routing
4.1. Reduced trees and Logical forwarding
A LAR tree is a tree whose vertices are nodes implementing a LAR
entity, and whose edges are (network) routes between these nodes. In
the common case of unicast communications, a LAR tree is usually
only a single edge connecting two hosts. In the case of multicast
communications, a LAR tree is usually composed of several nodes,
including end nodes of degree one corresponding to members (sources
or receivers), and interior nodes with degree at least two, that
duplicate and forward packets to their neighbors. A packet is
forwarded from one node to all end nodes of the LAR tree
corresponding to the LAR destination address. In the case of
multicast, LAR addresses can be seen as tree identifiers.
Note that a LAR neighbor is not necessarily a direct neighbor at the
network level. Instead, one may construct reduced multicast trees,
where nodes have a duplication role: basically they have degree at
least 3. Therefore an edge of a reduced multicast tree is in fact a
route at the network level. Intermediate routers along logical tree
edges forward packets based on the IPv6 level address as usual, and
don't even need to implement a LAR entity. In most unicast cases,
only LAR entities at endpoints are concerned.
In a LAR node N, given a LAR destination address, the forwarding
process consists in determining neighbors in the LAR tree and then
sending a copy of the packet to all the neighbors except the sending
one. Therefore the IPv6 header must contain the IPv6 address of LAR
node N, in order for the receiving LAR node to know which incoming
logical edge was used.
4.2. Logical Routing Data Structures
One role of the LAR entity is to dynamically map LAR addresses and
IPv6 addresses, in presence of network-level changes. This is done
by maintaining a LAR cache table. For each LAR node address in use,
this table contains an entry with the current correspondence between
the node LAR address and a usable IPv6 address. In addition, this
entry may contain a list of other IPv6 addresses of the same node,
for example for routers or multihomed hosts. This table is updated
when IPv6 addresses change (mobility, renumbering, ...).
A LAR routing protocol is in charge of constructing and maintaining
a LAR tree called a reduced tree. At each node, local tree
Pansiot et al. Expires December 1999 [Page 10]
INTERNET-DRAFT LAR June 1999
information is maintained in the LAR logical routing table. This
table contains the current correspondence between a LAR
communication address and the list of neighbor LAR addresses to
which a packet must be sent. In the case of a multicast LAR address,
this is the list of adjacent nodes in the multicast tree. This table
is the local view of a LAR tree.
A flag UNI_TREE is encoded in the address. If this flag is set, data
may only flow from the root of the tree. If this flag is not set,
the tree is bi-directional. Data arriving by any edge is propagated
to all other edges. The initial tree for a group (the control tree)
is always bi-directional to allow multipoint to multipoint
communication.
Another problem with multicast routing is the possibility for
sources outside a group to send data to the group (such a group is
called open). We propose the following mechanism: when a LAR
communication is created its creator decides if it is open or not. A
corresponding flag OPEN_TREE is encoded in the address. A LAR router
may or not accept to be part of a tree whose address has the
OPEN_TREE flag set. When a router receives a multicast packet from a
node which is not a neighbor in the LAR tree, the packet is
forwarded to all neighbors if the tree is open, otherwise it is
discarded. In the former case, an OUTSIDE flag is set in the header
to warn all members that the sender is not a member of the group.
Note: We could define a hop by hop option such that a packet sent
toward the root of the tree by an outside source is intercepted by
the first router which is part of the open tree, and then propagated
along the bi-directional tree.
Though, we suggest that the default behavior is not open.
4.3. Filtering
When a new application is launched inside a group or inside a
specific communication instance, not all group members may be
willing or capable to run this application, introducing the notion
of a subgroup. A packet sent to a subgroup travels along the tree
corresponding to the group (or instance) but may be filtered at some
intermediate nodes. In order to do this, a logical routing table
entry may contain a MASK field for each neighbor and the logical
packet header includes a SUBGROUP field. Only packets whose SUBGROUP
field matches the MASK value (A logical AND of this two values is
not all zeroes) are forwarded onto corresponding logical edges. Mask
values are transmitted by receivers, using the tree maintenance
messages (LAR_HELLO). They are OR'ed at router nodes, to be
forwarded to their neighbors.
In addition to sub-groups, this mechanism allows to create send-only
branches for sources not willing to receive data.
Pansiot et al. Expires December 1999 [Page 11]
INTERNET-DRAFT LAR June 1999
4.4. Sending to a logical object
A LAR packet sent by a node S to a logical object D (tree or
neighbor in case of unicast) is encapsulated in a IPv6 packet.
At the IPv6 level, source and destination addresses are IPv6
addresses of the current logical edge (@NA as sender and @NB as
neighbor if we consider logical edge A B). At the LAR level, source
and destination addresses are logical addresses of the initial
sender @LS and of the final destination @LD (tree or neighbor).
| IPv6 header | LAR header | DATA
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| @NA | @NB |...| @LS | @LD | ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The receiving node B, following a logical routing table lookup,
duplicates the packet to each tree neighbor, encapsulating the
unchanged logical header in each IPv6 packet (@NB as source and @NN
for each neighbor).
5. Mobility
The LAR architecture is well suited for communications where
correspondents must be identified logically (i.e. independently of
their current IPv6 address), like mobile hosts. Indeed, LAR hosts
use logical addresses as identifiers. In particular, applications or
transport level connections may use these identifiers instead of
IPv6 addresses. This can be done transparently since LAR addresses
and IPv6 addresses share the same addressing space.
The binding between the IPv6 addresses and the LAR address of a host
is done through the LAR cache table. It associates the logical
identifier with the list of current IPv6 addresses of a LAR host.
When a mobile node moves and acquires a new IPv6 address, it
continues to use its LAR address as an identifier of the
communication. It only updates the LAR cache table of its
correspondents by sending its new IPv6 address, similarly to the
binding update of Mobile IP. However, contrary to Mobile IP, this
mechanism works also for multicasting: the mobile host updates the
LAR cache table of its neighbors in LAR trees. There is no need to
tunnel data between the Home Agent and the Mobile or to have the
mobile make a new join at its new location.
This relatively simple mechanism allows a transparent use of the
mobile hosts in the LAR framework.
6. Robustness
In this section we consider problems that may arise from failures in
the network.
Pansiot et al. Expires December 1999 [Page 12]
INTERNET-DRAFT LAR June 1999
6.1 Link failure
The most common failure is a network link failure. In our
architecture, this would lead to the following scenario:
1) A unicast route used by a logical edge (say from A to D) becomes
unavailable,
2) the unicast routing process detects this problem and computes a
new unicast route,
3) two cases may arise whether or not the last hop of the unicast
route changes,
- If the new route has the same last hop than the old one in both
directions (for example route A-B-C-D becomes A-B-E-C-D after the
failure of link B-C), there is no change at all in the LAR tree, and
multicast traffic is disrupted only while unicast routing converges,
- If the new route has a new last hop (for example route A-B-C-D
becomes route A-B-E-D after the failure of link C-D), LAR packets
sent along the logical edge A-D will be sent to the IPv6 address of
D corresponding to the failed link. In this case it is possible that
a NET (or HOST) UNREACHABLE message is received. The LAR routing
process of A may then update the LAR cache table entry for host D,
by removing the unavailable IPv6 address from the list and replacing
it by another one. This is possible since a LAR cache entry contains
the list of all known IPv6 addresses for a node. Again the LAR tree
itself is not changed, and multicasting is disrupted while unicast
routing converges plus the time to update the cache entry. Note also
that all trees using the same logical edge A-B are repaired
simultaneously.
6.2 Node failure
The failure of a node, which is not a node of the LAR tree, but is
an intermediate router along a logical edge is very similar to the
failure of a link, and is solved in the same way. More generally,
most changes in the unicast routing that do not affect the
reachability of LAR nodes of a tree will be considered in the same
way.
A more serious problem is the failure of a LAR tree node. Note that
in the classical model for multicasting, all nodes forwarding data
packets for a group are part of the multicast tree, whereas in our
architecture, only a fraction of these nodes are LAR tree nodes. A
tree maintenance protocol is used, such as in CBT and PIM-SM: tree
nodes send periodically a HELLO message to their parent in the tree
(with an acknowledgement from the parent). The absence of HELLO for
a specified duration indicates that the downstream node has failed.
If the specified duration is greater than the unicast routing
protocol convergence delay, it really means that the node is dead or
the network is partitioned. In this case the failed node is removed
Pansiot et al. Expires December 1999 [Page 13]
INTERNET-DRAFT LAR June 1999
from the logical routing table. Symmetrically, sons of the failed
node detect this failure. They may flush the entire subtree. Another
possibility would be for these sons to ask via the group manager to
be grafted to the tree. This implies that routers must keep track of
group managers. This solution would be more scalable for very large
groups when the failure is close to the root.
The root failure is an even more important issue. If we consider
that the group manager did not failed, or that several redundant
managers have been set up, a possible solution is as follows: the
group manager detects the root failure and chooses a new root. When
sons of the failed root detect this failure, they ask the manager to
be grafted back to the tree. The manager sends this request to the
new root, similarly to the failure of any LAR node.
Note that the group identifier is not linked to the root address, so
the root can be changed without changing the whole tree.
6.3 Tree reshaping
In the LAR architecture, many changes in the underlying network
(change in unicast routing, renumbering, move of a mobile host) are
taken into account by updating the LAR cache table. Network routes
corresponding to a LAR edge change but the logical tree remains the
same. In many cases this will lead to a non-optimal tree. In
particular, it is possible that at a given time, two edges from a
node share the same first network hop. The LAR routing protocol will
be in charge to detect this kind of situation, and to reshape the
tree, by adding and/or removing a LAR node.
Example: for a given tree, assume node A has 3 LAR neighbors B, C
and D. The unicast route from A to B is A-E-B, and the unicast route
from A to C is A-F-C. These two routes are disjoint. Assume now that
node E fails. The unicast routing will replace route A-E-B by say
A-F-G-B. The LAR tree is again operational, but LAR edges AB and AC
start with the same first hop F. In this case the LAR routing
protocol will detect this, and split edge A-C into two edges A-F and
F-C where F is a new LAR node in the tree. Then edge A-B will be
replaced by edge F-B.
7. Inter-domain issues
Inter Domain multicasting brings several scalability problems, and
policy routing problems.
7.1. Tree state in routers
State to be maintained in a router which is part of a multicast tree
is similar to other sparse mode protocols (CBT, PIM-SM). However,
less routers will be involved in a given tree, especially for very
sparse groups. For example a group consisting of 3 members in one
site in California and 3 other members in another site in France,
might involve only two routers, one on each site, whereas current
Pansiot et al. Expires December 1999 [Page 14]
INTERNET-DRAFT LAR June 1999
protocols would involve at least a dozen routers along the route
between the two sites, including routers in Internet backbones. Note
that in our architecture, if a multicast tree connects N different
LANs, it involves at most N-1 routers.
Obviously, if multicast becomes widely used in the internet, routers
may still have a huge number of trees to remember, and tree
aggregation is a hard problem. The notion of filtering and subgroups
is a first step to avoid the creation of many similar trees.
7.2. Address allocation, root advertisement.
Our architecture does not need a specific address allocation
protocol used with IPv6, nor protocols to advertise root (Core, RP)
for trees. This saves both state in routers and bandwidth. The root
of a tree is chosen by its communication manager and may be replaced
by the same manager. The manager may be dynamically retrieved from
the group address via the DNS. Therefore several problems with
multicasting are handled by communication managers, not routers. A
significant part of the load due to a group is supported by the
group manager, which seems more scalable.
7.3. Very large groups
A problem with very large groups is the reconnection of whole sub-
trees when a node fails. Our notion of logical edge should simplify
the grafting of a sub-tree back to a tree.(see 6.2)
7.4. Policy routing
Multicast routing between autonomous systems must be subject to
control in the same way as unicast routing is. An autonomous system
needs an authorization (agreement) of a nearby autonomous system
before using its resources for relaying traffic. An inter-domain
multicast protocol must take into account policy constraints and
hence offer a policy model.
Current unicast routing policy routing is achieved through
selection/restriction of destinations advertised to neighbors.
Autonomous systems exchange routing information by an inter-domain
routing protocol, such as BGP4. For example if domain A advertises
destination D towards domain B, it means that packets coming through
B with destination D are allowed to transit through A. The notion of
routing policy for multicast is more complex. We will consider the
following type of policy for a domain A, concerning a destination D,
and a neighbor domain B:
- Policy 1: A allows groups originating on the B side (whose creator
is on the B side) to have members in destination D.
- Policy 2: A forbids groups originating on the B side to have such
members.
Pansiot et al. Expires December 1999 [Page 15]
INTERNET-DRAFT LAR June 1999
BGP4+ is an extension of BGP4 allowing to advertise other types of
routes in addition to unicast IPv4 routes. This allows implementing
different policies for unicast and multicast. In order for LAR to
support policies 1 and 2, we assume that a boolean attribute MM
(multicast member) is added to all destinations.
Paths to D with MM set are advertised by A towards B if and only if
multicast trees originating on the B side are allowed to transit
through
domain A towards members in D. The management of this attribute
should not be a big extension to BGP.
Note that we may have two routes to destination D advertised in the
same direction: one with MM set, and one with MM unset. Routes
received with MM set will be stored in the M-RIB (Multicast Routing
Information Base) of the BR. To comply with multicast routing policy
as described above, the tree construction algorithm of section 3.5
is modified as follows. While the join acknowledgment message
travels from the root to the new member H hop by hop
- if the current node is not a border router, or if the current node
is a border router, and the unicast route and multicast route
towards H are the same, apply algorithm of section 3.5 (use unicast
route table).
- If the current node is a border router and the unicast route (MM
unset) differs from the multicast route (MM set), send the join
message along the multicast route to the ingress border router of
the next AS. This is possible because of the two levels of
addresses. This router will become a LAR node of the tree in order
to insure that the logical edge (which is a unicast route) comply
with the multicast policy. This is similar to explicit routing.
Note that in the LAR architecture, it is not necessary to advertise
group addresses as in BGMP, since trees are constructed from root to
members. Also, if we consider that most members will usually be
receivers, policy is applied in the same direction as in the unicast
case: just consider members as destinations and root as source.
8. Security considerations
Since LAR addresses never change, both when travelling inside the
network (no translation) and with time (mobiles keep their LAR
address), an authentication header should be based on the LAR
extension header. The IPv6 header will change with time (mobility)
and while the packet gets through LAR nodes. Since a LAR address
remains unchanged across network renumbering, and the name of the
host can be retrieved from the address, it is also a good key for
accounting.
Note that a packet with a given LAR source address may come from
anywhere, since this address is independent of physical location
Pansiot et al. Expires December 1999 [Page 16]
INTERNET-DRAFT LAR June 1999
(easy spoofing). Therefore when security is a concern, the
authentication header must be used.
With regard to secure multicasting, LAR provides a first step for
the design of secure and scalable architecture.
Indeed, a first level of access control is achieved by the group
manager, without any router involvement. Moreover adding a new
member to the secure tree will add at most one router, requiring at
most one router authentication.
9. Implementation
Part of the LAR architecture has been implemented using IPv6, on
FreeBSD, both for multicasting and mobility.
Since we have taken LAR addresses as a subset of IPv6 addresses,
applications may use LAR without much change.
LAR routing functionalities are provided by a daemon.
The LAR logical routing table and the cache table are implemented
in the kernel. The LAR header is implemented as a IPv6 destination
option, inserted automatically by the kernel in each LAR packet.
In addition, a hop-by-hop option is defined and used by the daemon
in some control messages. Particularly, to efficiently implement the
tree construction algorithm described in section 3.5.
10. Related works
There have been some recent proposals [SIMPLE][EXPRESS] defining new
multicasting architectures. Though these architectures were
specified for IPv4, we will in this section give a brief comparison
of their design concepts with the LAR ones.
The basic idea of Simple Multicast (SM) is the identification of a
group by a tuple (Core, ID). Multicast Address allocation becomes
simple: collisions are managed locally by the Core.
Multicast tree construction is similar to CBT. Although, routers
don't need any extra mechanism to advertise/discover Cores. Instead,
the Core address is carried out by control and data packets.
EXPRESS defines a new multicast delivery service. In this proposal,
a channel (tree) is defined for each pair (S, E), where S is the
sender's source address and E is a channel destination address. Only
S may send in channels (S,*). A host subscribes to a channel (S,E)
by sending a request to the network (towards S), specifying both S
and E in the subscription request.
The main similarities with SM and EXPRESS are :
- There is no need for a multicast address allocation protocol.
Pansiot et al. Expires December 1999 [Page 17]
INTERNET-DRAFT LAR June 1999
- Routers don't need (an extra mechanism) to discover the location
of the root of the multicast tree.
However LAR differs from SM and EXPRESS in that :
- A first level of access control is provided by the LAR group
manager without any router involvement.
- LAR trees construction is done from root to members. So, in case
of asymmetric links, this will give better results than routes based
on the reverse path.
- A LAR group address is not linked to the root of the tree, so
changing the root of a tree is possible without rebuilding most of
the tree.
- The use of logical addressing, allow to construct reduced
multicast trees, reducing the number of routers involved in a given
tree, especially for sparse groups.
Moreover, LAR trees presents interesting properties :
(1) They are more stable : in many cases, a change in unicast
topology will not lead to a change of the multicast tree.
(2) If the unicast level implements some form of load sharing, LAR
will implicitly make use of it, since a LAR edge is a unicast route.
This will be particularly true of very sparse groups.
11. Further Work
Obviously many things remain to be done. Among them:
- study how to deal efficiently with broadcast medium
- give a precise specification of the LAR routing protocol to
construct a LAR tree
- study how LAR could interact with other multicast protocols. Note
LAR can be run in parallel with other multicast protocol since it
uses a different encapsulation.
- improve LAR tree construction to deal with QoS.
12. References
[BGMP] D. Thaler, D. Estrin, D. Meyer. Border Gateway Multicast
Protocol(BGMP):Protocol Specification <draft-ietf-idmr-gum-
03.txt>. August 1998.
[ETCP] C. Huitema, Multi-homed TCP, internet-draft, May 1995.
[EXPRESS] H. Holbrook and D. Cheriton, IP Multicast Channels:
EXPRESS Support for Large-scale Single-source Applications, To
Pansiot et al. Expires December 1999 [Page 18]
INTERNET-DRAFT LAR June 1999
appear in the Proc. of ACM SIGCOMM '99, Cambridge, Massachusetts,
September 1999
[MALLOC] The Multicast Address-Set Claim (MASC) Protocol, <draft-
ietf-malloc-masc-01.txt>, D Estrin et al. August 1998.
[RFC 1157] J.D. Case, M. Fedor, M.L. Schoffstall, C. Davin.Simple
Network Management Protocol (SNMP). May-01-1990.
[MOBILE] D.B. Johnson, C. Perkins: Mobility Support in IPv6,
Internet draft (work in progress), draft-ietf-mobileip-ipv6-
07.txt, November 1998.
[RFC 2137] D. Eastlake, Secure Domain Name System Dynamic Update,
April 1997
[RFC 2189] A. Ballardie, Core-Based Trees (CBT version 2) Multicast
Routing. September 1997
[RFC 2201] A. Ballardie. Core-Based Trees (CBT) Multicast Routing
Architecture, September 1997.
[RFC 2362] D. Estrin, D. Farinacci, A. Helmy, D. Thaler, S. Deering,
M. Handley, Jacobson, C. Liu, P. Sharma, L. Wei, Protocol
Independent Multicast-Sparse Mode (PIM-SM): Protocol
Specification. June 1998.
[SIMPLE] R. Perlman, C-Y Lee, A. Ballardie, J. Crowcroft, Z. Wang T.
Maufer, C. Diot, J. Thoo, M. Green, Simple Multicast: A Design
for Simple, Low-Overhead Multicast, Internet draft, February
1999.
13. Author's Addresses
Jean-Jacques Pansiot, Dominique Grad, Thomas Noel, Abdelghani Alloui
LSIIT, Louis Pasteur University
Boulevard Sebastien Brant
67400 ILLKIRCH
FRANCE
Email: {pansiot, grad, noel, alloui}@dpt-info.u-strasbg.fr
Pansiot et al. Expires December 1999 [Page 19]
INTERNET-DRAFT LAR June 1999
Full Copyright Statement
"Copyright (C) The Internet Society (date). 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
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
Pansiot et al. Expires December 1999 [Page 20]