☰
交换安全实战指南:从MAC泛洪到DHCP Snooping的二层防护配置
2026/10/15 16:38:34 网站建设 项目流程

1. 交换网络为什么成了“安全洼地”

1.1 企业内网的脆弱性从哪来

我最早接触交换安全这个模块的时候,第一反应是:交换机和安全能有什么关系?交换机不就是按 MAC 地址转发数据帧嘛,又不是防火墙,也不是路由器,哪里来的安全概念。直到后来在模拟项目X里复现了几次办公网故障,才意识到二层网络如果完全不设防,出起问题来比外网攻击还难查。

先说一个常识:交换机在默认状态下就是一个“盲目转发”的设备。它收到一个帧,查 MAC 地址表,有表项就按表项转发,没有表项就向所有同 VLAN 的端口泛洪。这是二层转发的基础逻辑,也是它最容易被利用的地方。大家平时做 HCIA 实验,交换机和交换机之间一接,VLAN 一划,业务就能通,看起来很简单。但生产环境里接入层交换机会接大量终端,可能有办公电脑、打印机、摄像头、访客 WiFi、外包人员的笔记本。这些设备的可信度完全不一样,但交换机默认不区分它们,全都按同一个信任级别处理。

这就带来一个很现实的问题:内网里有一个终端被感染,或者有人故意抓包、伪造报文,交换机会认为这些报文都是合法的,照样转发。DHCP 服务器、网关设备、核心交换机全都在同一个二层广播域里,攻击面就被无限放大。我在某公司做网络运维的时候,遇到过一个故障:某天早上办公网突然大面积断网,终端拿不到 IP,已经拿到 IP 的机器互相 ping 不通。排查到最后,发现是某层交换机下面接了一个家用小路由器,用户把它当交换机用,结果这个路由器自己开了 DHCP 服务,和公司内部的 DHCP 服务器形成了冲突。这个场景其实就是典型的 DHCP 欺骗攻击,只是当时没有部署 DHCP Snooping,只能靠人肉排查。

所以 HCIA 体系里把交换安全单独拿出来作为一个重点模块,不是因为它考试会考,而是因为企业内网故障里,很大一部分都出在二层这个层面。理解交换机能被怎么攻击,才知道哪些防护配置是必须做的。

1.2 交换安全这类技术,到底防的是谁

学习交换安全之前,先建立一个概念:我们防的不是外部黑客那种“从因特网打进来”的路径,而是防已经进入到二层网络里的不可信设备。办公网的每个信息点都可能在物理上被接入,或者被未授权设备间接接入。交换安全的防护对象主要有三类:

第一类是伪造类攻击。攻击者伪造源 MAC、伪造 IP、伪造 DHCP 报文、伪造 ARP 报文,让交换机形成错误转发表项,或者让终端学到错误网关映射。这类攻击特点是隐蔽,因为报文格式完全合法,传统防火墙根本看不见二层内容。

第二类是资源耗尽类攻击。攻击者构造大量 MAC 地址,把交换机的 MAC 地址表填满,导致交换机无法学习新地址,只能泛洪,相当于人为制造了一个“混乱模式”,后续无论是抓包还是再发动中间人攻击都变得很容易。另一个变体是发大量广播、组播、未知单播流量,把上联链路和交换机 CPU 打满。

第三类是干扰协议类攻击。比如 DHCO Snooping 场景里的 DHCP 饿死,攻击者不断伪造 MAC 申请地址,把地址池耗尽。还有 STP 的攻击、VLAN 跳转这些,也都属于二层安全需要关注的问题。

HCIA 阶段不会考得太深,但核心要掌握的是端口安全、DHCP Snooping、IPSG(IP Source Guard)、DAI(Dynamic ARP Inspection)和风暴控制这几种手段。它们各自的职责不一样,而且必须配合使用才能形成闭环。这篇文章我按自己当时整理笔记的顺序来写,先讲攻击原理,再讲配置,最后讲排查和考试里容易踩的坑。

2. 先从最基础的入手:MAC 地址表攻击与端口安全

2.1 MAC 泛洪:一条命令拖垮二层转发的原理

二层交换机转发依赖 MAC 地址表,这张表记录“哪个 MAC 地址从哪个端口学习到的”。正常情况下,终端数量有限,表项也稳定。但攻击者可以在一台电脑上伪造大量假 MAC 地址的报文,每秒钟往接口下发几千上万个帧。交换机一看源 MAC 不认识,就不断学习新表项。MAC 地址表是存放在硬件芯片里的,容量有限,比如一些盒式交换机默认可能也就几千条到几万条,一旦被占满,交换机就无法学习新的合法 MAC。这时候从合法终端发来的帧,交换机查不到表,就会当成未知单播在所有同 VLAN 端口泛洪。

泛洪本身还不致命,致命的是它给后续攻击创造了条件。攻击者只要把网卡设为混杂模式,就能在泛洪流量里抓到其他终端的通信内容,比如明文 HTTP 里的账号密码。这就是典型的二层嗅探。HCIA 考试里经常拿“填写完整 MAC 地址表导致泛洪”来考原理,很多人记不住,我建议用一个类比:MAC 地址表就是一个会议室座位表,正常情况每个来开会的人都有固定座位,查表就知道人在哪。现在有人一次带了几千个人进场,座位表被写满,真正要开会的人反而查不到位置,只能靠喊名字找人,一喊全走廊都听见了,机密自然就泄了。

MAC 泛洪的防护,核心就是端口安全,限制每个接口能学到的 MAC 地址数量,超过限制就按配置的动作处理。这是成本最低、效果最直接的二层防护手段。

2.2 端口安全配置实操:粘滞 MAC、违规动作、超龄老化

端口安全在华为 VRP 系统里配置并不复杂,关键是要理解每个参数背后的含义。我以一台接入层交换机为例,假设某办公区信息点接的是固定工位电脑,我们想让这个端口只允许这一台电脑接入。

先启用端口安全:

[SW] interface GigabitEthernet0/0/1 [SW-GigabitEthernet0/0/1] port-security enable [SW-GigabitEthernet0/0/1] port-security max-mac-num 1 [SW-GigabitEthernet0/0/1] port-security protect-action protect

上面三条命令的顺序我建议固定住:先启用,再限制数量,最后配置违规动作。max-mac-num 1的意思是本端口最多学习 1 个 MAC 地址。protect-action protect是违规后的处理方式,表示丢弃来自未知源 MAC 的报文,但不关闭端口。这个动作对业务影响最小,适合办公网,因为端口不会因为临时插了一台设备就被 shutdown,避免现场运维跑断腿。

另外两个违规动作是restrict和shutdown。restrict会丢弃报文的同时记录日志、触发告警并上报告警到网管;shutdown则直接把端口 Error-down,适合对安全要求很高、宁可断开也不放行的场景。实际生产里我见过不少网络管理员图省事,直接配shutdown,结果第二天早上办公网一堆端口 down 掉,排查下来才发现是保洁阿姨临时把吸尘器插到了网口旁边,或者某个设备自动发送了异常 MAC。所以我的建议是:面向未知终端的端口用protect,面向已知固定终端的端口可以激进一点用restrict,shutdown留给服务器接入端口,或者配合告警通知到位之后再考虑。

端口安全还有个有用的功能叫 sticky MAC,也就是粘滞 MAC。启用之后,交换机第一次学到的 MAC 会被自动转换为安全 MAC 表项,并且不会因为老化时间到期而消失。配置方式是在端口安全视图下开启:

[SW-GigabitEthernet0/0/1] port-security mac-address sticky

粘滞 MAC 的好处是省去了手工敲 MAC 白名单的麻烦,端口第一次接入哪台设备,以后就只认这台设备。缺点是如果用户擅自更换终端(比如把办公室电脑换成了自己的笔记本),新 MAC 可能触发违规动作,需要管理员介入。实际使用中,粘滞 MAC 非常适合打印机、门禁控制器、IP 话机这种长期固定不动的设备。

还有一个容易忽略的参数是老化时间。默认情况下安全 MAC 不会自动老化,除非端口 down 掉或者手动清除。如果你担心端口被挪作他用,可以配置老化时间:

[SW-GigabitEthernet0/0/1] port-security aging-time 30 [SW-GigabitEthernet0/0/1] port-security aging-type time

aging-type有三种:absolute、inactivity、time。absolute表示无论有没有流量,到了时间就老化;inactivity表示如果该 MAC 长时间不活跃才老化;time表示设置老化时间。实际办公网推荐用inactivity,配合 30 分钟左右的时长,这样既能防止端口被临时接入其他设备,又不会因为终端暂时休眠导致反复重新认证。

2.3 端口安全也会误伤,生产环境要这样取舍

端口安全虽然简单,但不要在所有端口上无脑开启。我在某单位做项目的时候,曾经在接入交换机上对所有端口统一配置了max-mac-num 1,结果第二天就有用户反馈:手机连不上办公 WiFi。

排查之后发现,用户为了图方便,在工位上自己加了一个几十块钱的小交换机,端口下面接了电脑和手机。原来的端口本来允许多个 MAC,被我限制成 1 个之后,电脑能上网但手机就一直获取不到地址。这种场景其实说明了一个问题:交换安全配置不能脱离端口实际用途。

我现在做端口安全规划时,会先对端口做分类:

端口类型典型场景推荐配置
固定终端端口工位电脑、打印机max-mac-num 1-2,sticky MAC,protect-action restrict
级联端口下联傻瓜交换机、AP关闭端口安全,或 max-mac-num 较大(如 16)
临时接入端口会议室、开放工位不启用端口安全,依靠 DHCP Snooping 和 IPSG 兜底
服务器端口物理服务器、存储关闭端口安全,使用白名单之外的隔离手段

这个表格背后的逻辑是:端口安全只能解决“这个端口被插了不合规设备”的问题,但解决不了“合规设备自身被攻陷”的问题。级联口下一台傻瓜交换机可能挂着十几台设备,限制 1 个 MAC 反而直接断网。所以端口安全在 HCIA 考试里虽然被反复强调,但真到了生产环境,它只是第一步,后面还要靠 DHCP Snooping、IPSG、DAI 组成更完整的防护体系。

3. DHCP Snooping:给地址分配过程装一道“安检门”

3.1 为什么 DHCP 协议天生不设防

DHCP 的工作原理大家都熟:终端广播 DHCP Discover,DHCP 服务器回应 Offer,终端选 Offer 回 Request,服务器回 Ack。问题在于,DHCP 协议本身是明文、无认证的。交换机不知道谁是真正的 DHCP 服务器,也不知道来自某个接口的 DHCP 请求是不是合法的终端发出的。

这就产生了两类攻击:第一类是仿冒 DHCP 服务器,也就是开头提到的故障场景。攻击者把自己的设备接入内网,开启 DHCP 服务,终端广播 Discover 时,谁先回应就可能被谁“带走”。如果仿冒服务器分配的网关、DNS 都是攻击者自己,那终端全流量都会经过攻击者,账号密码直接泄露。第二类是 DHCP 饿死攻击。攻击者不断伪造不同的 MAC 地址发送 DHCP Discover,把地址池里的地址全部占光,正常终端再来申请时,服务器只能说“我这儿没地址了”。终端拿不到 IP,自然就上不了网。

DHCP Snooping 的核心思路,是把交换机的端口分成两类:信任端口和非信任端口。信任端口一般指连接 DHCP 服务器的端口,或者上联到核心交换机的端口;非信任端口就是面向终端的接入端口。交换机只允许信任端口接收 DHCP Server 报文,非信任端口收到的 DHCP Offer、Ack 直接丢弃。这样仿冒 DHCP 服务器就算接入到某个接入端口,发出的响应报文也会被交换机拦截,终端根本收不到,攻击自动失效。

3.2 信任端口与非信任端口的正确划分

说到信任端口的划分,很多初学者容易犯一个错误:只信任了直连 DHCP 服务器的端口,却忘了信任上联口。比如有一套两级交换架构,核心交换机连着 DHCP 服务器,汇聚交换机下接接入交换机。如果接入交换机只把直连服务器的端口配置为信任端口,而上联到汇聚的端口是非信任端口,那么来自服务器的合法的 DHCP 响应报文经过汇聚交换机转发到接入交换机时,接入交换机会认为这个报文是从非信任端口进来的,直接丢弃,全网终端都拿不到地址。

所以配置 DHCP Snooping 时,有一个原则:信任端口要按“DHCP 报文真正来源路径”来规划。最简单的方法是让上联口和服务器侧端口全部配置为信任端口,终端侧口全部为非信任端口。如果只有一台交换机,那就把连接服务器的口配上信任就行。如果是多级级联,每一级交换机都要正确标识朝向 DHCP 服务器的方向,否则整个链路中间有一环没配好,效果和没开一样。

实际操作中还可以更细一点。比如华为 VRP 支持全局启用 DHCP Snooping,然后按接口启用。我们通常这样配置:

[SW] dhcp enable [SW] dhcp snooping enable [SW] interface GigabitEthernet0/0/24 [SW-GigabitEthernet0/0/24] dhcp snooping enable [SW-GigabitEthernet0/0/24] dhcp snooping trusted [SW] interface GigabitEthernet0/0/1 [SW-GigabitEthernet0/0/1] dhcp snooping enable

注意dhcp snooping enable可以在全局开,但dhcp snooping trusted是接口下的命令。很多模拟器实验里,全局开启后如果不逐接口启用,DHCP Snooping 是不生效的。这个细节我在备考时反复踩,后来养成了习惯:先全局开,然后每个接入接口下再敲一遍dhcp snooping enable,最后检查所有接口状态。

3.3 完整配置与验证:绑定表是怎么形成的

DHCP Snooping 的真正价值,在于它会生成一张绑定表(Binding Table)。终端通过非信任端口申请到 IP 地址后,交换机会记录四条关键信息:MAC 地址、IP 地址、VLAN、端口,以及租期。这张表后面做 IPSG 和 DAI 的时候都要用。所以 DHCP Snooping 不是孤立存在的,它是整个接入防护体系的数据来源。

我们看一个完整的小实验拓扑:一台交换机,G0/0/1 接 DHCP 服务器,G0/0/2 接一台终端。配置完成后,终端正常获取地址 192.168.1.10,MAC 为 5489-98be-ef01。这时交换机里就会形成类似下面的绑定表:

[SW] display dhcp snooping binding DHCP snooping binding information: MAC Address IP Address VLAN Interface Lease Type 5489-98be-ef01 192.168.1.10 10 GE0/0/2 86400 dhcp-snooping

如果攻击者伪造了同样的 IP 但不同的 MAC,或者同样的 MAC 但不同的 IP,只要和绑定表对不上,后续 IPSG 检测就会直接丢弃。这个“绑定表驱动防护”的机制是整个二层安全体系最巧妙的地方:它不给攻击者任何重新协商的机会,只认第一次通过合法 DHCP 流程学到的映射关系。

验证配置还有一个常用命令:

[SW] display dhcp snooping trust Trusted ports: GigabitEthernet0/0/1

看到端口列表里只有 G0/0/1,说明信任关系正确。如果发现某个本应是非信任的端口也在信任列表里,就要立刻排查,否则等于给仿冒 DHCP 服务器留了后门。

提示:真机环境里,如果 DHCP Snooping 开启后终端获取地址变慢或者失败,多半是信任端口配置遗漏,或者设备本身不支持对特定报文类型的处理。先把 trust 端口检查一遍,再排查链路。

4. IP Source Guard 和动态 ARP 检测:把转发平面和协议平面都锁住

4.1 IPSG 绑定表:只允许表中的人说话

DHCP Snooping 解决了“地址分配过程”的安全,但终端拿到 IP 之后,如果用户手动改一个 IP 地址,交换机会不会管?默认情况下不管。终端可以自己配置静态 IP,而且只要这个网段没人用,它就能正常上网。这在生产环境里是大忌:有人乱配 IP,就会和合法终端冲突;有人故意改成网关 IP,整个网段的 ARP 解析都会出问题。

IPSG(IP Source Guard,IP 源防攻击)就是专门用来做“IP 报文过滤”的。它基于 DHCP Snooping 绑定表,对非信任端口收到的 IP 报文做源 IP、源 MAC 的匹配检查,不匹配的直接丢弃。这样一来,终端把 IP 改成 192.168.1.10 也没有用,因为交换机只认绑定表里记录的192.168.1.11 + 5489-98be-ef01。想改 IP?先让绑定表里那条记录失效,但你改 IP 后重新 DHCP 获取,又会产生一条新的合法记录,反而是你原来的 IP 被释放了。这套机制的逻辑闭环就在这里。

华为 VRP 里启用 IPSG 的典型配置是:

[SW] interface GigabitEthernet0/0/2 [SW-GigabitEthernet0/0/2] ip source check user-bind enable [SW-GigabitEthernet0/0/2] ip source check user-bind check-item ip-address mac-address

第二行命令指定了检查的粒度:既检查 IP 又检查 MAC。如果只配置check-item ip-address,那么只查 IP,不查 MAC。生产环境推荐两个都查,因为有的攻击手法是“借用合法 IP,伪造新 MAC”,只查 IP 就漏了。还需要注意,IPSG 只对非信任端口下发过滤规则,信任端口(比如上联口)不做检查,否则汇聚交换机发来的合法流量都会被丢弃。

4.2 DAI 防 ARP 欺骗:不查表就上不了网

ARP 欺骗是所有网络工程师都绕不过去的话题。攻击者向网段内发送伪造的 ARP 应答,声称“网关 IP 对应的 MAC 是我”。终端更新 ARP 缓存之后,发往网关的流量全变成了发给攻击者。HCIA 阶段不要求实现复杂的 ARP 检测算法,但要求掌握 DAI,也就是动态 ARP 检测。

DAI 的原理并不玄妙:交换机对非信任端口收到的 ARP 报文进行绑定表检查。如果报文的源 IP、源 MAC 能匹配 DHCP Snooping 绑定表,就放行;不匹配的 ARP 报文直接丢弃。这样攻击者即使想发一个假的 ARP 应答,交换机会先在入口处就把这个报文干掉,终端根本收不到,ARP 缓存不会中毒。

配置 DAI 在华为 VRP 上通常是:

[SW] interface GigabitEthernet0/0/2 [SW-GigabitEthernet0/0/2] arp anti-attack check user-bind enable

有的版本命令是arp spoofing-check user-bind enable,不同产品、不同版本略有差异,考试时以题库为准。生产环境敲命令前先display version看一下设备的软件版本,确认命令是否支持,避免在设备上敲了半天发现命令不存在。

这里要重点提醒:DAI 依赖绑定表。如果某台终端是用静态 IP 配置的,而它又没有通过 DHCP 获取地址,绑定表里就没有它的记录,DAI 会把它所有的 ARP 报文都当成攻击报文丢弃,导致这台设备无法通信。生产环境里打印机、工控机、服务器很多都是静态 IP,开启 DAI 之前必须给这些设备手工添加静态绑定表:

[SW] user-bind static ip-address 192.168.1.50 mac-address 5489-98be-abcd interface GigabitEthernet0/0/10 vlan 10

这条命令把静态设备的映射关系写进绑定表,DAI 检查时就会放行。我在某园区网第一次大规模开启 DAI 时,就因为遗漏了几台静态 IP 的哑终端,导致现场一堆设备离线,后来靠逐台加入静态绑定才恢复正常。这个教训提醒我:任何基于绑定报文表的技术,上线前都要先盘点全网静态 IP 终端。

4.3 三层联动部署的先后顺序和常见失败现场

IPSG 和 DAI 不是二选一的关系,而是分别锁住不同层面:IPSG 管普通的 IP 数据报文,DAI 管 ARP 报文。两者都依赖 DHCP Snooping 绑定表,所以正确的部署顺序是:第一步启动 DHCP Snooping,第二步部署 IPSG,第三步部署 DAI。如果绑定表还没形成就开启 DAI,那么所有终端的 ARP 请求都会被丢弃,因为它们还没来得及获取地址,绑定表是空的。这就像安检口还没录入旅客信息就要求旅客出示电子票,谁都没法通过。

实际生产部署中常见的失败现场还有三种:

第一种是终端获取 IP 成功后,仍然 ping 不通网关。这种情况多半是绑定表 VLAN 和接口信息对不上,比如交换机配了 Hybrid 口或者 QinQ 导致 VLAN 信息变了,绑定表里记录的 VLAN 和实际报文携带的 VLAN 不一致。可以先在接口下关闭 IPSG,再逐步开启,定位是哪个环节导致丢包。

第二种是开启了 DAI 之后,整个 VLAN 的 ARP 学习变得很慢。华为 VRP 的 DAI 默认对 ARP 报文有速率限制,如果终端数量多,可能触发限速丢弃。建议在非信任接口下适当调大 ARP 报文限速值:

[SW-GigabitEthernet0/0/2] arp anti-attack rate-limit 60

第三种是上行链路被误设为非信任端口。很多网工只盯着接入端口配置,忘了检查上联口,结果核心网关回应的 ARP 报文从非信任口进入时被 DAI 当成非法报文丢弃,所有终端都断网报“地址已被使用”。配置 IPSG 和 DAI 时,一定要把信任端口检查一遍,包括所有级联口。

5. 各类泛洪抑制与风暴控制:防止小事变大故障

5.1 广播、组播、未知单播三种风暴的差异

说完了针对 IP 和 ARP 的防护,还要聊聊流量层面的兜底机制。二层交换机上有一类经典故障叫广播风暴,现象是交换机所有端口指示灯疯狂闪烁,CPU 使用率飙高,终端网络奇卡无比。风暴的流量类型不只广播一种,组播和未知单播同样能造成大问题。

广播帧是发往 FF-FF-FF-FF-FF-FF 的,交换机必须向同 VLAN 的所有端口泛洪。正常办公网里 ARP 请求、DHCP Discover 都是广播,量不大。但如果网络里出现了环路,广播帧会在环路里不断复制放大,几秒钟就能打满带宽。组播风暴通常是某些视频流、组播业务配置错误导致的,交换机收到组播流量后如果 IGMP Snooping 没配好,也会向所有端口泛洪。未知单播风暴更像是 MAC 泛洪的变体,当交换机 MAC 地址表老化或者被填满,原本应该精确转发的单播帧变成向所有端口发一份,流量就成倍放大。

HCIA 里对各种风暴的考点主要集中在“源头识别”。很多人以为风暴就是广播包太多,其实三层交换机的 CPU 对广播和组播的处理路径不同,有经验的人通常会先抓包看报文类型,再决定是查环路还是查组播。一次典型故障里,广播风暴大概率是 STP 没配好导致的二层环路;组播风暴大概率是组播源和 IGMP 查询器配置冲突;未知单播风暴则要检查 MAC 地址表和端口安全配置。

5.2 风暴控制与 QoS 限速:选哪个才对症

华为交换机提供风暴控制功能,可以按接口限制广播、组播、未知单播的速率。配置思路是设置一个阈值,超了就对多余流量丢弃。常用配置:

[SW] interface GigabitEthernet0/0/1 [SW-GigabitEthernet0/0/1] broadcast-suppression bandwidth 2048 [SW-GigabitEthernet0/0/1] multicast-suppression bandwidth 1024 [SW-GigabitEthernet0/0/1] unicast-suppression bandwidth 1024

bandwidth后面的单位是 kbps,也就是限制该接口广播流量不超过 2Mbps。也可以按百分比配置:

[SW-GigabitEthernet0/0/1] broadcast-suppression 20

表示广播流量不超过接口带宽的 20%。两种方式效果基本一样,看个人习惯。重点在于,风暴控制是“超了就丢”,对正常突发流量也可能误伤,阈值不宜设得太低。办公网广播流量通常每秒几百 kbps 到 1Mbps 左右,设个 10%-20% 比较合适。

和风暴控制容易混淆的是 QoS 流量限速。风暴控制是二层设备上针对泛洪流量的保护机制,重点在“防止异常流量冲击”,不看业务优先级。QoS 限速则是主动对特定流量做带宽管理,比如限制某个 VLAN 的用户下载带宽,或者给视频会议流量保证带宽。两者解决的问题不同,生产环境里经常同时配置,但别把风暴控制当成 QoS 用,否则正常业务大流量也会被莫名其妙丢弃。

这里有一个实操经验:如果交换机支持只看未知单播的抑制,最好把未知单播也打开。办公网里出现未知单播风暴的概率不低,尤其是接入层傻瓜交换机级联导致 MAC 表项单端口冲突时,未知单播泛洪是主要表现。很多网络管理员只管广播抑制,忽略未知单播,结果故障根本没解决,上联口还是被打满。

5.3 组合拳:从接入层到汇聚层的分层防护

前几节里讲到的技术,如果单独看,各有各的盲区。端口安全能限制接口 MAC 数量,但管不了已接入设备后续的行为;DHCP Snooping 能防仿冒服务器,但防不了静态 IP 用户乱改 IP;IPSG 能限制 IP 报文,但防不了 ARP 泛洪。所以成熟的交换安全方案一定是分层的组合拳。

我给出的一个典型分层配置策略如下:

层次主要手段目标
接入层端口端口安全 + DHCP Snooping限制非法终端接入,防止 MAC 泛洪
接入层转发IPSG + DAI阻止 IP 和 ARP 仿冒
接入层流量风暴控制防止异常流量冲击上联
汇聚层信任端口规划、链路级限速、ACL 兜底收敛风险、控制跨 VLAN 访问

这套配置在实验环境里可以完整跑通,但落地生产时还要考虑性能开销。接入层交换机的硬件过滤表项是有限的,如果一台接入交换机下挂几百个终端,IPSG 和 DAI 下发的规则数量会占用硬件资源。实际部署前要先确认设备的 ACL/绑定表容量,别在高性能要求的核心设备上开启全局 DAI,重点放在接入层就好。

另外,风暴控制虽然能抑制异常流量,但只能缓解症状。真正治本还是要排查风暴源头:环路查 STP、广播查环路和 DHCP、未知单播查 MAC 表项和端口安全配置。我在模拟项目X里复现过完整链路:某台服务器的网卡驱动异常,每秒发出大量未知单播帧,交换机端口安全没有限制,风暴控制阈值又太高,结果整个上联带宽被吃掉,全楼办公网变卡。定位时靠display interface看接口丢包计数,才发现 G0/0/12 入方向流量异常,最终通过关闭该端口定位到服务器。风暴控制是保底手段,但不能替代日常监控。

6. HCIA 交换安全考点梳理与备考提醒

6.1 常用配置查询与故障定位命令

学习交换安全,配置命令只是输入,真正要掌握的是怎么验证、怎么排错。HCIA 考试里很多题给一堆命令,问你某条命令是干嘛的,或者配置完某个功能之后怎么查看效果。这部分纯粹靠记忆,但结合实操理解会深得多。

我在日常排错时最常用的几条命令:

[SW] display port-security [SW] display mac-address security [SW] display dhcp snooping binding [SW] display ip source check user-bind [SW] display arp anti-attack

display port-security能看到每个接口是否启用了端口安全、最大 MAC 数、当前学习数量、违规动作等信息。配置完之后第一件事就是执行这条命令确认配置下发成功。display mac-address security和display mac-address不同,前者只看安全动态表项,能快速定位 sticky MAC 是否学习到。

display dhcp snooping binding前面已经出现过,是看绑定表的核心命令。如果终端获取了 IP 但绑定表里没有记录,就要怀疑接口下是否真的启用了dhcp snooping enable,或者信任端口配置是否正确。display ip source check user-bind和display arp anti-attack分别是 IPSG 和 DAI 的查验命令,能看到下发的过滤规则数量和接口状态,但这类命令在不同产品线中输出格式稍有差异,考试以华为通用版本为准。

排查故障时,还有一个好习惯:先看接口的统计信息,比如:

[SW] display interface GigabitEthernet0/0/2

看 Input 方向的discarded计数。如果 IPSG 或 DAI 丢包严重,计数增长会很明显。此后再结合抓包确认报文类型,基本能锁定是哪一层防护把流量丢掉的。在模拟器里多敲几次这些命令,比单纯背命令要牢靠得多。

6.2 做题时的几个容易混淆的点

HCIA 交换安全部分的考题,虽然不难,但有几个易混淆点我本人和其他备考的朋友都踩过,整理出来供参考。

第一是端口安全的违规动作protect、restrict、shutdown的区别。考试喜欢给一个场景,问“端口收到未知 MAC 后应该选择哪种动作”。很多人记不住protect和restrict的差异:两者都丢弃报文,但restrict会上报日志和告警,protect只做静默丢弃。如果题目提到“需要在网管系统看到告警”,答案肯定是restrict。

第二是 DHCP Snooping 信任端口的判断。记住一句话:信任端口是“朝向 DHCP 服务器方向”的端口,不是“连接重要设备的端口”。有人把服务器端口配置成信任,却忘了上联口,考试给个拓扑让你选哪些接口该配置信任,很容易错。上联到核心的接口必须信任,否则 DHCP 响应报文回不来。

第三是 IPSG 和 DAI 的依赖关系。IPSG 检查的是 IP 报文,DAI 检查的是 ARP 报文,两者都要绑定表。考试如果问“开启 DAI 前必须开启哪个功能”,答案是 DHCP Snooping,不是端口安全。很多人把端口安全和 DHCP Snooping 的层次搞混,看到“限制 MAC”就想选端口安全,实际 DAI 的检查依据是绑定表,绑定表来自 DHCP Snooping。

第四个点是风暴控制的判断。题目问“网络中出现了大量未知单播帧,应该配置什么”,有的选项是广播抑制,有的选项是未知单播抑制,正确答案不是广播,而是unicast-suppression。这里的陷阱在于很多人只记住了“风暴控制”这个总称,没记住它细分为三种类型。

6.3 个人实操中的几个心得

整套交换安全配置学习下来,如果只能记住一句话,我会选:交换安全的核心不是某个单独的功能,而是让交换机从“无脑转发”变成“按表转发、来源可溯”。端口安全、DHCP Snooping、IPSG、DAI 四者环环相扣,本质都是在建立和维护一张可信的终端身份表。谁在表里,谁就能通信;谁不在表里,谁的报文就被丢弃。

我在实验室测试时,习惯搭一个最小环境:一台交换机、一台伪造 DHCP 服务器的笔记本、一台正常终端。先不开任何防护,正常终端会被仿冒服务器“劫持”,网关 MAC 变成攻击者;然后逐步开启 DHCP Snooping、IPSG、DAI,每一步配合display命令验证效果。这个实验做一遍,远比刷十道题管用。考试不只是考命令的记忆,更考对机制的理解,而机制只有在亲手复现过攻击和防御过程后才能真正内化。

最后再提一个容易被忽略的点:所有交换安全功能都有性能代价,尤其是绑定表数量很大或者开启全局检测的时候。在真机环境上线前,先在小范围试点,观察交换机的 CPU 使用率、硬件表项利用率和终端体验,再逐步扩大范围。安全配置不是越高越好,而是要在业务可用和防护强度之间找到平衡点。对 HCIA 学习者来说,掌握了平衡的思路,到了 HCIP、HCIE 阶段面对更大规模的网络时,才能不被一纸配置命令绑住手脚。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询