云计算百科
云计算领域专业知识百科平台

组网第32课:接入保护与二层排障——端口安全、风暴抑制、环路检测与五步法

员工私接了一台路由器,第二天全公司上不了网


文章目录

  • 员工私接了一台路由器,第二天全公司上不了网
    • 一、开场:为了手机 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. 私接路由器干的几件坏事

图1:私接路由器私发 DHCP、乱发网关,电脑拿到错误地址,整段网络上不了网

  • 私发 DHCP:和公司的 DHCP 抢着发地址,电脑可能拿到错误网段、错误网关;
  • 抢网关:它自己当网关,把流量引到自己身上,再做 NAT,访问时通时不通;
  • 接错口还可能形成环路:一根线两头插,直接广播风暴;
  • 这类问题的共性是:一台来路不明的设备,混进了本该“干净”的接入层。

怎么在交换机上把这台设备揪出来?

现场我一般这么查:

  • 先在一台中招电脑上看它拿到的网关地址和 MAC(ipconfig /all);
  • 到接入交换机上查这个 MAC 是从哪个口学到的:display mac-address;
  • 这个 MAC 对应的物理口,就是私接设备所在的位置(或它的上联口);
  • 如果下面还挂了小交换机、一个口查不准,就逐级往下找,直到定位到具体面板;
  • 找到后拔掉设备,再让中招电脑重新获取地址。
  • 关键是别在整网里瞎找,一个 MAC 地址、一条查表命令,几分钟就能把设备定位到具体端口。


    三、接入交换机三道保护

    图2:接入交换机上的端口安全、风暴抑制、环路检测,把私接和环路挡在门外

    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. 二层排查五步法

    图3:从看范围、查端口、看 MAC、查 VLAN 接线到定位私接环路,逐层缩小

    步骤动作命令判断
    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 线/网卡/口 换线换口测试

    思科对照

    动作华为 VRP思科 IOS
    端口安全 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 地址与子网》,我用一张速算表,帮你把子网划分彻底算明白。下一课见。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 组网第32课:接入保护与二层排障——端口安全、风暴抑制、环路检测与五步法
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!