- 博客(253)
- 收藏
- 关注
原创 VMware 虚拟机网络问题排查与解决方案
常见的自定义配置VMnet0: 桥接模式VMnet1: 仅主机模式VMnet2: 桥接到特定物理网卡VMnet8: NAT 模式。
2026-04-07 21:20:39
407
原创 负载均衡概述
LVS(Linux Virtual Server)是 Linux 内核自带的高性能负载均衡解决方案,由章文嵩博士于 1998 年发起。
2026-04-04 20:17:56
556
原创 软件定义网络 SDN 核心技术深度解析:从概念到实践
*SDN(Software Defined Networking,软件定义网络)** 是一种新型网络架构,其核心思想是将网络的控制逻辑(控制平面)从网络设备(数据平面)中分离出来,通过集中式的控制器(Controller)对网络进行统一管理和编程。特征描述控制与转发分离控制平面集中化,数据平面简化集中控制网络状态全局视图,统一决策可编程接口通过 API 对网络进行编程控制抽象和虚拟化隐藏底层复杂性,提供逻辑视图开放性标准化接口,多厂商互通。
2026-03-30 18:34:36
550
原创 在云环境中部署 NFV:OpenStack 讲解
OpenStack 是一个开源的云计算平台,提供 IaaS(基础设施即服务)能力。它由多个组件构成,协同工作以提供完整的云服务。OpenStack = 云操作系统↓管理计算、存储、网络资源↓为VNF提供虚拟化基础设施特性说明架构基于 YANG 模型的网络服务编排优势多厂商支持、服务建模强大NFV 支持支持 VNFM 集成、NSD 管理。
2026-03-30 17:54:33
438
原创 NFV(网络功能虚拟化):重塑未来网络架构的革命性技术
根据 ETSI 的定义,NFV 是一种网络架构概念,通过使用通用目的的硬件平台(如 x86 服务器)和虚拟化技术,将网络功能从专有硬件设备中解耦,以软件的形式实现。要素含义通用硬件标准化的 x86 服务器、交换机、存储设备,不绑定特定厂商虚拟化技术Hypervisor、容器等,实现资源的逻辑隔离和共享软件实现网络功能以软件形式部署,与硬件解耦解耦功能与硬件分离,软件与平台解耦。
2026-03-29 17:49:20
506
原创 XDP(eXpress Data Path)技术详解:从原理到实践
XDP 提供了一个基于操作系统内核的安全执行环境,在 Linux 网络设备驱动的上下文中执行,可用于定制各种数据包处理应用。目前,XDP 已经是 Linux 内核的一部分,与现有的内核网络协议栈完全兼容,二者可以协同工作。运行在内核态的 XDP 程序,是一种 BPF 程序 / 代码,使用 C 语言等高级语言编写,然后被编译成特定字节码。出于安全考虑,内核会首先对这些字节码进行静态分析,然后再将它们翻译成处理器原生指令。XDP 是一种把 BPF 技术应用到网络中的解决方案,也就是说。
2026-03-24 17:53:42
381
原创 RDMA Verbs 编程基础详解:从入门到实践
Verbs API是一组用于操作 RDMA 硬件资源的用户态接口函数,由 Linuxrdma-core库提供。它允许应用程序直接与 RDMA 网卡交互,实现零拷贝、内核旁路的高性能数据传输。
2026-03-23 17:26:44
371
原创 在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
Soft-RoCE(也称为 RXE)是一个软件实现的 RoCE(RDMA over Converged Ethernet)设备。它允许在没有 RDMA 硬件的普通服务器上运行 RDMA 应用程序。无需专用 RDMA 硬件支持标准以太网完整的 RDMA Verbs API 支持适合开发、测试和学习性能不如真实 RDMA 硬件CPU 开销较高延迟较高。
2026-03-22 21:05:55
910
原创 RDMA 传输服务详解:可靠性与连接模式的深度剖析
可靠服务保证消息只从发送者向接收者传递一次,并且能够按照顺序完整无损地被接收。翻译:InfiniBand 支持面向连接的服务和数据报服务。对于面向连接的服务,每个 QP 只与一个远端消耗者(指最终会消耗掉数据包的节点上的 QP)关联,即建立连接。在这种情况下,会使用远端节点的端口和 QPN 进行配置。端口由 LID 和 GID 标识,后者可选。
2026-03-22 19:04:53
422
原创 RDMA Memory Region (MR) 机制详解:地址转换与内存保护
MR 是一个经过注册的、虚拟地址连续的、任意大小的内存区域,支持 RDMA 网卡进行本地内存访问(后者可选)。MR 注册时的安全检查:│ 应用程序 ││ │ ││ │ 调用 ibv_reg_mr ││ │ 参数:虚拟地址、长度、访问权限 ││ ▼ ││ RDMA 驱动程序 ││ │ ││ │ 安全检查: ││ │ 1. 虚拟地址是否有效?││ │ 2. 该应用程序是否有权限访问这段内存?││ │ 3. 内存是否被锁定(防止换页)?││ │ ││ │ 检查通过 → 注册成功 │。
2026-03-21 22:36:47
295
原创 RDMA 基本操作类型详解:从双端通信到单端直访
除了前文已经介绍的几个最常见的 RDMA 操作类型,还有其他类型的 RDMA 操作。每种 RDMA 操作类型都对应一个填写到 WQE 中的操作码。IBV_WR_RDMA_WRITE, // RDMA 写IBV_WR_RDMA_WRITE_WITH_IMM, // 带立即值的 RDMA 写IBV_WR_SEND, // 发送IBV_WR_SEND_WITH_IMM, // 带立即值的发送IBV_WR_RDMA_READ, // RDMA 读。
2026-03-21 18:32:49
181
原创 RDMA 技术深度解析:从原理到实践
协议网络层可路由成本性能适用场景InfiniBand原生✅高最高高性能计算、超算中心RoCE v2UDP + IP✅中高数据中心、分布式存储iWARPTCP✅低中广域网、有损网络虽然存在软件实现的 RoCE 和 iWARP,但真正商用时上述几种协议都需要专门的硬件(网卡)支持。五、RDMA 网络构成。
2026-03-21 18:02:12
437
原创 RDMA vs 传统以太网:寻址粒度为何决定性能天花板
在分布式存储、高性能计算(HPC)领域,我们经常听到 RDMA(Remote Direct Memory Access)能够显著降低延迟、提升吞吐。一、传统以太网(TCP/IP):粗粒度的 "主机级" 寻址。
2026-03-21 17:31:06
380
原创 DPDK 内存管理深度解析:从大页到 Mbuf 的完整链路
在传统 Linux 网络栈中,每个数据包都要经历多次内存拷贝:从网卡 DMA 到内核缓冲区,从内核缓冲区拷贝到用户空间。每次拷贝都要消耗 CPU 周期,而且频繁调用 malloc/free 会产生内存碎片和锁竞争。DPDK 的内存管理设计目标是彻底消除这些问题。它通过大页内存避免 TLB 缺失,通过预分配内存池避免运行时分配开销,通过零拷贝设计避免数据移动,通过无锁数据结构避免锁竞争。理解这些机制的关键在于理解从物理内存到应用层的完整链路。
2026-03-21 16:18:43
631
原创 DPDK 核心机制深度解析:UIO 与多进程通道
│ UIO 的核心价值 │传统内核驱动模式:│ ││ 用户空间 内核空间 ││ │ 应用程序 │ │ 网卡驱动 │ ││ │ │ 系统调用 │ │ ││ │ socket API │───────────────▶│ 协议栈 │ ││ │ ││ │ 内核驱动访问硬件 ││ ▼ ││ │ 网卡硬件 │ ││ ││ 问题: ││ • 每次数据包都要经过内核 ││ • 系统调用开销大 ││ • 中断处理在内核,上下文切换频繁 ││ • 无法达到极致性能 ││ │。
2026-03-21 15:49:55
419
原创 DPDK MP (Multi-Process) 通道深度解析
MP (Multi-Process) 通道是 DPDK 框架中用于主进程与从进程之间通信的机制。它基于 Unix Domain Socket 实现,提供了一套完整的进程间消息传递框架。│ DPDK 多进程架构 ││ (主进程) ││ │││ │ │▼ ▼ ▼│ (从进程) │ │ (从进程) │ │ (从进程) ││ 总结 │1. MP 通道的本质DPDK MP 通道是基于 Unix Domain Socket 的进程间通信框架,使用 epoll实现事件驱动的消息处理机制。
2026-03-21 14:23:43
316
原创 dpdk19.08编译问题解决方案
本次编译失败涉及三个层面的问题层面问题影响配置层DPDK 19.08 默认配置包含 ARM 平台驱动尝试编译不兼容的 ARM 驱动工具链层为空,链接器使用 32 位默认格式架构不匹配错误依赖层系统仅安装 32 位 numa 库链接时找不到 64 位库# ===== 完整修复脚本 =====# 1. 清理所有编译产物# 2. 禁用 ARM 平台驱动# 3. 修复链接器架构问题# 4. 安装 64 位 numa 库# 5. 生成配置。
2026-03-14 20:19:07
353
原创 OVS编译安装与案例
通过软件定义网络(SDN)思想,实现了传统硬件交换机的全部功能,并提供了远超硬件的灵活性与自动化能力Open vSwitch。一、核心定位与本质有人会提出问题:既然 Linux 内核自带的brctlip link等命令也能创建网桥、管理网卡,为什么还要用 OVS?
2026-03-02 18:53:43
915
原创 DPDK在NFV领域的应用与优化
OPNFV是NFV的“生态整合者”,整合DPDK、OpenStack等技术,推动NFV标准化落地;DPDK是NFV的“性能加速器”,解决通用服务器网络性能不足的问题;云化是NFV的“弹性扩展方案”,实现网络功能的动态调整;重构是NFV的“灵活性进化方案”,实现网络功能的精细化管理和创新。这四大要素的结合,推动电信网络从“专用硬件主导”走向“软件定义主导”,从“静态固定网络”走向“动态灵活网络”,最终实现网络即服务(NaaS)的核心目标。七、SDN与NFV协同:实现“灵活管理+极致性能”
2026-02-28 18:36:07
868
原创 Virtio驱动架构与vhost-user机制:DPDK高性能网络的核心逻辑
Virtio网络设备驱动的分层设计,本质上是“分工协作、层层解耦”的设计思想:底层负责硬件探测和初始化,解决“硬件接入”问题;中间层负责数据传输的核心机制,解决“高效交互”问题;上层负责与Linux网络子系统的接口对接,解决“协议适配”问题。这种设计不仅提高了代码的复用性和可维护性,也使得Virtio驱动能够高效地支持多种虚拟化设备,为半虚拟化环境下的高效I/O提供了坚实的软件基础。二、vhost-user机制核心工作原理。
2026-02-28 18:27:17
736
原创 虚拟化底层原理:从VT-x、半虚拟化到VT-d与DPDK网卡直通
敏感指令,就是那些能够修改CPU运行级别、直接操作物理硬件的“危险指令”。比如“关机指令”“修改内存保护机制的指令”“操作I/O端口的指令”,这些指令一旦被错误执行,就可能导致整个物理机崩溃。结合前面的内容,我们用最通俗的语言,总结4个核心问题:为什么要有根/非根模式?- 为了安全和隔离。宿主机(根模式)必须掌控所有硬件资源,虚拟机(非根模式)必须被限制在沙盒里,防止它破坏系统。为什么要陷入(VMExit)?
2026-02-28 18:13:31
843
原创 DPDK 性能调优之NUMA亲和性配置队列与阈值
你看到的参数,并不是随便写的,它是基于以下事实得出的严谨结论:“我的网卡插在 Node 0 上,所以我必须把 DPDK 的线程绑在 Node 0 的 CPU 上(即 0-17, 36-53),才能实现‘CPU 靠近网卡’,避免跨节点延迟,发挥DPDK的高性能。这里必须强调一个关键原则:如果你换了一台服务器,或者调整了网卡的PCIe插槽,这个参数必须重新计算,不能直接照搬。
2026-02-28 17:49:40
853
原创 dpdk之从多队列 DMA 到 Burst 批量处理
内部两个环形队列一个是空闲环形队列,一个是已被使用的环形队列,使用mbuf从空闲移到使用队列,释放则放回。网卡收包时从货架取用,使用完毕不销毁、直接归位,从根源避免内存碎片、动态分配的性能损耗,为高速收发提供稳定的内存保障。发包结束后网卡回写描述符状态位,驱动轮询感知后,回收描述符并将 MBuffer 归还内存池,实现缓冲区资源循环复用,无频繁申请释放内存的开销。设计,高频访问的控制信息与实际数据分区存储,精准适配 CPU 缓存行特性,避免伪共享,兼顾收包速度与缓存效率。轮询描述符环,检测到就绪状态后,
2026-02-28 17:40:10
252
原创 dpdk之布谷鸟hash
/ 自定义Key:网络五元组(唯一标识一个网络流)// 源IP(网络字节序)// 目的IP(网络字节序)// 源端口(网络字节序)// 目的端口(网络字节序)// 协议(TCP=6/UDP=17/ICMP=1)// 自定义Value:网络流统计数据(业务数据,用户自定义)// 该流收包数// 该流收字节数// 该流转发出口端口// 该流最后报文时间戳(用于超时清理)
2026-02-06 16:27:09
1107
原创 dpdk之kni介绍以及参考案例
一、KNI 技术背景与核心价值在传统网络架构中,用户态程序若要与内核协议栈交互,必须通过系统调用拷贝数据包,这一过程会带来显著的性能开销。正是为解决这一痛点而生的技术。它的核心是在用户态 DPDK 程序与内核协议栈之间,建立一个高性能的 “桥梁”。KNI 虚拟网卡(如vEth0)对内核来说,就是一个标准的net_device网络设备;对 DPDK 程序来说,则是一个可以直接收发mbuf数据包的接口。二、KNI 核心原理与数据流转。
2026-02-03 18:01:46
860
原创 dpdk之tcp代码案例
一、dpdk之tcp代码案例1.tcp.c2.Makefile3.代码讲解在原有 ARP 表管理 + ICMP/UDP 基础上,新增了完整的 TCP 协议栈核心能力(支持主动建立连接、被动响应连接、数据收发、连接断开、乱序包处理等)。
2026-01-26 16:01:24
345
原创 DPDK 实现的轻量级 UDP 回显服务程序
书接上文,我们配好了dpdk的环境,我的dpdk网卡使用的ip地址和MAC地址如下:使用的网卡名字为eth1,PCI 地址为DPDK 实现的轻量级 UDP 回显服务程序从dpdk源码中copy一份,将源文件文件名和生成的文件名改为send_recv。
2026-01-20 14:12:53
710
原创 Windows 静态 ARP 条目绑定(解决「拒绝访问」问题)
一、 问题背景在 Windows 中执行arp -s命令添加静态 ARP 条目时,出现,这是由于系统权限或命令限制导致的,可通过netsh命令绕过该限制。二、 前置准备Win+XIdxIdxIdx=16三、 操作步骤。
2026-01-19 14:02:57
570
原创 VMware 虚拟机 SSH 连接失败
为了快速生效,用 Windows 命令行(管理员身份)直接配置。最近在使用 VMware+Ubuntu 时遇到了。四、修复 VMware 虚拟网络配置。五、命令行配置宿主机虚拟网卡 IP。SSH 依赖网络互通,所以先排查。,终于成功建立 SSH 会话。六、网络互通与 SSH 连接。打开 Xshell,重新连接。一、SSH 连接失败。三、排查网络配置异常。
2026-01-15 16:24:34
481
原创 DPDK 19.08(Ubuntu 16.04)环境搭建
一、前期准备:安装编译依赖与 DPDK 源码编译安装二、下载并解压 DPDK 19.08 源码三、编译 DPDK 19.08。
2026-01-14 18:54:21
825
原创 curl、ping、iptables、iperf、tcpdump解析
iptables 默认操作filter表,需通过-t指定其他表(nat/mangle/raw);filter表做端口 / IP 过滤,nat表做端口映射 / IP 伪装;规则遵循 “从上到下匹配、匹配即停止”,默认策略兜底,且需持久化避免重启失效。
2026-01-06 14:11:04
995
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅