您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

calico VPP dataplane

时间:2022-02-16 09:17:53  来源:  作者:LStack朗澈云

学习calico vpp包括:

 

1. vpp dapaplane架构

 

2. 搭建k8s vpp dataplane环境,实践一下。

 

vpp

 

VPP(Vector Packet Processor)是一个高性能、开源的用户空间网络数据平面,用C语言编写,在fd.io旗下开发。它支持许多标准网络功能(L2、L3路由、NAT、封装),并且可以使用插件轻松扩展。VPP数据平面使用插件来有效地实现Kube.NETes服务负载平衡和Calico策略。

 

简单来说,它就是个跑在用户空间的TCP/IP协议栈。

 

calico vpp dataplane

 

使用场景

 

对网络性能要求高的场景,比如直播、游戏、AI训练...

 

特性

 

calico vpp数据平面与其它数据面方案相比具有以下特性:

 

1. 扩展到更高的吞吐量,尤其是在启用WireGuard加密的情况下。

 

2. 使用IPsec进一步提高加密性能。

 

3. 无需kube-proxy即可原生支持Kubernetes服务,其中:

 

- 减少数据包到service的延迟。

 

- 访问pod时保留外部源IP。

 

架构

 

vpp dataplane架构如下。

「技术干货」calico VPP dataplane

 


「技术干货」calico VPP dataplane

 

如图2,计算节点上会跑一个calico-vpp-node的pod,里面包括2个容器:

 

1. VPP manager:负责处理VPP启动配置和生命周期。当manger启动时,它会检查并配置自己的上行链路口,一般就是主机的物理网口。启动后,原本所有的网络设备都将由vpp接管,并且它会创建一个tap0的接口在主机上,代表原来的主机网卡。

 

2. Calico VPP agent:负责calico的所有VPP运行时配置,主要包含了4个组件:

 

- CNI Server:就是用来对接calico cni接口的。需要负责容器网卡的创建、删除,这种方案中网卡用的是tap设备。

 

- BGP Daemon:跨节点通信时仍然默认采用BGP方案,区别是这里它的BGP client是一个Go的BGP守护进程,而普通方案中是用的bird作为BGP client。使用IPIP、VXLAN时,隧道设备需要在vpp中创建,不能用内核模块中的。

 

- Service loadbalancing:等于VPP的kube-proxy,通过vpp实现的NAT插件实现k8s里面的service,而不是用基于内核的iptables、ipvs。

 

- Policies:负责实现Felix的策略。原来的网络策略一般是基于内核的iptables,这里要通过vpp实现。

 

驱动支持

「技术干货」calico VPP dataplane

 

支持上面几种,其中xdp要求内核5.4以上(calico eBPF也一样),dpdk一般要网卡驱动及复杂配置。

 

vpp dataplane实践

 

实验目的:了解容器数据包到达主机物理网口的packet flow。

 

1. 环境:centos8.4、内核4.18.0、kubetnetes1.24。

 

2. 具体安装步骤略(看官网)。

 

- 配置CALICOVPP_NATIVE_DRIVER使用af_packet。

 

3. 安装完查看集群pod。

「技术干货」calico VPP dataplane

 

每个节点上有一个calico-vpp-node pod,负责vpp的配置。

 

4. 创建2个pod,如下。

「技术干货」calico VPP dataplane

 

创建pod时,最终由vpp agent响应cni请求。它在pod所在net namespace中创建eth0(tun),在vpp内创建另一端tun,所有从pod出来的流量将转发给vpp。

 

5. 查看一下vpp创建的各个接口。

 

查看pod网卡,是一个tun设备,(ip tuntap list可以查看tap、tun设备)。

「技术干货」calico VPP dataplane

 

查看主机网卡,变成了tap设备(原来的eth0变成了vpp内的host-eth0,也就是说主机通信也会受到影响?)。

「技术干货」calico VPP dataplane

 

查看vpp内网卡,包含了主机网卡、pod tun的对端设备(这里的tun1、tun2对于上面2个pod的对端tun设备),如果配置了ipip、vxlan他们的设备应该也会出现在这里面。

「技术干货」calico VPP dataplane

 

6. 抓pod的报文,由于是tun设备,raw ip,所以没有mac地址。

「技术干货」calico VPP dataplane

 

7. 抓vpp的报文(无法用tcpdump,需要用calivppctl抓包,结合wireshark分析),略。

 

8. 可以看到是vpp内的tap0回的。

「技术干货」calico VPP dataplane

 


「技术干货」calico VPP dataplane

 

vpp packet flow可以看calico官网。(
https://projectcalico.docs.tigera.io/reference/vpp/host-network

 

总结

 

简单总结一下,calico vpp dataplane的主要特点。

 

1. 单节点上通过不同程度的bypass内核,加速报文转发。配合不同native driver可以实现不同程度的bypass内核、直通,例如af_xdp、dpdk等,一般需要高内核或者硬件驱动支持。

 

2. 跨节点通信仍采用BGP或overlay方案,区别是bgp、ipip、vxlan等等这些网络栈能力要由用户态的vpp来提供。

 

LStack产品简介

 

面向行业应用开发商(ISV/SI)提供混合云/边缘云场景下云原生应用开发测试、交付、运维一站式服务,帮助企业采用云原生敏捷开发交付方法论,从而提高软件开发人员效率、减少运维成本,加快数字化转型,并最终实现业务创新。

 



Tags:calico   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
聊聊 Calico BGP容器网络实践
前言G行全栈云容器大规模运行在信创服务器的虚拟机里,发现如跨NUMA访问CPU可能导致性能不均衡、容器网络和IaaS SDN耦合、虚拟层本身资源消耗等诸多问题。为解决这些问题,G行...【详细内容】
2023-11-28  Search: calico  点击:(185)  评论:(0)  加入收藏
calico VPP dataplane
学习calico vpp包括: 1. vpp dapaplane架构。 2. 搭建k8s vpp dataplane环境,实践一下。 vpp VPP(Vector Packet Processor)是一个高性能、开源的用户空间网络数据平面,用C语言编...【详细内容】
2022-02-16  Search: calico  点击:(348)  评论:(0)  加入收藏
Calico网络架构
Calico 是一种容器之间互通的网络方案。在虚拟化平台中,比如 OpenStack、Docker 等都需要实现 workloads 之间互连,但同时也需要对容器做隔离控制,就像在 Internet 中的服务仅...【详细内容】
2020-09-01  Search: calico  点击:(362)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(17)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(34)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(42)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(40)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(72)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(60)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(43)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(157)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(53)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(84)  评论:(0)  加入收藏
相关文章
站内最新
站内热门
站内头条