1. 5G核心网架构演进:从EPC到5GC
大家好,我是老张。今天咱们聊聊5G核心网架构的演进。说实话,我从4G时代就开始做核心网安全,看着EPC一步步走到今天的5GC,感触挺深的。
你想想看,4G的EPC架构其实挺「重」的。每个网元都是独立的硬件设备,扩容要买新机器,升级要停机割接。我2018年帮某运营商做EPC扩容时,光等设备到货就等了三个月。嗯,那时候我就意识到,这种架构迟早要变。
1.1 EPC架构的痛点
EPC(Evolved Packet Core)的核心网元包括MME、SGW、PGW、HSS等。它们之间通过GTP-C、Diameter等协议通信。说白了,就是每个网元各管一摊,互相之间用固定接口对接。
这种架构有什么问题?我列几个实际踩过的坑:
- 扩容困难:MME处理能力不够?得买新硬件,重新配置接口。我见过一个项目,扩容MME花了两个月,其中一个月在等设备到货。
- 升级风险高:升级PGW软件版本,要影响所有用户面流量。有一次升级回滚搞了通宵,我到现在还记得那个夜晚。
- 新业务上线慢:想加个新功能?得改多个网元,协调多个厂商。我曾经为了加一个简单的策略控制功能,拉了三个厂商开了五次电话会议。
核心问题:EPC是「紧耦合」架构,网元之间强依赖。改一个点,可能影响整个面。
1.2 5GC服务化架构(SBA)的核心变化
5GC(5G Core)引入了服务化架构(SBA,Service-Based Architecture)。这玩意儿说白了,就是把原来「一个网元干一堆活」的模式,拆成了「每个网元只干一件事,然后通过API互相调用」的模式。
我个人习惯把SBA理解成「微服务化」的核心网。每个网络功能(NF)提供标准化的服务接口,其他NF通过HTTP/2调用这些服务。举个例子:
- 原来的MME拆成了AMF(接入管理)和SMF(会话管理)
- 原来的PGW拆成了UPF(用户面)和SMF(控制面)
- 新增了NRF(网络仓库功能)、NSSF(网络切片选择)等
我画了一张图,帮你理解这个变化:
看到区别了吗?EPC是「竖井式」的,每个网元独立工作。5GC是「总线式」的,所有NF通过服务化接口互相调用。这种变化带来的好处很明显:
- 独立部署:每个NF可以独立扩缩容。我去年帮客户做AMF扩容,直接在Kubernetes里加Pod就行,十分钟搞定。
- 快速迭代:改一个NF不影响其他NF。比如升级SMF,AMF和UPF完全不受影响。
- 灵活组合:可以根据业务需求灵活组合NF。比如做物联网,可以只部署AMF、SMF、UPF,不需要NSSF。
1.3 云原生转型的驱动力
5GC为什么要往云原生方向走?说白了,就是运营商被传统架构「坑」怕了。我总结几个关键驱动力:
| 驱动力 | 传统架构问题 | 云原生解决方案 |
|---|---|---|
| 弹性伸缩 | 业务高峰期MME过载,只能加硬件 | Kubernetes自动扩缩容,按需分配资源 |
| 快速部署 | 新网元上线需要数周甚至数月 | 容器化部署,分钟级上线 |
| 故障恢复 | 单点故障影响全网 | 多副本、自动重启、健康检查 |
| 成本控制 | 硬件采购成本高,利用率低 | 通用服务器,资源共享 |
我记得2020年帮某省运营商做5GC试点时,他们还在用虚拟机部署。结果业务高峰期UPF扛不住,手动扩容花了两个小时。后来换成容器化部署,配置了HPA(水平自动扩缩),高峰期自动加Pod,再也没出过问题。
我的建议:如果你刚开始接触5GC云原生,先从「容器化部署」入手。把AMF、SMF这些控制面NF先容器化,用户面UPF可以稍后再说。我见过不少项目一上来就想全容器化,结果UPF的性能调优搞了半年。
1.4 架构演进带来的安全挑战
架构变了,攻击面也跟着变了。我简单列几个关键点:
- 服务化接口暴露:原来EPC的接口是私有协议,攻击者很难直接调用。现在5GC用HTTP/2,API暴露在外,攻击面大了很多。
- 容器逃逸风险:NF跑在容器里,如果容器逃逸了,攻击者可能拿到宿主机权限。我去年在某个客户环境里就发现了一个容器逃逸漏洞。
- 服务间认证:NF之间互相调用,怎么保证调用方是合法的?3GPP定义了OAuth2.0的认证机制,但实现起来坑不少。
- 配置管理:云原生环境下,配置项多如牛毛。一个配置错误,可能导致整个网络瘫痪。
注意:我曾经遇到过一个案例,某厂商的5GC部署在Kubernetes上,结果NRF的API没有做认证,任何人都可以注册虚假NF。这个漏洞如果被利用,攻击者可以直接控制整个核心网。所以,服务化接口的安全防护是重中之重。
好了,这一章就聊到这里。从EPC到5GC,架构的变化带来了灵活性,也带来了新的安全挑战。下一章咱们深入聊聊服务化接口的具体攻击面。
公众号:蓝海资料掘金营,微信deep3321