Intro Multicast

Download as pps, pdf, or txt
Download as pps, pdf, or txt
You are on page 1of 45

Introduction to Multicast

© 2012 Juniper Networks, Inc. All rights reserved. | www.juniper.net


Address Types and Traffic Flows
 Address types
• Unicast addresses: one-to-one
• Broadcast addresses: one-to-all
• Multicast addresses: one-to-many

lticast: A single data stream from the server is needed to reach all client
Single Data
Stream Network

Server
Clients

Network devices replicate data stream


toward interested clients

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 2


Multicast Advantages and
Disadvantages
 Advantages of multicast traffic:
• Increased efficiency for multicast sources
• Single session needed instead of multiple unicast
sessions
• Increased bandwidth efficiency in the network
• Effect depends on receiver distribution throughout the
network
• Allows traffic to unknown receivers
 Disadvantages of multicast traffic:
• Mostly UDP-based best-effort delivery
• Network CoS is harder to achieve

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 3


Multicast Components (1 of 2)
10.0.101.2 Network
DR

Source Receivers
10.0.101.2224.7.7.7 UDP M-cast
SA DA Data

 Components:
• Source: Originator of multicast IP packets
• Multicast IP packet: An IP packet destined for a
multicast group address
• Group address: An IP address in the range of 224/4
• Receivers: IP hosts interested in receiving data destined
for a particular group address (also called group
members)
• DR: Router closest to the source that forwards multicast
IP packets
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 4
Multicast Components (2 of 2)
Group
Network Membershi
p Protocol

Source Multicast Routing Receivers


Protocol
No special
protocol needed
 Components (contd.):
• Group membership protocol: Protocol used by receivers
to communicate group membership to the closest
attached router
• IGMP for IPv4
• Multicast routing protocol: Protocol used between routers
in the network to build and maintain the multicast
forwarding trees between sources and receivers
• PIM and DVMRP

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 5


Multicast Terminology (1 of 4)
 Service models:
• Any-source multicast:
• Supports one-to-many and many-to-many applications
• Source-specific multicast:
• Supports only one-to-many applications

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 6


Multicast Terminology (2 of 4)
 Distribution modes:
• Dense mode:
• Flood and prune
• Prune signals no interest in receiving multicast traffic
• Graft overrides previous prune messages
• Sparse mode:
• Explicit subscriptions only
• Join signals interest in receiving multicast traffic
(subscribe)
• Prune sent to unsubscribe from multicast traffic
• Sparse-dense mode:
• Router interface performs either mode for individual
multicast groups
• Uses dense-mode and sparse-mode rules

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 7


Multicast Terminology (3 of 4)
 Distribution trees:
• Source tree or shortest-path tree
• Known source
• S, G forwarding state
• Used in dense mode and in sparse mode
• Shared tree or rendezvous point tree
• Unknown source
• *, G forwarding state
• Used only in sparse mode

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 8


Multicast Terminology (4 of 4)
 Multicast forwarding:
• Source is considered upstream (root of tree)
• Receiver is considered downstream (leaf on
branch of tree)

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 9


Source Tree and Shared Tree in PIM
Sparse Mode
Source
192.168.100.10

RP
10.1.1.1

R1
R2
R3 R4
Source Tree R5
(S, G) State
Group: 224.7.7.7
R6
Source: Shared RPT
192.168.100.10 Tree
(*,G) State
Group:
224.7.7.7
Source: *
Receiver
224.7.7.7

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 10


Multicast Routing Considerations
 Multicast routing:
• Network between source and receiver must be
enabled for multicast forwarding
• Run multicast routing protocol within own domain
• If receiver is in different domain than the source,
it might be more complicated
• Not all ISPs offer multicast traffic to their subscribers
 Automatic multicast tunneling:
• Connects source and receiver across islands of
unicast-only connectivity
• Dynamically establishes unicast tunnels between
AMT gateway and AMT relay
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 11
IP Multicast Addressing
 IP multicast addressing (destination address only)
• Class D range: 224.0.0.0–239.255.255.255 (224/4)
0 1 2 3 31

1 1 1 0 Multicast Group ID

• IANA designates some address28 ranges


bits
for specific use:
• 224.0.0.0–224.0.0.255: local network control block
– 224.0.0.1–All systems on this subnet
– 224.0.0.2–All routers on this subnet
• 224.2.0.0–224.2.255.255: SDP / SAP block
• 232.0.0.0–232.255.255.255: SSM block
• 233.0.0.0–233.251.255.255: GLOP block
• 234.0.0.0–234.255.255.255: Unicast-prefix-based IPv4 block
• 239.0.0.0–239.255.255.255: Administratively scoped block

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 12


Reserved Multicast Address Ranges
 Address ranges:
• 239.0.0.0/8: Administratively scoped addresses (RFC
2365)
• Only to be used within a locally administered network, similar to
RFC 1918 address space
• 233.0.0.0/8: GLOP addressing (RFC 3180)
• Every autonomous system is statically and automatically
assigned 255 globally usable multicast addresses from this range
233 AS Number Locally Assigned Bits

8 bits 16 bits 8 bits

• 232.0.0.0/8: SSM addressing (RFC 4607)


• A router ignores a request for group membership (IGMPv3) in this
address range when a specific source is not specifically
requested
• 224.2.0.0/16: SDP/SAP addressing (RFC 2974)
• For use by applications that advertise multicast sessions (SDR)
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 13
IP Multicast-to-Ethernet Mapping
IPv4 prefix (32 Bits)

First 4 high- 28 bits remain


order 111
bits are 0
stripped 224. 10. 8.
5 remaining high- 5 23 bits remain
order bits are for mapping
stripped

01-00-5e-0A-08-05
25 bits 23 bits
MAC Address (48 Bits)

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 14


IP Multicast-to-Ethernet Mapping
Example
E 0 0 A 0 8 0 5

Class D Address: 224.10.8.5 1 1 1 0 0 0 00 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1

Not Used Low Order 23 bits mapped

0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 00 0 0 0 1 0 1

0 1 0 0 5 E 0 A 0 8 0 5

Resulting Ethernet Multicast Address

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 15


Multicast Forwarding Overview
 Multicast forwarding overview:
• Unicast forwarding bases decisions on destination
IP address
• Forwards traffic to the next hop of the best route
• Multicast forwarding bases decisions on source IP address
• Forwards traffic away from the source along the distribution tree
• Forwards only traffic that passes RPF check
• RPF:
• Prevents looped and duplicated multicast packets
• Compares incoming interface of multicast packet with outgoing
next-hop interface of unicast route toward the source of the packet
– If interfaces are the same, the packet passes the RPF check
– If interfaces are different, the packet fails the RFP check

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 16


The RPF Check (1 of 2)
RPF Table at R1 Source 1
user@R1> show multicast rpf 192.168.100.10 192.168.100.10
Multicast RPF table: inet.0 , 16 entries

192.168.100.0/24
Protocol: OSPF
Interface: ge-0/0/4.125
Neighbor: 172.18.1.1

172.18.1.1

ge-0/0/4.125
Packet

Packet from Source 1 arrives on R1 ge-0/0/1.0


wrong interface: RPF check fails,
discard the packet!

Multicast Traffic

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 17


The RPF Check (2 of 2)
RPF Table at R1
user@R1> show multicast rpf 192.168.100.10 Source 1
Multicast RPF table: inet.0 , 16 entries 192.168.100.10
192.168.100.0/24
Protocol: OSPF
Interface: ge-0/0/4.125
Neighbor: 172.18.1.1

et
ck
172.18.1.1

Pa
ge-0/0/4.125

R1
Packet from Source 1 arrives on correct
interface: forward out all outgoing
interfaces.

Multicast Traffic

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 18


Multicast Forwarding Terms
 Multicast forwarding terms:
• Incoming interface or upstream interface
• Interface on which traffic is received that passes the RPF
check
• Interface to which PIM join messages are sent
• Traffic that passes the RPF check can be forwarded
• If receiving router has knowledge of downstream
receivers, the router receives IGMP reports from directly
connected receivers and also receives PIM join
messages from neighbors with downstream receivers
• Outgoing interface list or downstream interfaces
• Interfaces to which traffic must be forwarded down the
distribution tree
• Forwarding decision is cached in the inet.1 table

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 19


Multicast Routing Tables
 Multicast routing tables:
• inet.0
• Default table used for RPF check lookups
• inet.1
• Forwarding cache for successful RPF-checked traffic
• inet.2
• Alternate table for RPF check lookups
• Multicast topology independent from unicast topology
• Use of RIB groups required

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 20


Alternate Multicast Topology (M-BGP)

Multicast Preferred
inet.0 MED = 100
inet.2 MED = 50

RPF

RPF

Unicast Preferred
inet.0 MED = 50
AS 65011 AS 65013
inet.2 MED = 100

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 21


RIB Groups
 RIB groups:
• For multicast networking:
• Share routes between routing tables
• Change the RPF table used by multicast routing
protocols

inet.0 Rout inet.2


es

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 22


RIB Groups: Sharing Routes
 Defined under the routing-options
hierarchy level
[edit routing-options]
user@router# show
rib-groups {
to-inet2 {
The import-rib indicates to place
import-rib [inet.0 inet.2];
routes in inet.0 and inet.2
import-policy policy-name;
}
}

The import-policy is used to control which


routes are installed in the routing table
group
 Applied to routing protocols, interface routes,
or both
[edit protocols ospf]
user@router# set rib-group ?
Possible completions:
rib-group Routing table group for importing OSPF routes

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 23


RIB Groups: Changing the RPF Table
 Use RIB groups to change the RPF table
user@router> show multicast rpf summary Default inet.0
being used for RPF
Multicast RPF table: inet.0, 20 entries lookups

[edit routing-options]
user@router# show rib-groups Define the RIB
inet2-rpf { group indicating use
of inet.2 for
import-rib inet.2;
lookups
}

[edit] Apply the RIB group


user@router# set protocols pim rib-group inet2-rpf to the multicast
user@router# set protocols msdp rib-group inet2-rpf routing protocols

user@router> show multicast rpf summary


Multicast RPF table: inet.2, 17 entries inet.2 being used
for RPF lookups

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 24


Internet Group Management Protocol
 IGMP:
• Hosts send IGMP report message to signal interest in
receiving specific multicast traffic to their subnet routers
• IGMP works between hosts and routers (Layer 3 device)
• Three versions of IGMP:
• IGMP version 1 (RFC 1112)
– ASM mode
• IGMP version 2 (RFC 2236)
– Junos default
– Supports leave-group message that speed up convergence
– ASM mode
• IGMP version 3 (RFC 3376)
– Required for SSM mode but also supports ASM mode

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 25


Multicast Groups and Routing
Group Membership Protocol

Multicast Routing Protocol

 IGMP operates between receivers (hosts) and


routers
• IGMP is not a routing protocol
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 26
IGMP Operation: Join Process
 Report messages establish host membership
for particular multicast groups on a given
network
• Reports are sent to the group address being
reported
• Reports inform local router that a host wants to
receive traffic associated
Host 1 with the specified
multicast group
Report:
DA=224.10.1.1
Group=224.10.1.1

Querier Non-
Querier
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 27
IGMP Query-Response Process
 Query-response process:
1. Querier router sends general query to all-hosts multicast
group (224.0.0.1)
2. Host 2 sends its report for group 224.10.1.1 first
3. Host 1 hears the response from Host 2 and suppresses its
report
4. Host 3 sends its report for the group 224.20.1.1
Host 1 Host 2 Host 3
2 4
3 Report
Report Report
224.10.1.1
224.10.1. 224.20.1.
Suppressed 1 1

General
1 Query

Router A: Router B:
Querier Non-Querier

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 28


IGMPv2 Group Leave
 Process for leaving a group:
1. Host 2 sends leave message for 224.10.1.1 to the all-routers
multicast group address (224.0.0.2)
2. Querier router sends group-specific query for 224.10.1.1
3. Group 224.10.1.1 times out if no IGMP reports are received
within ~3 seconds

Host 2 Host 3
1
Leave-group
Group=224.10.1
.1

Group-Specific
Query
2 Group=224.10.1
.1
Router A
(Querier)

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 29


Layer 2 Switches and Multicast
 Layer 2 switches and multicast
• Layer 2 switches are often in use between routers and
hosts
• By default, Layer 2 switches treat multicast traffic like
broadcast traffic, which results in forwarding to all ports
• Not an efficient use of bandwidth on ports without any receivers
 IGMP snooping
• IGMP snooping allows the Layer 2 switch to view IGMP
traffic between receivers and router
• Allows the Layer 2 switch to make more informed decisions
• Forwards multicast traffic only to ports where receivers are located
– 224.0.0.0/24 address block is an exception, because it still must
be sent to all ports

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 30


IGMP Snooping
 IGMP snooping
• IGMP snooping divides the ports into two categories:
• Multicast-router interfaces:
– IGMP query message received
– Statically configured
• Host-side interface: All other interfaces
• Multicast forwarding as a result of IGMP snooping
• IGMP packets are sent to the RE for snooping processing
• Traffic for 224.0.0.0/24 destination address is flooded to all
ports except the incoming port
• Remaining multicast traffic is sent to:
– All multicast-router interfaces
– Host-side interfaces with hosts interested in receiving
that multicast group

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 31


IGMP Snooping:
Standard Implementation and Proxy
 IGMP snooping: Standard implementation
• Standard IGMP snooping only checks received IGMP
packets; it does not generate any IGMP packets
• Standard IGMP snooping does not result in a reduction
of IGMP reports sent to the router
 IGMP snooping: Proxy
• Allows the Layer 2 switch to act as a proxy to the
router and the hosts
• Acts like a router toward the host-side interfaces
• Acts like a single receiver toward the multicast-router
interfaces
– Reduces the amount of IGMP reports sent to the actual
router

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 32


IGMP Snooping Configuration
 IGMP snooping  IGMP snooping
(MX Series) (EX Series)
edit bridge-domains domain1 protocols] user@ex1# show protocols igmp
lab@mxD-1# show vlan-employee-vlan {
igmp { interface ge-0/0/1.1 {
proxy; host-only-interface;
interface ge-0/0/1.1 { }
host-only-interface; interface ge-0/0/2.1 {
} multicast-router-interface;
interface ge-0/0/2.1 { }
multicast-router-interface; interface ge-0/0/3.1 {
} static {
interface ge-0/0/3.1 { group 225.100.100.100;
static { }
group 225.100.100.100; }
} }
}
}

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 33


IGMP Version 1
 IGMP version 1 operation:
• Hosts send report message to join
• Hosts leave silently
• Router stops forwarding to group after time-out
• Defaults: (A * B) + (1 *C) = 260 seconds
– A = Robustness count = 2
– B = IGMP Query Interval = 125 seconds
– C = IGMP Query Response Interval = 10 seconds
• No mechanism for querier election
• Multicast routing protocol must provide election
mechanism

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 34


IGMP Version 1 Packet Format
 IGMP version 1 packet format:
0 31

Protocol Type Unused Checksum


Version

Group Address

• Protocol version = 1
• Type
• Host membership query
• Host membership report
• Group address = group reported

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 35


IGMP Version 2
 IGMP version 2 operation:
• Hosts send report messages to join
• Hosts sent leave-group messages
• Routers send group-specific messages to check for
remaining receivers for that group
• Routers stop forwarding traffic for group if no
response
• Defaults: A * B = 2 seconds
– A = Robustness count = 2
– B = IGMP Last Member Query interval = 1 second
• Querier election within IGMP
• Lowest IP address becomes IGMP querier
• Non-querier router takes over in case querier fails

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 36


IGMP Version 2 Packet Format
 IGMP version 2 packet format:
0 31

Type Max Checksum


Response
Time
Group Address

• Type:
• 0x11 = Membership Query
• 0x16 = Version 2 Membership Report
• 0x17 = Leave Group
• 0x12 = Version 1 Membership Report
• Max Response Time = Time allowed to respond to
query
• Group address = Group reported
© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 37
IGMP Version 3
 IGMP version 3 operation:
• Report message can include source information
• Required for SSM mode of operation

Router A Router B

Source=192.168.30.1
Source=172.16.20.1 IGMPv3 group-source report:
Group=224.10.1.1
Group=224.10.1.1 X D: 224.0.0.22 (All IGMPv3
(Pruned) routers)
Router C
Include 172.16.20.1,
224.10.1.1
Exclude 192.168.30.1,
Host 1 member of 224.10.1.1 224.10.1.1

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 38


IGMP Configuration (1 of 2)
 IGMP configuration:
• IGMP version 2 enabled automatically for interfaces
configured under the [edit protocols pim]
hierarchy
• When nondefault settings are required, manually
configure IGMP interfaces under the [edit
protocols igmp] hierarchy:

[edit protocols igmp]


user@router# show
interface ge-0/0/0.0 {
version 1;
}

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 39


IGMP Configuration (2 of 2)
 Modifying default IGMP settings:
[edit protocols igmp]
user@router# show
query-interval 30; Options to change IGMP latency timers
query-response-interval 5;
query-last-member-interval 1;
robust-count 3;
interface ge-1/0/0.0 {
static { Static IGMP join if receivers are not
group 229.9.9.9; capable of sending joins; also useful for
testing.
}
}
interface ge-1/0/1.100 {
version 3; Option to change IGMP version
}

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 40


Monitoring IGMP (1 of 4)
 Monitoring IGMP interfaces:
user@router> show igmp interface
Interface: ge-1/0/0.0
Querier: 10.0.117.6
State: Up Timeout: 162 Version: 2 Groups: 2
Immediate leave: Off
Promiscuous mode: Off
Passive: Off

Configured Parameters:
IGMP Query Interval: 125.0
IGMP Query Response Interval: 10.0
IGMP Last Member Query Interval: 1.0
IGMP Robustness Count: 2

Derived Parameters:
IGMP Membership Timeout: 260.0
IGMP Other Querier Present Timeout: 255.0

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 41


Monitoring IGMP (2 of 4)
 Monitoring IGMP groups:
user@router> show igmp group
Interface: ge-1/0/7.807, Groups: 3
Group: 224.0.0.2
Source: 0.0.0.0
Last reported by: 10.0.117.7
Timeout: 160 Type: Dynamic
Group: 224.7.7.7
Source: 0.0.0.0
Last reported by: 10.0.117.2
Timeout: 152 Type: Dynamic
Group: 229.9.9.9
Source: 0.0.0.0
Last reported by: Local
Timeout: 0 Type: Static

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 42


Monitoring IGMP (3 of 4)
 Monitoring IGMP statistics:
user@router> show igmp statistics
IGMP packet statistics for all interfaces
IGMP Message type Received Sent Rx errors
Membership Query 528 528 0
V1 Membership Report 0 0 0
DVMRP 0 0 0
PIM V1 0 0 0
Cisco Trace 0 0 0
V2 Membership Report 3165 0 0
Group Leave 0 0 0
Mtrace Response 0 0 0
Mtrace Request 0 0 0
Domain Wide Report 0 0 0
V3 Membership Report 0 0 0
Other Unknown types 0
IGMP v3 unsupported type 0
IGMP v3 source required for SSM 0
IGMP v3 mode not applicable for SSM 0

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 43


Monitoring IGMP (4 of 4)
 IGMP traceoptions
• Configured under [edit protocols igmp]
[edit protocols igmp]
user@router# show
traceoptions {
file igmp-debug;
flag packets detail;
flag general detail;
}

user@router> monitor start igmp-debug


Jan 22 00:07:12.254229 XMT IGMP V2 Query len 8 to 224.0.0.1 intf ge-1/0/0.0
Jan 22 00:07:12.254295 Max_resp 0x64 (100), group 0.0.0.0
Jan 22 00:07:12.515154 RCV IGMP V2 Report len 8 from 10.0.117.2 intf ge-1/0/0.0

© 2012 Juniper Networks, Inc. All rights reserved. www.juniper.net | 44

You might also like