板块10 · 交换安全与接入控制
板块10 · 交换安全与接入控制
本板块解决什么问题:园区网的安全问题大多发生在二层,因为 ARP、DHCP、STP 这些二层协议天生缺乏认证机制——谁都能说话,且默认相信。这一板块讲清楚每种威胁用什么技术防,以及各技术之间的依赖关系。
对应 RGSA 考纲:端口安全(基础);RGSP 考纲:交换安全技术(端口安全、DHCP Snooping、IP Source Guard、ARP Check、全局地址绑定、AAA、802.1X)。
10_1 二层威胁全景与两张独立的绑定表
威胁与防护对照
| 威胁 | 攻击手法 | 后果 | 防护手段 |
|---|---|---|---|
| MAC 泛洪 | 伪造大量源 MAC 打满 CAM 表 | 交换机退化为 Hub,流量被窃听 | 端口安全 |
| 私接设备 | 用户接 Hub/小交换机 | 环路、越权接入 | 端口安全 + BPDU Guard + RLDP |
| DHCP 欺骗 | 私接路由器充当 DHCP 服务器 | 下发错误网关,中间人攻击 | DHCP Snooping |
| IP 地址盗用 | 冒用他人 IP | 地址冲突、权限冒用 | IP Source Guard |
| ARP 欺骗 | 伪造网关 ARP 应答 | 流量劫持、断网 | ARP Check / 全局地址绑定 |
★ 两张独立的绑定表(关键澄清)
很多资料把这几项技术混为一谈,实际上锐捷的二层安全依赖两套彼此独立的绑定表:
【体系一:DHCP 动态环境】
ip dhcp snooping
│ 自动生成动态绑定表(IP + MAC + VLAN + 端口 + 租期)
↓
ip verify source port-security(IP Source Guard)
└─ 依赖 Snooping 动态绑定表,防 IP 盗用
【体系二:静态 IP 环境】
address-bind IP MAC ← 全局静态绑定表
+
address-bind uplink 上联口 ← 指定不受检查的端口
+
address-bind install ← 全局启用
↓
接口下 arp-check
└─ 依赖 address-bind 静态绑定表,防 ARP 欺骗
【可选组合】
端口安全绑定表(switchport port-security mac-address X ip-address Y)
↓
接口下 arp-check
└─ 也可作为 arp-check 的数据来源(Policy Source 显示为 port-security)
★ 这是本板块最重要的一张图。记住:IP Source Guard 依赖 DHCP Snooping 表;ARP Check 依赖 address-bind 表或端口安全表。它们的依赖对象不同,不能混用。
现场故事 · 顺序搞反,全网不通
工程师想防 ARP 欺骗,直接在接入交换机所有端口上开启了arp-check,却没有配任何绑定表。
结果:所有终端立刻上不了网。因为 arp-check 需要一张"合法的 IP-MAC 对应表"来校验,没有表就意味着所有 ARP 报文都不合法,全部被丢。
正确做法:先建绑定表(DHCP Snooping 动态表或 address-bind 静态表),再在端口上启用检查。
复盘:所有"校验类"安全特性,都必须先有"校验依据"。 记住一句话:先有表,后开检查。
10_2 端口安全 Port Security
能做什么
限制端口允许接入的 MAC 地址数量,并可把 MAC 与 IP 绑定,防 MAC 泛洪和私接设备。
基础配置
Ruijie(config)# interface gi0/1
Ruijie(config-if)# switchport port-security ! 开启端口安全功能
Ruijie(config-if)# exit
限制最大安全地址数
Ruijie(config)# interface gi0/1
Ruijie(config-if)# switchport port-security
Ruijie(config-if)# switchport port-security maximum 1 ! 1-128
Ruijie(config-if)# switchport port-security violation shutdown
Ruijie(config-if)# exit
注意:
maximum限制的是动态学习到的安全地址数量,手工配置的静态安全地址绑定不受此限制。
拼写提醒:标准写法是maximum(取值范围 1-128),不是maxmum。
Sticky MAC(自动粘绑)
Ruijie(config)# interface gi0/1
Ruijie(config-if)# switchport port-security
Ruijie(config-if)# switchport port-security maximum 2
Ruijie(config-if)# switchport port-security mac-address sticky
! 自动把当前学到的 MAC 写入配置,免去手工抄 MAC 的麻烦
完整语法(带指定 MAC 和 VLAN):
Ruijie(config-if)# switchport port-security mac-address sticky 0021.cccf.6f70 vlan 10
IP + MAC 地址绑定
Ruijie(config)# interface gi0/1
Ruijie(config-if)# switchport port-security
Ruijie(config-if)# switchport port-security mac-address 0021.cccf.6f70 ip-address 192.168.10.11
! MAC 地址用小写,格式为 xxxx.xxxx.xxxx
三种违例处理动作
| 动作 | 行为 | 适用场景 |
|---|---|---|
protect |
安全地址数满后,丢弃未知源地址的报文,不告警 | 宽松,静默丢弃 |
restrict |
违例时丢弃报文并发送 Trap | 需要告警但不停端口 |
shutdown |
违例时丢弃报文、关闭接口(err-disable)并发送 Trap | 最常用,最严格 |
Ruijie(config-if)# switchport port-security violation shutdown
! 全局配置自动恢复:
Ruijie(config)# errdisable recovery interval 300
Ruijie(config)# errdisable recovery cause port-security
验证
Ruijie# show port-security ! 查看端口安全全局配置
Ruijie# show port-security address ! 查看安全 MAC 地址绑定表
Ruijie# show port-security interface gi0/1 ! 查看指定端口
Ruijie# show interfaces status ! 看端口是否被 err-disable
show port-security address 输出示例:
Vlan Mac Address IP Address Type Port Remaining Age(mins)
---- -------------- --------------- ---------- ------ -------------------
1 00d0.0000.0001 192.168.0.1 Configured Fa0/1 -
端口安全的局限
端口安全是逐端口配置的,24 口交换机要配 24 遍。大规模部署更依赖 DHCP Snooping + IP Source Guard(动态自动绑定)这套体系。
10_3 DHCP Snooping:防私接 DHCP 服务器
工作原理
把交换机端口分为两类:
| 端口类型 | 行为 | 配置 |
|---|---|---|
| Trust(信任) | 允许转发 DHCP 服务器响应报文(Offer/Ack) | ip dhcp snooping trust |
| Untrust(非信任) | 丢弃 DHCP 服务器响应报文,只放行客户端请求 | 默认,不需配 |
┌─────────────────┐
合法 DHCP 服务器 ─┤ Gi0/24 [Trust] │
192.168.10.1 │ │
│ 接入交换机 │
私接路由器 ───────┤ Gi0/5 [Untrust] │ ← Offer/Ack 被丢弃
└────────┬────────┘
│ Gi0/10 [Untrust] ← 只放行 DHCP 请求
PC(正常获取合法地址)
配置
! 1. 全局开启 DHCP Snooping
Ruijie(config)# ip dhcp snooping
! 2. 上联口设为信任(连接合法 DHCP 服务器或中继设备的端口)
Ruijie(config)# interface range gi0/1-2
Ruijie(config-if-range)# ip dhcp snooping trust
Ruijie(config-if-range)# exit
! 3. 指定 Snooping 生效的 VLAN
Ruijie(config)# ip dhcp snooping vlan 10,20
! 4.(可选)限制 DHCP 报文速率,防 DHCP 泛洪攻击
Ruijie(config)# interface gi0/5
Ruijie(config-if)# ip dhcp snooping limit rate 10 ! 每秒最多 10 个 DHCP 报文
绑定表
DHCP Snooping 会生成一张动态绑定表,记录 IP + MAC + VLAN + 端口 + 租期:
Ruijie# show ip dhcp snooping binding
! MacAddress IpAddress Lease(sec) Type VLAN Interface
! 0021.cccf.6f70 192.168.10.11 604800 dhcp-snooping 10 Gi0/10
Ruijie# show ip dhcp snooping ! 查看全局配置与状态
Ruijie# clear ip dhcp snooping binding ! 清除绑定表
★ 这张表是 IP Source Guard 的数据基础。
部署要点:上联口一定要配 trust,否则合法 DHCP 服务器的响应也被丢弃,全网拿不到地址。这是 DHCP Snooping 最常见的配置事故。
10_4 IP Source Guard:防 IP 盗用
解决的问题
用户手工把 IP 改成别人的(或改成网关地址)→ 地址冲突、越权访问。IP Source Guard 在端口上做源地址校验,不匹配绑定表的一律丢弃。
★ 加不加 port-security 关键字的区别(高频考点)
Ruijie(config-if-range)# ip verify source port-security
! ↑
| 写法 | 检查内容 |
|---|---|
加 port-security |
检查 IP 报文的二层源 MAC 地址 + IP 源 IP 地址 |
不加 port-security |
只检查二层帧的源 MAC 地址 |
★ 要防"私设 IP",必须加
port-security——不加的话只校验 MAC,改 IP 是拦不住的。
版本差异(重要)
| 软件版本 | 命令 |
|---|---|
| 10.3 及以上 | ip verify source port-security |
| 10.3 以前 | ip dhcp snooping address-bind |
| 另一种写法 | ip verify source vlan dhcp-snooping ip-mac(开启源 IP+MAC 检测,将 Snooping 表写入地址绑定库) |
配置(基于 DHCP Snooping)
! 前提:已启用 DHCP Snooping 并生成绑定表
! 在接终端的端口上启用源校验
Ruijie(config)# interface range gi0/1-23
Ruijie(config-if-range)# ip verify source port-security
Ruijie(config-if-range)# exit
静态绑定(静态 IP 终端)
! 为静态 IP 的打印机手工添加绑定表项
Ruijie(config)# ip source binding 0021.cccf.6f70 vlan 10 192.168.10.200 interface gi0/3
Ruijie(config)# interface gi0/3
Ruijie(config-if)# ip verify source port-security
使用注意事项(重要)
| 注意点 | 说明 |
|---|---|
| 必须先启用 DHCP Snooping | 否则无绑定表,源校验会导致全部不通 |
| 端口启用后未绑定的流量被丢弃 | 已绑定终端重启后需重新获取地址,或已有静态绑定 |
| 静态 IP 终端必须手工加绑定 | 否则上不了网 |
| 不要在级联交换机端口配置 | 如果交换机下还有级联交换机,应在接入交换机上部署,不要配在级联口 |
★ 官方部署要点:如果交换机下还有级联交换机,则不要在级联交换机端口配置 IP Source Guard,而应该在接入交换机上部署。
验证
Ruijie# show ip source binding ! 查看绑定表(动态 + 静态)
Ruijie# show ip verify source ! 查看端口源校验状态
10_5 全局地址绑定 + ARP Check:防 ARP 欺骗
ARP 欺骗原理
正常: PC ──"谁是网关 192.168.10.1?"──▶ 网关应答真实 MAC
攻击: 攻击者 PC ──"我是 192.168.10.1,MAC 是 攻击者MAC"──▶ 广播给全网
结果: 其他 PC 的 ARP 表被污染,流量全部发往攻击者 → 中间人攻击/断网
网关 ARP 欺骗危害最大:所有出网流量都经过攻击者。
全局 IP+MAC 绑定 + ARP-Check(静态环境方案)
这是锐捷针对静态 IP 环境的标准防 ARP 欺骗方案。
Ruijie> enable
Ruijie# configure terminal
! 1. 全局 IP + MAC 绑定(逐条添加终端与网关)
Ruijie(config)# address-bind 192.168.1.1 0021.cccf.6f70
Ruijie(config)# address-bind 192.168.1.10 0021.cccf.6f71
Ruijie(config)# address-bind 192.168.1.11 0021.cccf.6f72
! 2. 指定上联口(不受检查,避免把网关/上联流量误判)
Ruijie(config)# interface gi0/24
Ruijie(config-if)# address-bind uplink
Ruijie(config-if)# exit
! 3. 全局启用绑定功能
Ruijie(config)# address-bind install
! 4. 在接终端的端口启用 ARP 检查
Ruijie(config)# interface range gi0/1-23
Ruijie(config-if-range)# arp-check
Ruijie(config-if-range)# exit
Ruijie(config)# end
Ruijie# write
配置顺序(★ 不能颠倒)
① address-bind IP MAC 建表(校验依据)
↓
② address-bind uplink 放行上联口
↓
③ address-bind install 全局启用
↓
④ 接口下 arp-check 开启检查
★ 部署禁忌:不配
address-bind uplink就把上联口纳入检查,会把网关的 ARP 报文也丢弃,导致全网不通。
与端口安全绑定的组合
静态环境下也可用端口安全绑定表作为 arp-check 的数据源:
Ruijie(config)# interface gi0/1
Ruijie(config-if)# switchport port-security
Ruijie(config-if)# switchport port-security mac-address 0021.cccf.6f70 ip-address 192.168.10.11
Ruijie(config-if)# arp-check ! 使用端口安全绑定表做校验
此时 show 输出中 Policy Source 会显示为 port-security。
验证
Ruijie# show address-bind ! 查看全局绑定表
Ruijie# show address-bind statistics ! 查看绑定统计
Ruijie# show arp-check ! 查看 ARP 检查状态
Ruijie# show interfaces status ! 看是否有端口因违例被关
三种 ARP 防护方案选型
| 方案 | 依赖表 | 适用环境 | 配置量 |
|---|---|---|---|
| DHCP Snooping + IP Source Guard | Snooping 动态表 | DHCP 环境 | 小(自动绑定) |
| address-bind + arp-check | 全局静态表 | 静态 IP 环境 | 大(逐条录入) |
| 端口安全 + arp-check | 端口安全表 | 小规模固定终端 | 中(逐端口) |
10_6 AAA 与 802.1X 准入概览
承上启下:10_2 到 10_5 解决的是「这个端口上接的设备,它的 MAC / IP 是否合法」,依据是绑定表,属于设备级校验。但在真正需要严管的环境里,问题还要再往前一步:「这个人是谁、有没有资格接入」。这就进入了身份级准入,靠 AAA 与 802.1X 解决。
AAA 三要素
| 要素 | 含义 | 说明 |
|---|---|---|
| Authentication(认证) | 你是谁 | 验证身份 |
| Authorization(授权) | 你能干什么 | 分配权限/VLAN |
| Accounting(计费/审计) | 你干了什么 | 记录行为 |
RADIUS 配置
! 1. 配置 RADIUS 服务器
Ruijie(config)# radius-server host 192.168.100.10 key ruijie123
Ruijie(config)# radius-server timeout 5
Ruijie(config)# radius-server retransmit 3
! 2. 配置 AAA 认证方法列表
Ruijie(config)# aaa new-model
Ruijie(config)# aaa authentication login default group radius local
! ↑ RADIUS 不可用时用本地认证兜底
Ruijie(config)# aaa authentication dot1x default group radius
! 3. 应用到 VTY
Ruijie(config)# line vty 0 4
Ruijie(config-line)# login authentication default
★ 兜底很重要:
group radius local中的local保证 RADIUS 服务器宕机时仍能用本地账号登录设备。漏掉它,一旦服务器故障就连不上设备了。
802.1X 准入
作用:终端接入网络前必须通过认证,认证通过后才放行流量。适用于需要严格准入的办公网。
终端 ──── 接入交换机(认证者)──── RADIUS 服务器
│ │ │
└──EAPoL────▶│◀──── RADIUS ──────────▶│
│ 认证结果(放行/拒绝/下发VLAN)
! 全局开启 802.1X
Ruijie(config)# dot1x authentication default
Ruijie(config)# aaa authentication dot1x default group radius
! 接口下启用
Ruijie(config)# interface gi0/1
Ruijie(config-if)# dot1x port-control auto
Ruijie(config-if)# exit
Ruijie# show dot1x ! 查看 802.1X 全局状态
Ruijie# show dot1x interface gi0/1 ! 查看端口认证状态
Ruijie# show dot1x user ! 查看已认证用户
园区网安全部署推荐组合
接入交换机标准配置(可整段作为模板):
✓ portfast + bpduguard (防私接交换机造成环路)
✓ rldp loop-detect (防傻瓜交换机环路)
✓ port-security(可选) (限制接入 MAC 数量)
✓ ip dhcp snooping + trust (防私接 DHCP 服务器)
✓ ip verify source port-security(防私改 IP)
✓ address-bind + arp-check (防 ARP 欺骗,静态环境)
✓ 上联口不配 arp-check / rldp shutdown
10_7 速记卡 · 板块10
| 编号 | 一句话结论 | 关键词 |
|---|---|---|
| ★1 | 先有绑定表,后开检查——没有校验依据就开检查 = 全网不通 | 部署第一原则 |
| ★2 | IP Source Guard 依赖 DHCP Snooping 表 | 体系一 |
| ★3 | ARP Check 依赖 address-bind 表或端口安全表 | 体系二 |
| ★4 | ip verify source 加 port-security 才校验 IP |
高频考点 |
| ★5 | DHCP Snooping 上联口必须配 trust | 最常见事故 |
| ★6 | 版本差异:10.3 前用 ip dhcp snooping address-bind |
版本提示 |
| ★7 | IP Source Guard 要部署在接入交换机,不要配级联口 | 官方要点 |
| ★8 | address-bind 四步:建表 → uplink → install → arp-check | 顺序不可颠倒 |
| ★9 | 端口安全三种动作:protect / restrict / shutdown(最常用) | 违例处理 |
| ★10 | AAA 用 group radius local,local 是断网兜底 |
运维保命 |
| ★11 | ARP 表 MAC 跳变 = ARP 欺骗 | 与板块2 呼应 |
浙公网安备 33010602011771号