什么是Overlay网络?Overlay网络与Underlay网络有什么区别?

2023-12-04 23:20
文章标签 网络 区别 overlay underlay

本文主要是介绍什么是Overlay网络?Overlay网络与Underlay网络有什么区别?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你们好,我的网工朋友。

在传统历史阶段,数据中心的网络是以三层架构(核心、汇聚、接入)为基本标准。

但是随着技术的发展,不同的厂家有不同的组建方式,比如说在核心层、汇聚层和接入层增加虚拟化技术。

不管怎么改变,都没有改变以太网络传输的基本原则,都是需要靠网络地址、物理地址来进行控制转发,是这个理吧?

但是随着云计算的发展,虚拟计算跨区域迁移保护困难,集群网络隔离规模受限等等,Overlay网络粉墨登场。

Overlay网络是通过网络虚拟化技术,在同一张Underlay网络上构建出的一张或者多张虚拟的逻辑网络。

怎么说呢,不同的Overlay网络虽然共享Underlay网络中的设备和线路,但是Overlay网络中的业务与Underlay网络中的物理组网和互联技术相互解耦。

具体这俩有啥区别,是怎么一回事儿,看完这篇科普就懂了。

今日文章阅读福利:《 Overlay技术白皮书 》

关于Overlay技术,你需要了解的还有很多,想学习Overlay技术是怎样实现的,研究典型应用,这份实打实的技术白皮书,收藏必看。

私信我,发送暗号“Overlay”,限量获取资源。

01 Underlay网络

Underlay 网络是负责传递数据包的物理网络,由交换机和路由器等设备组成,借助以太网协议、路由协议和VLAN协议等驱动。

Underlay的所有网络组件都必须通过使用路由协议来确定 IP 连接。

对Underlay 网络而言,需要建立一个设计良好的L3,包括园区边缘交换机等,以确保网络的性能、可扩展性和高可用性。

Underlay协议:BGP、OSPF、IS-IS、EIGRP

02 Overlay网络

Overlay 是使用网络虚拟化在物理基础设施之上建立连接的逻辑网络。

与UnderLay网络相比,Overlay实现了控制平面与转发平面的分离,这也是SDN的核心理念。

VXLAN协议是目前最流行的Overlay网络隧道协议之一,它是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一;

采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,将“二层域”突破规模限制形成“大二层域”。

通过OverLay技术,可以在对物理网络不做任何改造的情况下,通过隧道技术在现有的物理网络上创建了一个或多个逻辑网络,有效解决物理数据中心存在的诸多问题,实现了数据中心的自动化和智能化。

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

03 Underlay网络的一些限制

传统路由协议构建了路由前缀列表,每个路由条目都指向下一跳的 IP 地址。

这意味着每个数据包都会根据路由表在网络中逐跳转发到目的地。这种逐跳路由行为有许多低效之处,例如:

1)网络分段和网络切片很难大规模实现

  • 在网络中逐跳传输分段标签需要 VRF、MPLS 和 MP-BGP 之间进行复杂的控制平面交互。
  • 网络切片和多租户无法实现。#网络工程师俱乐部

2)多路径转发繁琐,无法融合多个底层网络来实现负载均衡

3)服务链无法有效扩展,因为它需要在多个设备上进行手动配置

4)互联网不能保证私密通信的安全要求

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

那么Overlay网络又是如何形成的呢?

04 Overlay网络是如何形成的?

Overlay是基于软件的,不依赖于传输,它就像物理网络之上的虚拟网络。

Overlay网络的一个典型例子是Internet VPN ,它在Internet上构建了一个虚拟的封闭网络。

通过使用IPsec等协议构建虚拟网络,使私有 IP 地址的通信成为可能。

此外,SDN和SD-WAN也采用了Overlay网络的概念。

但是,要在 SD-WAN 中构建Overlay,需要一个特殊 CPE,称为 SD-WAN 边缘设备。

下面以SD-WAN边缘设备建立GRE隧道为例进行说明。

相互连接的SD-WAN边缘设备之间建立隧道,数据包准备传输出去时,设备为数据包添加新的IP头部和隧道头部,并将内部IP头与MPLS域隔离,MPLS转发基于外部IP头进行。#网络工程师俱乐部

一旦数据包到达其目的地,SD-WAN 边缘设备将删除外部 IP 标头和隧道标头,得到的是原始 IP 数据包。

在整个过程中,Overlay网络感知不到Underlay网络。

同样的过程也可以用于Internet Underlay,但需要使用IPSec进行加密。

05 Overlay网络如何解决问题?

1. 使用加密技术可以保护私密流量在互联网上的通信。

2. 流量传输不依赖特定线路。Overlay网络使用隧道技术,可以灵活选择不同的底层链路,使用多种方式保证流量的稳定传输。

3. 支持多路径转发。在Overlay网络中,流量从源传输到目的可通过多条路径,从而实现负载分担,最大化利用线路的带宽。

4. 支持网络切片与网络分段。将不同的业务分割开来,可以实现网络资源的最优分配。

06 Overlay vs Underlay


整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

这篇关于什么是Overlay网络?Overlay网络与Underlay网络有什么区别?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/455283

相关文章

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会