概述

    MAC 地址表记录了与本设备相连的设备的 MAC 地址、本设备上与该设备相连的设备的接口号以及所属的 VLAN ID。在转发数据时,设备根据报文中的目的 MAC 地址查询 MAC 地址表,快速定位出接口,从而减少广播。


MAC地址表项的生成方式

    MAC 地址表项的生成方式有两种:自动生成、手工配置。

    1. 自动生成MAC地址表项

    一般情况下, MAC 地址表是设备通过源 MAC 地址学习过程而自动建立的。设备学习 MAC 地址的方法如下:如果从某接口(假设为接口 A)收到一个数据帧,设备就会分析该数据帧的源 MAC 地址(假设为 MAC-SOURCE),并认为目的 MAC 地址为 MAC-SOURCE 的报文可以由接口 A 转发;如果 MAC 地址表中已经包含 MAC-SOURCE,设备将对该表项进行更新;如果 MAC 地址表中尚未包含 MAC-SOURCE,设备则将这个新MAC 地址以及该 MAC 地址对应的接口 A 作为一个新的表项加入到 MAC 地址表中。

    为适应网络的变化, MAC 地址表需要不断更新。 MAC 地址表中自动生成的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到刷新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前纪录被刷新,则该表项的老化时间重新计算。

    2. 手工配置MAC地址表项

    设备通过源 MAC 地址学习自动建立 MAC 地址表时,无法区分合法用户和黑客用户的报文,带来了安全隐患。如果黑客用户将攻击报文的源 MAC 地址伪装成合法用户的 MAC 地址,并从设备的其它接口进入,设备就会学习到错误的 MAC 地址表项,于是就会将本应转发给合法用户的报文转发给黑客用户。

    为了提高接口安全性,网络管理员可手工在 MAC 地址表中加入特定 MAC 地址表项,将用户设备与接口绑定,从而防止假冒身份的非法用户骗取数据。


MAC地址表项的分类

    MAC 地址表项分为:静态 MAC 地址表项、动态 MAC 地址表项和黑洞 MAC 地址表项。

   · 静态 MAC 地址表项由用户手工配置,表项不老化。

   · 动态 MAC 地址表项包括用户配置的以及设备通过源 MAC 地址学习得来的,表项有老化时间。

   · 黑洞 MAC 地址表项用于丢弃含有特定 MAC 地址的报文(例如,出于安全考虑,可以屏蔽某个用户接收报文),由用户手工配置,表项不老化。

    说明:用户手工配置的静态 MAC 地址表项和黑洞 MAC 地址表项不会被动态 MAC 地址表项覆盖,而动态MAC 地址表项可以被静态 MAC 地址表项和黑洞 MAC 地址表项覆盖。


基于MAC地址表的报文转发

    设备在转发报文时,根据 MAC 地址表项信息,会采取以下两种转发方式:

   · 单播方式:当 MAC 地址表中包含与报文目的 MAC 地址对应的表项时,设备直接将报文从该表项中的转发出接口发送。

   · 广播方式:当设备收到目的地址为全 F 的报文,或 MAC 地址表中没有包含对应报文目的MAC 地址的表项时,设备将采取广播方式将报文向除接收接口外的所有接口进行转发。