了解和使用持久的 MAC 学习
了解持久 MAC 学习(粘性 MAC)
持久 MAC 学习,也称为粘性 MAC,是一项端口安全功能,可使接口在交换机重新启动或接口出现故障并重新联机时保留动态学习的 MAC 地址。
默认情况下,永久 MAC 地址学习处于禁用状态。您可以同时启用持久 MAC 地址学习和 MAC 限制,以限制持久 MAC 地址的数量。您可以在接口上启用此功能。
在接口上配置持久性 MAC 学习,以便:
防止可信工作站和服务器的流量丢失,因为重新启动后接口不必从入口流量中重新学习地址。
保护交换机免受安全攻击。将持久 MAC 学习与 MAC 限制结合使用,通过限制允许的 MAC 地址,同时仍然允许接口动态学习指定数量的 MAC 地址,来防止攻击,例如第 2 层拒绝服务 (DoS) 攻击、以太网交换表溢出攻击和 DHCP 不足攻击。接口是安全的,因为在达到限制后,其他设备将无法连接到端口。
通过配置持久 MAC 学习和 MAC 限制,使接口能够从将接口连接到网络到达到 MAC 地址限制期间学习可信工作站和服务器的 MAC 地址,并确保在达到此限制后,即使交换机重新启动,也不允许新设备连接到接口。作为使用具有 MAC 限制的持久 MAC 学习的替代方法,您可以在每个端口上静态配置每个MAC 地址,或者允许端口在重新启动或接口关闭事件后持续学习新的 MAC 地址。允许端口持续学习 MAC 地址存在安全风险。
-
当交换机重新启动或接口恢复时,接口在学习更多 MAC 地址之前可能会有短暂的延迟。当系统将以前学习的永久性 MAC 地址重新输入接口的转发数据库时,会发生此延迟。
-
从 Junos OS 22.4R1 版开始,您可以在中继接口(VLAN 标记)和接入接口上启用持久性 MAC 学习。
配置持久性 MAC 学习时,请考虑以下配置准则:
您无法在配置了 802.1x 身份验证的接口上启用持久 MAC 学习。
您无法在属于冗余中继组的接口上启用持久性 MAC 学习。
您无法在启用 了无 MAC 学习 的接口上启用持久 MAC 学习。
如果在交换机上移动网络中具有永久 MAC 地址条目的设备,请使用 clear ethernet-switching table persistent-learning <interface | mac-address>
命令从接口中清除永久 MAC 地址条目。如果移动设备,并且未从学习该设备的原始端口清除永久 MAC 地址,则新端口将无法学习设备的 MAC 地址,并且设备将无法连接。如果移动设备时原始端口已关闭,则新端口将学习 MAC 地址,设备即可连接。但是,如果未清除原始端口上的永久 MAC 地址,则当端口重新启动时,系统会在该端口的转转发表中重新安装永久 MAC 地址。如果发生这种情况,永久 MAC 地址将从新端口中删除,并且设备将失去连接。
配置持久 MAC 学习 (ELS)
本节介绍如何使用支持增强型第 2 层软件 (ELS) 的 Junos OS。有关 ELS 的更多信息,请参阅 使用增强型第 2 层软件 CLI
要在接口上配置持久性 MAC 学习并限制允许的 MAC 地址数:
的 action 值为:
drop |
丢弃具有新源 MAC 地址的数据包,并且不学习新的源 MAC 地址。 |
drop-and-log |
(仅限 EX 系列交换机)丢弃具有新源 MAC 地址的数据包,并生成告警、SNMP 陷阱或系统日志条目。 |
log |
(仅限 EX 系列交换机)保留具有新源 MAC 地址的数据包,并生成告警、SNMP 陷阱或系统日志条目。 |
none |
(仅限 EX 系列交换机)转发带有新源 MAC 地址的数据包,并学习新的源 MAC 地址。 |
shutdown |
(仅限 EX 系列交换机)禁用指定的接口,并生成告警、SNMP 陷阱或系统日志条目。 |
如果在交换机上移动网络中具有永久 MAC 地址条目的设备,请使用 clear ethernet-switching table persistent-learning
命令从接口中清除永久 MAC 地址条目。如果移动设备,并且未从学习该设备的原始端口清除永久 MAC 地址,则新端口将无法学习设备的 MAC 地址,并且设备将无法连接。
如果移动设备时原始端口已关闭,则新端口将学习 MAC 地址,设备即可连接。但是,如果未清除原始端口上的永久 MAC 地址,则当端口重新启动时,系统会在该端口的转转发表中重新安装永久 MAC 地址。如果发生这种情况,永久 MAC 地址将从新端口中删除,并且设备将失去连接。
配置持久 MAC 学习(非 ELS)
默认情况下,永久 MAC 地址学习(也称为粘性 MAC)处于禁用状态。您可以启用它,以便在重新启动交换机时将动态学习的 MAC 地址保留在接口上。
本节介绍如何在不支持增强型第 2 层软件 (ELS) 的情况下使用 Junos OS。有关 ELS 的更多信息,请参阅 使用增强型第 2 层软件 CLI
使用持久 MAC 地址学习:
帮助防止受信任工作站和服务器的流量丢失,因为重新启动后接口不必从入口流量中重新学习地址。
保护交换机免受安全攻击 — 将持久的 MAC 学习与 MAC 限制结合使用,以防止攻击,同时仍无需静态配置 MAC 地址。如果初始学习的 MAC 地址达到 MAC 限制所指定的数量,则即使在重新启动后也不允许使用新地址。端口是安全的,因为在达到限制后,其他设备将无法连接到接口。
连接后第一批发送流量的设备会在初始连接期间学习。您可以监控 MAC 地址,并提供与在每个接口上静态配置每个 MAC 地址相同的安全级别,只是手动操作较少。持续的 MAC 学习还有助于防止可信工作站和服务器的流量丢失,因为接口不必从入口流量中重新学习地址。
要在接口上配置持久性 MAC 学习并限制允许的 MAC 地址数:
验证持久性 MAC 学习是否正常工作
目的
验证接口上的持久性 MAC 学习(也称为粘性 MAC)是否在工作。持续的 MAC 学习允许在交换机重新启动时(或接口出现故障时),将动态学习的 MAC 地址保留在接口上。
行动
显示已学习的 MAC 地址。以下示例输出显示了在接口 ge-0/0/42 上启用持久 MAC 学习时的结果:
显示以太网交换表 persistent-mac
user@switch> show ethernet-switching table Ethernet-switching table: 8 entries, 2 learned, 5 persistent entries VLAN MAC address Type Age Interfaces default * Flood - All-members default 00:10:94:00:00:02 Persistent 0 ge-0/0/42.0 default 00:10:94:00:00:03 Persistent 0 ge-0/0/42.0 default 00:10:94:00:00:04 Persistent 0 ge-0/0/42.0 default 00:10:94:00:00:05 Persistent 0 ge-0/0/42.0 default 00:10:94:00:00:06 Persistent 0 ge-0/0/42.0 default 00:21:59:c8:0c:50 Learn 0 ae0.0 default 02:21:59:c8:0c:44 Learn 0 ae0.0
意义
示例输出显示,学习的 MAC 地址作为永久条目存储在以太网交换表中。如果交换机重新启动或接口出现故障并重新启动,则这些地址将恢复到表中。