IGMP and PIM - Pohang University of Science and Technology

Download Report

Transcript IGMP and PIM - Pohang University of Science and Technology

IGMP and PIM
Suman Pandey
EECS702: Topics in Computer Systems Future Internet (Spring 2008)
DPNM Lab
1
Modern Applications
2
Outline

Concepts behind protocols IGMP and
PIM






Multicasting
Addressing scheme
Group management
IGMP
Multicast Routing
PIM
3
RFC

RFC






IGMP v1 [RC 1112]
IGMP v2 [RFC 2236]
IGMP v3 [draft]
PIM v2 –SM [RFC 2362]
PIM v2 –DM [RFC 2365]
Supported on Macs, PCs, UNIX
4
Multicasting

Multicast communications refers to one-to-many
or many-to-many communications.



Application level multicast
Network multicast
IP Multicasting refers to the implementation of
multicast communication in the Internet
5
Tools
Multicasting Tools
 SDR, VIC and RAT for Sun, Linux and Windows multicasting.

Quicktime will be the Macintosh application for viewing
multicast sessions.
Products:






Apple's QuickTime Conferencing software.
ICAST Express Media, video, audio and text clients and servers, beta
version available on request.
Merit Network's mrouted, multicast router daemon (server).
Microsoft's NetShow-- Windows video/audio client and server. Multicastcapable.
Precept's IP/TV -- Windows client for receiving video/audio/slide
broadcasts.
Van Jacobson's popular multimedia multicasting tools for a Unix X Window
server: video (VIC), and audio (VAT).
6
Multicast
7
Network Multicast
8
Multicast Semantics

IP multicast works as follows:



Multicast groups are identified by IP addresses in the range 224.0.0.0
- 239.255.255.255 (class D address)
Every host (more precisely: interface) can join and leave a multicast
group dynamically
Every IP datagram send to a multicast group is transmitted to all
members of the group by routers
 no security, no “floor control”
9
IP Multicast Protocol stack


IP Multicasting only supports UDP as
higher layer
There is no multicast TCP !
10
Multicasting

There are three essential components
of the IP Multicast service:



IP Multicast Addressing
IP Group Management (IGMP v1 & v2)
Multicast Routing (PIM v1 & v2)
11
Addressing


How do you talk to a group of hosts (our
multicast group), where each host has a
different MAC address. Ensure that the
other hosts, which are not part of the
multicast group, don't process the
information ?
Break things down



Hardware/Ethernet Multicasting
IP Multicasting
Mapping IP Multicast to Ethernet Multicast
12
Hardware/Ethernet
multicasting





The network card (NIC) must be multicast aware, it is configured, via its drivers, to
watch out for particular multicast MAC addresses apart from its own
Ethernet uses the low-order bit set to ZERO (0) for unicast and ONE (1) for multicast
Lower order bit of the higher order octet is set to 1.
The multicast MAC address is that can be recognized by computers that are part of
the multicast group
The IEEE group used a special Rule to determine the various MAC addresses that will
be considered for multicasting for ex: MAC address 01:00:5E:00:00:05 will be used for
the OSPF protocol
13
IP Multicast






The IP Multicast combined with the hardware multicasting, gives us a multicasting model that works for our Ethernet
network
Once Layer 2 (Datalink) picks the multicast packet from the network (because it recognises it, as the destination MAC address is
a multicast) it will strip the MAC addresses off and send the rest to the above layer, which is the Network Layer.
Class D IP address is used for multicast addresses (decided by IANA)
Class D is “flat”- that is, subnetting is not used, so no network and host partition.
In class D address first 4 bits will always be 1110, the rest of 28 bits are group id, and there can be 2 28 multicast groups
The group can be permanent such as (assigned by IANA)



224.0.0.0 Base Address (Reserved) [RFC1112,JBP] , 224.0.0.1 All Systems on this Subnet [RFC1112,JBP] ,224.0.0.2 All Routers
on this Subnet [JBP] ,224.0.0.3 Unassigned [JBP] ,224.0.0.4 DVMRP Routers [RFC1075,JBP],224.0.0.5 OSPFIGP OSPFIGP All
Routers [RFC2328,JXM1]
Group can be transient.
IPv6 has similar address allocations
14
Mapping IP multicast to
Ethernet Multicast

Rule for the mapping



To map an IP Multicast address to the
corresponding Hardward/Ethernet multicast
address, place the low-order 23 bits of the
IP multicast address into the low-order 23
bits of the special Ethernet multicast
address. The rest of the high-order bits are
defined by the IEEE (yellow color in the
example)
23 bits are mapped to the base MAC address
of the computer
When combined makes one multicast Mac
address
15
Group Management and
IGMP
We will examine issues of joining
and leaving group
Then see how these issues are
handled by IGMP

16
Advertise Group membership
One Way of Locating Multicast Groups Is Through Web-Based
Announcements, Such as This Schedule of MBone Sessions at
www.cilea.it/MBone/browse.htm
Applications Such as Multikit Listen for SDP and SAP and
Display the Multicast Sessions Advertised by Those Protocols
17
Local and wide area
multicast
18
IGMP Join and Leave
19
Joining and Leaving a Group
cont…
20
Increasing efficiency of Joining
and Leaving a Group cont…

Allowing host to sends message to Router to join a
group without waiting for query


If routers have no group member then it doesn’t forward
any message
Allowing a host to explicitly notify its local router
when it leaves a group can increase efficiency


After receiving leave request, router sends query to
subnet asking if there is any other group members, if it
doest get response, it ceases the packet forwarding
Then router can prune itself from the multicast tree
21
IGMP v2 Host functions
Membership Report messages
•when host want to join a group
•In response to the router query
Leave Group message
•when host want to leave group
Version 1 Membership Report messages
•IGMPv2 hosts support IGMPv1 Membership
Reports for backward compatibility.
22
IGMP v2 Host function cont..
Join

Multicast sessions are identified in the routers by a (source, group) pair of addresses



The destination address of the Membership Report message's IP header is the group
address




source is the address of the session's originator
group is the Class D group address
other group members that might be on the subnet hear the report in addition to the router.
message itself also contains the group address
host sends one or two duplicate reports separated by a short interval 10 sec. for reinsurance.
The local router periodically polls the subnet with queries



Leave


Each query contains a value called the Max Response Time 10 sec
If timer expires, the host responds to the query with one Membership Report for each group to
which it belongs.
Other group member also hear it, but the timer plays a role, If the host receives a Membership
Report for a group before its delay timer expires, it does not send a Membership Report for that
group. In this way, the router is informed of the presence of at least one group member on the
subnet, without all members flooding the subnet with reports.
The message contains the address of the group being left, but unlike Membership Report messages,
the Leave Group message is addressed to the "all routers on this subnet address of 224.0.0.2
because only the multicast routers on the subnet need to know that the host is leaving; other group
members do not.
23
IGMP v2 Router Function
General Query
Group-Specific Query
•when host want to leave group
24
IGMP Querier Election
Querier Election


Only one IGMP Querier per LAN
Querier with lowest numbered IP source address (v2)
25
IGMP v2 Router function
cont..


General Query

For checking the presence of the group members

queries are sent every 60 seconds

query also contains a value called the Max Response Time. By default, the
Max Response Time is 10 seconds;

sent to the "all systems on this subnet" address of 224.0.0.1 and does not
contain a reference to any specific group

As a result, the single message polls for reports from members of any and
all groups that might be active on the subnet.

The router tracks known groups and the interfaces attached to subnets
with active members

If router does not hear anything from the group in the twice the query
interval plus one Max Response Time interval, then it considers there is no
members to the group
Group-Specific Query

When a router receives a Leave Group message, it must determine whether
any remaining members of that group are on the subnet by sending this
query

It contains the group address. Uses that as a destination address
26
IGMPv1 Vs IGMPv2




IGMPv1 has no Leave Group message, meaning that there is a longer period between
the time the last host leaves a group and the time the router stops forwarding the
group traffic.
IGMPv1 has no Group-Specific Query. This follows from the fact that there is no
Leave Group message.
IGMPv1 does not specify a Max Response Time in its query messages. Instead, hosts
have a fixed Max Response Time of 10 seconds.
IGMPv1 has no querier election process. Instead, it relies on the IP multicast routing
protocol to elect a designated router on the subnet. Because different protocols use
different election mechanisms, it is possible under IGMPv1 to have more than one
querier on a subnet.
RFC 2236 describes several mechanisms that allow IGMPv2 to adapt
in earlier versions
IGMPv3 inclusion of group to be identified not only by group address, but also by source address.
If certain member wants to receive traffic from specific source or exclude to receive traffic from some
specific source. The member can express these wants in a Membership Report with Include or Exclude
filter requests.
27
IGMP message format
28
PIM
29
Multicast Routing concepts

source-based tree: one tree per source


shortest path trees, reverse path forwarding
group-shared tree: group uses one tree

minimal spanning (Steiner) , center-based trees
30
Shortest Path Tree
31
Reverse Path Forwarding

Rule



forward packet from Source (R1) to all interfaces if and only if packet
arrives on the interface that corresponds to the shortest path to
Source
no need to remember past packets
R5 need not forward packet received from R6
32
RPF / Pruning
33
Core-based Trees: An
Example


One router identified as “center” of tree.
To join:




edge router sends unicast join-msg addressed
to center router
join-msg “processed” by intermediate routers
and forwarded towards center
join-msg either hits existing tree branch for
this center, or arrives at center
path taken by join-msg becomes new branch of
tree for this router
34
Core-based Trees: An
Example
Suppose R6 chosen as center:
35
Core based tree pros and
cons

Pros




routers not part of a group are not involved in
pruning
explicit join/leave makes membership changes
faster
router needs to store only one record per group
Cons


all multicast traffic traverses core, which is a
bottleneck
traffic travels on non-optimal paths
36
PIM v2



Protocol independent because other protocols are dependent on Link state
routing (MOSPF) and distance vector routing (DVMRP)
This is the only protocol fully supported by Cisco.
PIMv1 Vs PIMv2



Version 1 of the protocol encapsulates its messages in IP packets with protocol
number 2 (IGMP) and uses the multicast address 224.0.0.2.
PIM v2 uses its own protocol number of 103 and the reserved multicast address
224.0.0.13.
PIM Choose different strategies depending on whether multicast tree is
dense or sparse

In dense mode the receivers are densely situated and most f the routes need to
participate in the multicast forwarding

flood and prune good for dense groups



only need a few prunes
CBT needs explicit join per source/group
In sparse mode receivers are sparsely situated



Flood and prune is a wastage. Too many prune message.
Join and prune is better
Center based tree is good for sparse groups
37
PIM v2 Continue

PIM uses a notion of central node (rendezvous point) RP for
each group, which maintains multicast shortest path tree for
each group

We assume in a domain of routers each router knows the
unicast IP address for RP of a particular group

In PIM sparse there are two type of trees : shared tree for
a group and source specific tree

Typically shared tree is built first and then source specific
tree if required
38
PIM-DM

Uses five PIMv2 message











Hello
Join/Prune
Graft
Graft-Ack
Assert
Uses flood-and-prune to build the multicast tree.
Flood hello to entire PIM domain, because it does not have a build in routing
protocol
Join and Prune happens the same way as explained in the IGMP protocol, same
mechanism of waiting and prune overriding happens.
The Graft message used mainly when there is change in topology. Recalculation of
the RPF interface when the unicast routing table changes
Needs to elect a Designated router. IGMP needs a DR.
If there are two router to reach the destination, then PIM uses Assert to
decide which route to select. (This is required because there is no routing
protocol)
39
PIM-SM


Supports both shared and source-based trees. This is why popular.
It has following packets








Hello
Bootstrap
Candidate-RP-Advertisement
Join/Prune
Assert
Register
Register-Stop
In Shared tree model we have core router. This is called rendezvous point (RP) in
PIM-SM.




RP can be configured in routers statically
Open standard bootstrap protocol can be used
Cisco-proprietary Auto-RP protocol can be used to designate and advertise the RP.
In shared Tree the multicast tree is rooted towards the core rather than source.




CBT uses bidirectional tree, because source might need to deliver the packets to the RP over the
branches of the tree. This can lead to a loop in topology, because “RPF” checks can not be
performed if there is “upstream” and “downstream” as it is protocol independent.
To achieve this PIM-SM uses register and register stop message, and encapsulate the multicast
packet in these messages.
If there are too many encapsulated message then it sends register-stop message to stop this
process and chooses “source based” STP rather than “Shared Once” STP
Depending on the situation different scheme can be chosen.
40
Some experiments


I wanted to see whether
our network supports
multicast of not
http://detective.internet2.
edu
Try a simple multicast
application



Vic, rat, sdr http://www.openmash.org/
Listen to some multicast
stream http://people.internet2.ed
u/~bdr/dvguide.html
There is no multicast
streams in our network, no
IGMP no PIM
Tool for testing multicast
enabled network
List of multicast server
41
Some experiments cont…
Enabling IP multicast

Configuring routers on your network

Enable multicast for the network (globally).

Determine the interfaces on which to use multicast, and enable
multicast on those interfaces.

Enable multicast routing protocols on specific devices. For
example:
 PIM Sparse mode for links that have limited bandwidth.
 PIM Dense mode for links that have broad bandwidth.
 IGMP or DVMRP4. Create access lists specifying the range
of multicast group addresses allowed to cross the router.

Associate access lists with specific interfaces on different
routers.

http://technet2.microsoft.com/windowsserver/en/library/1eacd6d
c-f51e-474f-9a49-ba524a15d6691033.mspx?mfr=true
42
Finally we can see something
like ……
43