VLAN的扩展技术VxLAN,是用来解决什么问题的?
VxLAN如何实现跨三层广播报文传递的?
VxLAN相关的各种新概念都是什么意思?
VxLAN具体该怎么配置?
ps:最后有惊喜~
一、vxlan技术背景
vxlan是vlan技术的扩展,那vxlan用在什么场景,在这些场景下,传统vlan存在哪些问题?
vxlan主要用在云数据中心,虚拟机跨三层迁移的场景,首先了解下什么叫虚拟机迁移。
虚拟机迁移,是指在一台物理服务器(server)上运行的虚拟机(vm),因为负载均衡或日常维护等原因,移动到另一台物理机,通俗点理解就是虚拟机搬家,如下图:
虚拟机迁移前
虚拟机迁移后
为了保证虚拟机在迁移的过程中,不中断业务,那就要保持IP地址不变,网关不变,TCP连接不变。这就限制了虚拟机迁移的范围,一定是在一个二层网络内,也就是在一个vlan内,如图:
为了保证网络的稳定性,一个vlan也就是一个广播域往往不会划的很大,这就极大的限制了虚拟机的迁移范围。
在上图中,如果vm迁移范围1的所有服务器都满载了,而vm迁移范围2的物理服务器还有很多空闲算力,就不能合理的利用迁移范围2的算力。
这时就需要跨三层迁移技术,让虚拟机从迁移范围1,到迁移范围2,依然保持IP地址、网关、传输层连接等信息不变。
跨三层迁移技术,就是我们常说的大二层技术,而vxlan是使用最广的跨三层迁移技术,成为事实上的大二层技术标准。
二、Vxlan实现原理
Vxlan技术的原理,本质上是在一个三层互连的网络中,构建一个逻辑上的二层网络,这样就可以实现虚拟机的跨三层,甚至跨数据中心、跨地域的迁移。
如图,应用vxlan后,现在这些物理服务器,表面上是连接在不同的三层网络里,逻辑上是连接在一个相同的大二层交换机上。
那这个“大二层交换机”,是如何构建出来的呢?
三、Vxlan工作过程
如上图,怎么实现server1和server2两台服务器,连接在一个逻辑上的“大二层交换机”上,先看一个真正的二层网络,是如何转发数据的。
如图,10.1访问10.2,会用广播发送一个请求10.2 mac地址的arp报文,收到回应后完成arp解析,进而封装数据建立通信。
但是,在跨三层网络中,发出的广播arp会被三层设备隔离,无法到达目标主机。而vxlan解决这个问题的方案是隧道技术。
所谓的隧道技术,就是在原始的报文上,加一个新报头,靠新报头把数据包送到目的地。如下图:
当NVE设备收到了server1发出的arp广播报文,会给这个广播报文加上新的头部,新头部的源IP是10.1.1.2,目标IP是10.2.2.2