协议原理:
1. vxlan 协议原理简介
3. 解读VXLAN
8. vxlan学习(一)----------分布式VXLAN IP网关
9. VXLAN Series – How VTEP Learns and Creates Forwarding Table – Part 5
VXLAN本质:
VM1和VM2可以在同一个子网下, 有VTEP1和VTEP2之间建立MAC-in-UDP隧道, VTEP1和VTEP2间可以是三层网络,只要VTEP1和VTEP2间的三层网络可达,VM1和VM2就可以通信。VM1和VM2无法感知隧道间的底层网络的存在,认为在同一个二层网络下通信。
要解决的问题:
VM1 和 VM2通信,知道VM2的IP地址但不知道VM2的mac地址。也不知道VM2和哪个VTEP关联,即通过哪个VTEP可以找到VM2。
VM1和VM2通信的第一笔ARP广播包如何到达目的VM2,目的VM2如何回复arp response。传统的网络A ping B时,若ip地址在一个网段,ARP request广播包可以在二层广播域内到达B,若B和A不在一个网段实际上是A向其网关请求ARP,其后数据包由A的网关帮忙路由到B。VXLAN下VM1和VM2在一个网段,但实际底层网络是三层网络,广播包无法跨过二层广播域到达VM2,
解决:
通过多播,VTEP将内层的广播包封装成外层的多播包,将封装后的vxlan 报文多播给加入该多播组的其他VTEPs.
VTEP上学习<VNI, outer VTEP's IP, inner mac>表项,查表即可知道目的为inner mac地址的内层包封装时的外层目的VTEP ip地址。
VTEP由网络设备如交换机担当时,VTEP还需要flood-learn,交换机中记录的是对应的交换机端口和MAC的关系,以确定与其关联的VM要从哪个端口找到。
相关术语或留意的点:
1.协议的基本原理。前三篇讲解的比较透彻,看前三篇足够。
2.Vxlan三层网关,即VM1和VM2在不同网络段下的通信原理,第2篇和第3篇有详细讲解。
3.vxlan的数据平面和控制平面。
数据平面即VTEP的转发平面,VTEP隧道端点的加封和解封,vxlan报文在VTEP间的IP网络上的路由或转发。控制平面学习地址映射信息, 在本地构建控制平面表项。 控制平面表项由 VNI、Inner Source MAC 、Outer Source IP 三元组组成。VXLAN技术介绍:三层的网络来搭建虚拟的二层网络 和 overlay网络技术之VXLAN详解 对数据平面和控制平面的概念有简单介绍。
基于Controller的控制平面,SDN架构下的控制平面。不是通过泛洪的自学习来获取映射表项,所有VTEPs受中心Controller控制,解读VXLAN 中对这种控制方式有做讲解。
4.VTEP 角色的充当者
vtep 可以是网络设备(比如交换机),也可以是一台机器(比如虚拟化集群中的宿主机)vxlan 协议原理简介
VTEP节点可以由实现了VXLAN功能的交换机、路由器等硬件设备充当,但在更多的基于虚拟化技术实现的网络拓扑的应用中,VTEP节点的角色更多由部署了多台虚拟机的主机中的hypervisor进程来担任. 关于VLAN和VXLAN的理解
VXLAN最初只在虚拟交换机实现,但虚拟交换机天然具有转发性能低下的缺点,并不适合大流量的网络环境。于是,各硬件厂商也纷纷推出支持VXLAN的硬件产品,与虚拟交换机一起,共同成为网络边缘设备,最终使VXLAN技术能够适应各种网络. 解读VXLAN
测试环境搭建:
使用CentOS Linux Bridge搭建Vxlan环境
使用Linux Bridge 搭建vxlan 实现 虚拟机跨物理机通信
使用 Linux Bridge 搭建 VXLAN Overlay 网络
内核源码分析:
【Linux4.1.12源码分析】VXLAN报文内核协议栈处理