[c-nsp] Operational impact of switching from ingress to egress replication mode
Phil Mayers
p.mayers at imperial.ac.uk
Tue Sep 21 17:12:43 EDT 2010
On 09/21/2010 09:58 PM, John Neiberger wrote:
> Sorry. I also meant to say it's a Sup 720-3BXL. Based on what I can
> see on CCO, that thing can forward 400 Mpps of ipv4 traffic. Does that
> mean that I can set a rate limit of, say, 300 Mpps and somewhat guard
> the CPU from meltdown for a few moments?
I wish! 300Mpps hitting the CPU of a sup720 will kill it stone dead. It
has (two) 600MHz CPUs, and they will not survive such a load.
There's lots of info in this in the archives, but in brief: the
sup720/pfc3 architecture forwards most packets in hardware. Some packets
are however punted to CPU; these include:
1. Packets which need ARP resolution ("glean")
2. Multicast packets, which are trickled to the CPU so the CPU can see
them and build (and refresh) hardware forwarding state
3. ACL and uRPF denies, which are trickled to the CPU so it can
maintain counters
4. Various other traffic like TTL failures, needing ICMP
5. Obviously, packets address to the CPU (routing traffic, layer 2 PDUs)
Because the CPUs on these boxes are very, very puny, you want to limit
what hits the CPU. There are two methods available:
1. The "mls rate-limit" commands; these will place a simple numeric
rate cap on certain types of traffic, and is done in hardware. There's
no prioritisation, but for certain types of traffic (e.g. TTL failures)
you can and should IMHO set low-ish limits. You SHOULD NOT use the
"general" CEF limiter; because you should use...
2. CoPP - basically QoS on traffic punted to CPU. This is superior
because you can write ACLs defining what is most important to you, with
very granular control over policy. It suffers a couple of problems -
broadcast/multicast and non-IP traffic are done in software, and it
can't distinguish between glean and receive traffic, making a
default-deny policy tricky.
In short, common advice seems to be:
1. Set low limits on the mls limiters for TTL & MTU failure, and
optionally ACL-drop ICMP unreach:
mls rate-limit unicast ip icmp unreachable acl-drop 0
mls rate-limit all ttl-failure 100 10
mls rate-limit all mtu-failure 100 10
2. Use CoPP for everything else; DO NOT use the glean or cef receive
limiter
Search the archives and the Cisco docs for more info; it's not something
I can summarise in 5 minutes I'm afraid.
In your case, if you are going to perform a task which will potentially
punt a lot of multicast traffic to the CPU, I was suggesting that there
are MLS limiters which will reduce this; see my earlier email; though we
run with the defaults, which are (quite) high PPS values!
sh mls rate-limit | inc MC
MCAST NON RPF Off - - -
MCAST DFLT ADJ On 100000 100 Not sharing
MCAST DIRECT CON Off - - -
MCAST PARTIAL SC On 100000 100 Not sharing
More information about the cisco-nsp
mailing list