核心交换机做了arp静态绑定,然后下面是二层接入华三交换机然后根据下面的命令,我限制了最大数为一个,然后设置了超过最大数,然后就丢弃原mac转发,我这个二层接入交换机下面连的是一个hub,然后呢我现在连了一台PC电脑,它可以正常ping通网关也可以上网然后这时候我要新加一台PC,它可以通吗?就如果我把能上网的那台PC搬掉,直接换一台新的PC插上去就是静态的mac地址绑定没有删除,没有改掉,就下面接口配置它可以通吗?
命令interface GigabitEthernet1/0/7 port link-mode bridge port access vlan 150 stp root-protection stp edged-port mac-address max-mac-count 1 undo mac-address max-mac-count enable-forwarding mac-address static eed8-1f0f-dab5 vlan 150
暂无评论
H3C S5310 接口 mac‑address max‑mac‑count 1 + undo enable‑forwarding 场景分析
接口完整配置:
plaintext
interface GigabitEthernet1/0/7
port link-mode bridge
port access vlan 150
stp root-protection
stp edged-port
mac-address max-mac-count 1
undo mac-address max-mac-count enable-forwarding
mac-address static eed8-1f0f-dab5 vlan 150
关键命令解释:
mac‑address max‑mac‑count 1:接口学习动态 MAC 地址最大数量为1 条
undo mac‑address max‑mac‑count enable‑forwarding:超过最大 MAC 数目时,直接丢弃报文,不做原 MAC 转发
mac‑address static eed8‑1f0f‑dab5 vlan 150:静态固化一条 MAC 地址表项
⚠重点:静态 MAC 地址不计入 max‑mac‑count 动态 MAC 计数,max‑mac‑count 只统计动态学到的 MAC。
组网:S5310 (G1/0/7) → HUB → PC;核心交换机做静态 ARP 绑定。
场景 1:HUB 下已经有 1 台 PC(MAC=eed8‑1f0f‑dab5,和静态 MAC 一致),再新增第二台 PC
原有 PC:MAC 匹配静态 MAC,可以正常转发,ping 网关、上网正常。
新增第二台 PC(其他 MAC):
第二台 PC 发出报文,属于动态 MAC 学习;接口动态 MAC 最大允许数 = 1。
此时接口已经占用了动态 MAC 计数吗?
静态 MAC不算动态学习计数,此时动态 MAC 表是空的。第一帧来自新 PC,交换机会尝试学习这个新 MAC,占用这仅有的 1 个动态名额。
但是接口下存在静态 MAC 表项,该接口只能转发目的 MAC 指向静态 MAC 的流量;同时该接口是 access 口 vlan150。
实际结果:第二台 PC 无法通信
原因分两层:
虽然 max‑mac‑count 计数允许学习 1 条动态 MAC,可以学到新 PC 源 MAC;
但该接口只有静态 MAC:eed8‑1f0f‑dab5 这条出向表项。网关回包目的 MAC 是新 PC 的 MAC,交换机 MAC 地址表里没有该 MAC 对应的出接口 G1/0/7,回包泛洪?不对,静态 MAC 的作用:mac‑address static xxx vlan 150含义:vlan150 中,目的 MAC eed8‑1f0f‑dab5,从 G1/0/7 转发;其它目的 MAC 不会从这个接口向外转发。
HUB 是共享介质,两台 PC 都接 HUB:
PC1 (静态 MAC) 收发正常;新增 PC2,上行报文可以到达交换机,但是网关回复 PC2 的报文,交换机不会从 G1/0/7 发出去,PC2 收不到回包,不通。
补充:即使去掉 hub,直接接口接 PC2 也不通,除非 PC2 的 MAC 正好等于eed8‑1f0f‑dab5。
场景 2:把原有能上网 PC 搬走,直接插一台全新 MAC 的 PC,静态 MAC 配置没有删除 / 修改
接口配置完全保留:static mac 仍是 eed8‑1f0f‑dab5 vlan150,max‑mac‑count 1,undo enable‑forwarding。
新 PC 完全不能通信
新 PC 源 MAC 是别的地址,上行报文到达交换机,可以被学习(动态计数 1,占用名额);
网关回复给新 PC 的报文,目的 MAC 为新 PC‑MAC;交换机 MAC 表没有 “新 PC‑MAC → G1/0/7”,而接口下静态 MAC 只允许目的 MAC=eed8‑1f0f‑dab5 从该口发出;交换机不会把回包从 G1/0/7 转发出来。
即使动态 MAC 地址表里面已经学习到新 PC 的源 MAC,静态 MAC 条目是 “目的 MAC‑出接口” 的固化,新的目的 MAC 流量不会从这个接口下发,终端收不到任何回包,ping 网关失败,不能上网。
关键点区分两个概念(极易混淆)
mac‑address static XXXX vlan XX:静态 MAC 地址表项(二层转发表,目的 MAC→出接口),不是端口安全,和 max‑mac‑count 分开
port‑security端口安全特性:是另一个功能,绑定源 MAC;本题没有用 port‑security。
容易踩坑误区
很多人误以为:max‑mac‑count 1 限制源 MAC 数量,静态 MAC 占用这个名额。
✅事实:静态 MAC 不占用 max‑mac‑count 动态学习计数。
但是静态 MAC 表项限制了:只有目的 MAC 等于静态配置的 MAC 的流量,才能从该接口往外发送。其他终端的下行流量无法出接口。
现象总结
原有 PC(匹配静态 MAC)正常上网,HUB 下再加一台别的 MAC 的 PC:新增 PC 不通;
拔掉旧 PC,换全新 MAC 的 PC 插上,静态 MAC 配置不动:新 PC 完全不通;
如果想要换 PC 能用,二选一:
方案 1:删除接口下这条静态 mac 地址:undo mac-address static eed8-1f0f-dab5 vlan 150
方案 2:修改静态 MAC 为新 PC 的真实 MAC。
额外补充undo mac-address max-mac-count enable-forwarding作用:
如果动态 MAC 学习数目超过 1,后续新源 MAC 的报文直接丢弃;本案例中 hub 新增 PC 场景不会触发超限丢弃,因为静态不占计数,可以学习 1 条动态,真正的故障根源是静态 MAC 转发条目限制下行流量,不是 max‑mac‑count 超限丢弃。
补充:和核心的 ARP 静态绑定关系
核心交换机做 ARP 静态绑定,只是三层 ARP 表(IP‑MAC 绑定);不影响接入 S5310 二层 MAC 地址表行为。
就算核心 ARP 绑定允许新 PC,接入交换机二层接口不给下发回包,终端依旧不通。
如果你本意是:接口只允许【源 MAC 为某一个设备】接入(端口安全效果)
当前这套配置不能实现端口安全,当前是配置静态 MAC 转发条目。想要实现 “接口只允许某个源 MAC 接入,别的设备插上直接不能用”,需要使用port‑security,示例参考:
plaintext
interface GigabitEthernet1/0/7
port link-mode bridge
port access vlan 150
stp edged-port
port-security
port-security max-mac-count 1
port-security mac-address eed8-1f0f-dab5
port-security violation shutdown
区别:port‑security 管控源 MAC(终端上来的报文);mac‑address static管控目的 MAC(交换机往接口发出去的报文),两者用途完全不同,很多现场配置混淆踩坑。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论