The Multicast MPLS Tree Construction Protocol: Evaluation

Tel: +33 2 9984 2537, Fax: +33 2 9984 2529 [email protected] Abstract. In this paper, we study multicast tree construction in ... In Section 2, we present MPLS proposals for multi- ..... communication module with the purpose to store join ...
166KB taille 2 téléchargements 23 vues
The Multicast MPLS Tree Construction Protocol: Evaluation, Simulation and Implementation Ali Boudani IRISA/INRIA Rennes Campus Universitaire de Beaulieu, Avenue du G´en´eral Leclerc 35042 Rennes, France Tel: +33 2 9984 2537, Fax: +33 2 9984 2529 [email protected] Abstract In this paper, we study multicast tree construction in MPLS network. We discuss the difficulty in combining multicast and MPLS in a network. We describe some MPLS proposals for the multicast traffic and we justify the need for defining a new protocol. Thereafter we propose MMT, the MPLS Multicast Tree protocol, which uses MPLS LSP (Label switched Path) between multicast tree branching nodes in order to reduce the multicast routing states in routers and to increase scalability. We present improvements to MMT protocol and we evaluate it in term of scalability. We present simulation results to validate our evaluation. Finally, we describe the MMT protocol implementation under Linux which is an experimentation in seen of a standardization.

1. Introduction Increasing the efficiency of Internet resources utilization is very important. Several evolving applications like WWW, video/audio on-demand services, and teleconferencing consume a large amount of network bandwidth. By reducing the number of packets transmitted across the network, the multicast service essentially increases the QoS given to users due to the additional available bandwidth in the network, which increases network performance. MPLS (Multi-Protocol Label Switching) [?] as a traffic engineering tool has emerged as an elegant solution to meet the bandwidth management and service requirements for next generation Internet Protocol (IP) based backbone networks. MPLS is an advanced forwarding scheme that extends routing with respect to packet forwarding and path controlling. Packets are classified easily at domain en-

try and rerouted faster in the case of link failures. Explicit routes are easily constructed and packets may follow these explicit routes instead of following the traditional shortest route. Once a packet is assigned to a FEC (Forwarding Equivalence Class), no further header analysis is done by subsequent routers in the same MPLS domain. An MPLS header, called label, is inserted for each packet within an MPLS domain. An LSR (Label Switching Router) will use the label as the index to look up in the forwarding table. The packet is processed as specified by the forwarding table entry. The incoming label is replaced by an outgoing label, and the packet is switched toward the next LSR. Before a packet leaves an MPLS domain, its MPLS header is removed. The paths between the ingress LSRs (at the domain entry) and egress LSRs (at the domain exit) are called label-switched paths (LSPs). MPLS uses some signaling protocol such as Resource Reservation Protocol (RSVP) or Label Distribution Protocol (LDP) to set up LSP. Multicast and MPLS are two complementary technologies. Merging these two technologies, making multicast trees built on top of MPLS networks will enhance the network performance and present an efficient solution for multicast scalability and control overhead problems. Multicast attempts to reduce network bandwidth usage, while MPLS attempts to provide users with needed bandwidth in an appropriate switched-like manner. The remainder of this paper is organized as follows. In Section 2, we present MPLS proposals for multicast traffic and we justify the need for defining a new protocol. In Section 3, we describe the MMT protocol (MPLS Multicast Tree) and its extension the MMT2 protocol, which use MPLS LSPs between the multicast tree branching node routers in order to reduce forwarding states and enhance scalability. In Section 4, we

evaluate our proposals in terms of scalability and efficiency and we present some simulation results evaluation. In Section 5, we present a Linux implementation of the MMT protocol. Section 6 is a summary followed by a list of references.

2. Merging MPLS and multicast MPLS can be deployed in a network to forward unicast traffic through explicit routes and multicast traffic by using explicit trees1 . But multicast traffic has specific characteristics due to the nature of the multicast routing protocols [?]. Indeed, the multicast routing is based on multicast IP address and this is why it is very difficult to aggregate multicast traffic since receivers belonging to the same group can be located at multiple localizations. A framework for IP multicast deployment in an MPLS environment is proposed in [?]. Issues arising when MPLS techniques are applied to IP multicast are overviewed. Following characteristics are considered: aggregation, flood and prune, co-existence of source and shared trees, uni/bi-directional shared trees, encapsulated multicast data, loop free ness and RPF (Reverse Path Forwarding) check. The pros and cons of existing IP multicast routing protocols in the context of MPLS are described and the relation to the different trigger methods and label distribution modes are discussed. The framework did not lead to the selection of one superior multicast routing protocol but it concluded that different IP multicast routing protocols could be deployed simultaneously in the Internet. It should be noted that the multicast tree structure requires P2M (point-to-multipoint) LSP or even MP2MP (multipoint-with-multipoint) LSP establishing. In the current architecture of MPLS, only point-to-point LSP were studied. MPLS does not exclude other types of LSP, but no mechanism was standardized so far. MPLS labels support the aggregation of trees but does not solve the problem completely. Indeed, algorithms should be designed to aggregate unicast flows with multicast flows and also aggregate multiple multicast flows together. Unfortunately, the current studies on multicast aggregation are limited to the aggregation of the routing states in each router rather than to the LSP aggregation. For further details, we recommend the reader the broad literature which exists in this subject, or to refer to the work of Boudani and al. work ([?], chapter 4 of [?]). In this paper, we are con1

An explicit tree can be built through policies and explicit routes instead of topology.

cerned mainly in two MPLS multicast routing protocols : PIM-MPLS [?] and Aggregated multicast [?].

2.1. PIM-MPLS Using PIM-SM join messages to distribute MPLS labels for multicast routes is proposed in [?] (called hereinafter PIM-MPLS). A piggy-backing methodology is suggested to assign and distribute labels for multicast traffic for sparse-mode trees. The PIM-SM join message should be expanded to carry an MPLS label allocated by the downstream LSR. Modifications to PIMSM make this proposal not easily accepted by working groups dealing with multicast in the IETF. In plus, MPLS is not used with all its efficiency as a traffic engineering tool since the multicast tree still constructed using the RPF tree checking without constraints.

2.2. AGGREGATED-MULTICAST The key idea of aggregated multicast [?] is that, instead of constructing a tree for each individual multicast group in the CORE network, multiple multicast groups may share a single aggregated tree to reduce the number of multicast states and, correspondingly, tree maintenance overhead at the CORE network. In this proposal there is two requirements: (1) original group addresses of data packets must be preserved somewhere and can be recovered by exit nodes to determine how to further forward these packets; (2) some kind of identification for the aggregated tree which the group is using must be carried and transit nodes must forward packets based on that. To handle aggregated tree management and matching between multicast groups and aggregated trees, a centralized management entity called tree manager is introduced. In group to aggregated tree matching, complication arises when there is no perfect match or no existing tree covers a group (leaky matching). The disadvantage in leaky matching is that a certain amount of bandwidth is wasted to deliver data to nodes that are not involved for the group.

3. The Multicast MPLS Tree Proposal The MMT (MPLS Multicast Tree) protocol [?] constructs a multicast tree by considering only the branching node routers on this tree. By limiting the presence of multicast routing states to branching node routers, the MMT protocol converts multicast flows into multiple quasi-unicast flows. In MMT, instead of constructing a tree for each individual multicast channel2 in the 2

A channel is a group identified by the couple (S, G) where S is the source address and G is the group address.

CORE network, one can have several multicast channels sharing branches of their trees. The unicast LSP are used between the branching node routers of the multicast tree. By using this method, we reduce the information quantity to be memorized in routers and we ensure scalability.

3.1. MMT and other MPLS multicast proposals In comparison with other MPLS multicast proposals, the MMT protocol has several advantages which are detailed as follows: • It uses a network information manager system, called hereinafter NIMS, to ensure the multicast traffic engineering in the network. It is conform with the IETF recommendations for the multicast MPLS. But the NIMS is a critical point of failure. A certain redundancy of the NIMS can ensure the survivability of the service. A certain distribution of the NIMS is possible. We do not treat it here: (1) it would unnecessarily complex our analysis;(2) ideally the distribution is independent of the multicast traffic engineering. A NIMS keeps all necessary information on LSP. All sources and all destinations of various multicast groups as well as the bandwidth associations are known. The NIMS is informed directly of any change of topology of the network (LSP or routers failure) and of any change of membership of a group destination. A tree is calculated using this NIMS and transmitted thereafter on the network. • It simplifies LSP setup: there is no need to create and maintain P2MP or MP2MP LSP. Instead, a tree can be broken up and its branches associated with P2P LSP. So P2P LSP are used for the transmission of multicast traffic. • It makes easier the aggregation of multicast flows: each branch of a multicast tree can be aggregated with other unicast traffic which shares the same ingress and egress LSR. • It is inter-operable with other multicast protocols: the protocol can be limited to only one domain (typically the CORE network). In other domains, traditional multicast routing protocols can be used. Once transmitted in MPLS domain, multicast packets will be forwarded on paths constructed by the MMT protocol mechanisms. In the following Section, we present the role of the NIMS in charge to calculate the tree and to collect link state informations and group memberships besides running group to tree matching algorithm. Thereafter we

present the MPLS tree construction as well as new LSP construction.

3.2. Multicast MPLS tree construction by the NIMS In MMT, each domain contains a NIMS for each group, charged to collect join and leave messages from all group members in that domain. The NIMS is elected through a mechanism similar to the one used to elect the RP router in PIM-SM. The NIMS can be different within the same domain for each channel (S, G). Thus, we can talk about load balancing, distribution of NIMS service and increased survivability of the system. After collecting all join messages, the NIMS computes the multicast tree for that group in the domain (It uses the Dijkstra’s algorithm with constraints). The computation for a group means discovering all branching node routers for that group. The NIMS sends then branch messages to all branching node routers to inform them about their next hop branching node routers. On receiving this message, a branching node router creates a multicast forwarding state for the multicast channel. Once branching node routers and their next hops are identified, packets will be sent from a branching node router to another until reaching their destination. Already established MPLS LSPs are used between multicast tree branching node routers in order to reduce forwarding states and enhance scalability. When a multicast packet arrives to the ingress router of an MPLS domain, the packet is analyzed according to its multicast IP header. The router determines who are the next hop branching node routers for that packet. Based on this information, multiple copies of the packets are generated and an MPLS label is pushed on the multicast packet according to next hop branching node router. When arriving to a next hop branching node router, the label is popped off and again the same process is repeated. This process should be repeated until the packet arrives to its destination (see Fig.1). When arriving to a LAN, the packet unlabeled can be delivered by conventional multicast protocols using IGMP messages.

Figure 1. Multicast MPLS tree construction.

In our approach we will use the same MPLS label for multicast traffic that follows the same path than unicast traffic. Other approaches use different labels for multicast and unicast traffic which mean the need of encoding techniques and additional overheads in routers.

Edge Router Multicasting is a proposal for the multicast in an MPLS network introduced in [?]. It is based on the same principles as the MMT protocol. However, ERM limits the branching node points of the multicast tree to EDGE routers of MPLS domains. Packets are sent on branches using established MPLS tunnels between the EDGE routers through the CORE routers. Consequently, as in MMT, the multicast LSP construction, the multicast flows association and the multicast traffic aggregation are transformed into simple unicast problems. In ERM, contrary to MMT, the reservation of the bandwidth for multicast flows is not treated. Moreover, the link stress around the EDGE routers increases since the packet duplication is only allowed in the EDGE routers. The ERM characteristics make it not recommendable (as concluded in similar approach of MPLS Multicast VPN [?]). A comparison between MMT and ERM can be found in [?].

3.3. Improving MMT : the MMT2 protocol In this section, we suppose that some routers in the network can not support mixed routing. We mean by mixed routing the coexistence of L2/L3 forwarding schemes in a router. For example, it is the case of router R4 in figure 1. We solve the mixed routing problem by using a double level of labels while preserving the MMT protocol principles of operation. The label of the lower level is a unique label representing a channel (S, G). A label (belonging to a label interval reserved to the MMT2 protocol) is allotted to the channel (S, G) at the reception by the NIMS of the join messages for this channel. This label identifies the channel in the domain managed by the NIMS. This label could be different from one domain to another. The NIMS informs all branching node routers about this label as well as the labels corresponding to the next branching node routers for this channel. An extension of the branch message is necessary to carry the new information. The label corresponding to the channel (S, G) is added to the multicast packet at the domain entry, the LSR ingress of the domain adds also the labels of the higher level which corresponds to the next branching node routers for the channel. In intermediate routers, those who are not branching node routers, the packet is analyzed according to the entering label placed in top of the label stack, label which will be replaced by an outgoing label as in unicast MPLS. When the packet arrives to an intermediate branching node router, the label of the higher level is removed, the label identifying

of the channel is treated and the new labels which corresponds to the next branching node routers are added (cf. figure 2). This operation is repeated until the arrival of the packet to the egress router. All the labels are thus popped and again the packet is sent towards the ingress routers of other domains or directly towards the destinations belonging to sub-networks of the egress routers.

Figure 2. Multicast MPLS tree construction with the MMT2 protocol.

3.4. The MMT2 protocol and aggregated trees Due to the limited number of labels [?], MMT2 calculates only the aggregated trees. We choose, like Aggregated multicast, that two channels will be associated to the same aggregated tree in a domain if the tree calculated for the first channel has exactly the same branches as the tree calculated for the second channel in that domain. Thus, the NIMS can associate several channels to the same aggregated tree, in order to limit the use of labels in the domain and to reduce even the routing states to be stored at the branching node routers. In the next section, we evaluate the approach in term of scalability (multicast routing states reduction) and efficiency (the packet header processing time in routers and the cost of the multicast tree).

4. Evaluation of the MMT protocol In this section, we compare MMT and its extension MMT23 with different multicast MPLS protocols, in particular PIM-MPLS [?] and Aggregated multicast [?]. In our simulations, PIM-MPLS refers to the simulator described in [?, ?] where PIM-SM source specific was chosen as the multicast routing protocol. We simulate the MMT protocol with NS [?] to validate the basic behavior of the approach and its efficiency to reduce the number of routing states, to decrease the packet header processing time and to lower the cost of the trees. Indeed, MMT uses on one hand the best paths tree and uses on other hand the MPLS fast label switching technique in routers. The best paths tree, calculated by the NIMS, coincides with the shortest paths tree in absence of any traffic engineering constraints. 3

We consider only aggregated trees.

Since only branching node routers are considered in a multicast tree, it is obvious that our approach reduce the size of routing tables. An MPLS domain can be a transit domain for a channel where neither source nor destinations are present in the domain. A tree having one or more branching nodes in a domain is called BT (Branched Tree). A tree with only one path in the domain where no branching node appears in the tree is called OPT (One Path Tree). Table 4 shows the average number of routing states in routers in both case : BT trees of transit with branching nodes and OPT trees of transit without branching nodes. Tree / Protocol PIM-MPLS Aggregated multicast MMT MMT2

BT n¯T ∗ T nTaggr ¯ ∗ Taggr

OPT n¯T ∗ T nTaggr ¯ ∗ Taggr

nM¯M T ∗ T nM M T¯−aggr ∗ Taggr

2∗T 2 ∗ Taggr

Table 1. The average number of routing states in routers.

T is the number of multicast trees present in the network, nM¯M T is the average number of branching node routers on the trees by using the MMT protocol, nM M T¯−aggr 4 is the average number of branching node routers on the trees by using the protocol MMT2, n¯T is the average number of routers on the multicast trees by using a traditional multicast routing protocol, Taggr is the number of aggregated trees of Aggregated multicast and nTaggr ¯ is the average number of routers on the aggregated tree. These values satisfy the following relations: T ≥ Taggr ; n¯T ≥ nM¯M T , nM M T¯−aggr ; nTaggr ¯ ≥ nM M T¯−aggr ; n¯T , nTaggr ¯ ≥ 2. It is obvious according to table 4 that MMT presents better performances than PIM-MPLS. In the case of OPT trees, the number of routing states for MMT in the intermediate routers in the network is equal to 0 if we do not consider the routing states in the two EDGE routers source and destination in the network. MMT has better performances compared to aggregated multicast. Indeed, less memory usage in the tables, thus less processing required scanning tables. In 4

In the remainder of this evaluation, we consider that nM¯M T and nM M T¯−aggr include also the states present in the sources and the destinations.

the case of BT trees, the number of routing states for the MMT protocol is not always lower than that Aggregated multicast. Indeed, the MMT protocol present of better performances on Aggregated multicast only when nM¯M T ∗t < nTaggr ¯ ∗Taggr . Let’s take the following example: According to [?], the vBNS network is composed of 43 routers of which 16 are CORE routers. The 43 routers participate in distributing multicast traffic. In the example presented [?], a set of 2500 multicast channels are present in the network. These 2500 trees are aggregated in 1150 trees. Thus, nTaggr ¯ must 2500 ≈ 2.2 ∗ nM¯M T to have be larger than nM¯M T ∗ 1150 MMT better than Aggregated multicast. As we presented in chapter 2 of [?], the number of branching node routers on a tree is very small (about 8% of the number of routers of the tree). We deduce that nM¯M T at maximum can reach ≈ 4. If the value of nTaggr ¯ exT ≈ 9, MMT presents then better ceeds nM¯M T ∗ Taggr performances. Thus, it is possible that MMT reduces more than Aggregated multicast the size of the multicast routing tables in the routers. Finally, according to table 4, MMT2 presents better performances compared to all the other protocols. To validate our evaluation, we consider 2 networks: MCI5 (18 nodes in the CORE network) and Abilene (11 nodes in the CORE network) and we calculate the number of trees aggregated for 5000 trees. We consider that only one node is attached to each CORE node and this node may be either source either destination. The number of members for each group is between 2 and 10 for the Abilene network and 2 to 16 for MCI network.

Figure 4. Average number of routing states in a router for the MCI network.

Figures 3 and 4 show the average number of routing states in a router for Abilene and MCI networks. We notice that the MMT2 protocol has advantages over all the other protocols. We also notice that PIM-MPLS has the worst results. For MMT and Aggregated multicast, we notice that MMT has advantages over Aggregated multicast in MCI network but it is very bad with the Abilene network. Indeed, the Abilene network contains only 11 node: on one hand, if the number of members in a group is large, then all routers in the CORE are possible branching node routers. On the other hand, if the number of members in the groups is small, and since the network number of nodes is 5

Note that MCI developed the very known vBNS+ network.

small the probability to have the same groups with T ratio becomes large same members is high. Then, Taggr and thus the MMT protocol is not appropriate for this kind of topology. In all the cases, the MMT2 protocol reduces better than other protocols the size of the routing tables.

black lines represent the messages exchanged between different programs at the NIMS (by using the different program results placed in shared memories).

Figure 6. MMT communication messages.

5. Implementing MMT under Linux As we show in the previous sections, MMT is a routing protocol for the multicast deployment over an MPLS network. Currently, there is not any implemented protocol which answers this request. We considered that the implementation of MMT under Linux is an experimentation in seen of a standardization.

5.1. The test network topology The test network topology is formed from 6 machines with Linux as operating system (M ontrachet, Rigel, P opy and the laptop under RedHat 7.3 and T antale and Cook under Debian) as shown in figure 5. The laptop machine is used as the NIMS. It does not belong to the CORE network. The machine P opy is its EDGE router. This machine (P opy) is also considered as the source for the multicast group.

Figure 5. The test network topology.

The test topology network is inspired from [?]6 . To simplify the implementation, we used only one multicast group (thus one tree) and we considered that a machine is a router which represents the network of its receivers. The messages sent from a router to the NIMS use the protocol UDP. These messages are acknowledged by using the branch messages returned by the NIMS to the routers. The branch messages contain the information needed to create the multicast state in the branching routers. We assume also that all the MPLS paths already exist in the network between all the machines.

5.2. The implementation architecture The figure 6 shows how MMT processes the communication messages at the NIMS. The dashed lines represent the messages exchanged over the network (between the network routers and the NIMS) while the 6

Available at the following URL: mngroup/projects/mpls/

We oriented the implementation project into modular programming. Thus, our architecture is based on three modules: processing, communication and routing. We chose to code using the C language, because of its portability between the Linux machines and the routers. The NIMS is aware about the network topology and all the MPLS LSP between all the machines. The topology information can be deduced dynamically by using a link-state protocol as OSPF. Using the OSPF database information, we can create a file containing the network topology. This file is a list of links between the routers. We represent it as following: < N router1 >< N router2 >< @IP router1 >< @IP router2 >

1 2 2 2 3 4 4 5

2 1 3 4 2 2 5 4

1 1 1 1 1 1 1 1

This file represents a description of the topology presented at the figure 5. Routers from 1 to 5 correspond respectively to T antale, Rigel, M ontrachet, Cook and P opy. Using this topology file, the NIMS is able to calculate the shortest path between any two nodes on the graph by using the Dijkstra algorithm. Using the receivers membership information, it can also calculate the branching nodes for the tree. The join messages are sent to the NIMS using UDP sockets. To manage the received messages, the NIMS implement a mechanism of synchronized shared memory using semaphores. On the arrival of these join messages via the sockets, those are stored in a shared memory to be processed one by one. After this processing, the NIMS puts the result in a second shared memory. The following diagram shows how we separate the NIMS tasks into two modules: the communication module with the purpose to store join

messages received from the routers and to send branch messages towards the routers and the processing module to calculate the multicast tree. Figure 7. MMT Linux function.

In the following paragraphs we describe the different modules: 5.2.1. Processing module The join messages (join plus) will be stored at the shared memory 1 and they have the following format: typedef struct { char addr_multi[15]; char addr_src[15]; char addr_rout[15]; } join_plus; addr src and addr multi correspond respectively to the source and group addresses. addr rout is the address of the router which sends the join message. When receiving the join message, the NIMS can find the shortest path from the source towards the router that originated this join message. The NIMS may send to the concerned routers two type of messages: add a path or remove a path. These messages will be placed in the shared memory 2 in order to be processed by the communication module. Here are their format: typedef struct{ char addr\_rout[15]; char addr\_arriv[15]; char addr\_src[15]; char addr\_multi[15]; int status; } routage; addr rout is the address of the router to whom the message is sent. At this router, a multicast state should be created. This multicast state should contain addr arriv. addr arriv is the address of the router where multicast packets are sent (the next branching router on the tree). addr src and addr multi correspond respectively to the source and group addresses. status contains the type of the message (add or remove). 5.2.2. Communication module The exchange between the processing module and the communication module is carried out, as explained previously, using a shared memory segment. The communication module provides mainly the transmission and the reception

of the messages sent by (or received from) the routers. This communication is done using a socket written in C language and the two structures join and routage plus. The structure join is sent by the routers to the NIMS and informs it about any join to a multicast group. Its structure is as follows: typedef struct{ char addr\_multi[15]; char addr\_src[15]; } join; The address of the multicast group is stored in addr multi and the source address addr src. The structure routage plus is sent by the NIMS to the routers and informs them about the modifications to be carried out in their routing table. Its structure is as follows: typedef struct{ char addr\_rout[15]; char addr\_arriv[15]; char addr\_src[15]; char addr\_multi[15]; int status; char itf[100]; } routage\_plus; addr rout contains the address of the router to which is sent the message. addr arriv contains the address of the next branching router for the group. The source address and the multicast group address are stored respectively in the variables addr src and addr multi. The integer status informs the router if it must add or remove this routing information. Finally, itf contains the list of interfaces where multicast packets of the group must be duplicated. 5.2.3. Routing module To configure the routers and to intercept the join messages, each router carries out a program developed in C language. This program ensures two roles: the communication with the NIMS and the configuration of the router. Communication: The communication with the NIMS is carried out using socket. We defined the structures of the messages to exchange all information with the NIMS. They are the structures join and routage plus presented in the preceding section. Configuration: If we want that multicast packets follow the MPLS paths, it is necessary to specify with the Linux kernel the path in which these packets must be processed. For that, the program uses the primitive system and the information provided by the structure routage plus to build the command of controlling the daemon smcroute, launched by: /smcroute − D.

smcroute permits to configure the routing table of the Linux kernel. For example, the following command add the routing information for the multicast group address with source address /smcroute − a eth0 eth1 10 0 1 2 10 0 1 2. Thus, all multicast packets with IP address arriving at the interface eth0 will be routed on the interfaces eth1 and 10 0 1 2. The following command: /smcroute −r eth0 172.16.10 remove the preceding routing information. The following command permits to join the multicast group: /smcroute − j eth0 This command specify to the kernel that it should route the packets of group and not to destroy them. Finally the following command permits to leave the group: /smcroute − L eth0 These commands permit the control of the routing information contained in the multicast routing table. Duplication: The packets duplication is done on IP level. MPLS packets arrive at the branching router and are decapsulated by this router which process them in IP level. The packets are then duplicated and again encapsulated to be delivered to their next destination in MPLS. This principle is summarized on figure 8.

Figure 8. The routing module.

To duplicate packets, the Linux kernel has a routing table allowing the distribution of multicast packets. Indeed, any multicast packet arriving on a router not having multicast state stored is destroyed. Nevertheless, to be able to enter data to this table, particular conditions are necessary. A multicast state is created for a multicast group when a receiver sends a traditional join message to the router. This principle is not applicable any more in the case of our protocol MMT since the join messages are intercepted by the EDGE routers and send directly to the NIMS. Thus, it was necessary to find another solution to create multicast states in the multicast routing table of branching routers. For that we used the daemon smcroute which permits to create these states using commands. We saw in the preceding paragraph how the communication with this daemon was is used.

5.3. Implementation files and test In our implementation, we prepared different type of configuration files: the interfaces file, the MPLS tunnels file and the NIMS operation file. These files are

used to facilitate the test and to configure automatically the network. We created the MPLS paths using the command mplsadm. To duplicate packets on a branching router, we used the version 0.92 of the program smcroute which modify the multicast table of the Linux kernel. All these programs were tested locally. We noted (using tcpdump) that the exchanged messages are in conformity with our objectives. We could see the packets duplication at IP level in branching node routers. All the multicast operations with smcroute with MPLS were tested.

6. Conclusion In this paper, we proposed the MMT protocol, which uses MPLS LSP between the branching node routers of a multicast tree in order to reduce routing states in intermediate routers and to increase scalability. Our approach is efficient compared to other multicast protocols and multicast MPLS proposals (PIM-MPLS, Aggregated multicast). Indeed, on one hand we use the best paths tree (which coincides with the shortest paths tree in absence of any traffic engineering constraints) to forward packets and on the other hand we use the fast label switching technique of MPLS in the routers. We presented the MMT2 protocol : an extension of the MMT protocol which solve the problem of the mixed routing of the ”Network” layer and the ”Data Link” layer in CORE routers. We evaluated MMT and MMT2 in term of scalability and efficiency. We noticed a reduction in size of the multicast routing tables compared to the other multicast MPLS approaches. We also described the MMT protocol implementation under Linux which is an experimentation in seen of a standardization. We conclude finally that the MMT protocol seems promising and adapted to a possible implementation of the multicast traffic engineering in the Internet.