二层交换

以太网帧根据目的MAC地址在二层交换网络中转发,直到被发送到对端设备。

二层转发原理 #

基于源MAC地址的学习 #

交换机在接收到数据帧后,将源MAC与接口的映射加入到MAC表中。

基于目的MAC地址的转发 #

交换机在接收到数据帧后,将目的MAC地址和MAC地址表进行匹配,匹配到的MAC地址表项的接口即为数据帧的出接口。

MAC表 #

MAC表的Key值通常为MAC地址+VLAN。action有从端口发出、丢弃等。

mac条目分为静态MAC和动态MAC。

静态MAC不会被老化,为管理员手动配置。

动态MAC在未活跃一段时间后会被老化删除,为动态学习的MAC地址。

MAC学习 #

MAC学习分为硬件学习和软件学习。

硬件学习自动添加到mac表,然后再上报cpu。

软件学习新mac上报cpu,由cpu自行添加mac条目,相同的mac条目会被过滤,不会重复上报。

MAC老化 #

MAC老化机制有Poll和Timeout两种。

Poll模式 #

Poll模式下,mac条目有一个hit标记。

报文命中MAC表会更新hit为1。

每一个老化周期,会将hit为1的条目更新为0,将hit为0的条目删除。

综上,MAC条目的老化时间为1~2个老化周期。

同MAC学习,硬件MAC老化先老化再通知cpu,软件老化先通知cpu,由cpu自行删除mac条目。

Timeout模式 #

MAC条目有一个ttl值,当报文命中时,会重置该值。

当ttl变为0时,条目由Active变为Inactive,并通知cpu删除条目。

MAC漂移 #

MAC漂移即MAC地址绑定的出接口由端口A变为端口B,通常在网络中存在环路时出现。

可以通过设置端口的漂移优先级限制MAC漂移,可以由低优先级漂移到高优先级,不能由高优先级漂移到低优先级。

MAC学习数目限制 #

可以限制单个端口、VLAN、链路聚合、隧道的最大MAC学习条目,避免被单个端口把整个MAC表占满,导致其他端口无法正常MAC学习。

超限之后的动作可以是permit、drop、copy-to-cpu,即MAC表达到上线后,报文的smac没有命中mac表进行的动作。

MAC表动作 #

mac条目的action除了指定出接口外,还可以是源丢弃、目的丢弃、copy-to-cpu、走三层流程等。