Contenu connexe Similaire à Multicast for ipv6 (20) Multicast for ipv62. Topics
Multicast IPv6 Addresses
PIM
PIM SM
PIM-SSM
PIM Bidir
Rendez-Vous point
Static
Anycast RP
BSR
MLD
MLDv1
MLDv2
© Fred Bovy EIRL 2012 2
3. Multicast. RFC 4291
128 bits
FF Flag Scope 0 Interface ID
Scope – 4 bits
1=node
2=link
R
4=admin
Embedded Rendez-Vous
5=site
RFC 3956
8=Organization
P E=Global
Multicast based unicast 6, 7, 9-D not assigned. F est reserved.
RFC 3956 et RFC 3306
T Only the link-local is filtered by the routers, others must be
0 Permanent address fitered by routers (Access-List)
1 for temporary
© Fred Bovy EIRL 2012 3
4. Multicast IPv4 and IPv6
IP Service IPv4 Solution IPv6 Solution
Étendue d’adresse 32-bits, Class D 128 bits. 112 bits Groups
Routing PIM, MBGP, DVMRP, PIM and MBGP
MOSPF
Forwarding PIM-DM, PIM-SM, PIM- PIM-SM, PIM-SSM, PIM-
SSM, PIM-Bidir Bidir
Groups Management IGMPv1, v2, v3 MLDv1, v2
Domain Control Boundary, Border Scope
Interdomains Solutions MSDP Unic RP
© Fred Bovy EIRL 2012 4
5. PIMv6 Basics
PIM uses the unicast routing protocol to implement the Reverse Path
Forwarding
MP-BGP can be used to build divergent routing tables
PIMv6 between Routers, MLD between Hosts and Routers
© Fred Bovy EIRL 2012 5
6. PIMv6 Sparse Mode Basics. RFC 4601
The Rendez-Vous point allows Source and Receivers (listeners) to meet..
The result is a tree shared by all sources (shared tree) toward a group of
listeners.
Once the traffic start to flow on the Shared Tree, it is possible to switch on the
Shortest Path Tree (SPT)
© Fred Bovy EIRL 2012 6
7. The PIM Designated Router
The 1st Hop Router, near the source is the PIMv6 Designated Router
Elected with PIMv6 Hello Protocol
Highest Priority
Highest IPv6 address
Forward traffic from the source to the RP (Register)
© Fred Bovy EIRL 2012 7
8. The MLD Querier
The Last Hop Router is the MLD Querier
Lowest IPv6 Address
Discover the local Listeners and start to build a path to the RP
A shared tree is then built from the RP to the listener
© Fred Bovy EIRL 2012 8
9. Multicast Routing Initialization
Routers must be IPv6 Multicast Routing enabled
PIM and MLD are started on their interfaces
Rendez-Vous Point address MUST be configured
Static, Embedded or
Dynamic with BSR
© Fred Bovy EIRL 2012 9
10. PIMv6-SM: Shared Tree Initialisation
When a listener starts to listen to a given group, it sends Unsolicited Reports
A (*.G) entry is created in the Last Hop Router Multicast Routing Table
(MRIB)
(*,G)
(*,G)
MLD Multicast Listener Report (*,G)
Hop-by-Hop Router Alert.
Hop Limit=1
© Fred Bovy EIRL 2012 10
11. PIMv6-SM: PIM Join travel toward the RP
Because it has a (*,G) entry in its MRIB, the Last Hop Router starts to send
PIM Join (*,G) to its Rendez-Vous Point Upstream Neighbor.
The reception of a PIM Join (*,G) creates a (*,G) entry in the MRIB which
triggers the sending of a PIM Join (*,G) to its Rendez-Vous Point Upstream
Neighbor PIM Join (*,G)
PIM Join reaches the RP Dest: ff02::d
Router Alert
(*,G) (*,G) (*,G)
(*,G)
MLD Multicast Listener Report (*,G)
Hop-by-Hop Router Alert.
Hop Limit=1
© Fred Bovy EIRL 2012 11
12. PIMv6-SM: Source starts to send traffic
The source can start to send traffic at any time
No Signaling requires
© Fred Bovy EIRL 2012 12
13. PIMv6-SM: Source Registers with the RP
First Hop Multicast Router intercepts the Multicast flow
Multicast traffic is encapsulated in PIM Register unicast paquets to the RP
Register
© Fred Bovy EIRL 2012 13
14. PIMv6-SM: Register at the RP
The RP removes the unicast encapsulation of the PIM Register
The RP duplicates (if multiple outgoing interfaces) and forwards the multicast
toward all the Listeners
© Fred Bovy EIRL 2012 14
15. PIMv6-SM: Join toward the Source
When the RP receives multicast in Register paquets, it initializes a native
multicast path by sending a PIM Join (S,G) toward the source
It travels hop by hop to until it reaches the first hop router
PIM Join (S,G)
© Fred Bovy EIRL 2012 15
16. PIMv6-SM: Building the Multicast Shared Tree
When the First Hop DR receives the PIM join, it is able to forward the
multicast natively to the RP
When the RP receives two copies of the same multicast paquet, it discards
the encapsulated copy
© Fred Bovy EIRL 2012 16
17. PIMv6-SM: Register-Stop
… and sends a PIMv6 Register-Stop to the First Hop DR.
The DR knows that it does not have to encapsulate the multicast traffic in
unicast anymore
Register-Stop
© Fred Bovy EIRL 2012 17
18. PIMv6-SM: Flowing down the Shared Tree
Traffic can now travel from the Source to all the listeners using
the Shared Tree
© Fred Bovy EIRL 2012 18
19. PIMv6-SM: PIM Last-Hop Switchover to the
SPT
Last Hop Router notices that it receives the traffic from an
interface which does not point to the best path back to the
Source (RPF).
!!!
© Fred Bovy EIRL 2012 19
20. PIMv6-SM: Last-Hop Switchover to the SPT
Last Hop Router sends a PIMv6 Join (S,G) toward the Source
(S,G) states are created in the MRIB by the PIMv6 Join (S,G)
travelling hop by hop to the Source
PIM JOIN (S,G)
© Fred Bovy EIRL 2012 20
21. PIMv6-SM: Building the Shortest Path Tree (SPT)
When the DR receives the PIM JOIN (S,G), it starts to forward
paquets down the Shortest Path Tree but also down the
Shared Tree.
© Fred Bovy EIRL 2012 21
22. PIMv6-SM: Pruning the Shared Tree
When the Last Hop router receives two copies of the same flow, it decides
to prune the Shared Tree
It sends a (S,G,rpt-bit) Prune toward the RP
(S,G,rpt-bit) Prune
© Fred Bovy EIRL 2012 22
23. PIMv6-SM: Shortest Path Tree Only (SPT)
When the Shortest Path Tree has been Pruned, traffic only flows on the
Shortest Path Tree
If traffic on the Shortest Path goes down below a configurable threshold, it is
possible to switch back to the Shared Tree.
© Fred Bovy EIRL 2012 23
24. PIM-SM Summary
Sources and Listeners meet at the Rendez-Vous point
It is possible to stay forever on the Shared Tree to minimize the
states on the routers.
The Rendez-Vous point must be carefully choosen on the network
It is possible to use an Anycast Address for the RP with longest
match prefix to choose a primary.
BSR is the only dynamic RP configuration method
Using MLDv2 and SSM, there is no more need for a RP
© Fred Bovy EIRL 2012 24
25. Introduction to MLD
ICMPv6 with IPv6 Hop-by-Hop Router Alert Option
Hop Limit is 1
On each link a Querier is elected.
Lower IPv6 address is elected.
The Querier sends a Query on a regular basis to ask if there any receiver
present.
I won ! 3 I am the
I am the
Querier
Querier 2
1 FE80::1 FE80::100
Query FE80::1 FF02::1
26. Query Interval
Host A Host B
FE80::
Query FF02::1
1
The interval between General Query sent by the Querier.
Default: 125 seconds
© Fred Bovy EIRL 2012 26
27. Robustness
Host A Host B
State Change FE80::
FF02::1
R 1
This is the basis for the computation of many parameters
MLD is robust to [Variable Robustness] – 1 paquet loss
Default: 2. MLD has no problem loosing one MLD paquet
© Fred Bovy EIRL 2012 27
28. Introduction to MLDv1
All MLD paquets are sent with Link-Local address as source.
Hop Limit is 1
MLDv1 (RFC 2710) is IPv6 version of IGMP Version 2 (RFC 2236)
o Multicast Listener Query
General Query. Sent to the all-nodes Link-Local multicast address to figure out which
group has members.
Address-Specific Query is used to identify the members of a given group. It is sent to
the address of the group which is being queried.
o Multicast Listener Report
Response to a Query
o Multicast Listener Done
Sent by a Listener which does not listen to this group any more.
29. MLDv1 General Query
Host A Host B
FE80::
General Query FF02::1
1
The Querier sends a general Query
A and B starts a random timer
© Fred Bovy EIRL 2012 29
30. MLDv1 Listener Report
Host A Host B
Listener Report FE80::A FF02::1
Host timer A expires
Host A responds to the Query
B listens that A replied to the router Query, stops its timer and suppress its
response not to send a duplicate response.
© Fred Bovy EIRL 2012 30
31. MLDv1 Leave Process
Host A Host B
FE80::
Done FF1E::1 FF02::2
1
A is no longer interested by FF1E::1 and sends a Done message
© Fred Bovy EIRL 2012 31
32. MLDv1 Leave Process
Host A Host B
Address-Specific Query FE80::5 FF1E::1
Router sends a Last Listener Query to the Multicast address left by A
© Fred Bovy EIRL 2012 32
33. MLDv1 Leave Process
Host A Host B
Report FE80::5 FF1E::1
If B is still interested it sends a Listener Report and the router ignores the
Done message
If B is not interested it does not send anything and the group is removed
© Fred Bovy EIRL 2012 33
34. MLDv2 (RFC 3810)
MLDv2 is the IPv6 translation of IGMP Version 3 (RFC 3376)
MLDv2 is backward compatible with MLDv1
No duplicate response suppression
No Done message
IANA allocated FF02::16 called all MLDv2-capable routers
MLDv2 introduced source filtering
INCLUDE Mode : if the message includes all the source we want to ear
EXCLUDE Mode : if the message includes all the source we don’t want to ear
© Fred Bovy EIRL 2012 34
35. Queries
General Queries
Sent periodically
Responses are sent in Current State Report
Multicast Address Specific Queries
Multicast Address and Source Specific Queries.
Sent after a state change.
Sent in response to a State Change Report
© Fred Bovy EIRL 2012 35
36. Multicast Listener Reports
MLDv2 needs two types of Reports :
Current State Change Report.
o Sent in response to a Query
o MODE_IS_INCLUDE
o MODE_IS_EXCLUDE
State Change Report
o Sent after a state change
o Sent many times (Robustness)
o Filter Mode Change Records
• CHANGE_TO_INCLUDE
• CHANGE _TO_EXCLUDE
o Source List Change Records
• ALLOW_NEW_SOURCE
• BLOCK_OLD_SOURCES
© Fred Bovy EIRL 2012 36
37. MLDv2 Query Messages
Type = 130 Code Checksum
Maximum Response Code Reserved
Multicast Address
Resv S QRV QQIC Number of Sources (N)
Source Address [ 1 ]
Source Address [ 2 ]
Source Address [ N ]
© Fred Bovy EIRL 2012 37
38. MLDv2 Multicast Listener Report Messages
Type = 143 Code Checksum
Reserved Nr of Mcast Address Records (M)
Multicast Address Record [1]
Multicast Address Record [2]
…
Multicast Address Record [M]
© Fred Bovy EIRL 2012 38
39. MLDv2 Multicast Address Record
Record Type Aux data Len Number of Sources (N)
Multicast Address
Source Address [ 1 ]
Source Address [ 2 ]
Source Address [ N ]
Auxiliary Data
© Fred Bovy EIRL 2012 39
40. MLDv2 General Query
Host A Host B
FE80::
General Query FF02::1
1
Sent periodically to discover which group has listener on a link
Includes:
Multicast Address=0,
Number of Source=0
© Fred Bovy EIRL 2012 40
41. MLDv2 Multicast Address Specific Query
Host A Host B
FE80::
Multicast @ specific Query FF34::16 S:0 FF34::16
1
The Querier sends this Query to ask if a particular group has Listener on a
particular interface.
Includes:
The address, by example: FF34::16
Number of Source:0
© Fred Bovy EIRL 2012 41
43. MLDv2 Address and Source Specific Query
Host A Host B
FE80::
Multicast Listener Query FF34::16 S:1 FF34::16
1
The Querier sends this message to discover if a multicast address with one
or many source addresses has a Listener on a particular interface.
Elle contient
The address, by example: FF34::16
Number of Source, by example: 1
© Fred Bovy EIRL 2012 43
44. Reception of a Query
Source is valid Link-Local ? NO
Hop Limit = 1 ? DROP
Router Alert set in the Hop-
by-Hop Option ?
YES
Process the Query.
Wait before the Response. Delay max= Maximum Response Delay
© Fred Bovy EIRL 2012 44
45. MLDv2 State Change Report
Host A Host B
State Change FE80::
FF02::1
Report 1
The State Change Report contains a change:
Filter Change Report
Source List Change Report
Both Change Report
Reports are sent robustness times on the link
Default Robustness: 2
© Fred Bovy EIRL 2012 45
46. MLDv2 State Change Report Exemple
Internet Protocol Version 6
0110 .... = Version: 6
.... 1110 0000 .... .... .... .... .... = Traffic class: 0x000000e0
.... .... .... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
Payload length: 52
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source: fe80::38b1:e73c:c0f0:4442 (fe80::38b1:e73c:c0f0:4442)
Destination: ff02::16 (ff02::16)
Hop-by-Hop Option
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
Router alert: MLD (4 bytes)
PadN: 2 bytes
Internet Control Message Protocol v6
Type: 143 (Multicast Listener Report Message v2)
Code: 0 (Should always be zero)
Checksum: 0x50d2 [correct]
Allow new sources: ff34::16 (ff34::16)
Mode: Allow new sources
Aux data len: 0
Multicast Address: ff34::16
Source Address: 2001:db8:cafe::7 (2001:db8:cafe::7)
© Fred Bovy EIRL 2012 46
47. PIM-SSM
With PIM-SSM the Listener must provide the Source address.
Rendez-Vous point are no more needed.
The source can be configured statically
The source can be learned from DNS with the Record G
PIM-SSM is supported with MLDv2
RFC 3306. Unicast-Prefix-based IPv6 Multicast
Flags: 00PT. P=1, T=1
plen = 0
network prefix = 0
FF3x::/96
x=n’importe quel scope valide
© Fred Bovy EIRL 2012 47
48. Rendez-Vous Point
Static
Must be manually configured on each multicast router
Anycast RP
Static but the same address is configured many time with different mask length
Longest match select the preferred RP
Embedded RP
RP address is embedded in the Multicast Group
Dynamic with PIM BSR
BSR is a dynamic protocol which allow the Rendez-vous point automatic configuration.
© Fred Bovy EIRL 2012 48
49. Anycast RP + Longest Match
RP1 is preferred because routing prefers the longest match
RP1: RP2:
2001:db8:1::1/64 2001:db8:1::1/63
© Fred Bovy EIRL 2012 49
50. Embedded RP – RFC 3956
The RP address can be embedded in the Multicast
Group
© Fred Bovy EIRL 2012 50
51. Embedded RP – Flags
FF76:0130:2001:db8:9abc::4321
Flags: 7
R: Rendez-Vous Point = 1 then
P: Prefix =1 and
T: Temporary Prefix = 1
© Fred Bovy EIRL 2012 51
52. Embedded RP – Prefix
FF76:0130:2001:db8:9abc::4321
Plen = 30 Hex = 48 dec
2001:db8:9abc::
© Fred Bovy EIRL 2012 52
53. Embedded RP – Adresse du RP
FF76:0130:2001:db8:9abc::4321
Rendez-Vous Point Address
2001:db8:9abc::1
o RFC3956
© Fred Bovy EIRL 2012 53
54. PIM Boot Strap Router
Many routers are Candidates BSR (C-BSR).
The C-BSR elect a BSR by sending C-BSR message with priorities
The message travels hop by hop.
The C-BSR with the best priority becomes the BSR
During the election it announces its presence on the network.
This is similar to the election of the root of the spanning-tree.
Some routers are configured as Candidates RP (C-RP).
C-RP unicast their presence of C-RP to the C-BSR.
The C-BSR sends its list of C-RP to all the PIM routers
All the PIM routers receive the list of C-RP and execute the same hashing
function to choose a RP for each group.
© Fred Bovy EIRL 2012 54
55. Books on the Web: Safari Books Online
© Fred Bovy EIRL 2012 55
Notes de l'éditeur Si R=1, alors l’adresse du Rendez-Vous point est contenu dans l’adresse multicast. http://www.ietf.org/rfc/rfc3956.txt Modified Unicast-Prefix-based Address Format Embedded Rendez-Vous point sera traité plus loin dans ce module Donc si R=1, alors P=1 (même référence au RFC 3956 et aussi RFC 3306) http://www.ietf.org/rfc/rfc3306.txt Et T=1 IPv6 Multicast at Cisco: http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6552/ps6594/product_data_sheet0900aecd80320fb8.pdf PIM-SM Specification http://www.ietf.org/rfc/rfc4601.txt PIMv2 http://www.ietf.org/rfc/rfc4601.txt 4.3.2. DR Election MLDv2 http://www.ietf.org/rfc/rfc3810.txt 7.6.2. Querier Election PIMv2 http://www.ietf.org/rfc/rfc4601.txt 4.3.2. DR Election MLDv2 http://www.ietf.org/rfc/rfc3810.txt 7.6.2. Querier Election MLD RFC 2710 Traduit en français http://www.normes-internet.com/normes.php?rfc=rfc2710&lang=fr Plus d’explications en français: http://livre.g6.asso.fr/index.php/La_construction_d'arbre_multicast_-_PIM http://www-r2.u-strasbg.fr/~hoerdt/publis/pim_tests.pdf Ethernet II, Src: ca:00:06:a9:00:1c (ca:00:06:a9:00:1c), Dst: IPv6mcast_00:00:00:16 (33:33:00:00:00:16) Destination: IPv6mcast_00:00:00:16 (33:33:00:00:00:16) Source: ca:00:06:a9:00:1c (ca:00:06:a9:00:1c) Type: IPv6 (0x86dd) Internet Protocol Version 6 0110 .... = Version: 6 .... 1110 0000 .... .... .... .... .... = Traffic class: 0x000000e0 .... .... .... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 Payload length: 52 Next header: IPv6 hop-by-hop option (0x00) Hop limit: 1 Source: fe80::c800:6ff:fea9:1c (fe80::c800:6ff:fea9:1c) Destination: ff02::16 (ff02::16) Hop-by-Hop Option Next header: ICMPv6 (0x3a) Length: 0 (8 bytes) Router alert: MLD (4 bytes) PadN: 2 bytes Internet Control Message Protocol v6 Type: 143 ( Multicast Listener Report Message v2 ) Code: 0 (Should always be zero) Checksum: 0x30dd [correct] Include: ff0e:dead:beef::1 (ff0e:dead:beef::1) Mode: Include Aux data len: 0 Multicast Address: ff0e:dead:beef::1 Source Address: bad:cafe::1 (bad:cafe::1 ) Ethernet II, Src: ca:01:06:a9:00:1c (ca:01:06:a9:00:1c), Dst: IPv6mcast_00:00:00:16 (33:33:00:00:00:16) Destination: IPv6mcast_00:00:00:16 (33:33:00:00:00:16) Source: ca:01:06:a9:00:1c (ca:01:06:a9:00:1c) Type: IPv6 (0x86dd) Internet Protocol Version 6 0110 .... = Version: 6 .... 1110 0000 .... .... .... .... .... = Traffic class: 0x000000e0 .... .... .... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 Payload length: 116 Next header: IPv6 hop-by-hop option (0x00) Hop limit: 1 Source: fe80::c801:6ff:fea9:1c (fe80::c801:6ff:fea9:1c) Destination: ff02::16 (ff02::16) Hop-by-Hop Option Next header: ICMPv6 (0x3a) Length: 0 (8 bytes) Router alert: MLD (4 bytes) PadN: 2 bytes Internet Control Message Protocol v6 Type: 143 ( Multicast Listener Report Message v2 ) Code: 0 (Should always be zero) Checksum: 0xa0f4 [correct] Exclude: ff02::2 (ff02::2) Exclude: ff02::d (ff02::d) Exclude: ff02::16 (ff02::16) Exclude: ff02::1:ff00:2 (ff02::1:ff00:2) Exclude: ff02::1:ffa9:1c (ff02::1:ffa9:1c) http://www.renater.fr/IMG/pdf/03-IGMP-MLD_FR.pdf Multicast Address . Pour un General Query, le champs Multicast Address est zéro. Pour un Multicast Address Specific Query ou un Multicast Address and Source Specific Query, il est réglé sur l’adresse multicast que l’on requiert. S Flag . Suppress Router-Side Processing QRV Querier's Robustness Variable QQIC Querier's Query Interval Code Number of Sources. Zéro pour un General Query ou Multicast Address Specific Query, et non-zero pour Multicast Address and Source Specific Query. Multicast Address Specific Query. Multicast Address and Source Specific Query Multicast Address . Pour un General Query, le champs Multicast Address est zéro. Pour un Multicast Address Specific Query ou un Multicast Address and Source Specific Query, il est réglé sur l’adresse multicast que l’on requiert. S Flag . Suppress Router-Side Processing QRV Querier's Robustness Variable QQIC Querier's Query Interval Code Number of Sources. Zéro pour un General Query ou Multicast Address Specific Query, et non-zero pour Multicast Address and Source Specific Query. Multicast Address Specific Query. Multicast Address and Source Specific Query Multicast Address . Pour un General Query, le champs Multicast Address est zéro. Pour un Multicast Address Specific Query ou un Multicast Address and Source Specific Query, il est réglé sur l’adresse multicast que l’on requiert. S Flag . Suppress Router-Side Processing QRV Querier's Robustness Variable QQIC Querier's Query Interval Code Number of Sources. Zéro pour un General Query ou Multicast Address Specific Query, et non-zero pour Multicast Address and Source Specific Query. Multicast Address Specific Query. Multicast Address and Source Specific Query