网络基础进阶:看懂子网划分与 VLAN
网络学习系列 · 第二篇
上一篇我们认识了 IP、网关、DNS、端口和基本排障方法。这一篇继续解决两个常见问题:为什么同一网段的设备通常可以直接通信?为什么有些设备接在同一台交换机上却不能互相访问?
学完本文后,你应该能够:
- 看懂
192.168.10.0/24这类网段表示方法; - 判断两个 IP 是否处于同一子网;
- 计算常见子网的地址范围和可用主机数;
- 理解 VLAN、Access 口和 Trunk 口;
- 看懂 PVE、交换机及企业网络中的基本 VLAN 配置;
- 按顺序排查跨 VLAN 通信故障。
目录
- 什么是子网
- [看懂 CIDR 和子网掩码](#看懂 CIDR 和子网掩码)
- [判断两个 IP 是否属于同一子网](#判断两个 IP 是否属于同一子网)
- 子网如何划分
- [什么是 VLAN](#什么是 VLAN)
- [Access 口和 Trunk 口](#Access 口和 Trunk 口)
- [VLAN 之间如何通信](#VLAN 之间如何通信)
- [PVE 中的 VLAN](#PVE 中的 VLAN)
- 常见故障排查
- 动手实验与学习计划
1. 什么是子网
子网可以理解为一个独立的网络区域。同一子网内的设备通常可以直接通信;前往其他子网时,则需要把数据交给网关转发。
例如,下面三台设备处于 192.168.10.0/24 子网:
text
电脑 A:192.168.10.11/24
电脑 B:192.168.10.12/24
服务器:192.168.10.100/24
网关: 192.168.10.1/24
它们之间可以通过交换机直接通信。如果电脑 A 要访问 192.168.20.100,目标不在同一子网,电脑 A 就会把数据发送给默认网关。
#mermaid-svg-6FrYyx1agGSmEjqQ{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-6FrYyx1agGSmEjqQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-6FrYyx1agGSmEjqQ .error-icon{fill:#552222;}#mermaid-svg-6FrYyx1agGSmEjqQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6FrYyx1agGSmEjqQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6FrYyx1agGSmEjqQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6FrYyx1agGSmEjqQ .marker.cross{stroke:#333333;}#mermaid-svg-6FrYyx1agGSmEjqQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6FrYyx1agGSmEjqQ p{margin:0;}#mermaid-svg-6FrYyx1agGSmEjqQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster-label text{fill:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster-label span{color:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster-label span p{background-color:transparent;}#mermaid-svg-6FrYyx1agGSmEjqQ .label text,#mermaid-svg-6FrYyx1agGSmEjqQ span{fill:#333;color:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ .node rect,#mermaid-svg-6FrYyx1agGSmEjqQ .node circle,#mermaid-svg-6FrYyx1agGSmEjqQ .node ellipse,#mermaid-svg-6FrYyx1agGSmEjqQ .node polygon,#mermaid-svg-6FrYyx1agGSmEjqQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-6FrYyx1agGSmEjqQ .rough-node .label text,#mermaid-svg-6FrYyx1agGSmEjqQ .node .label text,#mermaid-svg-6FrYyx1agGSmEjqQ .image-shape .label,#mermaid-svg-6FrYyx1agGSmEjqQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-6FrYyx1agGSmEjqQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-6FrYyx1agGSmEjqQ .rough-node .label,#mermaid-svg-6FrYyx1agGSmEjqQ .node .label,#mermaid-svg-6FrYyx1agGSmEjqQ .image-shape .label,#mermaid-svg-6FrYyx1agGSmEjqQ .icon-shape .label{text-align:center;}#mermaid-svg-6FrYyx1agGSmEjqQ .node.clickable{cursor:pointer;}#mermaid-svg-6FrYyx1agGSmEjqQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-6FrYyx1agGSmEjqQ .arrowheadPath{fill:#333333;}#mermaid-svg-6FrYyx1agGSmEjqQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-6FrYyx1agGSmEjqQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-6FrYyx1agGSmEjqQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6FrYyx1agGSmEjqQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-6FrYyx1agGSmEjqQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6FrYyx1agGSmEjqQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster text{fill:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ .cluster span{color:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ 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-6FrYyx1agGSmEjqQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-6FrYyx1agGSmEjqQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-6FrYyx1agGSmEjqQ .icon-shape,#mermaid-svg-6FrYyx1agGSmEjqQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6FrYyx1agGSmEjqQ .icon-shape p,#mermaid-svg-6FrYyx1agGSmEjqQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-6FrYyx1agGSmEjqQ .icon-shape .label rect,#mermaid-svg-6FrYyx1agGSmEjqQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6FrYyx1agGSmEjqQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-6FrYyx1agGSmEjqQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-6FrYyx1agGSmEjqQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 子网 B:192.168.20.0/24
子网 A:192.168.10.0/24
电脑 A
192.168.10.11
服务器 A
192.168.10.100
三层网关/路由器
192.168.10.1
192.168.20.1
电脑 B
192.168.20.11
服务器 B
192.168.20.100
**核心规则:**同一子网内直接通信,不同子网之间需要经过三层设备,例如路由器、三层交换机或防火墙。
2. 看懂 CIDR 和子网掩码
2.1 /24 是什么意思
IP 地址由 32 个二进制位组成。/24 表示前 24 位是网络部分,剩余 8 位用于表示主机。
text
IP 地址:192.168.10.25/24
网络部分:192.168.10
主机部分:25
/24 对应的子网掩码是:
text
255.255.255.0
#mermaid-svg-TeyAu1cazIt8u7UU{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-TeyAu1cazIt8u7UU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TeyAu1cazIt8u7UU .error-icon{fill:#552222;}#mermaid-svg-TeyAu1cazIt8u7UU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TeyAu1cazIt8u7UU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TeyAu1cazIt8u7UU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TeyAu1cazIt8u7UU .marker.cross{stroke:#333333;}#mermaid-svg-TeyAu1cazIt8u7UU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TeyAu1cazIt8u7UU p{margin:0;}#mermaid-svg-TeyAu1cazIt8u7UU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TeyAu1cazIt8u7UU .cluster-label text{fill:#333;}#mermaid-svg-TeyAu1cazIt8u7UU .cluster-label span{color:#333;}#mermaid-svg-TeyAu1cazIt8u7UU .cluster-label span p{background-color:transparent;}#mermaid-svg-TeyAu1cazIt8u7UU .label text,#mermaid-svg-TeyAu1cazIt8u7UU span{fill:#333;color:#333;}#mermaid-svg-TeyAu1cazIt8u7UU .node rect,#mermaid-svg-TeyAu1cazIt8u7UU .node circle,#mermaid-svg-TeyAu1cazIt8u7UU .node ellipse,#mermaid-svg-TeyAu1cazIt8u7UU .node polygon,#mermaid-svg-TeyAu1cazIt8u7UU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TeyAu1cazIt8u7UU .rough-node .label text,#mermaid-svg-TeyAu1cazIt8u7UU .node .label text,#mermaid-svg-TeyAu1cazIt8u7UU .image-shape .label,#mermaid-svg-TeyAu1cazIt8u7UU .icon-shape .label{text-anchor:middle;}#mermaid-svg-TeyAu1cazIt8u7UU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TeyAu1cazIt8u7UU .rough-node .label,#mermaid-svg-TeyAu1cazIt8u7UU .node .label,#mermaid-svg-TeyAu1cazIt8u7UU .image-shape .label,#mermaid-svg-TeyAu1cazIt8u7UU .icon-shape .label{text-align:center;}#mermaid-svg-TeyAu1cazIt8u7UU .node.clickable{cursor:pointer;}#mermaid-svg-TeyAu1cazIt8u7UU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-TeyAu1cazIt8u7UU .arrowheadPath{fill:#333333;}#mermaid-svg-TeyAu1cazIt8u7UU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-TeyAu1cazIt8u7UU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-TeyAu1cazIt8u7UU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TeyAu1cazIt8u7UU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-TeyAu1cazIt8u7UU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TeyAu1cazIt8u7UU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-TeyAu1cazIt8u7UU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-TeyAu1cazIt8u7UU .cluster text{fill:#333;}#mermaid-svg-TeyAu1cazIt8u7UU .cluster span{color:#333;}#mermaid-svg-TeyAu1cazIt8u7UU 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-TeyAu1cazIt8u7UU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TeyAu1cazIt8u7UU rect.text{fill:none;stroke-width:0;}#mermaid-svg-TeyAu1cazIt8u7UU .icon-shape,#mermaid-svg-TeyAu1cazIt8u7UU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TeyAu1cazIt8u7UU .icon-shape p,#mermaid-svg-TeyAu1cazIt8u7UU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-TeyAu1cazIt8u7UU .icon-shape .label rect,#mermaid-svg-TeyAu1cazIt8u7UU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TeyAu1cazIt8u7UU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TeyAu1cazIt8u7UU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TeyAu1cazIt8u7UU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192
168
10
25
网络位 8
网络位 8
网络位 8
主机位 8
2.2 常见掩码速查表
| CIDR | 子网掩码 | 地址总数 | 通常可用主机数 |
|---|---|---|---|
/8 |
255.0.0.0 |
16,777,216 | 16,777,214 |
/16 |
255.255.0.0 |
65,536 | 65,534 |
/24 |
255.255.255.0 |
256 | 254 |
/25 |
255.255.255.128 |
128 | 126 |
/26 |
255.255.255.192 |
64 | 62 |
/27 |
255.255.255.224 |
32 | 30 |
/28 |
255.255.255.240 |
16 | 14 |
/29 |
255.255.255.248 |
8 | 6 |
/30 |
255.255.255.252 |
4 | 2 |
通常可用主机数的计算方法为:
text
可用主机数 = 2^(32 - 掩码位数) - 2
减去的两个地址分别是网络地址和广播地址。
/31、/32有特殊用途,不应直接套用上述普通主机网段公式。
3. 判断两个 IP 是否属于同一子网
示例一:同一子网
text
192.168.10.20/24
192.168.10.88/24
两者的网络地址都是 192.168.10.0,因此处于同一子网。
示例二:不同子网
text
192.168.10.20/24
192.168.20.88/24
网络地址分别为 192.168.10.0 和 192.168.20.0,必须经过网关才能通信。
示例三:IP 很像,但不一定是同一子网
text
192.168.10.20/27
192.168.10.50/27
/27 每个子网包含 32 个地址:
text
第一个子网:192.168.10.0 ~ 192.168.10.31
第二个子网:192.168.10.32 ~ 192.168.10.63
所以 .20 和 .50 虽然前三段相同,却属于两个不同子网。
#mermaid-svg-uiJjPUPQeLBkZzU1{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-uiJjPUPQeLBkZzU1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-uiJjPUPQeLBkZzU1 .error-icon{fill:#552222;}#mermaid-svg-uiJjPUPQeLBkZzU1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-uiJjPUPQeLBkZzU1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .marker.cross{stroke:#333333;}#mermaid-svg-uiJjPUPQeLBkZzU1 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-uiJjPUPQeLBkZzU1 p{margin:0;}#mermaid-svg-uiJjPUPQeLBkZzU1 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster-label text{fill:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster-label span{color:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster-label span p{background-color:transparent;}#mermaid-svg-uiJjPUPQeLBkZzU1 .label text,#mermaid-svg-uiJjPUPQeLBkZzU1 span{fill:#333;color:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .node rect,#mermaid-svg-uiJjPUPQeLBkZzU1 .node circle,#mermaid-svg-uiJjPUPQeLBkZzU1 .node ellipse,#mermaid-svg-uiJjPUPQeLBkZzU1 .node polygon,#mermaid-svg-uiJjPUPQeLBkZzU1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .rough-node .label text,#mermaid-svg-uiJjPUPQeLBkZzU1 .node .label text,#mermaid-svg-uiJjPUPQeLBkZzU1 .image-shape .label,#mermaid-svg-uiJjPUPQeLBkZzU1 .icon-shape .label{text-anchor:middle;}#mermaid-svg-uiJjPUPQeLBkZzU1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .rough-node .label,#mermaid-svg-uiJjPUPQeLBkZzU1 .node .label,#mermaid-svg-uiJjPUPQeLBkZzU1 .image-shape .label,#mermaid-svg-uiJjPUPQeLBkZzU1 .icon-shape .label{text-align:center;}#mermaid-svg-uiJjPUPQeLBkZzU1 .node.clickable{cursor:pointer;}#mermaid-svg-uiJjPUPQeLBkZzU1 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .arrowheadPath{fill:#333333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-uiJjPUPQeLBkZzU1 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-uiJjPUPQeLBkZzU1 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-uiJjPUPQeLBkZzU1 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster text{fill:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 .cluster span{color:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 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-uiJjPUPQeLBkZzU1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-uiJjPUPQeLBkZzU1 rect.text{fill:none;stroke-width:0;}#mermaid-svg-uiJjPUPQeLBkZzU1 .icon-shape,#mermaid-svg-uiJjPUPQeLBkZzU1 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-uiJjPUPQeLBkZzU1 .icon-shape p,#mermaid-svg-uiJjPUPQeLBkZzU1 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-uiJjPUPQeLBkZzU1 .icon-shape .label rect,#mermaid-svg-uiJjPUPQeLBkZzU1 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-uiJjPUPQeLBkZzU1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-uiJjPUPQeLBkZzU1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-uiJjPUPQeLBkZzU1 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192.168.10.32/27
网络地址 .32
可用地址 .33 ~ .62
广播地址 .63
192.168.10.0/27
网络地址 .0
可用地址 .1 ~ .30
广播地址 .31
使用命令辅助计算
Linux 安装了 ipcalc 后,可以执行:
bash
ipcalc 192.168.10.20/27
也可以使用可信的子网计算器进行验证,但应先学会判断常见的 /24、/25、/26 和 /27。
4. 子网如何划分
假设公司获得了一个网段:
text
192.168.10.0/24
现在需要划分给四个部门,每个部门最多约 50 台设备。可以将 /24 划分成四个 /26 子网:
| 部门 | 网段 | 可用地址 | 广播地址 |
|---|---|---|---|
| 技术部 | 192.168.10.0/26 |
.1 ~ .62 |
.63 |
| 财务部 | 192.168.10.64/26 |
.65 ~ .126 |
.127 |
| 客服部 | 192.168.10.128/26 |
.129 ~ .190 |
.191 |
| 测试部 | 192.168.10.192/26 |
.193 ~ .254 |
.255 |
#mermaid-svg-GiDUdaoFIV5tWONV{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-GiDUdaoFIV5tWONV .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GiDUdaoFIV5tWONV .error-icon{fill:#552222;}#mermaid-svg-GiDUdaoFIV5tWONV .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GiDUdaoFIV5tWONV .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GiDUdaoFIV5tWONV .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GiDUdaoFIV5tWONV .marker.cross{stroke:#333333;}#mermaid-svg-GiDUdaoFIV5tWONV svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GiDUdaoFIV5tWONV p{margin:0;}#mermaid-svg-GiDUdaoFIV5tWONV .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GiDUdaoFIV5tWONV .cluster-label text{fill:#333;}#mermaid-svg-GiDUdaoFIV5tWONV .cluster-label span{color:#333;}#mermaid-svg-GiDUdaoFIV5tWONV .cluster-label span p{background-color:transparent;}#mermaid-svg-GiDUdaoFIV5tWONV .label text,#mermaid-svg-GiDUdaoFIV5tWONV span{fill:#333;color:#333;}#mermaid-svg-GiDUdaoFIV5tWONV .node rect,#mermaid-svg-GiDUdaoFIV5tWONV .node circle,#mermaid-svg-GiDUdaoFIV5tWONV .node ellipse,#mermaid-svg-GiDUdaoFIV5tWONV .node polygon,#mermaid-svg-GiDUdaoFIV5tWONV .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GiDUdaoFIV5tWONV .rough-node .label text,#mermaid-svg-GiDUdaoFIV5tWONV .node .label text,#mermaid-svg-GiDUdaoFIV5tWONV .image-shape .label,#mermaid-svg-GiDUdaoFIV5tWONV .icon-shape .label{text-anchor:middle;}#mermaid-svg-GiDUdaoFIV5tWONV .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GiDUdaoFIV5tWONV .rough-node .label,#mermaid-svg-GiDUdaoFIV5tWONV .node .label,#mermaid-svg-GiDUdaoFIV5tWONV .image-shape .label,#mermaid-svg-GiDUdaoFIV5tWONV .icon-shape .label{text-align:center;}#mermaid-svg-GiDUdaoFIV5tWONV .node.clickable{cursor:pointer;}#mermaid-svg-GiDUdaoFIV5tWONV .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GiDUdaoFIV5tWONV .arrowheadPath{fill:#333333;}#mermaid-svg-GiDUdaoFIV5tWONV .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GiDUdaoFIV5tWONV .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GiDUdaoFIV5tWONV .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GiDUdaoFIV5tWONV .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GiDUdaoFIV5tWONV .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GiDUdaoFIV5tWONV .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GiDUdaoFIV5tWONV .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GiDUdaoFIV5tWONV .cluster text{fill:#333;}#mermaid-svg-GiDUdaoFIV5tWONV .cluster span{color:#333;}#mermaid-svg-GiDUdaoFIV5tWONV 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-GiDUdaoFIV5tWONV .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GiDUdaoFIV5tWONV rect.text{fill:none;stroke-width:0;}#mermaid-svg-GiDUdaoFIV5tWONV .icon-shape,#mermaid-svg-GiDUdaoFIV5tWONV .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GiDUdaoFIV5tWONV .icon-shape p,#mermaid-svg-GiDUdaoFIV5tWONV .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GiDUdaoFIV5tWONV .icon-shape .label rect,#mermaid-svg-GiDUdaoFIV5tWONV .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GiDUdaoFIV5tWONV .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GiDUdaoFIV5tWONV .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GiDUdaoFIV5tWONV :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 原网段
192.168.10.0/24
256 个地址
技术部
192.168.10.0/26
财务部
192.168.10.64/26
客服部
192.168.10.128/26
测试部
192.168.10.192/26
划分子网的意义包括:
- 控制广播范围;
- 隔离不同业务或部门;
- 方便设置访问策略;
- 提高地址规划和故障定位效率。
5. 什么是 VLAN
VLAN 是 Virtual Local Area Network 的缩写,即虚拟局域网。它可以在同一套物理交换网络上划分多个相互隔离的二层网络。
假设技术部和财务部的电脑都接在同一台交换机上:
- 技术部端口加入 VLAN 10;
- 财务部端口加入 VLAN 20;
- 两个 VLAN 默认不能直接进行二层通信。
#mermaid-svg-H6V5Tfgc1FrP4Mzh{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-H6V5Tfgc1FrP4Mzh .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .error-icon{fill:#552222;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .marker.cross{stroke:#333333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh p{margin:0;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster-label text{fill:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster-label span{color:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster-label span p{background-color:transparent;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .label text,#mermaid-svg-H6V5Tfgc1FrP4Mzh span{fill:#333;color:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .node rect,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node circle,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node ellipse,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node polygon,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .rough-node .label text,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node .label text,#mermaid-svg-H6V5Tfgc1FrP4Mzh .image-shape .label,#mermaid-svg-H6V5Tfgc1FrP4Mzh .icon-shape .label{text-anchor:middle;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .rough-node .label,#mermaid-svg-H6V5Tfgc1FrP4Mzh .node .label,#mermaid-svg-H6V5Tfgc1FrP4Mzh .image-shape .label,#mermaid-svg-H6V5Tfgc1FrP4Mzh .icon-shape .label{text-align:center;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .node.clickable{cursor:pointer;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .arrowheadPath{fill:#333333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-H6V5Tfgc1FrP4Mzh .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-H6V5Tfgc1FrP4Mzh .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster text{fill:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .cluster span{color:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh 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-H6V5Tfgc1FrP4Mzh .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-H6V5Tfgc1FrP4Mzh rect.text{fill:none;stroke-width:0;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .icon-shape,#mermaid-svg-H6V5Tfgc1FrP4Mzh .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .icon-shape p,#mermaid-svg-H6V5Tfgc1FrP4Mzh .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .icon-shape .label rect,#mermaid-svg-H6V5Tfgc1FrP4Mzh .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-H6V5Tfgc1FrP4Mzh .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-H6V5Tfgc1FrP4Mzh .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-H6V5Tfgc1FrP4Mzh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} VLAN 20:财务部
VLAN 10:技术部
同一台物理交换机
电脑 A
电脑 B
电脑 C
电脑 D
VLAN 的主要作用:
- 进行网络隔离;
- 减少广播影响;
- 按部门、业务或安全级别划分网络;
- 不受设备实际位置限制,方便统一规划。
**子网与 VLAN 不是同一个概念:**子网属于三层 IP 规划,VLAN 属于二层网络隔离。实际工作中通常让一个 VLAN 对应一个 IP 子网。
例如:
text
VLAN 10 → 192.168.10.0/24
VLAN 20 → 192.168.20.0/24
VLAN 30 → 192.168.30.0/24
6. Access 口和 Trunk 口
6.1 Access 口
Access 口通常连接电脑、打印机、物理服务器等终端设备。一个 Access 口一般只属于一个 VLAN。
text
交换机 1 号口:Access VLAN 10 → 技术部电脑
交换机 2 号口:Access VLAN 20 → 财务部电脑
终端设备通常不需要知道 VLAN 标签,交换机会替它完成处理。
6.2 Trunk 口
Trunk 口可以承载多个 VLAN,通常用于连接:
- 两台交换机;
- 交换机与路由器;
- 交换机与防火墙;
- 交换机与 PVE、VMware 等虚拟化宿主机。
#mermaid-svg-NwW97oOy8o3EaRqj{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-NwW97oOy8o3EaRqj .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NwW97oOy8o3EaRqj .error-icon{fill:#552222;}#mermaid-svg-NwW97oOy8o3EaRqj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NwW97oOy8o3EaRqj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NwW97oOy8o3EaRqj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NwW97oOy8o3EaRqj .marker.cross{stroke:#333333;}#mermaid-svg-NwW97oOy8o3EaRqj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NwW97oOy8o3EaRqj p{margin:0;}#mermaid-svg-NwW97oOy8o3EaRqj .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NwW97oOy8o3EaRqj .cluster-label text{fill:#333;}#mermaid-svg-NwW97oOy8o3EaRqj .cluster-label span{color:#333;}#mermaid-svg-NwW97oOy8o3EaRqj .cluster-label span p{background-color:transparent;}#mermaid-svg-NwW97oOy8o3EaRqj .label text,#mermaid-svg-NwW97oOy8o3EaRqj span{fill:#333;color:#333;}#mermaid-svg-NwW97oOy8o3EaRqj .node rect,#mermaid-svg-NwW97oOy8o3EaRqj .node circle,#mermaid-svg-NwW97oOy8o3EaRqj .node ellipse,#mermaid-svg-NwW97oOy8o3EaRqj .node polygon,#mermaid-svg-NwW97oOy8o3EaRqj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NwW97oOy8o3EaRqj .rough-node .label text,#mermaid-svg-NwW97oOy8o3EaRqj .node .label text,#mermaid-svg-NwW97oOy8o3EaRqj .image-shape .label,#mermaid-svg-NwW97oOy8o3EaRqj .icon-shape .label{text-anchor:middle;}#mermaid-svg-NwW97oOy8o3EaRqj .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NwW97oOy8o3EaRqj .rough-node .label,#mermaid-svg-NwW97oOy8o3EaRqj .node .label,#mermaid-svg-NwW97oOy8o3EaRqj .image-shape .label,#mermaid-svg-NwW97oOy8o3EaRqj .icon-shape .label{text-align:center;}#mermaid-svg-NwW97oOy8o3EaRqj .node.clickable{cursor:pointer;}#mermaid-svg-NwW97oOy8o3EaRqj .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NwW97oOy8o3EaRqj .arrowheadPath{fill:#333333;}#mermaid-svg-NwW97oOy8o3EaRqj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NwW97oOy8o3EaRqj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NwW97oOy8o3EaRqj .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NwW97oOy8o3EaRqj .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NwW97oOy8o3EaRqj .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NwW97oOy8o3EaRqj .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NwW97oOy8o3EaRqj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NwW97oOy8o3EaRqj .cluster text{fill:#333;}#mermaid-svg-NwW97oOy8o3EaRqj .cluster span{color:#333;}#mermaid-svg-NwW97oOy8o3EaRqj 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-NwW97oOy8o3EaRqj .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NwW97oOy8o3EaRqj rect.text{fill:none;stroke-width:0;}#mermaid-svg-NwW97oOy8o3EaRqj .icon-shape,#mermaid-svg-NwW97oOy8o3EaRqj .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NwW97oOy8o3EaRqj .icon-shape p,#mermaid-svg-NwW97oOy8o3EaRqj .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NwW97oOy8o3EaRqj .icon-shape .label rect,#mermaid-svg-NwW97oOy8o3EaRqj .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NwW97oOy8o3EaRqj .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NwW97oOy8o3EaRqj .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NwW97oOy8o3EaRqj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Trunk:允许 VLAN 10、20
技术部电脑
Access VLAN 10
交换机 A
财务部电脑
Access VLAN 20
交换机 B
技术部服务器
Access VLAN 10
财务部服务器
Access VLAN 20
Trunk 链路通过 802.1Q 标签区分不同 VLAN 的数据。
容易混淆的地方
| 类型 | 一般连接对象 | 承载 VLAN | 数据是否通常带标签 |
|---|---|---|---|
| Access | 电脑、打印机、普通服务器 | 1 个 | 终端看到的通常不带标签 |
| Trunk | 交换机、路由器、防火墙、虚拟化宿主机 | 多个 | 通常携带 802.1Q 标签 |
7. VLAN 之间如何通信
VLAN 10 和 VLAN 20 属于不同的二层广播域,默认不能直接通信。它们要互相访问,必须经过三层设备进行路由。
#mermaid-svg-IjS8MAGmt9DSaceM{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-IjS8MAGmt9DSaceM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-IjS8MAGmt9DSaceM .error-icon{fill:#552222;}#mermaid-svg-IjS8MAGmt9DSaceM .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-IjS8MAGmt9DSaceM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-IjS8MAGmt9DSaceM .marker{fill:#333333;stroke:#333333;}#mermaid-svg-IjS8MAGmt9DSaceM .marker.cross{stroke:#333333;}#mermaid-svg-IjS8MAGmt9DSaceM svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-IjS8MAGmt9DSaceM p{margin:0;}#mermaid-svg-IjS8MAGmt9DSaceM .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-IjS8MAGmt9DSaceM .cluster-label text{fill:#333;}#mermaid-svg-IjS8MAGmt9DSaceM .cluster-label span{color:#333;}#mermaid-svg-IjS8MAGmt9DSaceM .cluster-label span p{background-color:transparent;}#mermaid-svg-IjS8MAGmt9DSaceM .label text,#mermaid-svg-IjS8MAGmt9DSaceM span{fill:#333;color:#333;}#mermaid-svg-IjS8MAGmt9DSaceM .node rect,#mermaid-svg-IjS8MAGmt9DSaceM .node circle,#mermaid-svg-IjS8MAGmt9DSaceM .node ellipse,#mermaid-svg-IjS8MAGmt9DSaceM .node polygon,#mermaid-svg-IjS8MAGmt9DSaceM .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-IjS8MAGmt9DSaceM .rough-node .label text,#mermaid-svg-IjS8MAGmt9DSaceM .node .label text,#mermaid-svg-IjS8MAGmt9DSaceM .image-shape .label,#mermaid-svg-IjS8MAGmt9DSaceM .icon-shape .label{text-anchor:middle;}#mermaid-svg-IjS8MAGmt9DSaceM .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-IjS8MAGmt9DSaceM .rough-node .label,#mermaid-svg-IjS8MAGmt9DSaceM .node .label,#mermaid-svg-IjS8MAGmt9DSaceM .image-shape .label,#mermaid-svg-IjS8MAGmt9DSaceM .icon-shape .label{text-align:center;}#mermaid-svg-IjS8MAGmt9DSaceM .node.clickable{cursor:pointer;}#mermaid-svg-IjS8MAGmt9DSaceM .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-IjS8MAGmt9DSaceM .arrowheadPath{fill:#333333;}#mermaid-svg-IjS8MAGmt9DSaceM .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-IjS8MAGmt9DSaceM .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-IjS8MAGmt9DSaceM .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IjS8MAGmt9DSaceM .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-IjS8MAGmt9DSaceM .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IjS8MAGmt9DSaceM .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-IjS8MAGmt9DSaceM .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-IjS8MAGmt9DSaceM .cluster text{fill:#333;}#mermaid-svg-IjS8MAGmt9DSaceM .cluster span{color:#333;}#mermaid-svg-IjS8MAGmt9DSaceM 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-IjS8MAGmt9DSaceM .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-IjS8MAGmt9DSaceM rect.text{fill:none;stroke-width:0;}#mermaid-svg-IjS8MAGmt9DSaceM .icon-shape,#mermaid-svg-IjS8MAGmt9DSaceM .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IjS8MAGmt9DSaceM .icon-shape p,#mermaid-svg-IjS8MAGmt9DSaceM .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-IjS8MAGmt9DSaceM .icon-shape .label rect,#mermaid-svg-IjS8MAGmt9DSaceM .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IjS8MAGmt9DSaceM .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-IjS8MAGmt9DSaceM .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-IjS8MAGmt9DSaceM :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 技术部电脑
VLAN 10
192.168.10.20
交换机
三层交换机/路由器/防火墙
VLAN 10 网关:192.168.10.1
VLAN 20 网关:192.168.20.1
财务服务器
VLAN 20
192.168.20.100
此时三层设备还可以配置访问控制策略,例如:
text
允许技术部访问财务系统的 TCP 443
禁止技术部直接访问财务数据库的 TCP 3306
允许运维网段通过 SSH 管理所有服务器
因此,VLAN 不只是为了"分开",更重要的是让访问关系变得可控制。
8. PVE 中的 VLAN
在 PVE 中,虚拟机通过 Linux Bridge 接入物理网络。常见结构如下:
#mermaid-svg-VmVpggd4ixbZqVa6{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-VmVpggd4ixbZqVa6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-VmVpggd4ixbZqVa6 .error-icon{fill:#552222;}#mermaid-svg-VmVpggd4ixbZqVa6 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-VmVpggd4ixbZqVa6 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-VmVpggd4ixbZqVa6 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-VmVpggd4ixbZqVa6 .marker.cross{stroke:#333333;}#mermaid-svg-VmVpggd4ixbZqVa6 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-VmVpggd4ixbZqVa6 p{margin:0;}#mermaid-svg-VmVpggd4ixbZqVa6 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster-label text{fill:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster-label span{color:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster-label span p{background-color:transparent;}#mermaid-svg-VmVpggd4ixbZqVa6 .label text,#mermaid-svg-VmVpggd4ixbZqVa6 span{fill:#333;color:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 .node rect,#mermaid-svg-VmVpggd4ixbZqVa6 .node circle,#mermaid-svg-VmVpggd4ixbZqVa6 .node ellipse,#mermaid-svg-VmVpggd4ixbZqVa6 .node polygon,#mermaid-svg-VmVpggd4ixbZqVa6 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-VmVpggd4ixbZqVa6 .rough-node .label text,#mermaid-svg-VmVpggd4ixbZqVa6 .node .label text,#mermaid-svg-VmVpggd4ixbZqVa6 .image-shape .label,#mermaid-svg-VmVpggd4ixbZqVa6 .icon-shape .label{text-anchor:middle;}#mermaid-svg-VmVpggd4ixbZqVa6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-VmVpggd4ixbZqVa6 .rough-node .label,#mermaid-svg-VmVpggd4ixbZqVa6 .node .label,#mermaid-svg-VmVpggd4ixbZqVa6 .image-shape .label,#mermaid-svg-VmVpggd4ixbZqVa6 .icon-shape .label{text-align:center;}#mermaid-svg-VmVpggd4ixbZqVa6 .node.clickable{cursor:pointer;}#mermaid-svg-VmVpggd4ixbZqVa6 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-VmVpggd4ixbZqVa6 .arrowheadPath{fill:#333333;}#mermaid-svg-VmVpggd4ixbZqVa6 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-VmVpggd4ixbZqVa6 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-VmVpggd4ixbZqVa6 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-VmVpggd4ixbZqVa6 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-VmVpggd4ixbZqVa6 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-VmVpggd4ixbZqVa6 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster text{fill:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 .cluster span{color:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 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-VmVpggd4ixbZqVa6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-VmVpggd4ixbZqVa6 rect.text{fill:none;stroke-width:0;}#mermaid-svg-VmVpggd4ixbZqVa6 .icon-shape,#mermaid-svg-VmVpggd4ixbZqVa6 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-VmVpggd4ixbZqVa6 .icon-shape p,#mermaid-svg-VmVpggd4ixbZqVa6 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-VmVpggd4ixbZqVa6 .icon-shape .label rect,#mermaid-svg-VmVpggd4ixbZqVa6 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-VmVpggd4ixbZqVa6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-VmVpggd4ixbZqVa6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-VmVpggd4ixbZqVa6 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Trunk:允许 VLAN 10、20
虚拟机 A
VLAN Tag 10
vmbr0
VLAN aware
虚拟机 B
VLAN Tag 20
物理网卡 eno1
物理交换机
要让这种配置正常工作,通常需要同时满足:
- PVE 网桥启用了 VLAN aware;
- 虚拟机网卡填写了正确的 VLAN Tag;
- PVE 物理网卡连接的交换机端口配置为 Trunk;
- Trunk 允许对应 VLAN 通过;
- 对应 VLAN 中存在正确的网关或 DHCP 服务;
- 防火墙没有拦截需要的通信。
示例
text
虚拟机 A:VLAN Tag 10,IP 192.168.10.20/24,网关 192.168.10.1
虚拟机 B:VLAN Tag 20,IP 192.168.20.20/24,网关 192.168.20.1
如果虚拟机填写了 VLAN 10,但交换机 Trunk 没有放行 VLAN 10,这台虚拟机通常无法正常访问网关。
修改生产环境的 PVE 或交换机 VLAN 配置前,应确认管理网络所在 VLAN,避免错误配置导致宿主机失联。
9. 常见故障排查
9.1 同一 VLAN 内无法通信
按以下顺序检查:
- 网卡、网线和交换机端口是否正常;
- 两台设备的 IP 和子网掩码是否正确;
- 交换机端口是否加入同一个 VLAN;
- 是否存在 IP 地址冲突;
- 主机防火墙是否拦截 ICMP 或目标端口;
- 使用 ARP 表确认是否学到了对方 MAC 地址。
Windows:
powershell
ipconfig /all
arp -a
ping 192.168.10.20
Linux:
bash
ip addr
ip neigh
ping -c 4 192.168.10.20
9.2 同一 VLAN 能通信,跨 VLAN 不通
重点检查:
- 默认网关是否填写正确;
- 三层设备上是否创建对应 VLAN 接口;
- 三层路由是否存在;
- 防火墙或 ACL 是否禁止访问;
- 返回方向是否有正确路由。
9.3 虚拟机配置 VLAN 后无法联网
重点检查:
- 虚拟机 VLAN Tag 是否正确;
- PVE 网桥是否开启 VLAN aware;
- 交换机端口是不是 Trunk;
- Trunk 是否允许该 VLAN;
- 虚拟机 IP、掩码和网关是否属于同一规划;
- PVE 防火墙、虚拟机防火墙是否放行流量。
9.4 排障流程图
#mermaid-svg-6CligmXKIFvO8jXj{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-6CligmXKIFvO8jXj .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-6CligmXKIFvO8jXj .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-6CligmXKIFvO8jXj .error-icon{fill:#552222;}#mermaid-svg-6CligmXKIFvO8jXj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6CligmXKIFvO8jXj .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-6CligmXKIFvO8jXj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6CligmXKIFvO8jXj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6CligmXKIFvO8jXj .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-6CligmXKIFvO8jXj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6CligmXKIFvO8jXj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6CligmXKIFvO8jXj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6CligmXKIFvO8jXj .marker.cross{stroke:#333333;}#mermaid-svg-6CligmXKIFvO8jXj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6CligmXKIFvO8jXj p{margin:0;}#mermaid-svg-6CligmXKIFvO8jXj .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-6CligmXKIFvO8jXj .cluster-label text{fill:#333;}#mermaid-svg-6CligmXKIFvO8jXj .cluster-label span{color:#333;}#mermaid-svg-6CligmXKIFvO8jXj .cluster-label span p{background-color:transparent;}#mermaid-svg-6CligmXKIFvO8jXj .label text,#mermaid-svg-6CligmXKIFvO8jXj span{fill:#333;color:#333;}#mermaid-svg-6CligmXKIFvO8jXj .node rect,#mermaid-svg-6CligmXKIFvO8jXj .node circle,#mermaid-svg-6CligmXKIFvO8jXj .node ellipse,#mermaid-svg-6CligmXKIFvO8jXj .node polygon,#mermaid-svg-6CligmXKIFvO8jXj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-6CligmXKIFvO8jXj .rough-node .label text,#mermaid-svg-6CligmXKIFvO8jXj .node .label text,#mermaid-svg-6CligmXKIFvO8jXj .image-shape .label,#mermaid-svg-6CligmXKIFvO8jXj .icon-shape .label{text-anchor:middle;}#mermaid-svg-6CligmXKIFvO8jXj .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-6CligmXKIFvO8jXj .rough-node .label,#mermaid-svg-6CligmXKIFvO8jXj .node .label,#mermaid-svg-6CligmXKIFvO8jXj .image-shape .label,#mermaid-svg-6CligmXKIFvO8jXj .icon-shape .label{text-align:center;}#mermaid-svg-6CligmXKIFvO8jXj .node.clickable{cursor:pointer;}#mermaid-svg-6CligmXKIFvO8jXj .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-6CligmXKIFvO8jXj .arrowheadPath{fill:#333333;}#mermaid-svg-6CligmXKIFvO8jXj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-6CligmXKIFvO8jXj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-6CligmXKIFvO8jXj .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6CligmXKIFvO8jXj .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-6CligmXKIFvO8jXj .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6CligmXKIFvO8jXj .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-6CligmXKIFvO8jXj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-6CligmXKIFvO8jXj .cluster text{fill:#333;}#mermaid-svg-6CligmXKIFvO8jXj .cluster span{color:#333;}#mermaid-svg-6CligmXKIFvO8jXj 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-6CligmXKIFvO8jXj .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-6CligmXKIFvO8jXj rect.text{fill:none;stroke-width:0;}#mermaid-svg-6CligmXKIFvO8jXj .icon-shape,#mermaid-svg-6CligmXKIFvO8jXj .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6CligmXKIFvO8jXj .icon-shape p,#mermaid-svg-6CligmXKIFvO8jXj .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-6CligmXKIFvO8jXj .icon-shape .label rect,#mermaid-svg-6CligmXKIFvO8jXj .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6CligmXKIFvO8jXj .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-6CligmXKIFvO8jXj .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-6CligmXKIFvO8jXj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否
是
否
是
否
是
设备无法联网
能 ping 通本 VLAN 网关吗?
检查网卡、IP、掩码、Access/Trunk 和 VLAN Tag
能 ping 通目标 IP 吗?
检查跨 VLAN 路由、防火墙、ACL 和返回路由
目标端口能连接吗?
检查安全组、防火墙和服务监听
检查 DNS、证书、应用配置和日志
10. 动手实验与学习计划
实验一:验证同一子网通信
准备两台虚拟机:
text
虚拟机 A:192.168.10.11/24
虚拟机 B:192.168.10.12/24
确认两者在同一虚拟交换机或网桥,然后互相执行 ping。
实验二:制造掩码错误
将虚拟机 B 的地址临时修改为:
text
192.168.10.130/25
观察它与 192.168.10.11/25 的通信情况,并计算两台设备分别属于哪个 /25 子网。实验完成后恢复原配置。
实验三:划分两个 VLAN
在测试环境中规划:
text
VLAN 10:192.168.10.0/24
VLAN 20:192.168.20.0/24
分别创建两台虚拟机并验证:
- 相同 VLAN 的设备能否通信;
- 不同 VLAN 的设备在没有网关时能否通信;
- 配置三层网关后是否可以跨 VLAN 通信;
- 添加防火墙规则后,能否只允许指定端口通过。
课后自测
1. 192.168.1.10/24 和 192.168.1.200/24 是同一子网吗?
是。两者的网络地址都是 192.168.1.0/24。
2. 192.168.1.10/25 和 192.168.1.200/25 是同一子网吗?
不是。前者属于 192.168.1.0/25,后者属于 192.168.1.128/25。
3. VLAN 10 和 VLAN 20 默认能直接通信吗?
不能。它们需要经过路由器、三层交换机或防火墙进行三层转发。
4. PVE 连接交换机的端口为什么通常需要配置为 Trunk?
因为一台 PVE 宿主机中的多台虚拟机可能属于不同 VLAN,需要通过同一个物理端口传输多个带有不同 VLAN 标签的数据流。
5. 设备能 ping 通网关,但不能访问另一个 VLAN,应先检查什么?
先检查三层路由、防火墙或 ACL,以及目标网络的返回路由。
本篇总结
text
子网:决定 IP 地址是否属于同一个三层网络
VLAN:在交换网络中实现二层隔离
Access:通常只承载一个 VLAN,连接普通终端
Trunk:可以承载多个 VLAN,连接网络设备或虚拟化宿主机
跨 VLAN:必须经过三层设备,并受路由和安全策略控制
学习时不要只记定义。建议在 PVE 或其他虚拟化环境中搭建两个 VLAN,亲自观察"同 VLAN 能通信、跨 VLAN 需要网关、策略可以限制端口"的完整过程。