cilium的eBPF网络特性解析

在 Cilium 的 eBPF 数据平面中,bpf.masquerade、bpf.hostRouting、bpf_redirect_neigh() 和 bpf_redirect_peer() 是紧密相关的核心网络特性,它们共同构建了高效、可编程的网络转发路径。 以下是它们的详细解析和相互关系: 一、数据流程   二、核心概念解析 bpf.masquerade (IP 伪装) 作用:实现源

cilium相关总结

总结 Cilium 的网络能力可分为 数据传输平面 和 控制平面: 数据传输平面(Data Plane): 如何转发数据包?(如 VXLAN 封装、直接路由) 依赖的底层机制?(如 eBPF、内核路由表) 控制平面(Control Plane): 如何管理网络状态?(如服务发现、策略下发) 依赖的协议?(如 KVStore、Kubernetes API) 以下模式主要属于 数据传输平面 的实现差异

cilium问题排查

工具 工具 用途 示例命令 Cilium CLI 端点/策略/服务诊断 cilium service list Hubble CLI 实时流量追踪 hubble observe --verdict DROPPED eBPF Compiler (bpftool) 内核级 eBPF 程序检查 bpftool prog show --bpffs Grafana + Prometheus 性能指标监控 查

cilium取代kube-proxy

参考文档:https://docs.cilium.io/en/v1.17/network/kubernetes/kubeproxy-free/#kubeproxy-free Kubernetes Without kube-proxy 备注: Cilium的kube-proxy替换依赖于socket-LB功能,该功能需要v4.19.57、v5.1.16、v5.2.0或更高版本的Linux内核。Lin

cilium安装部署和升级

参考官方文档:https://docs.cilium.io/en/v1.17/gettingstarted/k8s-install-default/ 1.准备k8s环境 # k get node NAME STATUS ROLES AGE VERSION km1 NotReady control-plane,master 11m v1.23.17 kw1 NotReady

CNI相关总结

考虑几个问题: 1、需要细粒度网络访问控制? 这个flannel是不支持的,calico支持,所以做多租户网络方面的控制ACL,那么要选择 calico。 2、追求网络性能? 选择 flannel host-gw 模式 和 calico BGP 模式。 3、服务器之前是否可以跑BGP协议? 很多的公有云是不支持跑BGP协议,那么使用calico的BGP模式自然是不行的。 4、集群规模多大? 如果规

calico使用IPIP模式

IPIP 是linux内核的驱动程序,可以对数据包进行隧道,两个不同的网络 vlan1 和 vlan2。基于现有的以太网将原始包中的原始IP进行一次封装,通过tunl0解包,这个tunl0类似于ipip模块,和Flannel vxlan的veth很类似。 举个例子,假如我们有两台处于不同子网的宿主机 Node 1 和 Node 2,网段分别为192.169.1.0/24 和 192.168.2.0

calico使用BGP模式

BGP 简介: 它是一个 Linux 内核原生就支持的、专门用在大规模数据中心里维护不同的“自治系统”之间路由信息的、无中心的路由协议。 用一个非常简单的例子来说明: 有两个自治系统(Autonomous System,简称为 AS):AS 1 和 AS 2。而所谓的一个自治系统,指的是一个组织管辖下的所有 IP 网络和路由器的全体。你可以把它想象成一个小公司里的所有主机和路由器。在正常情况下,自

calico简介

什么是 Calico? Calico 是一套开源的网络和网络安全方案,用于容器、虚拟机、宿主机之前的网络连接,可以用在kubernetes、OpenShift、DockerEE、OpenStrack等PaaS或IaaS平台上。 组件: Felix:calico的核心组件,运行在每个节点上。主要的功能有接口管理、路由规则、ACL规则和状态报告 接口管理:Felix为内核编写一些接口信息,以便让内核能

flannel使用vxlan-Directrouting模式

flannel使用vxlan-Directrouting模式: 为了提升性能,Flannel的VXLAN后端还支持DirectRouting模式,即在集群中的各节点上添加必要的路由信息,让Pod间的IP报文通过节点的二层网络直接传送。仅在通信双方的Pod对象所在的节点跨IP网络时,则使用VXLAN隧道方式转发通信流量。 如果Node节点全部位于单个二层网络中,则DirectRouting模式下的P

flannel使用host-gw模式

Flannel 的 host-gw 模式要求所有节点(Node)必须位于同一个二层网络(L2 网络) 中,这是由其核心工作原理决定的。理解这个限制需要深入分析 host-gw 的工作机制: host-gw 的核心工作原理 路由即网关: Flannel 在每个节点上为其他节点的 Pod 网段创建主机路由(Host Route)。 这条路由告诉本机的 Linux 内核:“要访问目标 Pod 网段(如 

flannel使用vxlan模式

VXLAN,即 Virtual Extensible LAN(虚拟可扩展局域网),是 Linux 内核本身就支持的一种网络虚似化技术。所以说,VXLAN 可以完全在内核态实现上述封装和解封装的工作,从而通过与前面相似的“隧道”机制,构建出覆盖网络(Overlay Network)。 VXLAN 的覆盖网络的设计思想是:在现有的三层网络之上,“覆盖”一层虚拟的、由内核 VXLAN 模块负责维护的二层

flannel简介

我们在部署 Kubernetes 的时候,有一个步骤是安装 kubernetes-cni 包,它的目的就是在宿主机上安装CNI 插件所需的基础可执行文件。 在安装完成后,你可以在宿主机的 /opt/cni/bin 目录下看到它们,如下所示: # cd /opt/cni/bin/ # ll 总用量 56484 -