验证 MAC 限制是否正常工作
MAC 限制通过对可在单个第 2 层接入接口(端口)上获知的 MAC 地址数量设置限制来防止以太网交换表泛洪。
Junos OS 为端口安全提供了两种 MAC 限制方法:
-
最大 MAC 地址数 — 您可以配置每个接口允许的最大动态 MAC 地址数。当超过限制时,具有新 MAC 地址的传入数据包可能会被忽略、丢弃或记录。您还可以指定关闭或暂时禁用接口。
-
允许的 MAC 地址 — 您可以为接入接口配置特定的“允许”MAC 地址。不会学习不在已配置地址列表中的任何 MAC 地址,交换机会记录相应的消息。允许的 MAC 方法将 MAC 地址绑定到 VLAN,以便该地址不会在 VLAN 外部注册。如果允许的 MAC 设置与动态 MAC 设置冲突,则允许的 MAC 设置优先。
Junos OS 还允许您在 VLAN 上设置 MAC 限制。但是,在 VLAN 上设置 MAC 限制不被视为端口安全功能,因为交换机不会阻止转发导致超出 MAC 限制的传入数据包;它只记录这些数据包的 MAC 地址。
本主题中的信息适用于非 ELS 平台。对于 ELS 平台,请参阅 配置 MAC 限制 (ELS) 以读取 MAC 限制。
验证动态 MAC 地址的 MAC 限制是否正常工作
目的
验证交换机上动态 MAC 地址的 MAC 限制是否有效。
行动
显示已获知的 MAC 地址。以下示例输出显示了从 ge-0/0/1 上的主机发送两个数据包和从 ge-0/0/2 上的主机发送五个数据包请求时的结果,两个接口都设置为 MAC 限制 4 ,并默认操作 丢弃:
user@switch> show ethernet-switching table Ethernet-switching table: 7 entries, 6 learned VLAN MAC address Type Age Interfaces employee-vlan * Flood - ge-0/0/2.0 employee-vlan 00:05:85:3A:82:77 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:79 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:80 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:81 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:83 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:85 Learn 0 ge-0/0/2.0
意义
示例输出显示,当每个接口的 MAC 限制为 4 时,ge-0/0/2 上第五个 MAC 地址的数据包因超出 MAC 限制而被丢弃。未获知地址,因此示例输出第一行的 MAC 地址 列中会出现星号 (*) 而不是地址。
验证特定 VLAN 中特定接口的 MAC 限制是否正常工作
目的
验证交换机上是否根据特定接口在特定 VLAN 中的成员身份对特定接口进行 MAC 限制。
行动
显示已获知的 MAC 地址的详细统计信息:
user@switch> show ethernet-switching statistics mac-learning interface ge-0/0/28 detail Interface: ge-0/0/28.0 Learning message from local packets: 0 Learning message from transit packets: 5 Learning message with error: 0 Invalid VLAN: 0 Invalid MAC: 0 Security violation: 0 Interface down: 0 Incorrect membership: 0 Interface limit: 0 MAC move limit: 0 VLAN limit: 0 VLAN membership limit: 20 Invalid VLAN index: 0 Interface not learning: 0 No nexthop: 0 MAC learning disabled: 0 Others: 0
意义
显示 VLAN membership limit
由于超出接口 ge-0/0/28.0 的 VLAN 成员资格 MAC 限制而被丢弃的数据包数。在本例中,丢弃了 20 个数据包。
验证允许的 MAC 地址是否正常工作
目的
验证交换机上允许的 MAC 地址是否正常工作。
行动
在接口上配置允许的 MAC 地址后,显示 MAC 地址缓存信息。以下示例显示了接口 ge-0/0/2 上存在 5 个允许的 MAC 地址后的 MAC 地址缓存。在此实例中,接口还设置为动态 MAC 限制 4,并显示默认操作 丢弃。
user@switch> show ethernet-switching table Ethernet-switching table: 5 entries, 4 learned VLAN MAC address Type Age Interfaces employee-vlan 00:05:85:3A:82:80 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:81 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:83 Learn 0 ge-0/0/2.0 employee-vlan 00:05:85:3A:82:85 Learn 0 ge-0/0/2.0 employee-vlan * Flood - ge-0/0/2.0
意义
由于此接口的 MAC 限制值设置为 4,因此仅学习了五个配置的允许地址中的四个,从而将其添加到 MAC 地址缓存中。由于未获知第五个地址,因此示例输出最后一行的 MAC 地址 列中会出现星号 (*) 而不是地址。
超出 MAC 限制时验证各种操作设置的结果
目的
验证超出限制时 MAC 限制(丢弃、 记录、 关机 和 无)的各种操作设置提供的结果。
行动
显示各种操作设置的结果。
您可以使用命令 show log messages
查看日志消息。您还可以通过使用命令配置监视器启动消息 monitor start messages
来显示日志消息。
-
丢弃 操作 - 对于配置了 丢弃 操作且 MAC 限制设置为 5 的 MAC 限制:
user@switch> show ethernet-switching table Ethernet-switching table: 6 entries, 5 learned VLAN MAC address Type Age Interfaces employee—vlan * Flood - ge-0/0/2.0 employee—vlan 00:05:85:3A:82:80 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:81 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:83 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:85 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:88 Learn 0 ge-0/0/2.0
-
log 操作 - 对于配置了 日志 操作且 MAC 限制设置为 5 的 MAC 限制:
user@switch> show ethernet-switching table Ethernet-switching table: 74 entries, 73 learned VLAN MAC address Type Age Interfaces employee—vlan * Flood - ge-0/0/2.0 employee—vlan 00:05:85:3A:82:80 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:81 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:82 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:83 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:84 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:85 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:87 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:88 Learn 0 ge-0/0/2.0 . . .
-
关机 操作 — 对于配置了 关机 操作且 MAC 限制设置为 3 的 MAC 限制:
user@switch> show ethernet-switching table Ethernet-switching table: 4 entries, 3 learned VLAN MAC address Type Age Interfaces employee—vlan * Flood - ge-0/0/2.0 employee—vlan 00:05:85:3A:82:82 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:84 Learn 0 ge-0/0/2.0 employee—vlan 00:05:85:3A:82:87 Learn 0 ge-0/0/2.0
-
none 操作 — 如果将 MAC 限制设置为应用于交换机上的所有接口,则可以通过为特定接口指定此操作来覆盖该接口的该设置。请参阅 覆盖应用于所有接口的 MAC 限制。
意义
对于 丢弃 操作结果 — 第六个 MAC 地址超出了 MAC 限制。该地址的请求数据包已被丢弃。在 ge-0/0/2 上只获知了五个 MAC 地址。
对于 日志 操作结果 — 第六个 MAC 地址超出了 MAC 限制。未阻止任何 MAC 地址。
对于 关闭 操作结果 — 第四个 MAC 地址超出了 MAC 限制。在 ge-0/0/2 上只获知了三个 MAC 地址。接口 ge-0/0/1 已关闭。
有关已关闭接口的更多信息,请使用 show ethernet-switching interfaces
命令。
user@switch> show ethernet-switching interfaces Interface State VLAN members Tag Tagging Blocking bme0.32770 down mgmt untagged unblocked ge-1/0/0.0 down v1 untagged MAC limit exceeded ge-1/0/1.0 up v1 untagged unblocked ge-1/0/2.0 up v1 untagged unblocked me0.0 up mgmt untagged unblocked
您可以通过指定 port-error-disable
具有 禁用超时 值的语句,将交换机配置为从此类错误情况中自动恢复。禁用超时到期时,交换机会自动将禁用的接口恢复为服务。 端口错误禁用 配置不适用于已存在的错误条件。它仅影响启用并提交 端口错误禁用 后检测到的错误条件。要清除已存在的错误情况并将接口还原到服务,请使用 clear ethernet-switching port-error
命令。
验证接口是否已关闭
目的
验证在超过 MAC 限制时接口是否已关闭。
行动
有关因超出 MAC 限制而关闭的接口的详细信息,请使用 show ethernet-switching interfaces
命令。
user@switch> show ethernet-switching interfaces Interface State VLAN members Tag Tagging Blocking bme0.32770 down mgmt untagged unblocked xe-0/0/0.0 down v1 untagged MAC limit exceeded xe- 0/0/1.0 up v1 untagged unblocked xe-0/0/2.0 up v1 untagged unblocked me0.0 up mgmt untagged unblocked
您可以通过指定 port-error-disable
具有 禁用超时 值的语句,将接口配置为在超过 MAC 限制时自动恢复。禁用超时到期时,交换机会自动将禁用的接口恢复为服务。 端口错误禁用 配置不适用于预先存在的错误条件 — 它仅影响在启用语句并提交配置后 port-error-disable
检测到的错误条件。要清除预先存在的错误条件并将接口恢复到服务,请使用 clear ethernet-switching port-error
命令。
自定义以太网交换表显示以查看特定接口的信息
目的
您可以使用命令 show ethernet-switching table
查看有关在特定接口上获知的 MAC 地址的信息。
行动
例如,要显示在 ge-0/0/2 接口上获知的 MAC 地址,请键入:
user@switch> show ethernet-switching table interface ge-0/0/2.0 Ethernet-switching table: 1 unicast entries VLAN MAC address Type Age Interfaces v1 * Flood - All-members v1 00:00:06:00:00:00 Learn 0 ge-2/0/0.0
意义
ge-0/0/2 的 MAC 限制值设置为 1,输出显示仅获知了一个 MAC 地址,因此将其添加到 MAC 地址缓存中。星号 (*) 而不是地址显示在示例输出第一行的 MAC 地址 列中。