动态MAC地址和静态MAC地址

MAC地址表项

MAC地址表是交换机进行数据帧转发时所使用的一个非常关键的数据表。

查看MAC地址表

如下图所示的网络拓扑中:

在这里插入图片描述
通过命令查看SW1的MAC地址表项信息:
在这里插入图片描述

  • 从SW1的MAC地址表可以看出,其GE0/0/1接口连接着一台加入VLAN10的设备,该设备的MAC地址为5489-985b-17af(上图中的PC),
  • SW1的GE0/0/2接口连接着一台加入VLAN20的设备(上图中的Server),该设备MAC地址为5489-987e-10d0。
  • 从上图所示的网络拓扑中,SW1与SW2之间还部署了链路聚合技术(Link Aggregation ),即SW1与SW2之间存在多个互联接口被聚合成一个逻辑接口(Eth-trunk 1)。
  • SW1的Eth-trunkl接口连接着一台加入VLAN200的设备,且该设备的MAC地址为4clf-ccab-ea87,这是SW2的MAC地址。
  • 当这些设备之间需要相互通信时,数据帧在到达SW1后,SW1便可通过查询MAC地址表进行数据帧转发。

动态MAC表项

  • 如上图所示的网络拓扑中,初始时,交换机的MAC地址表是空的(比如SW1),随着网络中的各台设备陆续开始发送数据(一般通过泛洪实现),交换机也在各个接口上学习MAC地址,并持续维护自己的MAC地址表。
  • 当网络稳定后(数据转发不再依靠泛洪,而是通过Mac地址表寻址实现),SW1的MAC地址表中看到PC、Server和SW2的MAC地址,并且这些MAC地址表项都是动态的(类型为dynamic )。

动态MAC表项的老化机制

  • 一个动态的MAC地址表项被加载到交换机的MAC地址表后,其老化计时器也就随即启动,并开始倒计时,当该计时器计数到0时,这个MAC表项将被删除。
  • 在交换机每收到一个数据帧时,MAC地址表中与该数据帧的源MAC地址对应的表项也会被刷新,该表项的老化计时器将被复位并重新开始倒计时。
  • 交换机缺省的动态MAC地址表项老化时间为300s(HW),在系统视图下执行mac-address aging-time命令(HW)可修改动态MAC表项的老化时间。但是在实际的网络中不建议随意修改该老化时间。

动态MAC地址学习数量

问题背景
  • 交换机MAC地址表的容量是有限的,
  • 如果网络中存在MAC地址泛洪攻击时,交换机的MAC地址表可能会瞬间被大量垃圾MAC地址表项填满,在很短的时间内,MAC
    地址表项资源可能就会被耗尽,因此当交换机收到合法的数据帧时,就无法再进行MAC地址学习了,数据帧的转发必将产生问题。
解决方法
  • 可以在交换机特定端口上限制MAC地址学习数量,解决上述问题。
  • 当交换机某个端口MAC地址数量达到所设的上限时,该端口将不再学习MAC地址。(网络发生Mac地址泛洪时,一般指的的某个端口或许某些端口收到大量未知单播、组播或者广播报文,如果在受到Mac地址攻击的端口上配置限制MAC地址学习数量,可以避免该端口无限制的学习Mac地址,减少Mac地址表项资源的浪费,为交换机的其他端口学习合法数据帧的Mac地址表项预留了资源)
  • 在特定接口的配置视图下,执行mac-limit maximum max-num命令(HW),可限制该接口的MAC地址学习数量。
  • 在特定接口的配置视图下,执行mac-limit action { discard | forward}命令(HW),可配置当MAC地址数量达到限制后,交换机对数据帧执行的操作:
    (1)当指定的action为discard时,在MAC地址表项数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,丢弃这些帧。此行为是缺省动作。
    (2)当指定的action为forward时,在MAC地址表项数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,转发这些帧,但是不记录MAC地址表项。
  • 在特定接口的配置视图下,执行mac-limit alarm { disable | enable}命令(HW),可配置当MAC地址数量达到限制后是否进行告警:
    (1)如果指定关键字是enable,则当MAC地址数量达到限制后进行告警,该行为是缺省动作。
    (2)如果指定关键字是disable,则不告警。

静态MAC表项

问题背景——MAC地址漂移

  • 交换机可以动态的学习MAC地址,但是在某种场景下是不可靠的。
  • 在上图所示的网络拓扑中:
    (1)若SW1的GE0/0/3接口连接一台PC,该PC以Server的MAC地址为源进行数据帧伪造,然后持续不断地向交换机发送这些非法的数据帧,
    (2)那么在SW1的MAC地址表中,关于该MAC地址的表项将会不断地在GEO/0/3及GEO/0/2之间来回出现,这种现象被称为“MAC地址漂移”。
    (3)当交换机将这个MAC地址关联到GE0/0/3接口时,所有发往Server的数据帧将无法准确地到达目的地,与Server相关的业务势必会受到影响。

解决方法

  • 通过为SW1配置静态MAC表项可以规避上述问题。

  • SW1的配置如下:[SWl]mac-address staric 5489-987e-10d0 Gigabiet 0/0/2 vlan 20,通过该命令可以配置一条静态Mac地址表项。

  • 配置成功之后,可以通过命令查看Mac地址表项信息:
    在这里插入图片描述

  • 静态的Mac表项是永远不会被老化的,

  • 并且其优先级比动态表项更高,这意味着当SW1再从GE0/0/3接口收到以Server的MAC地址为源的数据帧时,SW1会将这些数据帧丢弃。因此,通过设置静态MAC表项,可以确保与交换机固定连接的可信任节点的安全通信

  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MAC地址表是用来记录网络交换机中各个端口上连接的设备的MAC地址的一张表。根据MAC地址表中的表项,网络交换机可以正确地将数据包转发到目标设备。 MAC地址表中的表项分为以下几类: 1. 静态表项:由网络管理员手动配置的表项,其MAC地址与对应端口之间的映射关系是固定的。静态表项通常用于在网络中保留重要设备的连接信息,如服务器、路由器等,以确保它们能够被准确地识别和寻址。 2. 动态表项:动态表项是根据网络交换机接收到的数据包的源MAC地址进行自动学习和更新的。当网络交换机接收到一个数据包时,它会检查数据包中的源MAC地址,并将该地址与接收到数据包的端口进行匹配,并将这个映射关系添加到MAC地址表中。这样,在之后的数据转发过程中,交换机就能根据MAC地址表中的动态表项进行数据包的正确转发。 3. 广播表项:广播表项是用来处理广播数据包的,广播数据包是一种特殊类型的数据包,它需要被交换机广播到所有连接的端口上。广播表项将广播数据包的目标MAC地址设置为一个特殊的地址,交换机接收到广播数据包时会根据广播表项将数据包发送到所有端口。 在网络交换机的MAC地址表中,静态表项和动态表项的组合能够确保网络中的数据包能够快速准确地转发到目标设备。广播表项则用于处理广播数据包,保证广播消息能够传播到所有设备。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值