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无法提供的灵活性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

协作办公开源神器:ONLYOFFICE

目录 前言ONLYOFFICE为什么选择ONLYOFFICE强大的文档编辑功能多种协作方式多人在线协同支持跨端多平台连接器安全性极高本地部署 ONLYOFFICE 8.0版本震撼来袭可填写的 PDF 表单显示协作用户头像更新插件界面设计更快更强大 总结 前言 近几年来,随着互联网技术的不断…

如何解决 docker registry x509 证书不信任问题?

最近想尝试一下极狐GitLab(可以理解为 GitLab 在中国的发行版)内置的容器镜像仓库,这样就不用自己安装 Harbor 之类的了。于是找了个服务器安装了一个极狐GitLab 的私有化部署版本,安装过程可以参考过往的技术文章使用Omnibus 安装…

在Windows搭建gRPC C++开发环境

本文介绍在Windows下使用Visual Studio 2017编译gRPC 1.48.0并配置开发环境,以及开发、配置一个简单的c服务端以及.net客户端。 0、前置条件 1、下载gRPC源码 使用git命令行在预备存放grpc源码的目录下执行, 此处我们下载的是 grpc 1.48.0 git clone -b v1.48.0 …

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因: matplotlib版本升级之后显示代码变了,修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…

测试环境搭建整套大数据系统(一:基础配置,修改hostname,hosts,免密,时间同步)

一:使用服务器配置。 二:修改服务器名称hostname,hosts。 在 Linux 系统中,hostname 和 /etc/hosts 文件分别用于管理主机名和主机名解析。 在三台服务器上,分别执行以下命令。 vim /etc/hostnamexdso-hadoop-test-0…

༺༽༾ཊ—Unity之-04-原型模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务1:使用 建造者模式 创建三种 金刚猿猴 零部件 拼接组合 首先资源商店下载 金刚猿猴 模…

刨析数据结构(二)

🌈个人主页:小田爱学编程 🔥 系列专栏:数据结构————"带你无脑刨析" 🏆🏆关注博主,随时获取更多关于数据结构的优质内容!🏆🏆 😀欢迎…

strlen函数详解

🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:c语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&a…

动态微信小程序码和开发者工具解析小程序码

一、动态生成微信小程序码 1、方式一 微信官方网站,对已发布的小程序,提供了一个快捷的入口,输入微信小程序的page页面即可。 page页面可以通过右侧开启入口获取 也可以通过开发者工具左下角的页面地址和参数地址那里获取到 二、生成的小…

【软件设计师笔记】计算机系统基础知识考点

【考证须知】IT行业高含金量的证书(传送门) 💖 【软件设计师笔记】程序语言设计考点(传送门) 💖 【软件设计师笔记】操作系统考点(传送门) 💖 🐓 计算机系统组成 计算机系统是由硬件和软件组成的,它们协同工作来运…

WAF 无法防护的八种风险

一、目录遍历漏洞 测试用例:Apache 目录遍历漏洞 测试环境搭建: apt intsall apache2 && cd /var/www/html/ && rm index.html无法拦截原因: 请求中无明显恶意特征,无法判断为攻击行为 实战数据: 截…

MongoDB聚合操作

文章目录 聚合操作单一作用聚合聚合管道什么是 MongoDB 聚合框架管道(Pipeline)和阶段(Stage)常用的管道聚合阶段聚合表达式数据准备$project$match$count$group accumulator操作符$unwind$limit$skip$sort$lookup案例聚合操作案例…

【机器学习】AAAI 会议论文聚类分析

实验五:AAAI 会议论文聚类分析 ​ 本次实验以AAAI 2014会议论文数据为基础,要求实现或调用无监督聚类算法,了解聚类方法。 1 任务介绍 ​ 每年国际上召开的大大小小学术会议不计其数,发表了非常多的论文。在计算机领域的一些大…

K8s 集群可观测性-数据分流最佳实践

简介 在微服务架构下,一个 k8s 集群中经常会部署多套业务,同时也意味着不同团队、不同角色、不同的业务会在同一集群中,需要将不同业务的数据在不同的空间进行管理和查看。 在传统的主机环境下,这个是可以通过不同的主机部署 Da…

《元梦之星》赛季更新带来“新”内容,为何却被玩家集体声讨?

前段时间,《元梦之星》迎来了“山海奇遇”赛季的重磅更新,诸多“新”内容的上线吸引了很多玩家们的关注,然而在新版本开启之后没有多,新玩法新时装甚至是游戏中的新改动都引起了不少玩家的不满。 在新赛季开启之后,玩家…

Python爬虫http基本原理

HTTP 基本原理 在本节中,我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫的基本原理。 2.1.1 URI 和 URL 这里我们先了解一下 URI 和 URL,URI…

抖音弹幕直播玩法汉字找不同文字找不同无人值执守自动玩游戏自带语音播报的开发日志

#找不同# 要解决如下几个问题: 1.声音sprite的录制和调用,解决方案以及解决库如下: howler.min.js://一款不错的音频播放js库。 2.鼠标自动飘浮,使用的库 anime.min.js 3.资源预加载 preload.min.js 4.其它使用到的库 jquery,vue

stack和queue及优先级队列和适配器(包括deque)的介绍

stack stack的介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组…

Android使用ScrollView导致鼠标点击事件无效

平台 测试平台: RK3288 Android8.1RK3588 Android 12 问题 首先, 这个问题的前提是, 使用的输入设备是**鼠标**, 普通的触摸屏并不会出现这个问题. 大致的流程是APP的UI布局中采用ScrollView作为根容器, 之后添加各类子控件, 在一起准备就绪后, 使用鼠标进行功能测试, 出现…

国产隔离芯片的质量控制与发展趋势

随着电子技术的飞速发展,国产隔离芯片在电力电子、通信设备等领域中扮演着重要角色。然而,随之而来的是对于其质量控制的迫切需求。本文将从结构、制造工艺、测试手段等方面对国产隔离芯片的质量控制进行分析,并展望其未来的发展趋势。 一、国…