VXLAN简明学习笔记(原创)

一、为什么需要VXLAN,传统的VLAN技术无法解决什么问题?

1. 因为现在虚拟化技术的发展,在数据中心里服务器都模拟成虚拟机,这样就可以方便的在物理服务器上移动、新增、删除服务器。

这样数据中心就会有成千上万的VM,而且VM一般都会需要分割成组,

或者数据中心租用给很多的用户,而每个用户所租用的VM也需要划分成组,这样的二层隔离,目前大多通过VLAN技术实现的。

但是VLAN技术有一个缺陷就是VLAN头预留的长度太短只有12位,最多只能支持4096个,是无法满足日益增长的VLAN占用需求的。

VXLAN的报文头内有24位,可以支持2的24次方的VNI个数。(VXLAN中通过VNI来标识,相当于VLAN ID)

2.虚拟机要求能够移动,也就是在用户不感知的情况下,从这个服务器迁移到另外一台服务器,还可能直接迁移到异地的数据中心(可      以自行google一下vMotion技术)。

传统的VLAN无法解决这个问题,因为如果要用户不感知虚拟机迁移,那么VM的IP地址不能改变,传统的VLAN无法解决VM迁移不改    变IP地址,因为不同VLAN的IP地址段不同。

但VNI相同的VXLAN内,IP地址在一个网段内,只是使用了不同的IP地址。

二、VXLAN实现机制

如上图,VM1与VM3可以是异地的两个VM,但使用VXLAN它们之间可以进行二层传输,尽管实际上中间跨越了千山万水,但VM1只觉得与VM3之间近在咫尺只有一台交换机。

VM发送的数据帧通过VTEP(Virtual Tunnel End Point)封装/解封装,在原始的数据帧上添加了VXLAN头、外层UDP、外层IP头、外层以太头,如下图:

封装说明:

1.外层目的MAC填的是下一跳的MAC,通常是下一跳路由器的MAC

2.外层目的IP是目的VTEP的IP,源IP地址是本地VTEP的地址。

3.外层UDP的目的端口是一个VXLAN特定的端口。

假设VTEP1与VTEP2之间为初始状态,且两端地址如下:

1.配置好VXLAN后,管理员为每个VNI分配一个组播地址,每个VETP都加入到相应的组播转发树中。(具体可以参考PIM-SM的组播转   发树建立)

2.VM1需要发送目的地址为VM2的192.168.0.101的报文,首先发送一个ARP查询报文。

3.VTEP1收到该ARP查询报文,因为ARP查询的目的地址为全F,封装成组播报文发送到组播组中。

4.VNI内其它VTEP收到该组播报文,解封装后学习了VM1的MAC地址与VTEP1地址的映射关系。

5.VTEP2将解封装后的ARP查询报文广播到本地的VNI内所有端口,VM2收到该ARP查询报文,学习192.168.0.100与VM1的MAC的关     系,并回复一个单播的ARP应答。

6.VTEP2收到ARP应答,封装成发送给VTEP1的单播报文,发送给VTEP1,VTEP1进而学到VNI 864 -- VTEP2 -- MAC2的映射关系,      VM1也学到了192.168.0.101 -- MAC2的映射关系。

参考资料:

《软件定义网络: OpenFlow 和 VxLAN》

《Arista Networks VXLAN White Paper》

以下是我个人对VXLAN的粗浅了解加上文档的总结,请高手多多指教:)

时间: 2025-01-11 20:10:48

VXLAN简明学习笔记(原创)的相关文章

openflow简明学习笔记(原创)

一.openflow用来解决什么问题? 1.首先简单介绍一下什么是SDN,传统的网络是每个节点自己计算路由: SDN是集中控制路由.在一个数据中心的网络中,只有一个控制器,下面可以连接多个交换机.控制器集中计算好路由后,将流表下发给交换机,交    换机根据流表进行转发. 跑在最上层是用户的APP(相当于计算机架构的应用软件),下一层是SDN控制层面(相当于操作系统),给APP提供接口,并负责集中    计算并控制所有    的路由: 最下面一层是进行转发的网络设备,控制器将流表下发给交换机,交

git简明学习笔记(一)

什么是git git是一个分布式的文件版本关系系统 gitHub是一个应用了git版本管理系统的网站 git并非保存修改后的增量信息,而是保存整个项目的所有信息 git的每一个项目的副本都保存有整个项目的完整信息 在底层git使用hash来对每个文件进行校验和索引 git系统可以离线使用,这意味着git将在离线时保存提交文件大暂存区,待有网络时进行提交. git的一些基本逻辑 数据保存地址有三个 仓库:存放已经提交的所有项目文件 工作区:即进行项目编辑的地方 暂存区:离线时暂时保存正式提交数据的

NXP NFC移植及学习笔记(原创)

NFC功能介绍 NFC 目前使用的三种功能: 1. P2P模式:基于LLCP协议的基础上,以NDEF数据交换格式来通信. 2. 读写模式:当作为读卡器,对NFC Tag的读写. 3. 卡模拟模式:模块成卡,可以与读卡器(或pos机)进行数据通信. 移植过程 驱动移植: kernel-3.10/drivers/misc/mediatek/nfc/nxp Framework移植: 1. 增加 packages/apps/Nfc-nxp 2. 增加 vendor/NXP/device 3. 更改 ha

UFS文件系统简明学习笔记

UNIX底下有很多文件系统,我在apue上看到了一点关于ufs文件系统的知识,想把它记下来, 在每一分区上会建立一个文件系统,很多操作也仅能在一个文件系统里实现 文件系统大概包含 自举块 超级块 柱面组 柱面组则包含了 超级块副本,配置信息,i 节点图,块位图,  i节点,数据块 一个文件的创建是利用i节点创建的,其有指向它的链接计数,表明有几个它的文件名和i节点编码,代表一个实际的空间可以有多个文件名,要删除实际空间上的数据就必须将所有的链接清楚掉,而文件的内容是有i节点里面的数据决定的,它可

原创:Scala学习笔记(不断更新)

Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面. 1. 以递归为核心控制结构. 实现循环处理的方式有三种:goto,for/while,递归,其中用goto实现循环已经在现代语言中被放弃,而for/while形式的结构化编程成为主流,而递归作为另一种方案,则长期只流行在函数式编程的小圈子中. 递归被主流编程界所担心的主要是过深的调用栈,甚至以前的课堂上我们还亲自尝试过将递归改写为循环,但是现代函数式编程语言中,通过尾递归(

[原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------