网络虚拟化最基础的技术莫过于分层(Overlay、Underlay),要实现分层有两种手段。一个是映射(Mapping),一个是封装(Encapsulation)。

映射,主要思路是转发时替换报文语义,怎样替换将须要设备进行查询。

封装,则是把须要的报文语义加入到网包中。处理的时候一层层的解封装就可以,尽量对设备透明。

不少协议都实现了封装的部分或完整功能。包含IP-in-IP、Vlan、MPLS、VXLAN、NVGRE、STT等。这些协议各有各的特点,不少都是为了简单地隔离或者通过隧道连通不同网络。

特别是后面几种。设计理念大同小异,仅仅是实现细节不同。

对通用的封装协议标准的需求已经越来越强烈。于是有了Geneve: Generic Network Virtualization Encapsulation。





Geneve的出发点是解决封装时候加入的metadata信息问题(究竟多少位。该怎么用),尝试适应各种虚拟化场景,Underlay的协议是最通用的IP协议(准确的说是UDP)。





跟大部分的封装协议类似。实现Geneve一般须要两类设备:隧道终端(tunnel endpoints)和传输设备(transit devices)。

前者用来处理封装头终止隧道,后者则是非必需的。一般是支持IP转发的设备。

详细来看Geneve的封装帧,从外到里依次是

外层以太头

外层IP头(V4或V6)

外层UDP头

Geneve头(变长)

内层以太头

Payload

外层以太头的FCS





当中UDP的目标port默认是IANA分配的6081。而且支持可配置。UDP的校验和必须计算正确。也可配置为0。





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

网络虚拟化基础协议之Geneve的更多相关文章

  1. 网络虚拟化基础协议·Geneve

    [分层] 要实现网络虚拟化,最基础的技术肯定是分层(OverLay & UnderLay). ·UnderLay 中文释义中,老房子漏雨,在房子里面撑一把大雨伞,这把大雨伞就是UnderLay ...

  2. KVM 网络虚拟化基础 - 每天5分钟玩转 OpenStack(9)

    网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大. 但因为网络是虚拟化中非常重要的资源,所以再硬的骨头也必须要把它啃下来. 为了让大家对虚拟化网络的复杂程度有一个直观的认识,请看下图 这是 Open ...

  3. KVM 网络虚拟化基础

    网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大. 但因为网络是虚拟化中非常重要的资源,所以再硬的骨头也必须要把它啃下来. 为了让大家对虚拟化网络的复杂程度有一个直观的认识,请看下图 这是 Open ...

  4. O009、KVM 网络虚拟化基础

    参考https://www.cnblogs.com/CloudMan6/p/5289590.html   网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大.   但因为网络是虚拟化中非常重要的资源, ...

  5. 网络虚拟化基础一:linux名称空间Namespaces

    一 介绍 如果把linux操作系统比作一个大房子,那命名空间指的就是这个房子中的一个个房间,住在每个房间里的人都自以为独享了整个房子的资源,但其实大家仅仅只是在共享的基础之上互相隔离,共享指的是共享全 ...

  6. OpenStack入门篇(十九)之网络虚拟化基础

    1.Linux Bridge的基本概念 假设宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,现在有个问题是: 如何让 VM1 能够访问外网?① 给 VM1 分配一个虚拟网 ...

  7. Hyper-V 网络虚拟化技术细节

    Hyper-V 网络虚拟化技术细节 适用对象:Windows Server 2012 R2 服务器虚拟化能让多个服务器实例在同一台物理主机上同步运行,但各个服务器实例都是相互独立的. 每台虚拟机的运作 ...

  8. 05、ip划分+网络配置+虚拟化基础+基本路由

    -- IP   IANA (Internet Assigned Numbers Authority) ,Internet号分配机构.负责对IP地 址分配规划以及对TCP/UDP公共服务的端口定义.国际 ...

  9. 网络编程基础之C/S架构和TCP/IP协议

    一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...

随机推荐

  1. 洛谷 [P1337] 平衡点

    模拟退火练手 一道模拟退火的好题 结果一定势能最小 与模拟退火思路高度一致 #include <iostream> #include <cstdio> #include < ...

  2. [TYVJ1930]编年史

    现在 applepi 手上有一本十分古老的编年史,这本史书记录了很多著名的历史事件.于是applepi 有了一个奇怪的想法……他想知道那些有名的历史事件都是在星期几发生的.现在轮到你了,你要帮助app ...

  3. SQL2005、SQL2008如何压缩日志文件(log) 如何清除日志

    原文发布时间为:2010-11-01 -- 来源于本人的百度文章 [由搬家工具导入]            ALTER DATABASE [DataBaseName]             SET ...

  4. .NET发布网站出现了一系列问题(1)---“无法显示XML页”的解决办法

    原文发布时间为:2008-09-11 -- 来源于本人的百度文章 [由搬家工具导入] 原因之一: 这种错误是由asp.net 帐户没有在iis注册造成的。原因可能是.net framework 2.0 ...

  5. sql查询字段值只为汉字(桃)

    SELECT * FROM roster WHERE roster.`name` >'zzzzzzzzzz'   //查询roster表中name值为中文的 SELECT * FROM rost ...

  6. Codeforces Gym101502 E.The Architect Omar-find()函数

    E. The Architect Omar   time limit per test 1.0 s memory limit per test 256 MB input standard input ...

  7. 用chardet判断字符编码的方法

    转自http://www.cnblogs.com/xiaowuyi/archive/2012/03/09/2387173.html 用chardet判断字符编码的方法   1.chardet下载与安装 ...

  8. Codeforces 915F Imbalance Value of a Tree(并查集)

    题目链接  Imbalance Value of a Tree 题意  给定一棵树.求树上所有简单路径中的最大权值与最小权值的差值的和. 首先考虑求所有简单路径中的最大权值和. 对所有点按照权值大小升 ...

  9. Algorithm | Vector

    因为平常用的话只是vector的一些非常简单的功能,基本上把它当数组来用,现在也只是把这一部分写了一些. template<class T> class XVector { public: ...

  10. 2016北京集训测试赛(八)Problem C: 直径

    Solution 一个定理: 把两棵树用一条边练成一棵树后, 树的直径在原来两棵树的四个直径端点中产生. 放到这一题, 我们通过DP先求出大树中以每个点为根的子树中的直径, 再取每棵小树中与其他树有连 ...