学习目标:
1、了解VxLAN解决的问题
2、了解VxLAN的专业术语NVO3、NVE、VTEP、VNI
3、通过实验来深入了解VxLAN
4、了解VxLAN的报文封装
VxLAN的由来
VPN种类大划分:
为什么会有VxLAN以及VXLAN解决的问题?
一、Vxlan的基本概念:
1、NVO3&NVE
2、VTEP
3、VNI
Vxlan数据封装与转发
Vxlan实验:
1、实验准备:
2、 网络拓扑:
二·、Vxlan报文格式
Vxlan报头:
未完待续。。。。。。
VxLAN 全称是 Visual eXtensible Local Area Network(虚拟扩展本地局域网),VxLAN出来有很多年了(二层VPN),最早是由vmware联合cisco开发的隧道技术,用于服务器虚拟化情况下实现二层的隧道技术,现在VxLAN已经标准化了,主流厂家在数据中心首选的大二层技术。
二层:封装的对象是数据帧,则称为二层VPN,有Vxlan、TRILL、L2TP、PPTP、VPLS。
三层:封装的对象是数据包,则称为三层VPN,有IPsec、GRE、DSVPN、MPLS-VPN。
ipsec-隧道模式,则3层VPN。
ipsec-传输模式,只封装IP之上的内容。
应用层VPN:SSL VPN。
MPLS-VPN:三层。
VPLS:2层。
VxLAN网络虚拟化技术,由IETF定义的NVO3(Network virtualization over layer 3),采用L2-over-L4(MAC-in-UDP)的报文封装模式,本质就是把二层的报文用三层协议进行封装,可以实现二层网络在三层范围内进行扩展,同事满足数据中心大二层虚拟迁移和多租户的需求。
VxLAN是一种无控制平面(建立隧道两端不需要跑控制层面协议维护隧道,都是人为控制的),利用底层IP网络实现二层通信的隧道技术。
底层的IP网络称为Underlay网络,Vxlan则称为Overlayer网络。
传统网络两台虚拟机同一个网段IP,只能放在同一个网络下,有了Vxlan后,放在不同网络中也能互访,虚拟机热迁移只要地址不变就能互访。本质上来讲Vxlan就是一个隧道技术(二层隧道),业务方面来讲Vxlan就是一个网络虚拟化技术,通过VNI来区分不同的业务并且不同VNI之间做隔离,VLAN的取值1-4094,VNI取值1-16777215完全解决了VLAN不够用问题,公有云就是通过Vxlan实现不同租户之间隔离。
NVO3:基于三层IP overlay网络构建虚拟网络技术系统成为NOV3。
NVE:执行Vxlan封装和解封装的设备都统称为NVE。
VTEP:每一个NVE至少有一个VTEP(类似于OSPF的设备必须得有一个Router ID标识),VTEP既用于标识设备,也用于标识一条Vxlan隧道,由2个VTEP地址唯一确定一条Vxlan隧道,所以VTEP的地址要求全网可达。
VNI(Vxlan网络标识符):类似于Vlan ID,一个VNI代表一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。
Vxlan实现PC1和PC2在一个二层内的通信
传统网络两台虚拟机同一个网段IP,只能放在同一个网络下,有了Vxlan后,放在不同网络中也能互访,虚拟机热迁移只要地址不变就能互访。
模拟器使用CE系列交换机,支持VxLAN实验。
CE68和CE128都是用这个镜像,但VxLAN只能用CE12800做。
CE设备独有的“~”,敲完改名后变”*“代表没有生效需要确认,commit确认后更改成功。
[*CE2-GE1/0/1]undo shutdown CE接口默认关闭的
[*CE2-GE1/0/1]undo portswitch 开启三层功能,接口可以配IP
1、配置BD域:
bridge-domain 10
vxlan vni 10
2、创建二层子接口,封装dot1q,关联BD域10
interface GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
3、创建Vxlan隧道
interface Nve1
source 2.2.2.2 指定VTEP的地址
vni 10 head-end peer-list 3.3.3.3 针对VNI 10指定对端的VNI地址
CE2收到一个数据帧,会查看数据帧的Tag是否为10,是的话就会形成 smac + vlan + BD域的一个mac表项,然后打上vxlan的封装(会剥离掉vlan-tag),查找对应的BD域中VNI进行转发。
使用dot1q进行封装,转发的时候会剥离掉vlan的tag。
转发前sip 2.2.2.2 dip 3.3.3.3 vxlan vni 10 dmac A2 smac A1 tag 10 sip 192.168.1.1 dip 192.168.1.2
转发后vxlan剥离vlan-tag:sip 2.2.2.2 dip 3.3.3.3 vxlan vni 10 dmac A2 smac A1 sip 192.168.1.1 dip 192.168.1.2
抓包后结果:
会打UDP的封装,可以看到VNI,PC的源目mac。
UDP的4789代表Vxlan。
打UDP的封装是为了实现负载分担,负载分担是基于流的(五元组确定一股流:源目IP、源目端口、协议号),因为数据中心采用双路冗余,充分利用带宽实现负载分担(华为中UDP目的端口号固定4789,源端口号不确定)。
最外层封装VTEP的两个地址:
本质上来讲Vxlan就是一个隧道技术(二层隧道),业务方面来讲Vxlan就是一个网络虚拟化技术,通过VNI来区分不同的业务并且不同VNI之间做隔离,VLAN的取值1-4094,VNI取值1-16777215完全解决了VLAN不够用问题,公有云就是通过Vxlan实现不同租户之间隔离。
在Vxlan中二层通信,PC1访问PC2是如何通过Vxlan网络进行MAC解析的?
发送ARP广播请求MAC,PC1发送的过程是:
smac:PC1
sip:192.168.1.1
dmac:FFFF
dip:192.168.1.2
接入交换收到这个ARP广播帧会打上VLAN-Tag为10的标记发给NVE交换机,Tag=10的帧是关联到BD域10,这个时候会查看与VNI 10关联的隧道列表,会把这个报文进行Vxlan的封装,分别复制发送VNI 10的peerlist列表中3.3.3.3、1.1.1.1、x.x.x.x一份,这个就是Vxlan的头端复制行为。
Vxlan网络对BUM(B:broadcast,U:Dmac未知的单播报文,M:组播报文)报文的转发行为默认是头端复制。
SDN软件定义网络,是一款软件,公有云平台动态迁移依靠二代业务型SDN(一代是转控分离,基本不用了)。
Vxlan封装的原始以太网帧
前八bit:有7个bit是保留的,“I’bit在用,为1代表VNI字段有效。
2的24次方是VNI的取值,支持租户1600多万,vlan支持1-4094。
再外边就是UDP的报头信息了
源端口是根据内层数据帧的帧头哈希后得到源端口。
最外层的地址就是VTEP的地址:
总览: