网络虚拟化基础协议·Geneve

摘要:
要实现网络虚拟化,最基本的技术必须是分层。常见的物理设备包括交换机、路由器、防火墙、负载平衡、入侵系统、行为管理等。这些设备通过特定链路连接,形成传统的物理网络,我们称之为UnderLay网络。与UnderLay网络相比,OverLay实现了控制和转发的分离。在介绍了分层之后,让我们介绍分层方法:映射:在转发时替换消息语义。与大多数封装协议类似。实施Geneva通常需要两种类型的设备:隧道终端和传输设备。

【分层】

要实现网络虚拟化,最基础的技术肯定是分层(OverLay & UnderLay)。

   

·UnderLay

中文释义中,老房子漏雨,在房子里面撑一把大雨伞,这把大雨伞就是UnderLay。

   

UnderLay指的是物理网络,它由物理设备和物理链路组成。常见的物理设备有交换机,路由器,防火墙,负载均衡,入侵系统,行为管理等,这些设备通过特定的链路连接起来形成了一个传统的物理网络,我们称之为UnderLay网络。

   

·OverLay

中文释义中,老房子漏雨,在屋顶加盖一层挡雨,加盖的这层就叫OverLay。

OverLay的发展,得益于云计算的快速推广,云计算的产生,使得VXLAN得到了普及

VXLAN是SDN的核心技术。

   

OverLay其实就是一种隧道技术VXLANNVGRE以及STT是典型的三种隧道技术,它们都是通过隧道技术实现大二层网络

将原生态的二层数据帧报文进行封装后通过隧道进行传输。通过OverLay技术,我们在对现有物理网络不做任何改造的情况下,通过隧道技术在现有的物理网络上创建了一个或者多个逻辑网络(即虚拟网络),实现了数据中心的自动化和智能化。

与UnderLay网络相比,OverLay实现了控制与转发的分离

   

总结一下:

UnderLay是底层网络,负责互联互通。

OverLay是基于隧道实现的,流量需要跑在UnderLay之上。

UnderLay完成三层互通之后,OverLay如何设计,优化就可以独立讨论,因为OverLay无论如何设计都不会对UnderLay造成影响

   

【Geneve】

分层介绍完了,我们介绍一下分层手段:

映射:转发时替换报文语义。

封装:把需要的报文加入到数据包中,处理的时候一层层解封装,尽量对设备透明。

   

现有的很多协议都实现了封装的部分或完整功能,以实现网络隔离或者通过隧道联通不同网络。包括IP-in-IP,Vlan,MPLS,VXLAN,NVGRE,STT等。

   

由此,一个通用的封装协议标准,需求已经越来越急切。

于是有了Geneve(Generic Network Virtualization Encapsulation)

   

Geneve的出发点是解决封装时候加入的metadata信息问题(多少位?怎么用?),尝试适应各种虚拟化场景。

   

和大部分的封装协议类似。实现Geneve一般需要两类设备,隧道终端传输设备

前者用于处理封装头终止隧道,后者则不是必须的,一般支持IP转发的设备即可。

   

Geneve的封装帧从外到里:

外层以太头

外层IP头

外层UDP头

Geneve头(变长)

内层以太头

Payload

外层以太头的FCS

   

Geneve支持单播、多播和广播。

   

   

【参考】

分层:https://zhuanlan.zhihu.com/p/32486650

Geneve:https://blog.csdn.net/yeasy/article/details/39928153

  

免责声明:文章转载自《网络虚拟化基础协议·Geneve》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Xilinx SelectIO资源的使用总结kafka 基本操作命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VXLAN学习之路-结合VRF在Linux中实践VXLAN网络

一、概述 近期在在搞网络安全HCIE、CISP的认证的事,顺便将VXLAN技术再次系统的学习一下,学习过程中看到云原生实验室里的一篇文章,就是关于VXLAN在Linux系统中的实践,感觉文章写得很好,所以整理后,和大家分享,话不多说,直接上干货。 VXLAN是Virtual eXtensible Local Area Network的缩写,RFC 7348...

虚拟化网络之OpenvSwitch

OpenvSwitch简称OVS,官网(http://openvswitch.org/) OVS是一个高质量、多层的虚拟交换软件,即虚拟交换机。 OpenvSwitch的见的相关组件:   ovs-vswitchd:实现switch的daemon功能,包括一个支持流交换的Linux内核模块,实现了交换功能   ovsdb-vswtich: openvswi...

容器跨主机网络通信学习笔记(以Flannel为例)

我们知道在Docker的默认配置下,不同宿主机上的容器通过 IP 地址进行互相访问是根本做不到的。 而正是为了解决这个容器“跨主通信”的问题,社区里才出现了很多的容器网络方案。 要理解容器“跨主通信”的原理,就一定要先从 Flannel 这个项目说起。 Flannel 项目是 CoreOS 公司主推的容器网络方案。事实上,Flannel 项目本身只是一个框...

[虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(六)

目的: 1. 为我们自己的watchdog写一个驱动 步骤: 通过之前的介绍,我们很容易猜想到写我们基于PCI的watchdog驱动,可以分2个步骤。 1. 探测加载PCI设备 这部分代码跟我们的设备本身没有任何关系。 我们通过这部分代码,找到 厂商ID为 0x1af4, 设备ID为0x0101的设备。这个设备是我们用qemu中定义我们的watchdog中...

使用服务虚拟化改善开发者协作

对于一个开发人员来说,没有什么比不断地从头开始重建事物更令人沮丧的了。面向对象设计的一个核心原则是能够为每一项工作创建一个对象或一个可参考的点,所以你永远不必重复自己。 尽管有这个核心原则,但当涉及到模拟时,开发人员经常发现自己在不断地重复同样的过程。 但为什么呢?当开发人员在编写应用程序代码时,他们经常与相同的外部API进行通信,并以不同的方式对同一服...

如何在CentOS 8服务器安装oVirt开源虚拟化管理系统

oVirt是一个免费和开源的分布式虚拟化解决方案,可以用来管理您的整个基础设施。它基于红帽企业虚拟化,允许您管理虚拟机,计算,存储和网络资源从基于web的界面。它使用KVM管理程序并构建在其他几个社区项目上,包括libvirt、Gluster、PatternFly和Ansible。在本教程中,我们将介绍如何在CentOS 8服务器上安装oVirt。先决条件...