Tables Used in Switching
Catalyst
switches maintain several types of tables to be used in the switching process. The
tables are tailored for Layer 2 switching or MLS and are kept in very fast
memory so that many fields within a frame or packet can be compared in
parallel.
Content-Addressable
Memory
All
Catalyst switch models use a CAM table for Layer 2 switching. As frames arrive
on switch ports, the source MAC addresses are learned and recorded in the CAM
table. The port of arrival and the VLAN both are recorded in the table, along
with a time stamp. If a MAC address learned on one switch port has moved to a
different port, the MAC address and time stamp are recorded for the most recent
arrival port. Then, the previous entry is deleted. If a MAC address is found
already present in the table for the correct arrival port, only its time stamp
is updated.
Switches
generally have large CAM tables so that many addresses can be looked up for
frame forwarding. However, there is not enough table space to hold every
possible address on large networks. To
manage the CAM table space, stale entries (addresses that have not been
heard from for a period of time) are aged out. By default, idle CAM table entries
are kept for 300 seconds before they are deleted. You can change the
default setting using the following configuration command:
Switch(config)# mac
address-table aging-time seconds
By default, MAC addresses are
learned dynamically from incoming frames. You also can configure static CAM
table entries that contain MAC addresses that might not be learned otherwise.
To do this, use the following configuration command:
Switch(config)# mac
address-table static mac-address vlan vlan-id interface
type mod/num
Exactly
what happens when a host’s MAC address is learned on one switch port, and then
the host moves so that it appears on a different switch port? Ordinarily, the
host’s original CAM table entry would have to age out after 300 seconds, while
its address was learned on the new port. To avoid having duplicate CAM table
entries during that time, a switch purges any existing entries for a MAC
address that has just been learned on a different switch port. This is a safe
assumption because MAC addresses are unique, and a single host should never be
seen on more than one switch port unless problems exist in the network. If a
switch notices that a MAC address is being learned on alternating switch ports,
it generates an error message that flags the MAC address as “flapping” between interfaces.
Ternary
Content-Addressable Memory
In
traditional routing, ACLs can match, filter, or control specific traffic.
Access lists are made up of one or more access control entities (ACEs) or
matching statements that are evaluated in sequential order. Evaluating an
access list can take up additional time, adding to the latency of forwarding
packets.
In multilayer
switches, however, all the matching process that ACLs provide is implemented in
hardware called a TCAM. With a TCAM, a packet can be evaluated against an
entire access list within a single table lookup. Most switches have multiple
TCAMs so that both inbound and outbound security and QoS ACLs can be evaluated
simultaneously, or entirely in parallel with a Layer 2 or Layer 3 forwarding
decision.
The
Catalyst IOS Software has two components that are part of the TCAM operation:
■ Feature Manager (FM): After an
access list has been created or configured, the Feature Manager software
compiles, or merges, the ACEs into entries in the TCAM table. The TCAM then can
be consulted at full frame-forwarding speed.
■
Switching Database
Manager (SDM): On
some Catalyst switch models, the TCAM is partitioned into several areas that
support different functions. The SDM software configures or tunes the TCAM
partitions, if needed, to provide ample space for specific switching functions.
(The TCAM is fixed on Catalyst 4500 and 6500 platforms and cannot be
repartitioned.)
TCAM Structure
The TCAM is an extension of the CAM
table concept. Recall that a CAM table takes in an index or key value (usually
a MAC address) and looks up the resulting value (usually a switch port or VLAN
ID). Table lookup is fast and always based on an exact key match consisting of
binary numbers made up of two possible values: 0 and 1 bits.
TCAM also uses a table-lookup
operation but is greatly enhanced to allow a more abstract operation. For
example, binary values (0s and 1s) make up a key into the table, but a mask
value also is used to decide which bits of the key are actually relevant. This effectively
makes a key consisting of three input values: 0, 1, and X (do not care) bit values—a
threefold or ternary combination.
TCAM entries are composed of Value,
Mask, and Result (VMR) combinations. Fields from frame or packet headers are
fed into the TCAM, where they are matched against the value and mask pairs to
yield a result. As a quick reference, these can be described as follows:
■
Values are always 134-bit quantities,
consisting of source and destination addresses and other relevant protocol
information—all patterns to be matched. The information concatenated to form
the value depends on the type of access list, as shown in Below Table. Values
in the TCAM come directly from any address, port, or other protocol information
given in an ACE, up to a maximum of 134 bits.
TCAM Value Pattern Components
Access List Type
|
Value and Mask Components (Number
of Bits)
|
Ethernet
|
Source MAC (48), destination MAC
(48), EtherType (16)
|
ICMP
|
Source
IP (32), destination IP (32), protocol (16), ICMP code
(8),
ICMP type (4), IP type of service (ToS) (8)
|
Extended
IP using TCP/UDP
|
Source
IP (32), destination IP (32), protocol (16), IP ToS (8),
source
port (16), source operator (4), destination port (16),
destination
operator (4)
|
Other IP
|
Source
IP (32), destination IP (32), protocol (16), IP ToS (8)
|
IGMP
|
Source
IP (32), destination IP (32), protocol (16), IP ToS (8),
IGMP
message type (8)
|
■
Masks are also 134-bit quantities, in exactly the same format, or bit
order, as the values. Masks select only the value bits of interest; a mask bit
is set to mark a value bit to be exactly matched or is not set to mark a value
bit that does not matter. The masks used in the TCAM stem from address or bit
masks in ACEs.
■
Results are numeric values that represent what action to take after the
TCAM lookup occurs. Whereas traditional access lists offer only a permit or
deny result, TCAM lookups offer a number of possible results or actions. For
example, the result can be a permit or deny decision, an index value to a QoS
policer, a pointer to a next-hop routing table, and so on.
The TCAM
is always organized by masks, where each unique mask has eight value patterns associated
with it. For example, the Catalyst 6500 TCAM (one for security ACLs and one for
QoS ACLs) holds up to 4096 masks and 32,768 value patterns. The trick is that
each of the mask-value pairs is evaluated simultaneously, or in parallel,
revealing the best or longest match in a single table lookup.
Please FOLLOW the blog to get notifications.