Spring Cloud Gateway - 从 0 到 1 构建一个网关

Spring Cloud Gateway 的底层

首先声明,以下提到的 “网关”,都特指微服务网关。它是微服务架构的 “唯一入口安全门卫兼交通指挥官”,它的本职工作是负责请求的 路由转发统一鉴权流量控制

传统的微服务网关 zuul1.x (Zuul 2.x 基于 Netty 重构)基于‌同步阻塞 I/O‌ 模型构建,严格遵循 ‌“一请求一线程” 架构,每个请求占用一个独立线程,在等待后端 I/O 时线程处于阻塞状态,高并发下易导致线程资源耗尽 。目前 Spring Cloud 生态中 Zuul 1.x 已进入维护模式,而 Zuul 2.x 因复杂度较高且未完全融入 Spring Cloud 体系,实际落地较少,后续演进多由 Spring Cloud Gateway(基于 WebFlux/Netty 的非阻塞模型)承接 。‌‌


Freeradius 3.2.10 配置文件说明以及一个企业级网络认证案例

总体概览

FreeRADIUS 3.2.10 的配置设计看似繁杂,但核心逻辑非常明确:将工具定义(Modules)、接入客户端(Clients)和业务流程(Sites)彻底解耦。如果把 FreeRADIUS 类比为一个 Spring Boot 框架:

  • radiusd.conf = application.yml(全局基础配置、线程池、环境变量)
  • clients.conf = 防火墙/白名单(允许哪些 NAS/交换机/AP 连进来)
  • mods-enabled/ = Service 层(具体干活的插件/工具,如数据库连接、REST 调用、密码哈希)
  • sites-enabled/ = Controller + Interceptor(定义请求进来后的执行管道与路由)

Freeradius 3.2.10 基于密码的企业级安全认证实现

如何实现企业级的网络安全认证

总体思路

从前面 《Freeradius 3.2.10 环境搭建以及 PAP 和 CHAP 两种认证方式的测试》 介绍我们知道,如果基于密码认证的方式,无论认证方式选择 PAP 或者是 CHAP,实际上都很弱鸡。既然 CHAP 和 PAP 在公网上传输不安全,最直接的思路就是:先建一条 TLS 加密隧道,把认证报文丢进隧道里传。外层 TLS 隧道的作用是提供安全的隐形管道,内层协议的作用仅仅是 “在这条安全管道里,客户端如何向服务器证明我是我”。这就是目前基于密码的安全网络环境的标准做法。


Freeradius 3.2.10 环境搭建以及 PAP 和 CHAP 两种认证方式的测试

Freeradius 简介

是什么?

FreeRADIUS 是目前全球使用最广泛、功能最强大的开源 RADIUS 服务器软件。如果把网络比作一座企业大楼,FreeRADIUS 就是这座大楼的 “智能门禁系统控制器”。它专门用来解决网络世界里的 AAA 问题:

  • Authentication(认证):你是谁?(核对你的用户名、密码、证书或动态验证码)
  • Authorization(授权):你能干什么?(决定把你分配到哪个 VLAN、给你的网速限制是多少、允许你访问哪些子网)
  • Accounting(计费/审计):你干了什么?(记录你什么时候上线的、什么时候下线的、一共用了多少流量、在线多长时间)