Life is a Roller Coaster

September 23, 2008

Multicast PIM-SSM (Source-Specific Multicast)

Filed under: Technical section — Tags: — adisubrata @ 12:12 AM

SSM indentifies traffic by both source and group address. Since the host already knows the S and G, RP will not need again. In order to support SSM, IGMPv3 should be used for all hosts facing interface. However, there is mechanism to map IGMPv2 and IGMPv1 to IGMPv3. Since my receiver in this lab is windows XP, I will use IGMP mapping from v2 to v3. As usual you can download the original configuration at the end of this post.

SSM group multicast address is limited to the IP address range from 232.0.0.0 to 232.255.255.255 and so I will configure SSM source address in this lab to 232.0.0.1 and 232.0.0.2.

After starting the multicast stream, there are two multicast stream flow to R1.

enugadi@M7i# run show pim join logical-router r1
Instance: PIM.master Family: INET

Group: 232.0.0.1
    Source: 10.0.5.200
    Flags: sparse,spt
    Upstream interface: fe-1/3/0.0            

Group: 232.0.0.2
    Source: 10.0.5.200
    Flags: sparse,spt
    Upstream interface: fe-1/3/0.0            

Group: 239.255.255.250
    Source: *
    RP: None
    Flags: sparse,rptree,wildcard
    Upstream interface: unknown (no route)

Instance: PIM.master Family: INET6

enugadi@M7i# run show multicast route logical-router r1 detail
Family: INET

Group: 232.0.0.1
    Source: 10.0.5.200/32
    Upstream interface: fe-1/3/0.0
    Session description: Source specific multicast
    Statistics: 133 kBps, 98 pps, 250856 packets
    Next-hop ID: 0
    Upstream protocol: PIM

Group: 232.0.0.2
    Source: 10.0.5.200/32
    Upstream interface: fe-1/3/0.0
    Session description: Source specific multicast
    Statistics: 78 kBps, 57 pps, 195151 packets
    Next-hop ID: 0
    Upstream protocol: PIM

Family: INET6

Let’s send IGMP host messages from receiver and check (S,G join) on R5, R3, and R1.

R5:

Sep 23 00:00:39.774356 PIM ge-0/0/1.7 SENT 10.0.2.1 -> 224.0.0.13 V2 JoinPrune to 10.0.2.2 holdtime 210 groups 1 sum 0xd11f len 34
Sep 23 00:00:39.774455 group 232.0.0.1 joins 1 prunes 0
Sep 23 00:00:39.774552   join list:
Sep 23 00:00:39.774602     source 10.0.5.200 flags sparse

R3:

Sep 23 00:00:39.794513 PIM ge-0/0/1.1 SENT 10.0.4.13 -> 224.0.0.13 V2 JoinPrune to 10.0.4.14 holdtime 210 groups 1 sum 0xcf13 len 34
Sep 23 00:00:39.794610 group 232.0.0.1 joins 1 prunes 0
Sep 23 00:00:39.794642   join list:
Sep 23 00:00:39.794685     source 10.0.5.200 flags sparse

R1:

Sep 23 00:01:39.835709 PIM ge-0/0/0.1 RECV 10.0.4.13 -> 224.0.0.13 V2 JoinPrune to 10.0.4.14 holdtime 210 groups 1 sum 0xcf13 len 34
Sep 23 00:01:39.835832 group 232.0.0.1 joins 1 prunes 0
Sep 23 00:01:39.835866   join list:
Sep 23 00:01:39.835907     source 10.0.5.200 flags sparse

Multicast receiver already receives multicast traffic from R1:

Let’s verify the multicast usages on R5, R3 and R1:

enugadi@M7i# run show multicast route logical-router r1 extensive
Family: INET

Group: 232.0.0.1
    Source: 10.0.5.200/32
    Upstream interface: fe-1/3/0.0
    Downstream interface list:
        ge-0/0/0.1
    Session description: Source specific multicast
    Statistics: 132 kBps, 97 pps, 279397 packets
    Next-hop ID: 262144
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 0

Group: 232.0.0.2
    Source: 10.0.5.200/32
    Upstream interface: fe-1/3/0.0
    Session description: Source specific multicast
    Statistics: 85 kBps, 63 pps, 223572 packets
    Next-hop ID: 0
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Pruned
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 0

Family: INET6

[edit]
enugadi@M7i# run show multicast route logical-router r3 extensive
Family: INET

Group: 232.0.0.1
    Source: 10.0.5.200/32
    Upstream interface: ge-0/0/1.1
    Downstream interface list:
        ge-0/0/0.7
    Session description: Source specific multicast
    Statistics: 155 kBps, 114 pps, 20163 packets
    Next-hop ID: 262143
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 0

Family: INET6

[edit]
enugadi@M7i# run show multicast route logical-router r5 extensive
Family: INET

Group: 232.0.0.1
    Source: 10.0.5.200/32
    Upstream interface: ge-0/0/1.7
    Downstream interface list:
        fe-1/3/1.0
    Session description: Source specific multicast
    Statistics: 138 kBps, 102 pps, 20675 packets
    Next-hop ID: 262142
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 0

Family: INET6

So multicast work as expected.

Below is the SSM mapping configuration on R5:

enugadi@M7i# show logical-routers r5 policy-options policy-statement ssm-policy
term 1 {
    from {
        route-filter 232.0.0.1/32 exact;
        route-filter 232.0.0.2/32 exact;
    }
    then accept;
}

[edit]
enugadi@M7i# show logical-routers r5 routing-options
autonomous-system 65412;
multicast {
    ssm-map ssm-mapping {
        policy ssm-policy;
        source 10.0.5.200;
    }
}

[edit]
enugadi@M7i# show logical-routers r5 protocols igmp
traceoptions {
    file debug-igmp;
    flag leave detail;
    flag report detail;
    flag query detail;
}
interface fe-1/3/1.0 {
    ssm-map ssm-mapping;
}

pim-ssm-config

Blog at WordPress.com.