综合实战:设计一套三层网络
这一课你将能做到
- 独立完成一套「接入—核心—出口」三层网络设计:编址、VLAN、路由、安全
- 用验证清单逐项自测设计正确性,产出可交付的设计文档
- 把设计映射到云上等价物,一条链路讲清传统与云的对应
为什么要学
学了十一课的概念,最后一课做缝合。真实工作里没有人给你拆好的题目,只有「公司要上线新业务,网络方案你来出」。这道综合题会用到前面所有概念;做完它,你就有了面试作品集的第一页。
先建立图像(要设计的拓扑)
Internet
│
┌──────┴──────┐
│ 出口防火墙 │ NAT + 边界策略
└──────┬──────┘
│
┌──────┴──────┐ 双机热备(VRRP/HSRP)
│ 核心交换机x2 │ VLAN 间路由(SVI)
└──┬───────┬──┘
┌────────┘ └────────┐
┌────┴─────┐ ┌────┴─────┐
│ 接入SW-A │ │ 接入SW-B │ 楼层接入
└─┬──┬──┬──┘ └─┬──┬──┬──┘
PC PC AP PC AP 打印机
│
┌──────┴──────┐
│ 服务器区 SW │ Nginx / K8s / MySQL
└─────────────┘
需求单:
- 办公 120 人、访客 WiFi、服务器区 20 台(K8s 集群 6 节点)
- 访客只能上外网;办公可访问服务器区 443/22;数据库只接受 K8s 节点访问
跟着做
步骤 1:编址规划(先总后分,留扩展位)
内网总段:10.0.0.0/16
10.0.1.0/24 办公区(VLAN 10,够 254 台)
10.0.2.0/24 访客(VLAN 20,只出不进)
10.0.3.0/24 服务器-入口(VLAN 30,Nginx/LB)
10.0.4.0/24 K8s 节点(VLAN 40)
10.0.5.0/24 数据层(VLAN 50,MySQL/Redis)
10.0.255.0/24 拆 /30 给设备互联与管理
原则:/24 对齐好记,按功能不按人分,每类预留翻倍空间。
步骤 2:VLAN 与网关(三层交换 SVI)
VLAN 10 name OFFICE SVI 10.0.1.254/24(核心双机 VRRP 提供 VIP)
VLAN 20 name GUEST SVI 10.0.2.254/24
VLAN 30 name WEB SVI 10.0.3.254/24
VLAN 40 name K8S SVI 10.0.4.254/24
VLAN 50 name DATA SVI 10.0.5.254/24
接入口:PC/AP 全部 access 口;交换机互联与多 VLAN 服务器走 trunk
步骤 3:路由与出口
核心 → 防火墙:默认路由 0.0.0.0/0 → 防火墙内口
防火墙 → 核心:回程静态路由 10.0.0.0/16 → 核心 VRRP 地址
(规模再大就上 OSPF:核心做 area 0,防火墙引默认路由)
防火墙 NAT:内网 10.0.0.0/16 → 公网 IP(PAT)
步骤 4:安全策略(防火墙白名单矩阵)
源区域 目标 端口 动作
GUEST(20) → 10.0.0.0/8 任意 拒绝(放最前)
GUEST(20) → Internet 80/443 允许
OFFICE(10) → WEB(30) 443/22 允许
K8S(40) → DATA(50) 3306/6379 允许
DATA(50) → 任意 任意 拒绝(禁主动外联)
Internet → Nginx VIP 443 允许
Internet → 任意 22 仅办公网段允许
最后一行:默认拒绝
步骤 5:验证清单(逐项执行)
# VLAN10 办公 PC 上:
ping 10.0.1.254 # 网关
ping 10.0.3.10 # 跨 VLAN 到 Nginx(应通)
curl -k https://10.0.3.10 # 应用层通
# 访客 SSID 的终端上:
ping 10.0.3.10 # 应不通(策略拦截)
curl -sI https://www.baidu.com | head -1 # 应 200(只准出网)
# MySQL 服务器上:
ss -tlnp | grep 3306 # 监听
sudo iptables -L INPUT -n # 白名单只有 K8s 节点网段
# 出口防火墙上:
show nat translations # NAT 转换表在增长
全部符合预期 → 交付四件套:拓扑图、编址表、策略矩阵、验证记录。
步骤 6:映射到云上等价物
| 本设计 | 云上对应 |
|---|---|
| 核心交换 / 三层 | VPC + 子网路由表(local 路由) |
| VLAN | 子网(云上以子网为隔离单元) |
| 防火墙策略 | 安全组(实例级)+ 网络 ACL(子网级) |
| NAT 出网 | NAT 网关 |
| Nginx 入口 | SLB/ALB + 健康检查 |
| K8s 网络 | 容器网络插件 + NetworkPolicy |
同一套需求在云上:建 VPC(10.0.0.0/16) → 5 个子网 → 公私两张路由表 → 安全组矩阵 → NAT 网关 → ALB。概念零迁移,只是配置入口变了。
讲清楚要点
- 设计顺序:需求 → 编址 → VLAN → 网关 → 路由 → 安全 → 验证;倒着做必返工,编址是所有后续的地基。
- 编址三原则:按功能分段、/24 对齐、留倍扩展;访客与数据层务必独立网段,策略才有的放矢。
- 策略矩阵四列表述:源区域 → 目标区域 → 端口 → 动作;默认拒绝永远写在最后一行,评审一眼见底。
- 可靠性下限:双核心 + VRRP/HSRP、接入双上联 + 聚合;出口双线是预算允许时的第一优先级。
- 可交付物不是「口头讲明白」:拓扑图、编址表、策略矩阵、验证记录四件套——面试与投产都看这四样。
你可能会懵的地方
-
为什么不用一个大网段全搞定? 广播域过大(ARP 泛洪、故障域大)、策略无法按段收口、地址不可审计;分网段是策略与稳定性的前提。
-
VLAN 间互访的网关放核心还是防火墙? 流量大的内部互访放核心(SVI 硬件转发);需要强管控的区间(访客、数据层)把路径引到防火墙——按「信任差」决定谁当网关。
-
K8s 节点要单独规划网段吗? 要。节点网段、Pod CIDR、Service CIDR 三套编址都要写进设计;云上用云 CNI 落 VPC,自建要规划路由或 overlay 方案。
-
服务器双网卡怎么接更稳? 跨两台核心各上一条做聚合或主备;同 VLAN 双上联必须防环(聚合或 STP),不是「插两条就翻倍」。
-
访客网络怎么保证真隔离? 独立 SSID + 独立 VLAN + 防火墙只放出站 80/443 + AP 侧终端隔离,四层缺一不可。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 先配设备再想编址 | 改一处动全身 | 先出编址表评审,再动配置 |
| 访客和办公同网段不同 SSID | 隔离形同虚设 | SSID-VLAN-策略三层绑定 |
| 数据库允许全内网访问 | 内网横向移动畅通 | 白名单到「网段 + 端口」粒度 |
| 核心到防火墙只留一条链路 | 单点,出口全断 | 双链路 + 动态路由或双机热备 |
| 设计完不做验证清单 | 上线即翻车 | 每条策略配一条验证命令 |
卡点急救
- 跨 VLAN 不通:查 PC 网关是否指向 SVI/VRRP VIP,再查 SVI 是否 up、VLAN 是否在 trunk 放行列表。
- 访客能访问内网:策略顺序错了——「拒绝到 10/8」必须放在放行 80/443 之前。
- K8s 节点连不上数据库:安全组双向、数据子网 ACL、数据库 bind-address 与白名单三处逐查。
面试常问
-
给你 200 人公司设计网络,从哪开始? 需求清单(人数 / 应用 / 合规)→ 编址(分段留余)→ VLAN 与网关 → 路由与出口 → 安全矩阵 → 验证方案。条理比答案本身重要。
-
你的设计怎么保证单点故障不致瘫? 逐层答冗余:出口双线、防火墙双机、核心双机 + VRRP、接入双上联、服务器双网卡;再答各层故障切换的收敛时间预期。
-
上云后这套设计怎么变? VLAN → 子网、SVI → local 路由、防火墙 → 安全组 / ACL / NAT 网关、Nginx → ALB;设计思维不变,配置载体变。
自测三问
- 编址为什么「先总后分」?直接从 /30 开始抠会怎样?
- 哪些区域之间必须经过防火墙,哪些可以纯三层互通?
- 你的验证清单覆盖了「正向通、反向禁、应用层」三个维度吗?
小结一句话
网络设计 = 把需求翻译成「编址 + VLAN + 路由 + 策略」四张表,再用验证清单证明它成立。
延伸
- Cisco Design Zone:企业园区网设计指南
- 课程完结:回到 /roadmaps/network-engineer 勾掉全部节点,把本课四件套放进你的作品集仓库。