LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)

MAC表简介
介绍MAC表的定义、由来和作用。
MAC(MediaAccessControl)地址用来定义网络设备的位置。MAC地址由48比特长、12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,24到47位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号。

MAC地址可以分为3种类型:

  1. 物理MAC地址:这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址;
  2. 广播MAC地址:全1的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),用来表示LAN上的所有终端设备;
  3. 组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表LAN上的一组终端。其中以01-80-c2开头的组播MAC地址叫BPDU MAC,一般作为协议报文的目的MAC地址标示某种协议报文。

MAC地址表(MAC地址、接口号、VLAN ID,因为VLAN ID默认是1,所以默认不显示)
设备内有一张MAC地址表,简称MAC表。MAC表记录了相连设备的MAC地址、接口号以及所属的VLANID之间的对应关系。在转发数据时,交换设备根据报文中的目的MAC地址和VLANID查询MAC地址表,快速定位出接口,从而减少广播。

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

  1. 单播方式:当MAC地址表中包含与报文目的MAC地址对应的表项时,设备直接将报文从该表项中的转发出接口发送。
  2. 广播方式:当设备收到的报文为广播报文、组播报文或MAC地址表中没有包含对应报文目的MAC地址的表项时(未知单播),设备将采取广播方式将报文向除接收接口外同一VLAN内的所有接口转发。(泛洪)

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

  1. 动态表项由接口通过源MAC地址学习获得,表项有老化时间(理论300s,短则300s,多则599s)。
  2. 静态表项由用户手工配置,并下发到各接口板,表项不老化。
  3. 黑洞表项用于指示丢弃含有特定源MAC地址或目的MAC地址的数据帧,由用户手工配置,并下发到各接口板,表项不老化。
    Mac-address blackhole mac地址 vlan xx 将MAC地址设置为黑洞MAC,交换机收到此MAC发来的信息,直接丢弃
    在系统复位、接口板热插拔或接口板复位后,动态表项会丢失,而保存的静态表项和黑洞表项不会丢失。

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

  1. 自动生成MAC表项
    一般情况下,MAC表是设备通过源MAC地址学习过程而自动建立的。例如,当与SwitchA连接的HostB向SwitchA发送数据时,SwitchA从数据帧中解析出源MAC地址(即HostB的MAC地址),连同接口号添加到MAC地址表中。以后SwitchA接收到发送给HostB的数据,通过查询MAC表就可以得到正确的发送接口。
    MAC表中自动生成的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到刷新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被刷新,则该表项的老化时间重新计算。
  2. 手工配置MAC表项
    设备通过源MAC地址学习自动建立MAC地址表时,无法区分合法用户和黑客用户的报文,带来了安全隐患。如果黑客用户将攻击报文的源MAC地址伪装成合法用户的MAC地址,并从设备的其它接口进入,设备就会学习到错误的MAC表项,于是就会将本应转发给合法用户的报文转发给黑客用户。
    为了提高接口安全性,网络管理员可手工在MAC表中加入静态MAC地址表项,将用户与接口绑定,从而防止假冒身份的非法用户骗取数据。
    通过手工配置黑洞MAC,可以限制指定用户的流量不能从设备通过,防止非法用户的攻击。
    手工配置的MAC表项优先级高于自动生成的表项。

MAC地址老化:(300s-599s之间的一个值)
为适应网络的变化,MAC表需要不断更新。MAC表中自动生成的表项(即动态表项)并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到刷新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被刷新,则该表项的老化时间重新计算。
图1MAC地址老化示意图
LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)_第1张图片

如上图所示,设备MAC地址老化时间设置为T。在t1时刻有源MAC地址为00e0-fc00-0001、VLAN为1的报文从某接口进入。假定该接口已加入VLAN1。如果之前MAC地址表不存在关于(MAC:00e0-fc00-0001,VLAN:1)的任何种类表项,那么这个地址就会作为动态MAC地址表项学习到地址表里,同时该表项的命中标志位被置1。
设备周期性(每经过T时间)地对所有学习到的动态MAC地址表项进行检查。如在t2时刻,检查到动态表项(MAC:00e0-fc00-0001,VLAN:1)的命中标志位为1,则将该表项的命中标志位置为0,且不删除这条表项。如果在t2时刻和t3时刻之间有源MAC地址为00e0-fc00-0001、VLAN为1的报文进入设备,则将命中标志重新设置为1。如果在t2时刻和t3时刻之间没有这种报文进入设备,那么该表项的命中标志位会一直保持为0。在t3时刻,设备检查到该表项的命中标志位为0,认为该表项的老化时间到达,将删除此条表项。
如上所述,通过自动老化,一条动态表项在MAC地址表中存在的最短时间是设备所配置的老化时间T到2T之间。
设备MAC地址老化时间可设置,通过设置此时间,可以灵活控制动态学习到的MAC表项在MAC地址表中存在的时间。

关闭学习MAC能力,限制MAC地址数
由于MAC表的容量是有限的,当黑客伪造大量源MAC地址不同的报文并发送到设备后,设备上的MAC地址表项资源可能会被耗尽。此时即使它收到正常的报文,也无法学习到报文中的源MAC地址。
为了解决以上问题,设备提供了两种方式对MAC地址学习进行限制:

  1. 基于VLAN、流行为或接口关闭学习MAC能力
  2. 基于VLAN或接口进行MAC地址数限制
    关闭学习MAC能力后,则接口将不再自动学习到新的动态MAC表项,之前学习到的动态表项可以等待老化时间到达后自动删除,也可以手工执行删除MAC命令,将这些表项删除。
    限制学习的MAC地址数,即限制VLAN或接口学习动态MAC表项的最大数目。当VLAN或接口学习到的MAC表项达到最大数目,则该VLAN或接口将不能再学习新的MAC表项,直到它以前学习到的MAC表项老化。
    多数情况下,一个黑客发送的攻击报文是从同一个接口进入设备,在这个接口上配置关闭学习MAC能力或配置MAC地址学习限制,可避免攻击报文将整个设备的MAC地址表填满。

端口安全
介绍
端口安全(Port Security)功能将设备接口学习到的MAC地址变为安全MAC地址(包括安全动态MAC、安全静态MAC和Sticky MAC),可以阻止非法用户通过本接口和交换机通信,从而增强设备安全性。

端口学习安全MAC地址的方式:
安全MAC地址分为:安全动态MAC、安全静态MAC与Sticky MAC。定义及区别如下:

  1. 安全动态MAC地址:使能端口安全而未使能Sticky MAC功能时学习到的MAC地址。缺省情况下,安全动态MAC地址不会被老化,设备重启后安全动态MAC地址会丢失,需要重新学习。
  2. 安全静态MAC地址:使能端口安全时手工配置的静态MAC地址,安全静态MAC地址不会被老化。
  3. Sticky MAC地址:使能端口安全后又使能Sticky MAC功能后学习到的MAC地址。Sticky MAC地址不会被老化,保存配置后重启设备,Sticky MAC地址不会丢失,无需重新学习。(动态mac配置好以后使能sticky mac功能)
    未使能端口安全功能时,设备的MAC地址表项可通过动态学习或静态配置。当某个接口使能端口安全功能后,该接口上之前学习到的动态MAC地址表项会被删除,之后学习到的MAC地址将变为安全动态MAC地址,此时该接口仅允许匹配安全MAC地址或静态MAC地址的报文通过。若接着使能Sticky MAC功能,安全动态MAC地址表项将转化为Sticky MAC表项,之后学习到的MAC地址也变为Sticky MAC地址。直到安全MAC地址数量达到限制,将不再学习MAC地址,并对接口或报文采取配置的保护动作。

MAC地址漂移:
什么是MAC地址漂移?
MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。图1所示,MAC地址为0011-0022-0034,VLANID为2的表项,出接口由GE0/0/1刷新为GE0/0/2,这就是MAC地址漂移。设备出现MAC地址漂移时,设备CPU会有不同程度的升高。
正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,可以通过查看告警信息和漂移记录,快速定位和排除环路。
LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)_第2张图片

什么情况下会出现MAC地址漂移现象?

  1. 环路
  2. 非法用户进行网络攻击

MAC地址防漂移:
网络中产生环路或非法用户进行网络攻击都会造成MAC地址发生漂移,导致MAC地址不稳定。
可以通过两种方式来避免这种情况:

  1. 提高接口MAC地址学习优先级。当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址在接口间发生漂移。(将合法用户的优先级升高来避免,默认优先级是0,值越大越优)
  2. 不允许相同优先级的接口发生MAC地址表项覆盖。当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项。但如果网络设备下电,此时会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。
    LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)_第3张图片

如图1所示,为防止非法用户伪造服务器MAC地址入侵Switch,可以提高服务器侧接口Port1的MAC地址学习优先级。

MAC地址漂移检测:
MAC地址漂移检测是交换机对MAC地址漂移现象进行检测的功能。MAC地址漂移检测是利用MAC地址学习时接口跳变实现的,因此能提供的信息与MAC地址学习相关,包括MAC地址、VLAN,以及跳变的接口等诊断信息。其中跳变的接口即为可能出现环路的接口。网络管理员根据网络中每台设备上出现的跳变接口,以及网络拓扑,判断环路的源头。
LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)_第4张图片

如图2网络中,若SwitchC和SwitchD之间误接网线,则SwitchB、SwitchC、SwitchD之间形成环路。当SwitchA上Port1接口从网络中收到一个广播报文后转发给SwitchB,该报文经过环路,会被SwitchA上Port2接口收到。在接口Port2上配置MAC地址漂移检测,此时SwitchA会感知到MAC地址学习接口跳变的现象。若连续出现此现象,则在SwitchA上可以判断出现了MAC地址漂移。

你可能感兴趣的:(LAN,网络)