01- k8s基础网络知识 之 underlay与overlay网络


前言:
我们在学习k8s网络之前,必须要了解k8s网络相关的一些基础知识,比如什么是underlay网络、overlay网络等,只有把基础知识掌握之后,后续学习k8s网络的时候,一些知识点就不会再云里雾里了。


1 underlay与overlay网络


1.1 概念

Underlay网络是Overlay网络的底层物理基础,它是由各种物理设备和网络组成的,负责网络之间的数据包传输。具体来说,Underlay网络包括但不限于物理设备如:交换机、路由器、防火墙、负载均衡器和入侵检测系统等,它们通过物理线路连接起来,形成了一个传统的物理网络。这个物理网络可能包括有线和无线介质,如铜线、光纤和无线电波。

Underlay网络的特点在于它的物理性和稳定性,它是整个网络的基础,而Overlay网络则是构建在这些基础网络之上的虚拟网络。Overlay网络利用了Underlay网络提供的硬件设施和服务,在不改变Underlay网络结构的前提下,通过隧道技术或其他虚拟化技术在上面创建虚拟逻辑网络。这样做可以在不进行大规模网络改造的情况下,实现应用的承载并与其他网络业务分离。

例如,在数据中心环境中,Underlay网络可能是由Spine-Leaf架构构成的,其中Leaf节点负责接入不同的服务和设备,而Spine节点则执行核心功能,如路由和交换。而Overlay是基于软件的,它是Underlay物理网络之上的虚拟网络,Overlay网络的一个典型例子是Internet VPN ,它在Internet上通过使用IPsec等协议构建虚拟网络,使私有 IP地址的通信成为可能,此外,SDN和SD-WAN也采用了Overlay网络的概念。

总结来说,Underlay网络是支持Overlay网络运行的基础网络层,它提供了网络基础设施和物理连接,而Overlay网络则在此基础上构建和应用虚拟网络和服务。

在这里插入图片描述

谈了那么多,只是为了解释:

  • Overlay,顾名思义,上层的,或者说,业务层面的、用户层面的,overlay traffic 是指用户业务流量。
  • 而与overlay所对应的是underlay,顾名思义,下层的,或者说,基础架构层,专门用于承载用户流量的传统底层网络。


1.2 Overlay网络


1.2.1 Overlay的来源

先来看看Overlay这个词的来源。


Cisco在Nexus 7K平台(思科的交换机相关产品)率先推出一个技术,名字叫OTV(Overlay Transport Virtualization),后来又推广到ASK1000平台,这个OTV是干嘛的呢?


举个例子
客户有几个数据中心,分布在五湖四海,希望有一种解决方案,可以跨越Internet使这几个数据中心互联起来,比如使用VPN相关技术使之互联起来,客户说了,无论使用什么手段互联,但一定要提供大二层扩展。

小知识:什么是大二层扩展?
通俗地说,就是几个数据中心处于一个广播域里,比如一个主机发ARP广播,可以到达所有的数据中心,这样这个大二层的主机、服务器可以直接通信,无论它移动到什么位置(数据中心),只要它的VLAN不变,就可以保持自己的IP不变。(大二层网络这种网络解决方案,主要是为了解决数据中心虚拟机动态迁移这一特定需求而出现的,点击这里查看具体介绍)


OTV
OTV恰恰可以满足用户的需求,这个方案最大的优点,就是不管数据中心是如何互联,只是在数据中心之间IP可达,就可以在Edge Device上建立OTV隧道,这是一种UDP隧道,将用户的二层及以上的协议头、数据全部封装在自己的负载里。



1.2.2 VxLAN的来源

(下面的内容,我们接着上一小节继续讲。)


但是,由于OTV是Cisco 的私有实现,并没有获得广泛的支持。而由此技术理念为蓝本实现的一个协议 VxLAN(virtual Extensible LAN虚拟可扩展局域网),在2011年的VMworld大会上,被VMware提出,VXLAN技术是VMware、CISCO、Arista、Broadcom、Citrix和Redhat等厂商共同开发用于虚拟网络的技术。


VxLAN由于是基于业界标准被提出的,便很快获得了广泛支持,其原理和OVT非常相似,在此协议里提出了一个比VLAN更大的隔离空间概念,VxLAN ID由于有24位,可以提供多达1600万个隔离空间,而普通的VLAN只有4096个隔离空间(即一台交换机最多可以分4096个VLAN ID),很显然无法隔离海量的虚拟用户空间。

VXLAN协议是目前最流行的Overlay网络隧道协议之一,它采用L2 over L4(MAC-in-UDP)的报文封装模式,最终将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,将“二层域”突破规模限制形成“大二层域”。 通过OverLay技术,可以在对物理网络不做任何改造的情况下,在现有的物理网络上创建了一个或多个逻辑网络,满足数据中心大二层虚拟迁移和多租户的需求。


Overlay协议:VXLAN、NVGRE、GRE、OTV、OMP、mVPN


1.2.2.1 VXLAN隧道是如何建立的?

VXLAN隧道是如何建立的?什么是VXLAN中的VTEP和VNI?

VXLAN中的两个重要概念:

  • VTEP(VXLAN Tunnel Endpoint)
  • VNI(VXLAN Network Identifier)

VXLAN隧道的建立就是通过使用VTEP和VNI来实现的。


VTEP 是VXLAN中的隧道端点,在每个VXLAN网络中都有一个或多个VTEP设备。VTEP设备是在传统网络设备上添加VXLAN功能,其主要功能是:将数据报文封装为VXLAN报文,并将其传输到目标VTEP设备。VTEP设备同时也负责解封装接收的VXLAN报文,并将其还原为原始数据报文。VTEP对数据报文的封装和解封装是通过添加和剥离VXLAN报文头部来完成的。


VNI 是VXLAN中的网络标识符,用于区分不同的VXLAN网络。每个VXLAN网络都有一个唯一的VNI,其范围是1到16777215。VNI标识了VXLAN报文的宿主子网,使得不同子网中的虚拟机可以通过VXLAN隧道进行通信。VNI是在VXLAN头部中的VXLAN网络标识符字段中进行设置的。


如图:

在这里插入图片描述

VXLAN隧道的建立是通过VTEP设备之间的通信来实现的。具体的建立过程如下:

  1. VTEP设备通过组播或单播方式进行VXLAN通信的配置,以确保它们能够互相通信。组播方式可以提供更好的扩展性和冗余性。

  2. VTEP设备在本地维护一个VNI到MAC地址的转发表,用于确定VXLAN报文的目标MAC地址。当接收到需要发送的数据报文时,VTEP设备会根据转发表确定目标VTEP设备。

  3. 发送方的VTEP设备将数据报文封装为VXLAN报文。封装过程包括在数据报文前面添加VXLAN报文头部,其中包含了目标VTEP设备的信息,以及源和目标VNI。

  4. VTEP设备将封装后的VXLAN报文通过底层网络发送到目标VTEP设备。底层网络可以是物理网络也可以是虚拟网络,如网络隧道。

  5. 目标VTEP设备接收到VXLAN报文后,根据报文头部的目标VNI和目标MAC地址信息,将报文解封装为原始数据报文。

  6. VTEP设备将解封装后的原始数据报文发送到目标主机。

VXLAN隧道的建立和VNI的维护使得不同子网中的虚拟机能够透明地进行通信,扩展了数据中心网络的规模和灵活性。VXLAN技术在云计算和虚拟化环境中被广泛应用,为大规模数据中心的网络架构提供了一种高效的解决方案。


1.2.2.2 vxlan为何采用UDP封装,而不是TCP?

VXLAN(虚拟扩展局域网)选择使用UDP(用户数据报协议)进行封装的原因主要有以下几点:

  1. 高效的数据转发:由于VXLAN隧道的目的是跨越不同的网络层次,包括不同类型的网络设备,如路由器和交换机,以及可能的NAT(网络地址转换)设备。使用UDP封装允许VXLAN数据包直接穿过这些设备,因为UDP提供了无连接的服务模型,适合于数据包交换的场景。

  2. 兼容性:UDP是一种广泛使用的协议,几乎所有的现代操作系统都支持UDP。因此,使用UDP封装意味着VXLAN可以在多种设备和系统中运行,提高了其可移植性和通用性。

  3. 简化网络配置:在某些情况下,如数据中心环境中,存在大量冗余链路。使用UDP封装可以减少网络设备在处理VXLAN数据包时的复杂性,因为它不需要像TCP那样执行复杂的拥塞控制机制。此外,UDP封装还减少了网络设备的负载,特别是那些不支持ECMP(边缘计算多层交换)的设备。

  4. 支持多种传输模式:UDP封装使得VXLAN能够支持组播传输和多播复制,这在需要同时发送给多个接收者或进行广播通信的情况下非常有用。


综上所述,VXLAN采用UDP封装是因为它能够提供高效的传输效率、广泛的平台兼容性、简化的网络配置需求以及对多种传输模式的良好支持。



1.3 Underlay网络

前面说了,Underlay网络是Overlay网络的底层物理基础,它是由各种物理设备和网络组成的,负责网络之间的数据包传输。具体来说,Underlay网络包括但不限于物理设备如:交换机、路由器、防火墙、负载均衡器和入侵检测系统等,它们通过物理线路连接起来,形成了一个传统的物理网络。这个物理网络可能包括有线和无线介质,如铜线、光纤和无线电波。

在这里插入图片描述



1.4 Overlay vs Underlay总结


UnderlayOverlay
定义underlay是指物理网络,它是由物理设备通过物理线路连接起来形成一个传统的物理网络Overlay网络则是构建在这些基础网络之上的虚拟网络。Overlay网络利用了Underlay网络提供的硬件设施和服务,在不改变Underlay网络结构的前提下,通过隧道技术或其他虚拟化技术在上面创建虚拟逻辑网络
特性物理性、稳定性灵活性
数据传输通过物理网络设备例如路由器、交换机进行传输沿着节点间的虚拟链路进行传输
包封装和开销发生在网络的二层和三层需要跨源和目的封装数据包,产生额外的开销
报文控制面向硬件面向软件
部署时间由于依赖硬件,上线新服务涉及大量配置,耗时多只需更改虚拟网络中的拓扑结构,可快速部署
协议以太网交换、VLAN、路由协议(OSPF、IS-IS、BGP等)、MACVLAN、IPVLANVXLAN、NVGRE、SST、GRE、NVO3、EVPN
扩展性由于依赖硬件,底层网络一旦搭建好,新增设备较为困难,可扩展性差扩展性强,例如VLAN最多可支持4096个标识符,而VXLAN则提供多达1600万个标识符
多路径转发因为可扩展性低,所以需要使用多路径转发,而这会产生更多的开销和网络复杂度在Overlay网络中,流量从源传输到目的可通过多条路径,从而实现负载分担,最大化利用线路的带宽。
多租户管理要使用基于NAT或者VRF的隔离,这在大型网络中是个巨大的挑战支持管理多个租户之间的重叠IP地址

综上所述,Underlay网络存在着以上诸多限制,而Overlay带来了Underlay无法提供的灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/364667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于字符串处理

文章目录 关于字符串处理1、取字符串的长度2、跳过前面的字符3、取字符串右边的字符4、掐头去尾5、取倒数的范围6、删左留右7、删右留左8、查找替换9、大小写转换 关于字符串处理 1、取字符串的长度 [rootlocalhost ~]#strabcd1128 #定义变量 [rootlocalhost ~]#echo ${#str}…

React实现组件扩展机制

在java中,SPI机制是Java中提供的一种服务发现机制。同样,前端也很需要这种机制,这样可以做到组件可插拔,可替换,减少相互冗余。 快速使用 1.扩展点使用 通过使用Extension组件定义扩展点,通过name标记扩展…

血细胞分类项目

血细胞分类项目 数据集:血细胞分类数据集数据处理 dataset.py网络 net.py训练 train.py拿训练集的几张图进行预测 数据集:血细胞分类数据集 https://aistudio.baidu.com/datasetdetail/10278 数据处理 dataset.py from torchvision import transfor…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)

专属领域论文订阅 关注{晓理紫|小李子},每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 如果你感觉对你有所帮助,请关注我,每日准时为你推送最新论文。 为了答谢各位网友的支持,从今日起…

Task05:PPO算法

本篇博客是本人参加Datawhale组队学习第五次任务的笔记 【教程地址】https://github.com/datawhalechina/joyrl-book 【强化学习库JoyRL】https://github.com/datawhalechina/joyrl/tree/main 【JoyRL开发周报】 https://datawhale.feishu.cn/docx/OM8fdsNl0o5omoxB5nXcyzsInGe…

【QT+QGIS跨平台编译】之二十二:【FontConfig+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FontConfig介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、FontConfig介绍 FontConfig 是一个用于配置和定制字体的库,广泛应用于基于X Window系统的操作系统中,尤其是在Linux和Unix-like系统中。它为应用程序提供了一种统一的…

C语言·贪吃蛇游戏(上)

1. 游戏任务 使用C语言在Windows环境的控制台中模拟实现小游戏贪吃蛇 游戏中要包含以下功能: 1. 贪吃蛇地图绘制 2. 贪吃蛇上下左右移动和吃食物 3. 蛇撞墙,或撞到自身死亡 4. 计算得分 5. 蛇身加速、减速 6. 暂停游戏 2. Win32 API 介绍 Windows是一种多…

【Jenkins】配置及使用|参数化|邮件|源码|报表|乱码

目录 一、Jenkins 二、Jenkins环境搭建 1、下载所需的软件包 2、部署步骤 3、其他 三、Jenkins全局设置 (一)Manage Jenkins——Tools系统管理->全局工具配置分别配置JDK、Maven、Allure、Git,可以配置路径或者直接选择版本安装 1…

网络流的认识

网络流的认识 什么是流网络 网络(network)是指一个特殊的有向图 G ( V , E ) G (V,E) G(V,E),其与一般有向图的不同之处在于有容量和源汇点,不考虑反向边。 其中,我们有以下变量来方便表示: S S S&…

2024美赛C题保姆级分析完整思路代码数据教学

2024美国大学生数学建模竞赛C题保姆级分析完整思路代码数据教学 C题 Momentum in Tennis 网球中的动量 在2023年温布尔登男单决赛中,20岁的西班牙新星卡洛斯阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来在温布尔登的首次失利,也…

SwiftUI 动画入门之二:几何特效动画(GeometryEffect)

概览 在上一篇博文 SwiftUI 动画入门之一:路径动画(Path Animations)中,我们讨论了如何打造折线图(LinesGrap)形状上的路径动画。 而在本篇博文中,我们在前篇实现基础之上通过 GeometryEffect 特效为任意路径动画加上了活泼可爱的“小尾巴”。这是怎么做到的呢? 在本…

格式化内存卡后,如何找回丢失的监控视频?

随着摄像头的应用越来越广泛,很多监控摄像头采用了内存卡作为存储介质,方便用户存储和查看摄像头拍摄的视频文件。然而,由于各种原因,监控摄像头的内存卡有时会被意外格式化导致重要数据的丢失,给用户带来诸多困扰。 那…

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的必然趋势。有色金属矿采选业作为传统工业的重要组成部分,也面临着数字化转型的挑战。为了更好地推进有色金属矿采选业…

C语言字符、字符串

一、c语言字符串的本质 1、char类型数组 c语言没有专门用来存储字符串的变量类型,字符串都是存储在char类型的数组中,char类型的连续空间中每个存储单元存储一个字符,数组末尾以’\0’结束,标志字符串的结束。\0’是空字符&…

开源编辑器:ONLYOFFICE文档又更新了!

办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…

大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)

LlaMA 2是一个经过预训练与微调的基于自回归的transformer的LLMs,参数从7B至70B。同期推出的Llama 2-Chat是Llama 2专门为对话领域微调的模型。 在许多开放的基准测试中Llama 2-Chat优于其他开源的聊天模型,此外Llama 2-Chat还做了可用性与安全性评估。 …

IP定位如何进行业务风控反欺诈

IP地址作为接入互联网的唯一标识,分析其归属地及网络类型等多维度信息,帮助识别虚假流量和欺诈账号,保障账号和交易安全,帮助企业持续优化风控与反欺诈模型,降低经济损失。 交易聚集分析 通过IP地址数据服务得到的交易…

Pytorch从零开始实战18

Pytorch从零开始实战——人脸图像生成 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——人脸图像生成环境准备模型定义开始训练可视化总结 环境准备 本文基于Jupyter notebook,使用Python3.8,Pytorch2.0.1cu118&#…

Linux下gcc的使用与程序的翻译

gcc和程序的翻译过程 gcc介绍程序的翻译过程预编译编译汇编链接 命令行式宏定义 gcc介绍 gcc是一款编译C语言编译器,可以把我们用vim写的代码编译成可执行程序。编译C用g进行编译,C的文件后缀是test.cc或test.cpp或test.cxx 如果要安装g就执行以下命令 …

一文详解docker swarm

文章目录 1、简介1.1、涉及到哪些概念?1.2、需要注意什么? 2、集群管理2.1、创建集群2.2、将节点加入集群2.3、查看集群状态。2.4、将节点从集群中移除2.5、更新集群2.6、锁定/解锁集群 3、节点管理4、服务部署4.1、准备4.2、服务管理4.2.1、常用命令4.2…