multicast distribution trees : pim sm - connecteur de savoirs · multicast distribution trees : pim...

55
Multicast Distribution Trees : PIM SM • Generality • RPF check PIM – Protocol Independent Multicast

Upload: hangoc

Post on 07-Dec-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Multicast Distribution Trees : PIM SM

• Generality • RPF check

• PIM – Protocol Independent Multicast

Site NREN

MLD / IGMP

PIM-SMv2

MLD snooping, CGMP…

multicast applications

Multicast Routing Protocols

• IGMP is used to send datagram on the LAN• Diffusion trees are made to forward multicast

traffic• l’arbre minimal de diffusion est en constante évolution• l ’émetteur (la source) est la racine de l ’arbre de diffusion• toutes les branches sont utiles (id. ont au moins un

abonné)• ajout (suppression) d ’une feuille/branche

Multicast Distribution Trees : PIM SM

• Generality :

• RPF check

• PIM – Protocol Independant Multicast• PIM DM

• PIM SM

• PIM SSM

Multicast Forwarding

• Multicast routing is backwards from unicast routing :• Unicast routing is concerned about where the

packet is going to.• Multicast routing is concerned about where

the packet came from

• Multicast routing uses «Reverse Path Forwarding» RPF

«Reverse Path Forwarding»RPF

• A router forwards a multicast datagram only if received on the upstream interface to the source

• RPF check :• The routing table used for multicasting is checked

against the source IP address in the packet• If the datagram arrived on the interface specified in

the routing table for the source address, the RPF check succeeds

• Otherwise, the RPF checks fails

RPF test example

Receiver 1

B

E

D F

C

Receiver 2

A

Source 1multicast data

RPF test fails

RPF test example

multicast packet from130.190.2.1 source on E2 interface

The packet arrives on a wrong Interface We discard the packet

E1 E2

E3E0

Unicast routing table

Network Interface

195.221.44.0/24 E0

130.190.0.0/16 E1

82.233.104.0/24 E2

RPF test example

multicast packet from130.190.2.1 source on E1 interface

Packet arrives on the right interfaceRPF test succeedsForward out all to outgoing interfaces in a list called OLIST

E1 E2

E3E0

Unicast routing table

Network Interface

195.221.44.0/24 E0

130.190.0.0/16 E1

82.233.104.0/24 E2

We must use TTL threshold!!

Packet come in with a 24 TTL Packet arrives on the right interfaceRPF test succeedsForward out all to outgoing interfaces except E3 as the threshold is more than packet TTL

Outgoing Interfaces List

Interface TTL Threshold

E0 1

E1 16

E2 32

E3 32

E1 E2

E3E0

Diffusion de Groupesau-delà du LAN

• Généralités

• PIM – Protocol Independent Multicast• PIM DM

• PIM SM

• PIM SSM

PIM : généralités

• PIM repose sur des informations de routage indépendantes de PIM• Table de routage unicast• MRIB (vu plus tard)

• PIM peut fonctionner selon trois modes :• dense mode • sparse mode• source specific multicast

• PIM utilise l’arbre de diffusion basé sur la source si l’état (S,G) existe• Sinon il utilise l’arbre partagé état (*,G)• RFC 2362 (PIM SM) + IDs (PIM DM et mises à jour de PIM SM,

…)• draft-ietf-pim-sm-v2-new-xx.txt

Diffusion de Groupesau-delà du LAN

• Généralités

• PIM – Protocol Independant Multicast• PIM DM

• PIM SM

• PIM SSM

PIM : Dense Mode

• Mécanismes de flooding et pruning et de greffe,• Pruning vers les voisins non RPF

• Arbres de diffusion construits par rapport aux sources émettrices en utilisant l’algorithme RPF

• Utilisation de déclaration (assert –sur le groupe ff02::d) pour élire un transmetteur sur un LAN àplusieurs routeurs

• Faible overhead pour les groupes denses• PIM DM n’a jamais été standardisé par l’IETF

Multicast Distribution Trees : PIM SM

• Generality

• PIM – Protocol Independant Multicast• PIM DM

• PIM SM

• PIM SSM

• RP information

PIM Sparse Mode Triangle

• To establish a PIM-SM route on a network there must be :

•A source•A receiver•A rendez-vous point (RP)

• If you do not have one of these informations, you will have some problems

Le Triangle PIM Sparse Mode

• La source, le récepteur et le RP définissent un triangle

• Les lignes connectant ces points définissent la route multicast complète pour un couple (Source, Groupe) ou (S,G)

RP

Source Récepteur

Le Triangle PIM Sparse Mode

RP

Shared-tree

X-line

Source ReceiverShortest-path-tree

Le Triangle PIM-SML’arbre le plus court

• Le SPT est une entrée de routage (S,G)

• Les paquets d’une source unique circulent sur ce cotévers le récepteur

• L’état (*,G) a une OLIST NULLE

RP

Shared-tree

X-line

Source RécepteurShortest-path-tree

Le Triangle PIM-SML’arbre partagé

• Le RPT est une entrée de routage (*,G)

• L’état (S,G,RP-bit)apparaît sur ce cotéquand le receveur joint le SPT

• Les paquets de toutes les sources circulent sur ce coté à moins qu’ils ne soient «prunés»

RP

Shared-tree

X-line

Source RécepteurShortest-path-tree

Le Triangle PIM-SMLa X-Line

• La X-Line joint la source au RP

• L’état est (S,G) si les paquets sont transmissinon l’état est(S,G,RP-bit) ou AUCUNétat existe sur ce coté

• L’état (*,G) a uneOLIST NULLE

RP

Shared-tree

X-line

Source RécepteurShortest-path-tree

Le Triangle PIM-SMUn cas particulier

• Les cotés du triangle peuvent se chevaucher

• La X-line chevauche souvent le RPT si la source est aussi récepteur

RP

Source/Récepteur

Shared-tree

X-line

Les données ne peuvent pas circuler

dans les 2 sens !!

Les données ne peuvent pas circuler

dans les 2 sens !!

PIM : Sparse mode

• Mode d’abonnement explicite (Join ) :• La source s’enregistre auprès d'un Point de Rendez-vous

(RP)• Le RP est la racine de l'arbre de diffusion multicast

partagé (RPT)• le RP est configuré statiquement ou connu

dynamiquement• Pour s'abonner le destinataire envoie un Join vers le RP• Le join est propagé jusqu’au RP• Il peut y avoir plusieurs RP

• Group-to-RP mapping• Un groupe ne doit correspondre qu’à un seul RPPas d'inondation

PIM : Sparse mode

• Le flux multicast parcourt l’arbre partagé (RPT) ou/puis l’arbre dont la source est l ’origine (SPT)

• les routeurs feuilles peuvent se joindre à l’arbre• les paquets multicast ne vont que là où c'est utile• on utilise le RP pour tester les interfaces RPF de l’arbre

partagé• état (*,G)

• on utilise la Source pour tester les interfaces RPF de l’arbre basé sur la Source • état (S,G)

• les états (S,G) sont préférés aux états (*,G)

PIM, Sparse-Mode : example 1

B

C

A D

E

RP

PIM, Sparse-Mode : example 1

Receiver 1 joins group GState (*, G) created on C

C sends a (*, G) join towards the RP

Receiver 1

B

C

A D

E

JoinRP

PIM, Sparse-Mode : example 1

State (*, G) created on the RP, Interface towards C added to

the OIL

Receiver 1

B

C

A RP D

E

PIM, Sparse-Mode : example 1

Receiver 1

B

C

A D

E

Source sends dataData are encapsulated by A

A sends PIM-registers towardsRP

RegisterRegisterSource

RP

PIM, Sparse-Mode : example 1

State (S, G) created on RP, data is sent on the shared tree

(S,G) join is sent towards SourceState (S, G) created on A et B

Source

JoinJoin JoinJoin

B

C

A D

E

Receiver 1

RP

PIM, Sparse-Mode : example 1

Data arrives multicastly on the RP,RP Sends a register-stop to A

Source

Receiver 1

B

C

A D

E

RegisterRegister--StopStop

RP

PIM, Sparse-Mode : example 1

Receiver 1

Source

B

C

AD

E

JoinJoin

C looks for a shortest path towardsSource,

C sends (S, G) joins towards Source

RP

last hop router initiatethe SPT sending (S,G)

Joins

PIM, Sparse-Mode : example 1

C receives data directly from S, C sends prune (S,G) on the shared tree, RP delete interface towards C for (S,G)

And sends prune(S,G) towards S

Source

B

C

RP D

E

A

Receiver 1

Prune (S, G)Prune (S, G)

Prune (S, G)Prune (S, G)

first router for wichRPF(S) different fromRPF(RP) sends the (S,G)RP-bit-Prune

PIM, Sparse-Mode : example 1

Source

B

C

D

E

A

Receiver 1 Receiver 2

Receiver 2 joins G group,State (*, G) created on E

which sends join (*, G) towards RP

JoinJoin

RP

PIM, Sparse-Mode : exemple 1

Source

B

C

D

E

A

Receiver 1 Receiver 2

C add outgoing interface towards E in OIL

for (*, G) and (S, G)

RP

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Toutes les Sources de ce Groupe seront retransmises vers la OLIST

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Ceci pointe toujours vers le RP

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

Ceci est le next-hop vers le RP, voir un “show ip RPF”

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Temps de Uptime des entrées

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Temps d’expiration des compteurs pour effacer les entrées

Stopped : il y a un état (S,G)

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (*,G)

(*, 224.2.127.254), 02:18:00/stopped, RP 193.54.184.235, flags: SJCFIncoming interface: Vlan20, RPF nbr 193.54.185.120Outgoing interface list:

Vlan44, Forward/Sparse, 02:13:43/00:02:22

Un groupe en Sparse Mode doit avoir un RP

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (S,G)

(195.221.44.61, 224.2.127.254), 00:02:34/00:00:55, flags: FTIncoming interface: Vlan44, RPF nbr 0.0.0.0, RegisteringOutgoing interface list:

Vlan20, Forward/Sparse, 00:02:34/00:02:40 (ttl-threshold 8)

La Source est en train de s’enregistrer

Entrées PIM SM chez Cisco

•Retransmission d’une entrée (S,G)(194.254.164.44, 224.2.194.74), 00:00:49/00:02:51, flags: JTIncoming interface: Vlan20, RPF nbr 193.54.185.120, Partial-SCOutgoing interface list:

Vlan44, Forward/Sparse, 00:00:49/00:02:46

(195.221.44.61, 224.2.194.74), 00:00:46/00:03:21, flags: FTIncoming interface: Vlan44, RPF nbr 0.0.0.0Outgoing interface list:

Vlan20, Forward/Sparse, 00:00:46/00:02:46 (ttl-threshold 8), A

Une source locale

PIM-SM FlagsS Sparse mode flag Indique que le groupe multicast est un groupe sparse-mode (apparaît seulement dans les entrées (*,G))

C Connected flag Apparaît sur les entrées (*,G) et (S,G) , indique qu’il y a un membre du groupe multicast directement connecté

L Local flag Apparaît sur les entrées (*,G) et (S,G), indique que le routeur lui-même est membre du groupe. Le Routeur continue de traiter le trafic multicast pour ce group Ex: PIM RP-Discovery (224.0.1.40) Auto-RP information.

P Pruned flag Indique que l’OIL est NULL. Ce qui entraîne un « prune » vers le routeur voisin ( RPF) pour l’entrée (*,G) ou (S,G)

T SPT flagT (ou SPT flag) apparaît seulement avec une entrée (S,G) et indique que le trafic est routé par l’entrée (S,G) (qu’est le SPT). Flag est positionné lorsque arrive le premier paquet (S,G) correspondant à la table de routage MROUTE.

X Proxy-Join timer flag Apparaît seulement sur les entrées (S,G) et indique que le proxy-join timer est actif.

J Join SPT flag(*,G)Apparaît, avec une entrée (*,G) quand le débit sur l’arbre partagé excède le SPT-Threshold. (calcul toutes les secondes)Le prochain paquet (S,G) sur l’arbre partagé provoquer le basculement (switchover)) vers l’arbre centré sur la source.(Si le C flag est présent)

J Join SPT flag(S,G)Apparaît sur les entrées (S,G) quand la source a été précédemment switchée vers le SPT. Ce flag demande àPIM de contrôler (via le SPT-Threshold) le trafic qui descend de l’arbre centré sur la source, pour éventuellement rebasculer sur l’arbre partagé. (Toutes les minutes pour éviter les flip-flop)

F Register flag Utilisé avec les entrées (S,G) pur forcer l’encapsulation du trafic dans les registers. Quand la source est directement connectée au routeur. (présent sur l’entrée parent (*,G) dés qu’un (S,G) a le flag.

R RP-Bit flag (S,G)only

Indique que l’information de l’entée (S,G) est applicable à l’arbre partagé( RPT). Ce flag est utilisé pour prunerle trafic (S,G) redondant provenant de l’arbre partagé après un switchover vers le SPT.Quand RP-Bit est présent, l’IIF (S,G) est switchée vers le RP à la place de la source, afin que soit respectée la règle du RPF check.

PIM-SM : Règles Générales

1. Quand il est nécessaire de créer une entrée (S,G) et qu’il n’existe pas d’entrée (*,G) correspondante, une entrée (*,G) est automatiquement créée.

2. RPF est l’interface avec le coût le moins élevé pour atteindre l’adresse source (SPT) ou l’adresse RP (RPT). Si plusieurs interfaces de même coût, on prend celle d’adresse IP la plus élevée.

3. L’OIL d’une nouvelle entrée (S,G) est la réplique de l’OIL de l’entrée (*,G) correspondante

4. L’Incoming interface (IIF - RPF interface) d’une entrée multicast ne doit jamais apparaître dans une OIL.

5. L’Incoming interface de toute entrée multicast est recalculée toute les 5 secondes et l’OIL remise à jour en conséquence.

6. L’ajout ou la suppression d’une entrée dans la table OIL d’une entrée (*,G) est répliquée dans les OIL des entrées (S,G) correspondantes.

PIM-SM : Règles Générales

1. Une entrée (*,G) est crée par un Join explicite.2. Une entrée (S,G) est crée aux conditions suivantes:

- Reception d’un Join:Prune (S,G)- Last-hop routeur, au switch vers SPT- À la réception d’un flux non sollicité, et pas de (*,G)- RP : à la réception d’un Register

3. Une interface est ajoutée à l’OIL (*,G) ou (S,G)- Join arrive via l’interface- Uitilisateur directement connecté

4. Une interface est supprimée de l’OIL (*,G) ou (S,G)- À la reception d’un Prune (et pas d’utilisateur directement connecté)- Lorsque que timer d’expiration est à zéro.

5. Expiration timer interface reset 3mns :- Join (S,G) ou (*,G) est recu via l’interface- IGMP membership report reçu

6. Les routeurs envoient un (S,G)RP-Bit Prune le long de l’arbre partagé, quand le RPF neighbor (S,G) est différent du RPF neighbor (*,G)

7. RPF (incoming) interface d’une entrée (S,G) est calculée en utilisant l’adresse de la source sauf si est positionné le bit RP-Bit , auquel cas c’est l’adresse du RP qui est utilisé.

Any Source Multicast (ASM) problems

• Addresses allocation• Addresses unicity ?• Dynamic allocation : too complex ?

• No access control• No way to choose sources• Security : No way to prevent unwanted sources to use a session

• Bad management of already known sources • Needs to use RP associated tools to make a relation between

source and receivers • MSDP (interdomain multicast)

• Point to multipoint applications (Internet TV…)

Multicast Distribution Trees : PIM SM

• Généralités

• PIM – Protocol Independant Multicast• PIM DM

• PIM SM

• PIM SSM

Freins au déploiement du multicast

• Allocation globale des adresses multicast• Pas de méthode d’allocation dynamique correcte

• SDR : ne supporte pas l’échelle• MASC (RFC2909) : Multicast Address-Set Claim

• On n’en entend plus parler• Allocation statique : GLOP (RFC2770)

• Basé sur le numéro d’AS• Dans la plage d’adresses : 233.0.0.0/8

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+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 233 | 16 bits AS | local bits |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

• On écrit l’AS en binaire et on remplit à gauche par des 0• Ex : AS 1942 =11110010110 233.5.150/24

Freins au déploiement du multicast

• Les « brouilleurs » de contenu• Des sources non désirées dans un groupe

• Celui qui oublie de fermer son microphone• Crée du bruit dans une conférence• Impossibilité du choix d’une source dans une visio-

réunion

• Peuvent causer du trafic supplémentaire pour rien

• Voire du Déni de Service sur un lien à faible débit ??

The answer :Source Specific Multicast

• Only use source centered trees • Assume a One-to-Many Model• Receivers have to know how to find sources

• Typically using another way : Mail, Web server…• Receivers join a specific source in a multicast group

• The channel is identified by (S,G) instead of (*,G)• The channel (S1,G) is different from channel (S2,G)

• Do not use Rendez-vous Points and Shared trees • Do not use MSDP (interdomain)• Use 232.0.0.0/8 IPv4 addresses • Depends of IGMPv3 (IPv4) or MLDV2 (IPv6)

SSM : en résumé

• Les hôtes se joignent à une source spécifique à l’intérieur d’un groupe multicast• Le contenu est identifié par le couple (S,G) au lieu de (*,G)• Le « canal » (S1,G) est différent du canal (S2,G)• Les hôtes sont responsables de la connaissance du couple (S,G)

• Le dernier routeur envoie un join (S,G) vers la source• L’arbre partagé n’est jamais utilisé• Seul le flux (S,G) est envoyé à l’hôte• Elimine donc le problème des sources « brouilleuses »

• Simplifie l’allocation d’adresses• Des sources distinctes peuvent utiliser le même groupe sans

interférer l’une avec l’autre

Alors PIM SSM ??• Dépend totalement de IGMPv3 en IPv4 et MLDv2 en IPv6

• IGMPv3 sur Microsoft Windows XP• Problème des applications !!• Travaux en cours :

• IGMPv3 lite (Cisco)• Utilisation d’une API

• URL RenDezvous (URD) (Cisco ??)• Redirection depuis une page avec une information interceptée par

le routeur• Static Source Mapping (Cisco ??)

• Routeurs traduisent les join IGMPv2 dans l’étendue SSM pour les sources connues en utilisant le DNS ou une configuration statique

URD

• Un fournisseur de contenu donne accès à une page web qui contient des liens URD• Une liste de sources délivrant du multicast• http://webserver:465/path?group=group&source=source1&...source=sourceN&

• Port 445 est réservé à URD• L’utilisateur clique sur un des ces liens• Le serveur web renvoie cette information• Le host tente une connexion sur le port 465• Le routeur local intercepte alors le trafic sur ce port (s’il est URD

capable)• Il utilise l’information source/groupe pour identifier le flux

SSM Mapping

• Cisco 12.2(18)S, 12.3(2)T• Ne permet qu’UNE SEULE source par

groupe !!• Le routeur traduit le groupe et la source

• En utilisant soit le DNS soit une base de données interne statique

• Cette méthode permet aux fournisseurs de contenu de fournir l’information source/groupe

SSM Mapping : un exemple

Join IGMPv2 (*,G)

Join PIM (S,G)

Join PIM (S,G)

Serveur Reverse DNS

Record DNS :

3.2.1.232 IN A 195.221.44.54

Requête DNS inverse sur le groupe G

Source

Receveur