《CCNP SWITCH 300-115认证考试指南》——2.4节交换表

2.4 交换表
CCNP SWITCH 300-115认证考试指南
Catalyst交换机维护了几种类型的表,它们在交换过程中起到了非常重要的作用。这些表针对2层交换或MLS定制,并且被保存在高速存储中,因此交换机能够非常迅速地读取表项,并与数据帧(包)的许多字段进行并行比对。

2.4.1 内容可寻址存储
关键

所有的Catalyst交换机都使用CAM表来执行2层转发。当数据帧到达某个交换端口后,交换机会学习到数据帧的源MAC地址,并将其记录在CAM表中。除此以外,该数据帧所到达的端口和端口所在的VLAN也会被记录,并附加一个时间戳。如果之前已经在某个交换端口学习到的MAC地址出现于另一个端口,那么该MAC地址的条目和时间戳都会更新为最新的数据,而之前的条目则会被立即删除。如果MAC地址出现的端口及VLAN ID与CAM表中记录的一致,那么此时交换机仅仅更新条目的时间戳。

交换机通常需要维护一张很大的CAM表,以便支持更多目的地址的查找和转发。但是,在大型网络中,即便再大的表空间也无法保证能够存储所有的地址。为了更好地管理CAM表空间,不活跃的条目(一段时间内没有发起流量的地址)应当被老化。默认情况下,空闲CAM条目在被老化删除前会保留300秒。你可以使用下面的配置命令来更改默认的老化时间:

Switch(config)# mac address-table aging-time seconds
默认情况下,交换机是通过入站数据帧来动态学习MAC地址的。对于一些特殊的情景,MAC地址信息可能无法通过学习得到,那么你可以为交换机配置静态的CAM表条目。为了实现这一目标,你应当使用下面的配置命令:

Switch(config)# mac address-table static mac-address vlan vlan-id interface type
  mod/num

注意:
在配置CAM表时,你应当留意命令语法上的一些微小变化。对于Catalyst IOS 12.1(11)EA1及其之前版本,CAM表的配置命令使用关键字mac-address-table;而在最近的Cisco IOS版本中,配置命令改为使用关键字mac address-table(省略了第一个连字符)。但是Catalyst 4500和6500的IOS软件版本例外,依然使用关键字mac-address-table的格式。为了平滑地过渡,当前许多交换机平台同时支持两种不同的命令语法。
交换机从一个交换端口学习到了一台主机的MAC地址,但是如果主机的连接位置发生了变化,导致对应的MAC地址出现在了不同的交换端口上,那么此时交换机会做出怎样的反应?通常情况下,主机的原始CAM表条目会在空闲300秒后被老化删除,即便该地址已经从新的端口上学习到了。为了避免在这一期间(等待老化)出现重复的CAM表条目,交换机会立即清除那些已经存在,但是出现在了不同交换端口的MAC地址条目。这种行为是基于一种安全的假设:由于MAC地址具有唯一性,因此一台主机(假设主机只有一块网卡)不可能同时连接到多个交换端口,除非网络出现了故障。在既定的时间点上,如果一台交换机发现一个MAC地址能够从两个不同的端口学习到,那么它会产生一条错误消息,通告该MAC地址在不同的接口之间“抖动(flapping)”。

2.4.2 三重内容可寻址存储1
在传统的路由环境中,ACL能够选取、过滤或控制特定的流量。访问控制列表由一系列访问控制条目(ACE)组成,并按照编号顺序对流量进行条件评估。访问控制列表在对数据流量进行评估(或匹配)时会占用一定的时间,导致数据包的转发延迟因此增加。

与上述情况不同的是,在多层交换中,ACL要求的所有比对过程完全由TCAM执行。这是一种基于硬件的评估方式,拥有近乎线性的比对速率。借助TCAM的出色性能表现,交换机仅需执行一次表查找行为,便能够评估一个数据包与整个访问控制列表的条件。大部分的交换机都拥有多个TCAM表,因此入站和出站安全、QoS ACL等策略允许同时被评估。换言之,交换机能够做到并行地作出2层和3层的转发决策。

Catalyst IOS软件的TCAM操作需要以下两个组件提供支持。

特性管理器(FM)——在访问控制列表创建或配置完成后,特性管理器会把ACE编译或合并为TCAM表的条目。交换机评估TCAM表的速度可以线性等同于数据帧的转发速度。
交换数据库管理器(SDM)——对于一些Catalyst交换机平台而言,TCAM表会被划分为几个支持不同功能的区域。SDM负责配置或调整TCAM子区域,为特定的交换功能提供充足的存储空间(在Catalyst 4500和6500平台上,TCAM是固定的,无法被重新划分)。
1.TCAM结构
从概念上而言,TCAM是CAM表的一种扩展。回顾上文,交换机可以利用一个索引值或钥匙(通常为MAC地址)与CAM表执行比对,并返回一个结果值(通常是某个交换端口和VLAN ID)。交换机查找CAM表的速度非常快,并且总是基于由二进制数值(0或1)组成的精确索引值进行比对2。

TCAM同样使用表查找操作,但是相比于CAM表查找,这种查找要复杂和抽象得多。例如,二进制值(0和1)组成了表查找的索引,但是TCAM还使用掩码值来决定索引中哪些比特位是需要关注的。这种高效的方式使得一个真正的查找索引可能存在3种输入的比特值:0、1和X(无关紧要)——即三重或三元组。

TCAM的条目由Value(值)、Mask(掩码)和Result(结果)(VMR)三部分组成。数据帧或数据包头部的字段可用于比对TCAM表,即这些字段与Mask和Value对进行比对,然后得到Result。下面将对TCAM的查找比对过程进行简要描述。

Value:长度固定为134个比特位,由源和目的地址,以及其他一些相关的协议信息组成——所有内容都可用于比对。串联构成Value的信息种类取决于所配置的访问控制列表的类型,如表2-2所示。TCAM表中的Value组合直接等于给定ACE条件的取值,如地址、端口或其他协议信息,最长支持134个比特3。

Mask:与Value一样,拥有完全相同的长度(134比特)、格式和比特顺序。Mask只是用于选择Value具有意义的比特。这与IP地址及掩码的关系非常相似,例如,掩码为1的对应Value位代表必须完全匹配;而掩码为0的对应Value位则代表无需关心。TCAM中所使用的掩码与ACE所配置的掩码完全一致。
Result:一系列数值,代表了在TCAM表查找完成之后需要执行的行为。尽管传统的访问控制列表只包含允许或拒绝的结果,但是TCAM查找的输出值(Result)却可以提供更为丰富的结果或行为。例如,查找的结果可能是代表允许或拒绝的二进制值、QoS限速的索引值,或是下一跳路由信息的指针等。
注意:
这里仅仅讨论了在IPv4环境下的TCAM。如果交换机使用了IPv4- IPv6的双栈SDM模板,那么TCAM的表空间可能会存在一些限制。由于IPv6地址的长度为128比特,因此TCAM必须对一些地址进行压缩,才能将其存储到条目中。
关键

TCAM总是根据Mask(掩码)进行组织排列的,并且一个Mask需要与8个Value组合建立关联4。例如,Catalyst 6500系列交换机的TCAM(安全ACL和QoS ACL的TCAM各自独立)最大拥有4096个Mask和32768个Value。这样做有利于同时评估每一个Mask-Value对,即在一次表查找中完成最佳或最长匹配。

2.TCAM实例
图2-5说明了TCAM是如何构建和使用的。需要说明的是,这个简单的实例可能与特性管理器(FM)实际产生的编译结果有所出入,因为特性管理器可能为了达成某些TCAM算法的要求,优化或改写ACE。

access-list 100 permit tcp host 192.168.199.14 10.41.0.0 0.0.255.255 eq telnet
access-list 100 permit ip any 192.168.100.0 0.0.0.255
access-list 100 deny udp any 192.168.5.0 0.0.0.255 gt 1024
access-list 100 deny udp any 192.168.199.0 0.0.0.255 range 1024 2047

实例中,扩展的访问控制列表(access-list 100)在配置完成后,被合并到TCAM条目中。首先,Mask(掩码)值必须和访问控制列表中定义的一致。也就是说,TCAM条目中的Mask值必须覆盖所有ACE想要比对的地址值和相应的地址掩码值。所有其他Mask比特可以填写为“x”,代表着无关紧要的状态,因为这些比特并未使用。

这里的访问控制列表只包含了3个不同的掩码:一个用于匹配源IP地址的全部32个比特(即ACE中地址掩码为0.0.0.0或关键字host);一个用于匹配目的地址的16个比特(ACE中地址掩码为0.0.255.255),另一个用于匹配目的地址的24个比特(ACE中地址掩码为0.0.0.255)。ACE中所使用的关键字any代表“匹配所有”或“无关紧要”。

3个不同的掩码值被填入TCAM条目的Mask一栏。接着,对于这3个掩码值,所有可能的Value组合都需要与之匹配。例如,32个比特的源IP掩码(Mask 1)只能在第一条ACE中找到,即源IP地址为192.168.199.14和目的地址为10.41.0.0。Mask 1其余的掩码内容是目的地址掩码0.0.255.255,已经不适用于其他的ACE语句。因此,第一条ACE语句中定义的源和目的地址被放进了与Mask 1关联的对应Value组合的分栏内。Mask 2(0.0.255.255)可以匹配3个Value组合:目的地址192.168.100.0、192.168.5.0和192.168.199.0。所有这些地址被放入了与Mask 2相关联的Value组合的分栏内。重复这一过程,直至所有的ACE都被合并到TCAM条目中。

如果一个Mask关联的第8个Value组合空间也被填满,那么下一个可适用相同掩码的Value组合值则必须关联到新的Mask条目。因此,在确保不会发生溢出的情况下,交换机总是尝试把所有的ACE填入可用的Mask和Value组合条目中。

3.TCAM中的端口操作
对于4层端口的比对操作,你可能注意到了这样一个事实:只有ACE语句要求精确匹配时,条件才能对应基于Mask和Value的严格匹配(端口操作关键字为eq,或者没有4层端口操作符)。例如,确切定义了地址值、地址掩码和端口编号的ACE语句:

access-list test permit ip 192.168.254.0 0.0.0.255 any
access-list test permit tcp any host 192.168.199.10 eq www
当ACE使用了端口操作符,并且需要进行逻辑比较时,应当如何处理呢?例如下面的ACE语句:

access-list test permit udp any host 192.168.199.50 gt 1024
access-list test permit tcp any any range 2000 2002
对于这样的情况,在Mask和Value组合之间仅使用一个简单的逻辑操作(是/否)已经不能产生期望的结果了。TCAM还提供了一种机制用于执行4层端口的操作或比对,而且同样可以在一次表查找的过程中完成。如果ACE包含了端口操作符,例如gt、lt、neq或range,那么特性管理器(FM)会在编译TCAM条目时,附加一个包含操作符和运算对象的逻辑操作单元(LOU)寄存器。需要注意的是,TCAM只支持有限数量的LOU。如果使用了逻辑比较操作符的ACE数量超过了可用的LOU数量,那么特性管理器则会把这些ACE分解为多条只使用常规匹配条件的ACE(使用eq操作符)。

在图2-5中,两条ACE要求执行4层端口的操作:

一条要求匹配所有UDP目的端口大于1024的数据包;
一条要求匹配所有UDP目的端口范围为1024~2047的数据包。
特性管理器检查所有ACE的4层端口操作条件,然后把这些语句编译到LOU寄存器对中。交换机在对数据包进行评估时,可以随时加载LOU寄存器的内容,并且独立于其他ACE参数。如果其他ACE需要执行相同的比较,那么LOU的内容可以被重复使用。当LOU加载完毕后,TCAM会在需要的位置进行调用。图2-5中拥有两个LOU寄存器值:A1和B1:2对。TCAM内可用的LOU数量是非常有限的(事实上,这个数量很少),所以你在配置包含4层端口逻辑操作的ACE时应当谨慎一些。

1译者注:本节内容对于一般读者而言非常抽象,并且难于理解。事实上,作者试图解释多层交换是如何利用TCAM来执行高级转发决策的,但是这些内容涉及了交换机内部硬件编程的基本思想。希望读者在阅读本节时能够在自己的头脑中化抽象为具体,并建立自己的理解。
2译者注:交换机在对CAM表进行比对时,返回的结果非常简单和确定,即找到对应的条目,按照条目信息转发数据帧;没有找到对应的条目,丢弃数据帧。另外,CAM表的查找要求完全匹配。
3译者注:Value组合是指根据ACE限定条件而最终确定的Value取值,比如一个Value组合等于源IP地址、目的IP地址和目的端口三者的组合结果。
4译者注:这里是指一个Mask可用于匹配8个Value组合,因为掩码取值的可能性要比待评估的值少。例如,IPv4地址长度为32个比特位,理论上存在232种可能的取值。但是掩码的取值必须连续,因此一个掩码适用于多个IP地址是可以理解的。TCAM表中Mask的取值等于访问控制列表中所有掩码值的串联,是一种分段的连续取值,相比于Value的取值灵活性要低。综上所述,为了更加有效地组织TCAM表,并提高评估效率,Cisco使用一个Mask关联8个Value组合的规则。

时间: 2024-10-06 11:57:55

《CCNP SWITCH 300-115认证考试指南》——2.4节交换表的相关文章

《CCNP安全Secure 642-637认证考试指南》——6.10节填空

6.10 填空 CCNP安全Secure 642-637认证考试指南 1. is an IEEE standard that provides a framework for authenticating and authorizingnetwork devices connected to LAN ports and for preventing access in theevent that the authentication fails. 标准是一种基于端口的访问控制架构,它对连接到局域

《CCNP安全Secure 642-637认证考试指南》——6.1节摸底测验

6.1 摸底测验 CCNP安全Secure 642-637认证考试指南 摸底测验有助于读者了解自己目前的知识水平并制订相应的学习计划.如果需要从头至尾阅读本章内容,则可以暂时跳过摸底测验. 摸底测验包括10道题,均取自本章"基础知识点"中的内容.读者可以将该测验作为分配学习时间的辅助手段. 表6-1列出了本章的主要知识点以及相应的摸底测验题号. 注意: 摸底测验旨在评估读者对本章内容的掌握程度.如果答错了某道题目或对某道题目有疑问,请将其标记为错误.不要将没有把握的题目一笔带过,这样会

《CCNP安全VPN 642-648认证考试指南(第2版)》——1.3节支持VPN的协议

1.3 支持VPN的协议 CCNP安全VPN 642-648认证考试指南(第2版) 正如本小节的标题所点明的,下面将介绍不同的协议,这些协议可以独立工作,也可以一起工作,它们为远程用户和远程站点访问公司的内部资源提供了一个安全的隧道和数据传输的方法.不过,这种访问方法是以一种无需危害内部安全策略的方式实现的.当你学习本书的其余的章节和配置示例时,请注意每种协议的角色和它们是如何工作的,从而提供了VPN连接的整体方法. 1.3.1 对称和非对称密钥算法 下面的小节将讨论IPSec.SSL/TLS和

《CCNP安全防火墙642-618认证考试指南》——1.6节选择ASA设备型号

1.6 选择ASA设备型号CCNP安全防火墙642-618认证考试指南Cisco ASA产品系列共包含7种不同型号.在防火墙考试中可能会要求考试者根据高级设计标准来挑选适合的ASA设备型号.对于各种不同的设备型号,如何去了解其全部的性能参数呢?简单来说,从型号名称来看,其数值越大就代表设备能力和性能越好. 本节简要地描述了每种ASA设备型号的特点,这些型号都支持上文所介绍的ASA特性,但可能由于特性许可的限制导致存在一些少许的差异.在特定环境下选择ASA设备型号时,主要是关注不同的环境类别及性能

《CCNP安全Secure 642-637认证考试指南》——2.8节填空

2.8 填空 CCNP安全Secure 642-637认证考试指南 1.Politics within an organization can cause a lack of within the security policies.企业或组织内部的争斗倾轧可能导致安全策略缺乏 . 2.A good disaster recovery plan must include contingencies for both and security breaches.一份完备的灾难恢复计划必须同时考虑

《CCNP安全Secure 642-637认证考试指南》——8.3节路由式数据面安全技术

8.3 路由式数据面安全技术 CCNP安全Secure 642-637认证考试指南 接下来,我们将讨论各种安全技术的原理及其实施方法. 8.3.1 访问控制列表 访问控制列表(Access Control List,ACL)是一种指令列表,一般由若干个ACL条目(ACL entry)组成,用于控制进出路由器接口的数据包.当数据包到达接口时,路由器自上而下搜索ACL中是否存在匹配的条目,以决定允许还是拒绝数据包通过. ACL可以防御多种攻击,与其他安全措施配合使用能进一步提高网络的安全性.无论是中

《CCNP安全VPN 642-648认证考试指南(第2版)》——5.10节配置无客户端的SSL VPN的单点登录

5.10配置无客户端的SSL VPN的单点登录 CCNP安全VPN 642-648认证考试指南(第2版) 单点登录(SSO)可以解决用户在第一次成功地登录到SSL VPN后,当访问内部资源时不得不重新输入他们的登录凭证的问题.ASA在远程用户和服务器之间承当验证代理的角色以实现SSO的功能.当用户在SSL VPN的登录页面上提交他们的凭证后,ASA将账户信息发送给验证/应用程序服务器,如果验证成功的话,服务器返回一个cookie.接着ASA使用这个cookie作为用户访问被SSO服务器保护的域资

《CCNP安全VPN 642-648认证考试指南(第2版)》——8.4节配置第一个全隧道的AnyConnect SSL VPN解决方案

8.4配置第一个全隧道的AnyConnect SSL VPN解决方案 CCNP安全VPN 642-648认证考试指南(第2版) 关键在ASA设备上配置第一个全隧道的AnyConnect SSL VPN时,在远程用户连接到设备并且开始使用连接访问内部资源之前,你必须先完成一些步骤. IP地址:ASA设备的外部接口和内部接口需要一个IP地址(堡垒区域[DMZ]或者其他内部网络的接口可能也需要一个IP地址).因此,你必须对公司的IP地址策略有适当的了解,以完成本步骤并且给设备接口分配所需的地址. 启动

《CCNP安全Secure 642-637认证考试指南》——2.4节网络攻击类型

2.4 网络攻击类型 CCNP安全Secure 642-637认证考试指南 在学习各种具体的网络攻击之前,读者必须首先了解网络攻击的类型.请注意,攻击类型由攻击的目的而非攻击者的动机决定.接下来,我们将讨论3种主要的网络攻击,每种攻击都有其各自的目的. 侦察攻击(reconn aissanceattack):这种攻击不会对系统或网络造成直接破坏,其目的在于刺探网络使用的地址范围.系统与服务.攻击者必须在一定程度上"抵近"系统或网络以实施侦察,但一般不会在侦察时实施破坏. 访问攻击(ac

《CCNP安全防火墙642-618认证考试指南》——2.8节重启ASA设备

2.8 重启ASA设备 CCNP安全防火墙642-618认证考试指南 关键只要flash存储中拥有足够的空间,ASA设备便能够存放多个操作系统镜像.但是任意时刻的防火墙都只能运行一个系统镜像.因此,若防火墙拥有多个可用镜像,则需要对运行的镜像文件进行选择.使用下面的命令选择启动镜像: 2.8.1 下次重启前升级ASA系统 通过指定启动镜像的位置,ASA设备能够在多个不同启动镜像文件之间进行切换,从而达到升级操作系统版本的目的.系统升级步骤可以简要概括为如下. 步骤1 将新的操作系统镜像文件复制到