员工私接了一台路由器,第二天全公司上不了网
文章目录
- 员工私接了一台路由器,第二天全公司上不了网
-
- 一、开场:为了手机 WiFi,他把全公司“搞断网”了
- 二、私接为什么危险:它抢网关、抢 DHCP
-
- 1. 类比:有人在小区门口乱发指路条
- 2. 私接路由器干的几件坏事
- 三、接入交换机三道保护
-
- 1. 端口安全:锁死“这个口能有几个 MAC”
- 2. 风暴抑制:给广播“限流”
- 3. 环路检测:发现“自己绕回来”就报警
- 四、命令落点(华为 VRP)
-
- 1. 端口安全(完整链路)
- 2. 风暴抑制
- 3. 环路检测
- 4. 二层排查五步法
- 5. 异常与排查
- 思科对照
- 五、🔧 运维视角 & 📐 设计视角
- 六、小结与命令速查表
- 七、思考题 & 评论区接招
一、开场:为了手机 WiFi,他把全公司“搞断网”了
那天早上,公司陆续有人喊“上不了网”,而且不是一两个,是一整片工位。我让人把电脑的地址发我一看,好家伙,拿到的网关不是公司的 192.168.10.254,而是一个陌生的 192.168.0.1。
顺着交换机的 MAC 表查,发现这个地址来自工位上一台新出现的家用小路由器。一打听,昨天有个员工嫌自己手机连公司 WiFi 麻烦,偷偷把一台家用路由器插到了墙上的网口,还开着它自己的 DHCP。
这台路由器一上电,就开始给周围的电脑“发地址、发网关”,谁先抢到它的地址,就被它带着走——而它的出口根本没正确连公司网,于是这些人全断了。
拔了那台路由器、让大家重新获取地址,网络才恢复。
接入层就是这样,设备多、人多、手杂,你永远不知道下一个往网口上插什么。光靠“大家自觉”不靠谱,得在交换机上把保护配齐。这一课讲四件事:私接为什么危险、端口安全怎么锁、风暴抑制和环路检测怎么配,以及二层故障那套“五步法”。
二、私接为什么危险:它抢网关、抢 DHCP
1. 类比:有人在小区门口乱发指路条
- 一个小区本来只有一个大门、一个门卫指路;
- 现在有人在门口自己摆摊、乱发“门牌”和“指路条”,还说“跟我走”;
- 住户拿到错误的指路条,全被带进了死胡同。
2. 私接路由器干的几件坏事

- 私发 DHCP:和公司的 DHCP 抢着发地址,电脑可能拿到错误网段、错误网关;
- 抢网关:它自己当网关,把流量引到自己身上,再做 NAT,访问时通时不通;
- 接错口还可能形成环路:一根线两头插,直接广播风暴;
- 这类问题的共性是:一台来路不明的设备,混进了本该“干净”的接入层。
怎么在交换机上把这台设备揪出来?
现场我一般这么查:
关键是别在整网里瞎找,一个 MAC 地址、一条查表命令,几分钟就能把设备定位到具体端口。
三、接入交换机三道保护

1. 端口安全:锁死“这个口能有几个 MAC”
- 类比:门禁登记,一个房间只允许规定数量的人进,多了就报警;
- 端口安全(Port Security)可以限制一个端口最多学习到几个 MAC,还能把指定 MAC 静态绑定;
- 超过限制、或出现未登记的 MAC,就按“违规动作”处理。
2. 风暴抑制:给广播“限流”
- 类比:水龙头限流,水太大就自动关小,别让它漫出来;
- 风暴抑制对广播、组播、未知单播分别设阈值,超过就丢,防止广播风暴把带宽占满;
- 它是“兜底”,即使环路真发生了,也能把风暴压在一定范围内。
3. 环路检测:发现“自己绕回来”就报警
- 类比:对着镜子喊,发现自己的声音绕回来了,就知道有环;
- 环路检测(Loopback Detection)周期性发检测帧,如果这个帧从发出去的口又绕回来,说明端口下有环,随即按配置关闭或告警;
- 它能发现 STP 管不到的“下游小交换机自环”。
还有一招专门防私接 DHCP:DHCP Snooping。
前面说的私接路由器,核心危害是它“乱发 DHCP”。DHCP Snooping 把端口分成“可信口”和“不可信口”:
- 上联、接公司 DHCP 服务器的口设为可信,允许发 DHCP 应答;
- 接员工终端的口设为不可信,只允许发 DHCP 请求、不允许发应答;
- 这样即使有人私接了路由器,它发出的 DHCP 应答在端口上就被直接丢弃,根本害不到别人。
它和端口安全、风暴抑制、环路检测一起,构成接入层的完整防护。
四、命令落点(华为 VRP)
1. 端口安全(完整链路)
<SW> system-view
[SW] interface GigabitEthernet 0/0/10
[SW-GigabitEthernet0/0/10] port-security enable
[SW-GigabitEthernet0/0/10] port-security max-mac-num 2
[SW-GigabitEthernet0/0/10] port-security protect-action restrict
[SW-GigabitEthernet0/0/10] quit
[SW] return
<SW> save
protect-action 三种:protect(丢弃多余的,不告警)、restrict(丢弃并告警、记日志)、shutdown(直接关端口)。办公口一般用 restrict,既挡住又留痕。
三种违规动作的区别再明确一下:
- protect:超过限制的 MAC 直接丢弃,不记日志、不告警,悄悄处理,排查时不容易发现;
- restrict:丢弃的同时记日志、发告警,你能知道“这个口有人想多接设备”,办公口最常用;
- shutdown:一旦违规直接把端口关闭,最严厉,需要人工恢复,适合要求很严的场景。
我个人偏好 restrict,既挡住了又留了痕迹,现场能第一时间知道哪个口在“搞事情”。
静态绑定用在什么地方?
对位置固定、不允许被替换的设备,比如服务器、网络打印机、门禁控制器,可把它的 MAC 直接绑定到端口:
[SW-GigabitEthernet0/0/10] port-security mac-address 0050-5600-1234
绑定后这个口只认这个 MAC,换设备就不通。好处是确定性强,缺点是换设备要同步改配置,所以只对长期固定的关键设备用,普通办公口用动态限制数量即可。
2. 风暴抑制
[SW] interface GigabitEthernet 0/0/10
[SW-GigabitEthernet0/0/10] storm suppression broadcast 10
[SW-GigabitEthernet0/0/10] storm suppression multicast 10
[SW-GigabitEthernet0/0/10] storm suppression unknown-unicast 10
阈值给的是百分比,即广播/组播/未知单播最多占该端口带宽的 10%。普通办公口设 5%~10% 较常见,太低可能误伤正常广播,可结合实际抓包调整。
阈值怎么定?别一上来设太低。
- 正常网络里也有广播(ARP 请求、DHCP 等),设成 0 或 1% 很可能把正常业务也误杀;
- 办公口一般从 5%~10% 起步,先抓包看看正常时广播占比,再在此基础上留余量;
- 阈值是“安全垫”,目的是风暴来了别把整口带宽占满,而不是追求越小越好;
- 全网统一一个值方便模板化,个别特殊口(上联、服务器)单独评估。
3. 环路检测
[SW] loopback-detect enable
[SW] interface GigabitEthernet 0/0/10
[SW-GigabitEthernet0/0/10] loopback-detect packet vlan 10
[SW-GigabitEthernet0/0/10] loopback-detect action shutdown
验证:
<SW> display loopback-detect
Loopback-detect is enabled
Interface GigabitEthernet0/0/10:
Detect VLAN: 10
Action: Shutdown
Status: Normal # 检测到环会显示 Loopback
4. 二层排查五步法

| 1 看范围 | 是一台还是一片 | 问现场 | 一片优先查上游/环路 |
| 2 查端口 | Up 还是 Down | display interface brief | 物理/协商问题 |
| 3 看 MAC | 学到没有 | display mac-address | 没学到查接线/对端 |
| 4 查 VLAN | 放行对不对 | display port vlan | VLAN/Trunk 问题 |
| 5 查私接环路 | 有没有陌生设备 | display mac-address、display arp | 私接/自环 |
私接与环路排查决策
#mermaid-svg-EcikMhIzgG97umzP{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-EcikMhIzgG97umzP .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-EcikMhIzgG97umzP .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-EcikMhIzgG97umzP .error-icon{fill:#552222;}#mermaid-svg-EcikMhIzgG97umzP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-EcikMhIzgG97umzP .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-EcikMhIzgG97umzP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-EcikMhIzgG97umzP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-EcikMhIzgG97umzP .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-EcikMhIzgG97umzP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-EcikMhIzgG97umzP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-EcikMhIzgG97umzP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-EcikMhIzgG97umzP .marker.cross{stroke:#333333;}#mermaid-svg-EcikMhIzgG97umzP svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-EcikMhIzgG97umzP p{margin:0;}#mermaid-svg-EcikMhIzgG97umzP .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-EcikMhIzgG97umzP .cluster-label text{fill:#333;}#mermaid-svg-EcikMhIzgG97umzP .cluster-label span{color:#333;}#mermaid-svg-EcikMhIzgG97umzP .cluster-label span p{background-color:transparent;}#mermaid-svg-EcikMhIzgG97umzP .label text,#mermaid-svg-EcikMhIzgG97umzP span{fill:#333;color:#333;}#mermaid-svg-EcikMhIzgG97umzP .node rect,#mermaid-svg-EcikMhIzgG97umzP .node circle,#mermaid-svg-EcikMhIzgG97umzP .node ellipse,#mermaid-svg-EcikMhIzgG97umzP .node polygon,#mermaid-svg-EcikMhIzgG97umzP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-EcikMhIzgG97umzP .rough-node .label text,#mermaid-svg-EcikMhIzgG97umzP .node .label text,#mermaid-svg-EcikMhIzgG97umzP .image-shape .label,#mermaid-svg-EcikMhIzgG97umzP .icon-shape .label{text-anchor:middle;}#mermaid-svg-EcikMhIzgG97umzP .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-EcikMhIzgG97umzP .rough-node .label,#mermaid-svg-EcikMhIzgG97umzP .node .label,#mermaid-svg-EcikMhIzgG97umzP .image-shape .label,#mermaid-svg-EcikMhIzgG97umzP .icon-shape .label{text-align:center;}#mermaid-svg-EcikMhIzgG97umzP .node.clickable{cursor:pointer;}#mermaid-svg-EcikMhIzgG97umzP .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-EcikMhIzgG97umzP .arrowheadPath{fill:#333333;}#mermaid-svg-EcikMhIzgG97umzP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-EcikMhIzgG97umzP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-EcikMhIzgG97umzP .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-EcikMhIzgG97umzP .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-EcikMhIzgG97umzP .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-EcikMhIzgG97umzP .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-EcikMhIzgG97umzP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-EcikMhIzgG97umzP .cluster text{fill:#333;}#mermaid-svg-EcikMhIzgG97umzP .cluster span{color:#333;}#mermaid-svg-EcikMhIzgG97umzP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-EcikMhIzgG97umzP .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-EcikMhIzgG97umzP rect.text{fill:none;stroke-width:0;}#mermaid-svg-EcikMhIzgG97umzP .icon-shape,#mermaid-svg-EcikMhIzgG97umzP .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-EcikMhIzgG97umzP .icon-shape p,#mermaid-svg-EcikMhIzgG97umzP .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-EcikMhIzgG97umzP .icon-shape .label rect,#mermaid-svg-EcikMhIzgG97umzP .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-EcikMhIzgG97umzP .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-EcikMhIzgG97umzP .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-EcikMhIzgG97umzP :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
陌生地址
地址正常
是
否
一片人上不了网
拿到的地址正常吗
私接DHCP设备
查端口和链路
按MAC表找物理口
拔掉设备恢复
灯狂闪吗
环路 查接线
查VLAN和上联
5. 异常与排查
| 一片人拿到错误网关 | 看 DHCP/ARP | 陌生网关 | 私接路由器 | 找到设备拔掉、重获取 |
| 某口频繁掉线 | 看端口安全 | 被 restrict/shutdown | MAC 超限 | 查是否接小交换机 |
| 交换机灯狂闪 | 看 CPU/端口 | 广播占满 | 环路 | 断冗余、查自环 |
| 端口被自动关闭 | 看环路检测 | Loopback | 下游有环 | 排查下游接线 |
| 单台不通 | 看 MAC/端口 | 没学到 MAC | 线/网卡/口 | 换线换口测试 |
思科对照
| 端口安全 | port-security enable | switchport port-security |
| 最大 MAC | port-security max-mac-num | switchport port-security maximum |
| 违规动作 | port-security protect-action | switchport port-security violation |
| 风暴抑制 | storm suppression | storm-control broadcast level |
| 环路检测 | loopback-detect enable | errdisable detect cause |
| 看 MAC | display mac-address | show mac address-table |
五、🔧 运维视角 & 📐 设计视角
🔧 运维视角:
- 一片人拿到陌生地址,先查是不是私接路由器在发 DHCP,顺着 MAC 表揪设备;
- 端口安全、风暴抑制、环路检测是“三板斧”,接入口统一模板批量下发;
- 端口被自动关,先别急着开,看是 MAC 超限还是环路,查清再恢复。
📐 设计视角:
- 接入口出一份标准配置模板(边缘端口 + 端口安全 + 风暴抑制 + 环路检测),所有交换机统一;
- 明确“一个面板口只允许一个终端”,需要 IP 电话的口单独规划 MAC 数量;
- 把“禁止私接设备”写进用户入网须知,技术手段 + 管理手段一起上。
给你一份接入保护交付前检查清单:
- 每个接终端的口:边缘端口、端口安全(最大 MAC 数、违规动作)是否配好;
- 每个口:风暴抑制的广播/组播/未知单播阈值是否统一;
- 全局:环路检测是否开启、动作是否符合预期;
- 接 DHCP 服务器、上联的口:是否设为可信,避免被误拦;
- 割接前:在测试口制造一次自环、多接一个 MAC,验证保护是否真的生效;
- 交付文档:把标准端口模板、阈值、可信口清单写清楚,方便后期维护。
别只在配置里“写了”,要在真实口上“测了”,否则保护可能因为一条命令没生效而形同虚设。
六、小结与命令速查表
- 私接路由器抢 DHCP、抢网关,是接入层最常见的“人祸”;
- 端口安全限制 MAC 数量、可绑定、可设违规动作;
- 风暴抑制给广播/组播/未知单播限流,环路检测发现自环;
- 二层排查五步法:看范围、查端口、看 MAC、查 VLAN、定位私接环路。
本篇命令速查表(华为 VRP):
| 端口安全 | port-security enable | switchport port-security |
| 最大 MAC | port-security max-mac-num 2 | switchport port-security maximum 2 |
| 违规动作 | port-security protect-action restrict | switchport port-security violation restrict |
| 风暴抑制 | storm suppression broadcast 10 | storm-control broadcast level 10 |
| 环路检测 | loopback-detect enable | errdisable detect |
| 看环路 | display loopback-detect | show interfaces status err-disabled |
| 看 MAC | display mac-address | show mac address-table |
七、思考题 & 评论区接招
💬 互动题(评论区接招):
贴出你的接入交换机配置,我帮你挑安全隐患。 可以把你现在接入交换机上一个端口的配置发出来(注意抹掉敏感信息),我会逐条看: 1)有没有设边缘端口、端口安全? 2)风暴抑制、环路检测配了没? 3)有没有“一个口下面挂了小交换机”的隐患? 我会在评论区给出“该补哪几条”的具体建议。
系列导航:
– 上一课:第 31 课《堆叠与 M-LAG》
- 下一课:第 33 课《IP 地址与子网——网工面试必考的子网划分》
- 专栏主页:[网络工程师进阶:企业组网实战——从交换机配置到园区网交付]
我是你们的老网工。交换机篇到这里就收尾了——从第一次登录,到 VLAN、聚合、生成树、堆叠,再到接入保护,二层这摊事基本讲全。接下来进入路由篇,第一件事是把“地址”搞明白:IP 地址、子网掩码、CIDR、VLSM,以及面试必考的“这一段到底有多少可用地址”。下一课《IP 地址与子网》,我用一张速算表,帮你把子网划分彻底算明白。下一课见。
网硕互联帮助中心





评论前必须登录!
注册