www.huawei.com/ilink/cnenterprise/download/HW_401028

http://feisky.xyz/sdn/basic/vxlan.html

华为的vxlan文档介绍:

1)主要的内容重点在vxlan的封装形式,多了50字节的tunnel长度;(14帧头+20ip头+8udp头+8vxlan头),其中vxlan头(00000100+24bit保留+24bit vxlanID+8bit保留)

2)正常来说一个64-1518帧长的数据包,去掉vxlan的tunnel头部+FCS(帧校验序列-CRC)之后,只有10-1464长度可以使用,但是vxlan的封装是为了传输内层的来自vm的数据包,所以实际的传输过程需要调大整个网络环境的MTU,才能正常传输;

3) GRE封装的是ip头+数据信息,

•GRE(Generic Routing Encapsulation):通用路由封装协议。定义了在一种网络层协议上封装另一种协议(或同一种协议)。例如:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。

•GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。

•Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封 。
封装过程:
 

•经GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后

•新IP数据包的IP头部的协议号为47。

•新IP头部的长度为20字节
 
•GRE头部的长度为4~20字节(根据实际配置而定)。
 
格式:
 

GRE头部结构参照RFC1701定义

  • 前4 字节是必须出现的
  • 第5~20字节将根据第1字节的相关bit位信息,可选出现。
  • GRE头部的长度将影响Tunnel口的mtu值
•0bit  C:校验和标志位。
   如配置了checksun则该位置为1,同时校验和(可选)、偏离(可选)部分的共4 bytes出现在GRE头部。
   如不配置checksun则该位置为0,同时校验和(可选)、偏离(可选)部分不出现在GRE头部。
 
•1bit  R:路由标志位。 
  如R为1,校验和(可选)、偏离(可选)、路由(可选)部分的共8 bytes出现在GRE头部。
 如R为0, 校验和(可选)、偏离(可选)、路由(可选)部分不出现在GRE头部。
 
•2bit  K:密钥标志位。 
     如配置了KEY则该位置为1,同时密钥(可选)部分的共4 bytes出现在GRE头部。
     如不配置KEY则该位置为0,同时密钥(可选)部分不出现在GRE头部。
 
•3bit  S:序列好同步标志位。 
    如配置了sequence-datagrams则该位置为1,同时序列号(可选)部分的共4 bytes出    现在GRE头部。
  如不配置sequence-datagrams则该位置为0,同时序列号(可选)部分不出现在GRE头部。
 
•4bit  s:严格源路由标志位。 
     除非所有的路由都符合严格源路由,该bit位为1。通常该bit为0。
 
•5~7bit:递归控制:该位置需为0
 
•8~12bit: 未定义,需为0
 
•13~15 版本:需为0
 

16~31 协议类型:常用的协议,例如IP协议为0800

============================

三层组播和二层组播如何对应起来

1)     常用组播地址:

a)    224.0.0.1 网段内所有主机和路由器(等效于广播地址)

b)    224.0.0.2 所有组播路由器的地址

c)    224.0.0.5 OSPF路由器

d)    224.0.0.6 OSPF DR

e)    224.0.0.9 RIP-2路由器

f)     224.0.0.13 所有PIM路由器

2)      三层组播地址如何映射到二层组播地址

a)    IANA规定,组播MAC地址的高24bit为0x01005e,第25bit为0,低23bit为组播IP地址的低23bit。IP组播地址的前4bit是固定的1110,对应组播MAC地址的高25bit。IP组播地址的后28bit中只有23bit被映射到MAC地址,因此丢失了5bit的地址信息,直接结果是有32个IP组播地址映射到同一MAC地址上。

vxlan vs GRE(三层组播和二层组播如何对应起来)的更多相关文章

  1. 网络叠加模式VLAN、VxLAN、GRE

    什么是叠加网络 1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装. 2.叠加网络就是使用这种所谓"包内之包"的技术安全地将一个网络隐藏在另一个 网络中 ...

  2. openstack网络基础:网络叠加模式VLAN、VxLAN、GRE

    什么是叠加网络1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装.2.叠加网络就是使用这种所谓“包内之包”的技术安全地将一个网络隐藏在另一个 网络中,然后将网络区段进行迁移 ...

  3. 一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片

    说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等 ...

  4. PHP正则中的捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可 ...

  5. php 正则表达式捕获组与非捕获组

    熟练掌握正则表达式是每个程序员的基础要求,对于每个初学者来说会被正则表达式一连串字符弄得头晕眼花.博主便会如此,一直对正则表达式有种莫名的恐惧.近来看到另一位博友写的 <php正则表达式> ...

  6. 无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。

    无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘 ...

  7. 超级详细 一听就会:利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)

    前言 作为一个前端工程师,无论公司是什么行业,无论你做什么端,基本都会遇到一个避不开的动画效果:循环轮播.做轮播并不难,市场上的轮播插件有很多,其中比较著名的是swiper,使用也非常简单.但轮播插件 ...

  8. windows组策略实验-本地组策略和域控组策略

    windows组策略实验-本地组策略和域控组策略 本地组策略只对本地计算机有效,域策略是计算机加入域环境后对加入域的一组计算机.用户定义的策略,便于管理 本地组策略: 一.实验环境 Windows 7 ...

  9. MySQL高可用之组复制(1):组复制技术简介

    MySQL组复制系列文章: MySQL组复制大纲 MySQL组复制(1):组复制技术简介 MySQL组复制(2):配置单主模型的组复制 MySQL组复制(3):配置多主模型的组复制 MySQL组复制( ...

随机推荐

  1. Signing Your Applications(Android签名相关)

    In this document Signing Overview Signing in Debug Mode Signing in Release Mode Signing Android Wear ...

  2. centos 安装python3.6

    环境准备 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel 首先去官网下 ...

  3. Applese涂颜色-欧拉降幂公式

    链接:https://ac.nowcoder.com/acm/contest/330/E来源:牛客网 题目描述 精通程序设计的 Applese 叕写了一个游戏. 在这个游戏中,有一个 n 行 m 列的 ...

  4. mysql 拼接字符

    Mysql的查询结果行字段拼接,可以用下面两个函数实现: 1. concat函数 mysql> select concat('1','2','3') from test ; +--------- ...

  5. location search的中文加密

    最近项目中遇到一个这样问题,在页面跳转时,追加了location.search,有中文字符,但是在分享第二次时,这个链接无法获取中文字段,变成乱码. 仔细对比,发现在页面分享时,浏览器自动对中文进行了 ...

  6. java-学习8

    方法的声明及使用 public class function { public static void main(String[] args) { printInfo();//调用printInfo( ...

  7. 对于“2017面向对象程序设计(Java)第就十周学习总结”存在问题的反馈

    1.“学生们普遍反映对泛型相关知识点的理解有一些难度,而且对泛型有关程序的编写有些困难.希望老师再次讲解.同学们普遍反映第四.第五个实验较难,大部分同学不能独立完成实验,希望老师能在课堂上详细解答.根 ...

  8. MVC005之页面调用控制器中的方法

    描述:控制器在传给页面数据时,有时我们需要对传过来的数据进行二次处理 如: 1:传过来部门编码,但页面上要显示为部门名称 2:格式转换等 我们在写aspx时一般在cs文件中写一个protected的方 ...

  9. vps vultr centos7 搭建 伟皮恩

    vultr 配置 64 bit OS   CentOS 7 ×64 20 GB SSD    1 CPU  512MB  Memory  500GB Bandwidth √ Enable IPv6 √ ...

  10. PHP 用正则获取URL的根域名

    function GetUrlRoot($url){ preg_match('/[\w][\w-]*\.(?:com\.cn|com|cn|co|net|org|gov|cc|biz|info)(\/ ...