RE: multicast rate limit

From: Victor Cappuccio (cvictor@protokolgroup.com)
Date: Tue Sep 26 2006 - 12:21:43 ART


Hello Chirs, let me see if I get this one correct this time, please sorry if
the email is too long, but the delete button works very well in these cases.

First: There is a link at Cisco.com that explains, the multicast rate-limit
command in a Geek detail
ftp://ftpeng.cisco.com/ipmulticast/config-notes/multicast-rate-limit.txt

Anyways when you add ip pim sparse to a interface (with/without neighbors)
the interface will add the 224.0.1.40

R1(config)#do show ip mroute | b Mode
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:01:27/00:02:19, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:01:27/00:02:19

R1(config-if)#do show ip pim rp map
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 150.1.5.5 (?), v2v1
    Info source: 150.1.5.5 (?), elected via Auto-RP, via bootstrap, priority
0, holdtime 181
         Uptime: 00:34:35, expires: 00:02:38

R1(config)#do show ip pim neigh
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode

No neighbors, I'm using in this solution BSR as the Protocol to distribute
RP Information throw out the multicast domain using 224.0.0.13 as proposed
by the RFC 2362
"
    Hello messages are sent periodically between PIM neighbors, every
    [Hello-Period] seconds. This informs routers what interfaces have
    PIM neighbors. Hello messages are multicast using address 224.0.0.13
    (ALL-PIM-ROUTERS group). The packet includes a Holdtime, set to
    [Hello-Holdtime], for neighbors to keep the information valid. Hellos
    are sent on all types of communication links.

"
so You would always see the 224.0.1.40 as Null for the incoming Interface
for BSR because it does really not use this Group for anything; For Auto-RP
Cisco uses a "Cisco-RP-Discovery" multicast packet with well-known address
"224.0.1.40" and a "Cisco-RP-Announce" which uses "224.0.1.39" to distribute
RP Information, using SM you need to use the ip pim autorp listener.

Now for the rate-limiting, Say you need to rate-limit the traffic forf
224.0.1.40 and 239.1.1.1, assuming that you need run ip pim sparse-dense
with AutoRp or Sparse-Mode with AutoRp Listener.

And Using this topology

     R1 ==========
                 FR = R5-lo0
F0/0-R2 ==========

R5 acting as Rp for groups 239.1.1.1 using Auto-RP with Sparse Mode Only, I
would rate-limit on R2 F0/0 for groups 239.1.1.1 to 30 Kbps and for group
224.0.1.40 to 100 Kbps

I'm simulating a server on R2 F0/0, to ping Mutlicast Group 239.1.1.1
I get response from R5 where the IGMP Group 239.1.1.1 is joined

R2(config)#do ping 239.1.1.1 rep 1 source f0/0

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 155.1.2.2

IP(0): s=155.1.2.2 (FastEthernet0/0) d=239.1.1.1 (Serial0/0) id=13, prot=1,
len=100(100), mforward
Reply to request 0 from 155.1.125.5, 52 ms
Reply to request 0 from 155.1.125.5, 72 ms

R2(config)#do show ip mroute 239.1.1.1 | be Mode
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:01:06/stopped, RP 150.1.5.5, flags: SPF
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

(150.1.2.2, 239.1.1.1), 00:00:39/00:03:03, flags: T
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:00:39/00:02:50

(155.1.2.2, 239.1.1.1), 00:01:06/00:03:06, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Registering
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:01:07/00:03:02

Since the traffic is coming IN the F0/0 I need to do this

R2(config)#access-list 12 permit 239.1.1.1
R2(config)#int f0/0
R2(config-if)#ip multicast rate-limit in group-list 12 30
R2(config-if)#do show ip mroute 239.1.1.1 | be Mode
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:02:31/stopped, RP 150.1.5.5, flags: SPF
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

(150.1.2.2, 239.1.1.1), 00:02:03/00:01:39, flags: T
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:02:03/00:02:25

(155.1.2.2, 239.1.1.1), 00:02:31/00:01:42, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Registering
                      Limit 30 kbps
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:02:32/00:03:23

The (155.1.2.2, 239.1.1.1) is now rate limited to 30 Kbps
I think that another valid solution is to rate-limit to the outbound
interface like this (but this depends on the English Test CCIE Lab)

R2(config-if)#int s0/0
R2(config-if)#ip multicast rate-limit out group-list 12 30
R2(config-if)#do show ip mroute 239.1.1.1 | be Mode
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:00:24/stopped, RP 150.1.5.5, flags: SPF
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

(155.1.2.2, 239.1.1.1), 00:00:24/00:03:13, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Registering
                      Limit 30 kbps
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:00:24/00:03:18, limit 30 kbps

R2(config-if)#

See now that Traffic is rate-limit as Inbound (f0/0) or Outbound (S0/0),
please If you could explain why the registering state I would appreciate it
(please see *** below this email).

Now for the 224.0.1.40

R2(config-if)#do show ip mroute 224.0.1.40 | be Mode
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:06:01/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:06:01/00:00:00

(150.1.5.5, 224.0.1.40), 00:05:08/00:02:50, flags: PLT
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

Notice that 224.0.1.40 is going out S0/0 so
R2(config-if)#access-list 13 permit 224.0.1.40
R2(config)#int s0/0
R2(config-if)#ip multicast rate-limit out group-list 13 100
R2(config-if)#do show ip mroute 224.0.1.40 | be Mode

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:07:43/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:07:43/00:00:00, limit 100 kbps

(150.1.5.5, 224.0.1.40), 00:06:50/00:02:08, flags: PLT
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

Please let me know if this information was useful, also please remember that
I could be so wrong, so please I would appreciate a correction on this.

***

R2(config-if)#do ping 239.1.1.1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:

*Mar 2 03:21:30.376: IP(0): s=155.1.2.2 (FastEthernet0/0) d=239.1.1.1
(Serial0/0) id=16, prot=1, len=100(100), mforward
Reply to request 0 from 155.1.125.5, 32 ms
Reply to request 0 from 155.1.125.5, 64 ms

R2(config-if)#do show ip mroute 239.1.1.1 | b Mode
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:00:39/stopped, RP 150.1.5.5, flags: SPF
  Incoming interface: Serial0/0, RPF nbr 155.1.125.5
  Outgoing interface list: Null

(155.1.2.2, 239.1.1.1), 00:00:39/00:03:27, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Registering
                      Limit 30 kbps
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:00:39/00:03:29, limit 30 kbps

R2(config-if)#
*Mar 2 03:21:38.381: IP(0): s=150.1.5.5 (Serial0/0) d=224.0.1.40 id=2597,
prot=17, len=52(48), mroute olist null
R2(config-if)#
*Mar 2 03:21:39.383: IP(0): s=150.1.5.5 (Serial0/0) d=224.0.1.39 id=2599,
prot=17, len=52(48), mroute olist null

Why using IP pim sparse mode with autorp listener I get the 2 mroute olist
null?? Is because I have no more neighbors Downstream ???

Many Thanks
Victor.

-----Mensaje original-----
De: nobody@groupstudy.com [mailto:nobody@groupstudy.com] En nombre de Chris
Broadway
Enviado el: Lunes, 25 de Septiembre de 2006 06:37 p.m.
Para: ccielab@groupstudy.com
Asunto: multicast rate limit

Group,

I have asked before about rate limiting multiple group-lists on a single
interface. I was experimenting around and saw something interesting. I
want to get your input.

The setup is a standard , sparse only, static RPs on each router setup. The
group is 239.1.1.1. I wanted to rate limit 239.1.1.1 and 224.0.1.40 on an
interface that did not have a downstream neighbor with PIM sparse mode
enabled. When I added both multicast rate-limit commands on the interface,
only one rate-limit showned up in the mroute table. That one was
239.1.1.1with the OID being the interface that did not have the down
stream
neighbor. The ip 224.0.1.40 had a prune flag.

Once I enabled PIM Sparse on the downstream neighbor, I was able to see
224.0.1.40 with the OID of the same interface the 239.1.1.1 had, and now
they were both rate limited.

If I removed PIM Sparse from the downstream router cleared the mroute table
of the router I was rate limiting on, I did not see the interface get
pruned. Therefore keeping the rate limiting for 224.0.1.40.

If I reboot the router though, I again saw only 239.1.1.1 rate limited and
224.0.1.40 was pruned.

My questions are...
1) Why do I see 239.1.1.1 being rate limited on an interface that has no
downstream router with PIM Sparse enabled?
2) Why do I not see 224.0.1.40 rate limit since 239.1.1.1 was being rate
limited?
3) If the prune message is making the rate limit not happen, how can I
unprune the interface if I do not have access to the downstream router?

Any assistance will be appreciated.

-Broadway



This archive was generated by hypermail 2.1.4 : Sun Oct 01 2006 - 16:55:41 ART