• 网络虚拟化基础协议之Geneve


    网络虚拟化最基础的技术莫过于分层(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支持单播、多播和广播。

  • 相关阅读:
    Java Map遍历方式的选择
    UriMatcher类的addURI()方法
    Java IO流分析整理[转]
    java基础一些注意细节
    java中static变量和方存在内存什么区域
    详细解析Java中抽象类和接口的区别
    mybatis一些记录
    Go语言简介(上)— 语法
    JavaScript相关-深入面向对象
    33个组件5
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6815794.html
Copyright © 2020-2023  润新知