Internet DRAFT - draft-hilt-pim-tree-unreachability
draft-hilt-pim-tree-unreachability
Network and Protocol Team B. Hilt
Internet-Draft MIPS
Expires: November 4, 2007 J-J. Pansiot
LSIIT
M. Hoerdt
IL21
May 3, 2007
Join failure notification for PIM-SM multicast routing
draft-hilt-pim-tree-unreachability-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
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 November 4, 2007.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
Currently, PIM-SM is the most widely deployed multicast routing
protocol in the Internet. Nevertheless this multicast protocol lacks
connectivity debugging function, making it difficult to identify for
example; -multicast routing problem, -source unavailability, -RP
failure, etc... When a host wants to receive a multicast group/
Hilt, et al. Expires November 4, 2007 [Page 1]
Internet-Draft Multicast Tree Unreachability May 2007
channel, if for any reason the associated tree branch cannot be
built, nothing exists to inform the receiver or its network about
this failure. We propose here a new PIM message suitable for Join
forwarding error notification. It is able to inform where and why
such an error happened in the network and this without using a
multicast traceroute mechanism. This message is also suitable to
reduce globally the impact of useless branches in a PIM domain.
Furthermore it should be used to block DDoS (Distributed Denial of
Service) attacks.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Protocol description . . . . . . . . . . . . . . . . . . . . . 5
2.1. Sending PIM/TU Message . . . . . . . . . . . . . . . . . . 5
2.2. Receiving/Forwarding PIM/TU Message . . . . . . . . . . . 6
3. Taking PIM/TU message into account . . . . . . . . . . . . . . 7
3.1. Edge Routers . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Core routers . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Multi-access LANs . . . . . . . . . . . . . . . . . . . . 9
3.4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . 9
3.5. DDoS traceback . . . . . . . . . . . . . . . . . . . . . . 9
4. PIM/TU Message format . . . . . . . . . . . . . . . . . . . . 10
4.1. PIM Version . . . . . . . . . . . . . . . . . . . . . . . 12
4.2. PIM Type . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Reserved . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4. Checksum . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5. L : 'Last TU Record' bit . . . . . . . . . . . . . . . . . 13
4.6. Reserved1 . . . . . . . . . . . . . . . . . . . . . . . . 13
4.7. Number of Group Records . . . . . . . . . . . . . . . . . 13
4.8. Router Address . . . . . . . . . . . . . . . . . . . . . . 13
4.9. Group Record . . . . . . . . . . . . . . . . . . . . . . . 13
4.10. Error Code . . . . . . . . . . . . . . . . . . . . . . . . 14
4.11. R : 'shaRed tree' bit . . . . . . . . . . . . . . . . . . 14
4.12. S : 'Source or RP' bit) . . . . . . . . . . . . . . . . . 14
4.13. Res . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.14. Error Code . . . . . . . . . . . . . . . . . . . . . . . . 14
4.15. Holdtime . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.16. Number of Unicast Address . . . . . . . . . . . . . . . . 14
4.17. Multicast Address . . . . . . . . . . . . . . . . . . . . 14
4.18. Unicast Address [i] . . . . . . . . . . . . . . . . . . . 15
5. PIM/TU message Error Codes . . . . . . . . . . . . . . . . . . 15
6. Security Consideration . . . . . . . . . . . . . . . . . . . . 17
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1. Normative References . . . . . . . . . . . . . . . . . . . 17
7.2. Informative References . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18
Hilt, et al. Expires November 4, 2007 [Page 2]
Internet-Draft Multicast Tree Unreachability May 2007
Intellectual Property and Copyright Statements . . . . . . . . . . 19
Hilt, et al. Expires November 4, 2007 [Page 3]
Internet-Draft Multicast Tree Unreachability May 2007
1. Introduction
With the current specification of PIM-SM [1], when a router cannot
build a tree branch, the first possible operation will be to send (if
available and configured) a trap message to a management station to
inform about this failure. If this failure cannot be removed
quickly, or is the result of misuse, nothing is available to inform
downstream routers or possibly receivers. Therefore useless
multicast branches or full trees can be maintained from several
receivers to a point of failure, while these receivers needlessly
wait for multicast data. Such a failure may be due for example to
temporary routing problem (source or RP unreachability),
configuration problem (RP adressing, ...) or user error (source
address of an SSM channel which is not a valid or existing address).
The main idea proposed here is to send through the builded part of
the tree an error message informing downstream that a Join message
propagation failed at some point in the network. This may occur
toward a source (S) both for a PIM-SM[5] SSM channel or for a SPT
tree for a PIM -SM[1] ASM group. This may also occur between the DR
and the rendez-vous point (RP) for an ASM group. This new error
message, called Tree Unreachability (TU) message, will be a new
PIM-SM message (also further called PIM/TU message). In the
following tree will designate either an (S, G) tree or a (*, G) tree.
The associated mechanism proposed here is to take into account this
message in all the routers of the trees of the group(s)/channel(s)
concerned by the failure. A router receiving this message will
forward it through the outgoing interfaces of the embedded group(s)/
channel(s) builded tree part after a possible message trimming. At
the same time, the PIM/TU Tree unavailability information is stored
in a soft-state cache for a specific duration (See Section 4.15). As
long as a multicast entry exists and is marked as unreachable a
routeur stops sending upstream Join message for the failed trees.
Due to this, useless branche(s) will be automatically pruned out.
This mechanism is different and complementary from multicast
traceroute. It is a push model where error indications are forwarded
downstream whereas multicast traceroute is more of a pull model in
which queries are triggered from downstream but still very useful.
It can provide multicast listeners with a report including both
problem location and problem description. It can help network user
or administrator reporting the problem to the person responsible of
the good operation of multicast routing for the indicated location.
The information carried by this message could be a ground information
to use by diagnostic applications such as ssmping or asmping[6] to
locate the point of failure in case of unreachability. In a
multicast domain, the use of this new message can suppress multicast
Hilt, et al. Expires November 4, 2007 [Page 4]
Internet-Draft Multicast Tree Unreachability May 2007
useless banches and because of this reduce globally routers bandwidth
consumption and memory use. Of course, PIM/TU information can be
sent via trap to a network management station to inform about
failure. The Prune part of a failed Join message is not considered
in this draft.
The PIM/TU failure information could be forwarded to networks with
receivers, for example using a new ICMP message. Some user
applications COULD use it to warn for example the user and/or to
leave the corresponding group or channel. But this is out of the
scope of this draft.
As this mechanism requires to be deployed on all multicast routers of
a multicast domain to operate properly, it requires standardisation.
This draft specifies:
- the rules used to send and forward this message down the multicast
tree,
- where and how PIM/TU message could be taken into account to
suppress multicast useless banches,
- PIM/TU message format,
- PIM/TU associated error codes.
2. Protocol description
This new proposed PIM-SM message, like the PIM/Join message, is
forwarded hop-by-hop by multicast PIM-SM capable routers. It is sent
to the ALL-PIM-ROUTERS group address. It is not sent to the group
address contained in the failed Join message.
When a router R is unable to send a Join message towards a rendez-
vous point (RP) or a source (S), it triggers the sending of a PIM/
Tree Unreachability (PIM/TU) message. PIM/TU messages MAY aggregate
Join failure reasons for several trees. In order to locate the point
of failure, the PIM/TU message contains the address of R.
2.1. Sending PIM/TU Message
PIM/TU messages are sent both when a failure occurs on an existing
tree (triggered by a periodic Join) or when a new branch is
constructed. In both cases, a Join message forwarding failure
triggers the sending of a PIM/TU message. If the failure is due to a
transient error such as a temporary routing problem, the router may
choose to not send PIM/TU message.
On interdomain links and routers, the number of maintained groups/
channels can be high. A single failure on those links may trigger a
Hilt, et al. Expires November 4, 2007 [Page 5]
Internet-Draft Multicast Tree Unreachability May 2007
high number of PIM/TU messages sharing the same point of failure. To
reduce the cost of the protocol in this case, PIM/TU messages sent on
a link MAY aggregate unreachability information for several trees
sharing this link.
Because the PIM/TU message size is limited to the link MTU, if the
number of tree to aggregate makes the message exceeding this size,
unreachability information will be fragmented into multiple PIM/TU
messages. To avoid the sending of a burst of PIM/TU messages, these
messages should be rate limited.
When a multicast router R is unable to send a Join message, it builds
for each failed group/channel a Group Record containing its failure
information such as group/channel identification, router R address,
error code, etc... (detailled message format in Section 4). For each
outgoing interface of at least one failing tree, the corresponding
Group Records are gathered in the same TU Record.
Then a PIM/TU message, possibly aggregating several Group Records for
this interface is built. The destination address of the PIM/TU
messages using this interface MUST be the ALL_PIM_ROUTERS group
address (224.0.0.13 in IPv4 or FF02::D in IPv6). This ensures that
for the failed group(s)/channel(s) all PIM-SM Routers will receive
the PIM/TU message. It could be helpful to forward PIM/TU messages
(or a subset of them) in leaf networks to inform hosts about group/
channel unavailability. Further work will determine if this can be
interesting. And if answer is positive, what is the best way to
achieve this.
2.2. Receiving/Forwarding PIM/TU Message
PIM/TU messages are forwarded hop-by-hop according to the TIB (Tree
Information Base) maintained by the multicast routing protocol. When
a router R receives a PIM/TU message on an interface:
- If the source address of the received message is not the address
of a PIM neighbor for the interface the PIM/TU message MUST be
silently ignored.
- If there is no group/channel in the PIM/TU message for which the
receiving interface is the incoming interface, the message must be
silently ignored.
A PIM/TU message is forwarded on all interested interfaces after a
possible trimming. An interface i is interested by the PIM/TU, if
and only if, the PIM/TU contains a group or channel such that:
Hilt, et al. Expires November 4, 2007 [Page 6]
Internet-Draft Multicast Tree Unreachability May 2007
(1) PIM/TU message was received by the incoming interface for this
group/channel.
(2) interface i is an outgoing interface for this group/channel.
The PIM/TU message sent through interface i is possibly trimmed
such that it contains only group(s)/channel(s) satisfying
conditions (1) and (2).
(3) Channel unreachability information (concerning a specific source
S and group G) is only forwarded down to a shared tree (*,G) using
TIB states if the bit R is set in the TU Record. RP
unreachability information is propagated on the shared (*,G) tree
without setting this bit.
Normally, if a Join (S,G) fails, PIM/TU message is sent only down the
(S,G) tree. In some ASM cases, a join (S,G) may fail between the RP
and the FHR. In this case a PIM/TU message will travel down to the
RP, and if the RP has no outgoing interface for (S,G), the PIM/TU
message will stop there. So the RP may choose to forward the PIM/
TU(S,G) message down the shared tree. In this case, care must be
taken that this message MUST be distinguished from regular PIM/
TU(S,G) messages. The R bit tells that. Such a message may help
debug a problem between the RP and the source, but this problem may
have no direct impact on receivers, if they reach the source by
another route.
This bit is set by the router forwarding a PIM/TU(S,G) through the
shared tree, and then this PIM/TU message should be transparently
forwarded down the shared tree.
Several PIM/TU messages parts concerning a same interface, possibly
originating from different routers MAY be aggregated in a same new
PIM/TU message.
As long as a multicast router is aware about upstream failure for a
group/channel (i.e. has this information in its cache), it stops
forwarding PIM/TU messages for this group/channel. This avoids
networks to be flooded by PIM/TU messages.
3. Taking PIM/TU message into account
PIM/TU messages are triggered by routers when Join forwarding failure
appears on either new tree branch construction or periodic tree
maintenance. PIM/TU messages gives the possibility to inform
downstream the point of failure that some group/channel is not
available. After a Join message failure detection, PIM/TU messages
are forwarded down the builded part of trees of all the concerned
trees. If the case of non transient error, the failure of a Join
message forwarding triggers a PIM/TU message. One PIM/TU message can
Hilt, et al. Expires November 4, 2007 [Page 7]
Internet-Draft Multicast Tree Unreachability May 2007
gather information about several trees. Because PIM/TU taking in
account will be freeze Join sending, only one PIM/TU should be sent
per failed Join message. In a multicast domain, we can split the
multicast routers into two categories: Edge Routers (ER) and Core
Routers (CR). Edge Routers are those that either;
(1) executes a Group Management Protocol on at least one interface,
(2) are connected to non PIM/TU capable PIM neighbors. This
information should be available using PIM/HELLO messages or by
configuration,
(3) are connected to unreliable PIM neighbors (mostly the case in
interdomain routing).
whereas Core Routers are all the other routers of a multicast domain.
To manage useless branches and to reduce multicast routers bandwith
and/or resource consumption Section 3.1 shows how PIM/TU will be
taken into account in the Edge Routers (ER) of a multicast managed
domain. Section 3.2 shows how the routers located in the core of the
multicast managed network, can take PIM/TU message into account and
interacts with Edge routers to suppress useless branches.
The forwarding of unavailability information for trees to receivers
and/or their networks is out of the scope of this draft.
3.1. Edge Routers
Because the PIM-SM multicast model is fully receiver driven, the best
point to take into account the PIM/TU failure information is in the
last-hop routers of multicast trees (above mentioned as Edge
Routers). So each Edge Router having at least one registered
multicast receiver for a group/channel of PIM/TU message, stops
sending upstream Join message for the concerned tree. To avoid a new
branch construction for an unavailable tree, this freezing state(s)
will be maintained up to the PIM/TU message embedded Group Record
Holdtime. This Holdtime will be necessarily greater than the maximum
forwarding state duration (PIM Expiry Timer). It will be chosen
according to the type of failure. Further work is needed to specify
the duration associated to each error type. This freezing function
is maintained per group/channel.
Because this freezing time is greater than the Expiry Timer, the
forwarding states in the routers toward the point of failure will be
automatically flushed and useless branches will disappear.
3.2. Core routers
When a PIM/TU message flows from the point of failure to the Edge
Routers of the PIM/TU concerned tree, each intermediate Core Router
Hilt, et al. Expires November 4, 2007 [Page 8]
Internet-Draft Multicast Tree Unreachability May 2007
will mark the tree T with an unreachability flag and stores
associated information (point of failure, error type and Holdtime).
Suppose now that this Core Router receives a new Join message for a
tree T whose unreachability is known, which is one of the PIM/TU
concerned group(s)/channel(s), and that this Join message arrives
before T TIB state is flushed by Join Time countdown. The receiving
interface of this Join message is not a part of the initial tree of
the group/channel for T. Because T is marked as unavailable, this
Join message will be discarded and the Core Router will send a PIM/TU
message through this new downstream interface. The Holdtime of this
PIM/TU message will be the current value of the stored Holdtime. The
Edge Router of this branch will then stop sending join for T for
Holdtime time.
3.3. Multi-access LANs
When a link connects more than two routers, if a PIM/TU message is
sent to this link, only the routers having a state in their TIB for
the trees concerned by this PIM/TU message mark them as Unreachable.
If a new branch for one of an unavailable tree cross over this
network, the upstream router toward the RP or the source of this tree
sends a new PIM/TU message back to the shared network. So routers
without unreachability information for this tree (i.e. the router
from which the Join message for this tree is coming from) mark it as
unreachable and forward the PIM/TU message to the freshly built
branch. While other routers connected to the shared network update
their holdtime for the concerned tree.
3.4. Discussion
The presented solution describes two behaviors based on router
function. In both cases Join forwarding is frozen. On Edge Routers
Unreachability information will be maintained for Holdtime whereas in
Core Routers Unreachability information will be maintained until
forwarding state is flushed. In certain cases, due to periodic new
branches construction initiated by new receivers, it is possible to
maintain for a long/undefined time an Unreachability information for
a tree. But, because the forwarding states in the other routers of
this tree will be flushed, the global resource consumption will
decrease.
3.5. DDoS traceback
A DDoS attack against a multicast infrastructure may consist in
flooding the network with join messages addressed to randomly
selected trees, thereby overloading routers with tree states, and
possibly staturating routers memory. Similar attacks already
occurred through the MSDP infrastructure. In such cases, one
Hilt, et al. Expires November 4, 2007 [Page 9]
Internet-Draft Multicast Tree Unreachability May 2007
possible use of PIM/TU message should be: one (or several) router on
the attacked site detects the DDoS attack (through a new join message
rate trigger of new join messages, or possibly the proportion of new
join message causing some sort of failures such as source host
unreachable). This router sends then back PIM/TU messages (possibly
with an error code of a "DDoS attack detected" type). Edge routers
receiving sufficiently many such messages (but much less than the
attacked site, since this is a distributed attack) may take
appropriate actions (message sent to the network administrator,
automatic filtering of new joins from suspected interfaces,...).
4. PIM/TU Message format
Join messages sent by a router summarizes for a given interface the
group (*,Gn)/channel (Sn,Gn) join state information. These messages
are sent either to maintain a connection towards the root of the tree
(Rendez-vous Point or Source) or to create a new tree branch. To
inform downstream the builded tree part of a Join propagation
failure, each group/channel which cannot be connected to its tree
root will be included into a Tree Unreachability message.
Since the proposed tree unreachability mechanism is an extension of
the PIM-SM protocol, the Tree Unreachability message inherits of all
PIM-SM message properties. Its protocol number will be 103, it will
need new PIM message type number, and it will use sources and groups
addresses encoding.
Like Join/Prune messages, it will be sent by routers only but
downstream the builded parts of several trees. PIM/TU messages are
sent to inform downstream PIM neighbors about Join progagation
failure. This information can then be used to avoid building and/or
maintainig useless tree branches.
IPv4 PIM/TU messages MUST only contain unreachability information
about IPv4 addresses while IPv6 PIM/TU messages MUST be sent with a
link-local source address and MUST only contain unreachability
information about IPv6 addresses.
A PIM/TU message can carry several Tree Unreachability Records
concerning each an error location (i.e. router interface). In the
following text we use PIM/TU to refer to IPv4 or IPv6 PIM/TU
messages. So, if specific to a protocol family (IPv4/IPv6)
information is necessary, it will be specified explicitely.
A single TU Record informs about a single group address associated
with a single problem notification. TU Records MAY agregate Group
Records with the same failing router address. PIM/TU messages
Hilt, et al. Expires November 4, 2007 [Page 10]
Internet-Draft Multicast Tree Unreachability May 2007
agregate TU Records which MAY come from different router address.
Figures 1,2 and 3 explicit respectively the format for PIM/TU
messages, TU Records and Group Records.
The PIM/TU header presented in Figure 1 is common to several TU
Records (until reaching MTU value). Each of them regarding failure
on a specific router.
TU Records on figure 2 have the format presented for 32 bits IPv4
addresses. When using IPv6, all addresses will have a size of 128
bits.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type | Reserved | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
. TU Record [1] .
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
. TU Record [2] .
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . .
. . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
. TU Record [N] .
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 : PIM/TU Message format
Hilt, et al. Expires November 4, 2007 [Page 11]
Internet-Draft Multicast Tree Unreachability May 2007
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Reserved1 | Number of Group Records (M) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. Group Record [1] .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
. . .
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. Group Record [M] .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2 : TU Record format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|S|Res|Err Cde| Holdtime | Number of Unicast Address (N) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unicast Address [1] |
+--- ---+
. . .
+--- ---+
| Unicast Address [N] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3 : Group Record format
4.1. PIM Version
PIM Version number is 2.
4.2. PIM Type
Type for specific PIM message. The value of this field is to be
defined to extend existing PIM messages list (i.e. 9).
Hilt, et al. Expires November 4, 2007 [Page 12]
Internet-Draft Multicast Tree Unreachability May 2007
4.3. Reserved
Set to zero on emission. Ignored upon receipt.
4.4. Checksum
The checksum is the 16-bit one's complement of the one's complement
sum of the whole ICMP/ICMP6 PIM/TU message (the entire IP payload).
For computing the checksum, the Checksum field is set to zero. When
receiving packets, the checksum must be verified before processing
the message.
4.5. L : 'Last TU Record' bit
When a PIM/TU message carries several TU Records, flag L of the last
TU Record MUST be set to 1. All intermediate TU Records MUST have
flag L set to 0. If a PIM/TU message carries a single TU Record,
flag L of this record MUST be set to 1.
4.6. Reserved1
The Reserved1 field is reserved for future usage. It is set to zero
on emission and ignored upon reception.
4.7. Number of Group Records
The Number of Group Records (M) specifies how many Group Records
(information regarding individual group/channel unreachability) are
present in a TU Record.
4.8. Router Address
The Router Address is used to identify the router on which the Join
message forwarding failure occurs. This address MUST be chosen among
the router addresses. Because of router reachability this address
should be the address of the interface used to send out the PIM/TU
message. This address must be with the largest scope (i.e. public
address for IPv4, global address for IPv6, if available).
4.9. Group Record
Each Group Record of a TU Record contains information belonging to a
group/channel which Join message could not be forwarded by the router
designated by the Router Address (section Section 4.8).
Hilt, et al. Expires November 4, 2007 [Page 13]
Internet-Draft Multicast Tree Unreachability May 2007
4.10. Error Code
The four fields R, S, Res, Err Cde (Error Code) pertains to the same
global error code which gives an indication about the type of failure
occuring during the Join message forwarding.
4.11. R : 'shaRed tree' bit
The R bit is set when a PIM/TU information triggered by a Join(S,G)
must be propagated in the shared tree. It is typically used to
propagate a failure related to the PIM-SM RP-SPT switching.
4.12. S : 'Source or RP' bit)
The S bit indicates if the Join error is related to a forwarding
failure towards a Rendez-vous Point (S is set to 0) or towards a
Source (S is set to 1).
4.13. Res
These two bits are reserved for a future usage. They are set to zero
on emission and ignored upon reception.
4.14. Error Code
The Err Cde (Error Code) field is a code that defines as precisely as
possible the error type (if known). A first list of possible error
Code values and their signification is given in Section 5.
4.15. Holdtime
The Holdtime field is a duration value (in seconds) which indicates
how long the unavailability information for the concerned group/
channel should be cached in downstream routers. This value should be
at least a small multiple (e.g. three) of the PIM join interval
timer.
4.16. Number of Unicast Address
The Number of Unicast Address (N) field specifies how many unicast
IPv4/IPv6 addresses (RP/Sources) are present in this Group Record.
This information allows too, to determine the current size of the
Group Record.
4.17. Multicast Address
The Multicast Address field contains the IPv4/IPv6 multicast group
address to which this Group Record pertains.
Hilt, et al. Expires November 4, 2007 [Page 14]
Internet-Draft Multicast Tree Unreachability May 2007
4.18. Unicast Address [i]
The Unicast Address list is a vector of n IPv4/IPv6 unicast
addresses, where n is the value in this record's Number of Unicast
Addresses (N) field. The unicast addresses are either Rendez-vous
Point or Source addresses depending on the S flag of this record.
If the S bit is set to 0, this means that the Join forwarding failure
occurs in a shared tree, on the way toward the RP. RP information
can differ between Join message carried and local router. In this
case Unicast Address [0] is the RP address contained in the failed
Join message, while Unicast Address [1] is the RP address known for
this group on the local router. If there is no local RP information
for this group, Unicast Address [1] is set to NULL. If the S bit is
set to 1, this means that the Join forwarding failure occurs in an
SSM or an ASM SPT tree. The list of Unicast Adresses is then the
list of the failed sources for the same group, usually only one in
the SSM case.
5. PIM/TU message Error Codes
The error code indicates the reason of the failure incured by a Join
message forwarded toward a source (S), if bit S is set or towards a
Rendez-vous Point (RP), if bit S is cleared. Code values and
signification are proposed in the table below. They are only
suggestions and must in the future to be defined by IANA.
Hilt, et al. Expires November 4, 2007 [Page 15]
Internet-Draft Multicast Tree Unreachability May 2007
S | Value | Name | Description
-------------------------------------------------------------------
x | 0x1 | NO_MCAST_IF | The interface pointing to the nexthop
| | | towards the source or the RP is not
| | | enabled for multicast.
---|-------|----------------|--------------------------------------
x | 0x2 | NO_MCAST_NEIGH | The next hop towards the source or
| | | the rendez-vous point is not a
| | | multicast capable neighbor.
---|-------|----------------|--------------------------------------
x | 0x3 | NO_ROUTE | The router has no route for the
| | | source or for the RP of the group.
---|-------|----------------|--------------------------------------
0 | 0x4 | NO_RP | The router cannot match a proper
| | | Rendez-vous point for the desired
| | | joined group. The RP of the Join
| | | message is used to forward the Join
| | | message. This is an informational
| | | message.
---|-------|----------------|--------------------------------------
0 | 0x5 | ERR_RP | The RP mentioned in the (*,G) part
| | | of a Join message is different from
| | | the local RP information for that
| | | group.
---|-------|----------------|--------------------------------------
x | 0x6 | SCOPED | The group or channel is subject to
| | | administrative scoping at this hop.
---|-------|----------------|--------------------------------------
x | 0x7 | FILTERED | The group or channel is subject to
| | | administrative filtering at this hop.
---|-------|----------------|--------------------------------------
0 | 0x8 | NO_ASM_ADDR | The group address specified in an ASM
| | | Join pertains to a SSM group address
| | | for that router.
---|-------|----------------|--------------------------------------
x | 0xF | NOT_FWD | The router is not forwarding this
| | | group/source for an unspecified
| | | reason.
---|-------|----------------|--------------------------------------
Table 1 : TU error codes
The x value indicates that the error code may be used for both values
of S.
Hilt, et al. Expires November 4, 2007 [Page 16]
Internet-Draft Multicast Tree Unreachability May 2007
6. Security Consideration
The new proposed PIM/TU message is an informational message. In this
proposal it is only forwarded by routers and does not interact much
more with other systems. In section Section 3 we make some
assumptions about how PIM/TU message could be used to reduce global
multicast signaling.
With this proposal, an important number of non-existent trees could
be joined by a set of malicious hosts in the network, possibly
triggering a storm of TU messages and exhausting the ressources
available by trying to signal a malicious error case. This control
plane attack is already possible without the TU message [4]. TU
messages rate limitation MUST be available in order to minimize the
additionnal cost on the network ressources in this kind of attack.
The detailed usage of information carried by the TU message is out of
the scope of this draft but Forged TU messages could be sent in non
failing trees making the receivers believe that the multicast
connection failed at some point in time. To prevent that, only TU
messages from known neighbors SHOULD be accepted by routers
propagating the unreachability information.
7. References
7.1. Normative References
[1] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
Specification (Revised)", mar 2006.
[2] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792,
September 1981.
[3] Conta, A. and S. Deering, "Internet Control Message Protocol
(ICMPv6) for the Internet Protocol Version 6 (IPv6)
Specification", RFC 2463, December 1998.
7.2. Informative References
[4] Savola, P., Lethonen, R., and D. Meyer, "PIM-SM Multicast
Routing Security Issues and Enhancements
(draft-ietf-mboned-mroutesec-04.txt)", oct 2004.
[5] Bhattacharyya, S., "An Overview of Source-Specific Multicast
(SSM)", jul 2003.
Hilt, et al. Expires November 4, 2007 [Page 17]
Internet-Draft Multicast Tree Unreachability May 2007
[6] Venaas, S., "Source Specific and Any Source multicast ping
(http://www.venaas.no/multicast/ssmping/)", apr 2005.
Authors' Addresses
Benoit Hilt
MIPS/GRTC
IUT de Colmar
BP 50568
Colmar Cedex 68008
FRANCE
Phone: +33 3 89 20 23 64
Email: benoit.hilt@uha.fr
Jean-Jacques Pansiot
LSIIT Universite Louis Pasteur Strasbourg
Pole API, bureau C447
Boulevard Sebastien Brant
Illkirch 67400
FRANCE
Phone: +33 3 90 24 45 63
Email: pansiot@clarinet.u-strasbg.fr
URI: http://clarinet.u-strasbg.fr/~pansiot/
Mickael Hoerdt
Infolab21
e
Lancaster N
UNITED KINGDOM
Phone: +
Email: mhoerdt@lancs.ac.uk
URI: http://
Hilt, et al. Expires November 4, 2007 [Page 18]
Internet-Draft Multicast Tree Unreachability May 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Hilt, et al. Expires November 4, 2007 [Page 19]