rwilliamspbg-ops/Mohawk-Nexus

GitHub: rwilliamspbg-ops/Mohawk-Nexus

Mohawk Nexus 是 Mohawk 网络栈的根集成工作区,将 Go 控制平面与 Rust 数据路径统一管理并通过共享 bridge 合约完成跨组件验证。

Stars: 2 | Forks: 2

# Mohawk Nexus 统一工作区 Mohawk Nexus 是 Mohawk 网络栈的根集成工作区。它汇集了 Go 控制平面、Rust 数据路径、协议定义、验证材料,以及用于跨组件验证和集成测试的规范 bridge 合约。 [![CI](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=CI)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/ci.yml) [![构建镜像](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/build-images.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Build%20Images)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/build-images.yml) [![发布镜像](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/publish-images.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Publish%20Images)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/publish-images.yml) [![Kind 集成](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/kind-integration.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Kind%20Integration)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/kind-integration.yml) [![性能回归](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/perf-regression.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Perf%20Regression)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/perf-regression.yml) [![代码覆盖率](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/coverage.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Coverage)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/coverage.yml) [![Bridge E2E](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/bridge-e2e.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Bridge%20E2E)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/bridge-e2e.yml) [![策略验证](https://img.shields.io/github/actions/workflow/status/rwilliamspbg-ops/Mohawk-Nexus/policy-validate.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=Policy%20Validate)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/actions/workflows/policy-validate.yml) ![Go](https://img.shields.io/badge/Go-1.26.1-00ADD8?style=flat-square&logo=go&logoColor=white) ![Rust](https://img.shields.io/badge/Rust-1.0%2B-DEA584?style=flat-square&logo=rust&logoColor=white) ![Python](https://img.shields.io/badge/Python-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white) ![Node](https://img.shields.io/badge/Node-20%2B-339933?style=flat-square&logo=node.js&logoColor=white) ![SDK](https://img.shields.io/badge/SDK-Python%20%7C%20Go%20%7C%20Rust%20%7C%20TypeScript-4A5568?style=flat-square) ![平台](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-0A66C2?style=flat-square) ![容器](https://img.shields.io/badge/Containers-amd64%20%7C%20arm64-2496ED?style=flat-square&logo=docker&logoColor=white) ![Kubernetes](https://img.shields.io/badge/Kubernetes-Ready-326CE5?style=flat-square&logo=kubernetes&logoColor=white) ![数据路径](https://img.shields.io/badge/Datapath-AF__XDP%20Accelerated-FF6600?style=flat-square) [![Stars](https://img.shields.io/github/stars/rwilliamspbg-ops/Mohawk-Nexus?style=flat-square&logo=github)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/stargazers) [![Forks](https://img.shields.io/github/forks/rwilliamspbg-ops/Mohawk-Nexus?style=flat-square&logo=github)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/network/members) [![未解决的 Issues](https://img.shields.io/github/issues/rwilliamspbg-ops/Mohawk-Nexus?style=flat-square)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/issues) [![许可证](https://img.shields.io/badge/License-Multi--Repo-0EA5E9?style=flat-square)](https://github.com/rwilliamspbg-ops/Mohawk-Nexus/blob/main/LICENSE) ## 工作区布局 - [SMIP-MWP/](SMIP-MWP/) — Go 控制平面、AF_XDP 主机集成、路由、加密绑定和 bridge 请求接收。 - [SMIP-MWP-Rust/](SMIP-MWP-Rust/) — Rust 数据路径、转发 pipeline、高性能数据平面和 CLI 工具。 - [Sovereign-Mohawk-Proto/](Sovereign-Mohawk-Proto/) — 协议定义、schema 演进和形式化验证资产。 - [bridge/](bridge/) — 根验证使用的规范 bridge schema、manifest 和请求示例。 - [scripts/](scripts/) — 工作区级别的生成、验证和测试辅助工具。 - `go.work` — 根 Go 工作区,将整个代码库中的 Go 模块联系在一起。 ## 快速入门文档 - [GETTING_STARTED.md](GETTING_STARTED.md) — 5 分钟便携式安装与验证指南。 - [CONTRIBUTING.md](CONTRIBUTING.md) — 贡献者工作流、接口变更流程以及组件 SHA 跟踪。 - [SECURITY.md](SECURITY.md) — 协调的漏洞披露流程。 - [DEPLOYMENT.md](DEPLOYMENT.md) — 部署配置与运行时指南。 ## 环境要求 - Go(推荐 1.26.1 — 为可复现构建而固定;对于大多数本地工作流,1.22+ 应该也能正常工作) - Python 3.8+ - Docker(用于容器化的性能/压力测试) - Rust 工具链(仅在本地运行 `SMIP-MWP-Rust` 测试时需要) 注意:为了保证可复现的本地构建和 CI 一致性,我们将 Go 版本固定为 `1.26.1`。 你可以在本地安装它(无需 sudo)并将其添加到你的 shell `PATH` 中: ``` GO_INSTALL_DIR="$HOME/.go/go1.26.1" curl -fsSL -o /tmp/go1.26.1.linux-amd64.tar.gz https://go.dev/dl/go1.26.1.linux-amd64.tar.gz rm -rf "$GO_INSTALL_DIR" && mkdir -p "$GO_INSTALL_DIR" tar -C "$GO_INSTALL_DIR" -xzf /tmp/go1.26.1.linux-amd64.tar.gz --strip-components=1 export PATH="$GO_INSTALL_DIR/bin:$PATH" go version ``` 提示:如果你使用 Codespace 或 Dev Container,请参阅 `.devcontainer/devcontainer.json` 以获取固定的 Go 特性。 ## 设备兼容性矩阵 Mohawk Nexus 支持多种部署配置。由于 AF_XDP 的要求,高性能数据路径仍以 Linux 为核心,而便携式工作流则涵盖了更广泛的设备类型。 | 设备类型 | 主要配置 | 状态 | 备注 | |---|---|---|---| | 支持 AF_XDP 网卡的 Linux x86_64 服务器 | accelerated | 受支持 | 完整的控制 + 数据路径配置;需要特权数据路径运行时以及 NIC/内核调优。 | | Linux arm64 服务器或边缘节点 | portable | 受支持 | 支持控制/FL/SWIP 服务;仅在满足 AF_XDP 先决条件时使用 accelerated 配置。 | | Raspberry Pi / ARM SBC | portable | 受支持 | 建议使用便携式工作流并减少分析开销。 | | macOS 开发笔记本电脑 | portable | 支持开发使用 | 使用 Docker/CI 工作流和 bridge 验证;本地不提供 AF_XDP 数据路径。 | | Windows 开发工作站 | portable | 支持开发使用 | 使用 Docker/CI 工作流和 bridge 验证;本地不提供 AF_XDP 数据路径。 | | 不带特权 Pod 的托管型 Kubernetes | portable | 受支持 | 从 `DEPLOYMENT.md` 部署非特权堆栈模式;跳过 accelerated 数据路径部署。 | ### 运行时配置 - `portable`:用于控制 + FL + SWIP 和 bridge 验证的跨设备集成配置。 - `accelerated`:用于高性能数据路径工作负载的 Linux AF_XDP 配置。 - `experimental`:仅用于兼容性测试的非特权数据路径试验模式。 ## 使用说明 初始化并检查工作区状态: ``` make bootstrap make status ``` 运行工作区级别的验证目标(由根目录所有,无需检出 Rust 代码): ``` make verify ``` 常用目标: - `make generate-bridge` — 重新生成 `bridge/` 下的 bridge schema 产物。 - `make validate-bridge` — 验证 manifest 和 bridge 产物的 SHA256 哈希值。 - `make verify-go` — 跨 Go 代码库运行 Go 单元测试和基准测试。 - `make bridge-smoke` — 简单的 bridge 合约冒烟测试。 - `make verify-rust` — 在 `SMIP-MWP-Rust/` 中运行 Rust 测试(需要 Rust 工具链和检出代码库)。 FL 快速入门(本地,便携式): ``` # 构建本地 FL 镜像并运行 coordinator + 两个 clients docker-compose build fl-coordinator fl-client-1 fl-client-2 docker-compose up -d fl-coordinator fl-client-1 fl-client-2 docker-compose logs -f fl-coordinator ``` 运行性能和压力测试套件(本地): ``` # 快速 bench cd SMIP-MWP ./scripts/bench.sh -- go test ./internal/crypto -bench . -benchmem -run ^$ -count=1 # 容器化 stress(示例) cd SMIP-MWP docker build -f Dockerfile.stress -t smip-mwp:stress . docker run --rm --privileged -v "$PWD":/app -v "$PWD/benchmarks":/app/benchmarks -w /app smip-mwp:stress \ bash -lc 'DURATION=300 LOAD_LEVEL=high bash ./scripts/stress-test.sh' ``` 基准测试输出和 pprof 产物将写入 `SMIP-MWP/benchmarks/`。 ## 性能 Mohawk Nexus 将轻量级的 **Go 控制平面**与高度优化的 **Rust 数据路径**(AF_XDP 内核绕过、多路径喷射、混合/准备就绪的 PQC 加密)结合在一起。所有数据均来自近期在 AMD EPYC 64 核硬件上进行的内部微基准测试。 ### 全栈逐层性能矩阵 | 层级 | 操作 | Mohawk 性能 | 业界对比 | 评估 | |-----------------------------|------------------------------------------------|-------------------------------------|----------------------------------------------------------|-----------------------------| | **Rust 数据路径(热路径)** | 转发 + 多路径喷射决策 | **2.4 – 2.5 Mpps**(单核命中路径)
有效带宽高达 **75 GB/s** | AF_XDP 简单转发:3–11+ Mpps
DPDK l2fwd:10–20+ Mpps(更简单) | 对于功能丰富的路径表现**极佳** | | **多路径喷射 (MRC)** | 喷射 + payload (4K/8K) | **18.1 – 20.1 ns/op**
**33 – 75 GB/s** | 标准 ECMP/MPTCP:开销明显更高
研究级喷射:表现不一 | **杰出** – 极小的喷射损耗 | | **加密(混合/PQC 就绪)** | 原地加密 / 解密 | 加密:**878 – 1,357 ns/op**
解密:**652 – 751 ns/op** | WireGuard (ChaCha/Poly):通常约 1–2 Gbps/核
AES-GCM:更快但自主性较弱 | **强劲** – 特别是使用 PQC 混合加密时 | | **会话与路由** | NewHybridSession(缓存 / 未缓存) | 缓存:**582 – 1,278 ns/op**
未缓存:**767 – 1,062 ns/op** | 传统内核/会话表:延迟较高 | 经过哈希/BTree 优化后表现**良好** | | **AF_XDP 集成** | 数据包 RX/TX(内核绕过) | 受限于数据路径(约 2.4+ Mpps) | AF_XDP 最先进水平:10–18 Mpps(简单场景)
零拷贝:据报道最高可达 40 Mpps | 在功能完备的情况下极具竞争力 | | **全栈(综合)** | 端到端(喷射 + 加密 + 转发) | **估计持续吞吐 1.8 – 2.3 Mpps** | WireGuard 隧道:1–4+ Gbps
完整的 DPDK 应用:更高(但安全性/形式化较弱) | 对于自主/边缘用例前景广阔 | ### 核心优势 - 极低的内存分配(MRC 喷射中仅 1–3 次分配/操作) - 多路径喷射几乎零开销 - 专注于原地加密和零拷贝,带来了强劲的 GB/s 数据 - Rust 的安全性 + 形式化验证资产(Lean 4),且没有牺牲过多的速度 ### 注释与上下文 - 基准测试运行在 **AMD EPYC 64 核**处理器上(服务器级硬件)。 - 微基准测试(`-benchmem`)。现实世界中的持续吞吐量取决于数据包大小、路径多样性、并发性、NIC 和 PQC 模式。 - 在追求原始最大 Mpps 方面(在这种简单的转发场景下,普通的 DPDK 通常胜出),Mohawk 更倾向于**安全性、形式化方法、多路径喷射和自主功能**。 **最新的基准测试产物**可在 `SMIP-MWP/benchmarks/` 和 `benchmarks/baselines/` 中找到。 与常见网络栈的对比(定性分析): - TCP/TLS(内核网络栈 + OpenSSL):健壮的通用网络栈,但与优化配置下 Mohawk 的 AF_XDP/Rust 数据路径相比,在零拷贝和用户态数据包处理方面,单次操作通常消耗更多的 CPU。 - QUIC(用户态 UDP + TLS 1.3):适用于多路复用流的低延迟传输;Mohawk 与传输层无关并且可以进行互操作,同时为批量操作提供了优化的进程内加密路径。 - WireGuard:极其轻量级的加密 VPN;WireGuard 针对单包加密路径进行了高度优化,而 Mohawk 的目标则是更丰富的转发功能、可插拔的路由以及协议级别的 bridge 合约验证。 重要提示基准测试数据在很大程度上取决于主机 CPU、内核、NIC 和内核绕过配置(AF_XDP、大页内存、IRQ 亲和性)。有关运行期间捕获的精确测量数据,请参阅 `SMIP-MWP/benchmarks/` 和生成的 `*.prof` 文件。 最新高压测试运行快照: - 时间戳:2026-05-24T16:59:58Z - 负载:300秒,高压,12 次基准测试迭代,32 个并发操作 - `NewHybridSession_Cached`:582.1-1278.0 ns/op,1376 B/op,4 次分配/op - `NewHybridSession_Uncached`:766.9-1062.0 ns/op,1392 B/op,5 次分配/op - `EncryptInPlace`:877.8-1357.0 ns/op,1536 B/op,1 次分配/op - `DecryptInPlace`:651.6-750.6 ns/op,0 B/op,0 次分配/op 如何解读我们的产物: - `*.txt` — 人类可读的运行日志和摘要。 - `*-cpu.prof` / `*-mem.prof` — CPU 和内存的 pprof 分析文件;使用 `go tool pprof -top` 和 `go tool pprof -http` 检查火焰图。 ## 功能特性 Mohawk Nexus 提供以下功能特性: - 高性能数据路径:Rust 转发器和 AF_XDP 集成,用于低延迟数据包处理。 - 可插拔加密:优化的对称和非对称加密原语,采用原地加密/解密以最小化内存分配。 - Bridge 合约验证:规范的 schema + manifest,具备根级验证器和对示例 payload 的可重复 SHA256 校验。 - 集成测试套件:基准测试和压力测试脚本,可生成可复现的产物和 pprof 分析。 - 对 CI 友好的验证:`make verify` 运行根级别验证,不依赖于未发布的子代码库 SHA。 - 容器化性能:提供 Dockerfile 和脚本,以便在受控环境中复现压力测试。 ## Bridge 合约 规范的 bridge schema 和 manifest 位于 `bridge/` 中。请使用以下工具: - `scripts/generate_bridge_contract.py` — 重新生成规范产物。 - `scripts/generate_bridge_bindings.py` — 为 Go/Rust/Python/TypeScript 重新生成 SDK bridge 常量。 - `scripts/validate_bridge_contract.py` — 验证 manifest 和 SHA256。 版本真实来源: - `bridge/bridge_contract.version.json` 跟踪 schema 和 manifest 的版本标识符。 ## CI GitHub Actions 会从代码库根目录运行 `make verify`(参见 `.github/workflows/ci.yml`)。根目录验证路径旨在当组件子代码库正在处理中时保持弹性。 ## 参考 - [STACK_INTEGRATION_PLAN.md](STACK_INTEGRATION_PLAN.md) - [STACK_TOPOLOGY_AND_METRICS_SPEC.md](STACK_TOPOLOGY_AND_METRICS_SPEC.md) - [STACK_INTEGRATION_CHECKLIST.md](STACK_INTEGRATION_CHECKLIST.md) - `TRACEABILITY_MATRIX.md` - `UNIFICATION_PLAN.md` 如果你需要在此 README 中添加精简的使用指南或示例部分,请告诉我需要突出显示哪些工作流,我会将其添加进去。 ## Dev Container / Codespace 对于可重现的开发环境(Codespace 或 Dev Container),此代码库将 Go 版本固定为 `1.26.1`。有关设置 `GOROOT` 并将固定的 Go 二进制目录预置到 `PATH` 的 devcontainer 配置示例,请参阅 `.devcontainer/devcontainer.json`,以便构建和测试使用 Go 1.26.1。 ## 许可证 此工作区采用多重许可证,因为它聚合了具有不同上游许可证的多个组件代码库。 - 有关根工作区的许可证声明,请参阅 `LICENSE`。 - 有关各组件的许可证矩阵和上游链接,请参阅 `LICENSES.md`。
标签:LNA, MITM代理, 云安全, 可视化界面, 子域名突变, 日志审计, 请求拦截, 逆向工具