VXLAN基础

一、VLAN回顾
Vxlan:virtual extensible local area network 虚拟扩展局域网,VLAN的升级版,两者都是一种工具
VLAN:virtual local area network 虚拟局域网,隔离广播域
交换机的泛洪:收到BUM流量后,只会在该VLAN内泛洪,一个VLAN充当一个广播域,不同VLAN之间若想通信部署SVI。
多台交换机部署满足以下原则,也可以成为一个广播域:端到端二层链路
SW1——Router——SW2,此时SW1和SW2尽管创建相同的VLAN,也不是处在一个广播域
二、数据中心的发展:虚拟化,流量走向变更
1、虚拟化
Data Center:网络+存储+计算
Server hosting:数据中心提供一切物理资源,设备,机架,服务器,电力,空调等,一般都是三线连接(移动,联通,电信),而互联网公司租赁部署自身业务以供客户访问。
随着硬件服务器的发展,导致资源过剩,虚拟化技术的出现解决此问题。
传统:硬件服务器直接安装操作系统(Linux,Windows等),直接部署业务
VMware:ESXI hypervisor
在硬件服务器不直接安装操作系统,先部署ESXI虚拟化平台,将一台硬件服务器虚拟为多个虚拟服务器,每个虚拟服务器都可以安装操作系统。
随着虚拟化的技术,托管由硬件服务器变更为虚拟机租赁。
举例:
标准机架42U,部署20台服务器,每台机架顶部有交换机,以供网络连接,称为ToR,Top of Rack
分别租赁给腾讯,百度,新浪等互联网公司,需求为不同租户之间的服务器是不允许直接通信
部署VLAN即可解决,12bit,1-4094个
而如果部署了虚拟化,一台硬件服务器相当于多个服务器(租户),比如1台服务器虚拟为20台,那么即需要消耗400个VLAN,而这仅仅只是一个机架。
由此可知:VLAN存在的问题之一数量太少。
解决方案:本地VLAN部署方案临时解决
带来问题:虚拟机迁移
2、流量变更
数据中心流量走向:服务器并不需要主动访问,而是被动等待相应,客户端将流量发送至ISP,ISP将流量发送给DC的边界,进而发送给服务器(虚拟机),南北向流量。

传统数据中心也分为核心,汇聚,接入,流量在南北向流通。
而如今架构为Clos,cisco提出,spine+leaf层
spine(汇聚+核心) leaf(接入)
而spine交换机一般都有虚拟化的功能,分别虚拟为多个spine交换机,故数据中心网络中spine交换机并不需过多。
如上图:双spine,所有leaf交换机通过双上行链路连接,下游为机头设备,也可以将leaf充当为ToR。
虚拟机通过VSwitch连接,与ToR设备之间为中继链路。
随着业务发展
举例:淘宝购物对接物流,支付等平台,故现代数据中心网络南北流量为主,但是也存在东西向流量(虚拟机之间通信)
东西向流量在传统VLAN部署中会产生危机。
本地vlan设计:leaf到spine之间为三层链路 虚拟机迁移
端到端vlan设计:leaf到spine之间为二层链路 vlan不够用

三、数据中心VLAN设计之本地VLAN以及端到端VLAN以及Vmotion虚拟机迁移问题
随着虚拟化的部署,虚拟机的资源还是依赖于物理服务器,而如果某些特定场合,如双11等,可能导致现有虚拟机资源不足,故需请求物理机分配更多的CPU,内存等,而物理机正好所有的资源已经被分配,那么就需要进行虚拟机迁移,即Vmotion。
本地VLAN设计迁移范围只能在本机柜进行,迁移需要保证业务不中断,虚拟机前后使用相同的IP,Mac需一致。如果机柜内所有物理机资源也分配完毕,那么Vmotion无法进行。
端到端VLAN可以在整个数据中心进行虚机迁移,但是存在VLAN不够用的问题。
临时方案:PVLAN,Mux VLAN,可以将VLAN数量*8,但依旧不够用。
四、VXLAN定位与功能
Vxlan:解决VLAN数目不足以及虚拟机迁移存在的问题
单台交换机部署:与VLAN一致
多台交换机部署:只要交换机可以互相访问(中继,三层,GRE,MPLS等),属于同一个广播域,基于网络内通信
VTEP1——任意方式——VTEP2
VXLAN 10---------------------VXLAN 10
VNI:vxlan网络标识符,24bit
当在两台VTEP身后部署了相同的VNI成员,会建立一个端到端二层隧道,VNI成员主机基于隧道通信。
GRE:3层隧道
PCA——R1——Internet——R2——PCB
PCA与PCB不能属于同一个广播域,若想属于同一个网络,可以部署VPLS,而VXLAN隧道类似于VPLS,可以实现二层内通信。那么就可以实现虚拟机迁移,甚至跨数据中心迁移,这是端到端VLAN部署无法做到的。
有了VXLAN,VLAN是否可以从数据中心中移除?
支持VXLAN的设备有限,虚拟机并不是直接连接在ToR上,而是连接在Vswitch,而VSwitch可能不支持VXLAN,故现在的场景是vlan和vxlan的混合场景,映射关系。
相同VNI成员后的VLAN必须一致吗?
可以不一致,比如VLAN 10——VNI 10——Internet——VNI 10——VLAN 20
五、VXLAN术语
underlay与overlay:底层物理网络与虚拟叠加网络(隧道)
overlay网络使用underlay网络进行点对点的传递报文,而报文如何传递到overlay网络的目的节点完全取决于underlay网络的控制层面和数据层面,报文在overlay网络两个VTEP节点的处理(转发,丢弃)则完全由overlay网络的封装协议决定。
在这里插入图片描述

NVE:VTEP类似于GRE的tunnel接口,VXLAN网络虚拟边缘节点,而VXLAN的隧道是动态的,所以不论对方有多少个VTEP,本地只需要创建一个NVE接口,需要配置tunnel source地址,通常就是VTEP的北向接口地址。
VTEP:VXLAN隧道端点,VTEP交换机相对于身后的VNI成员,可以理解为是他们的网关,但是VXLAN之间是基于二层通信,网关的概念如何理解?
VTEP1——Internet——VTEP2
VNI 10 VNI 10
VNI10能相互通信的前提是VTEP进行了重新封装数据,故此称为网关,区别于传统的网关,一般为layer 2网关。
VXLAN间通信,VBDIF(华为),overlayrouter(思科,锐捷) layer 3网关。
如果一台VTEP即作二层网关,又作三层网关,称为IRB,集成路由交换。
VNI:vxlan网络标识符,类似于VLAN ID,24bit,分为二层VNI与三层VNI
二层VNI:普通的VNI,仅仅租户隔离,不需要不同租户之间通信
三层VNI:需要进行不同VNI之间通信时使用,分布式的同步IRB,提供接口,不关联租户
不同VNI之间通信:集中式网关,分布式网关(分布式的异步IRB,分布式的同步IRB)
BD:一个bridge domain唯一映射到一个二层VNI,华为私有概念,配置时需在南向接口创建子接口,绑定下游VLAN到BD,再将BD绑定到二层VNI。
在这里插入图片描述
在这里插入图片描述

VBDIF:类似于SVI,虚拟bridge domain接口,华为私有
VTEP1——Internet——VTEP2
VNI 10,20 VNI 10,20
VTEP1与VTEP2创建的VBDIF接口地址需要一致吗?
可能存在迁移,需IP,Mac都需要一致,开启anycast gateway
VAP:virtual access point,华为私有,虚拟二层子接口,VLAN绑定到BD
六、Mac over UDP,VXLAN报文格式
VXLAN的overlay思想:将数据帧统一作载荷,添加UDP报头,进行Mac over UDP封装
一般的,比如GRE的overlay思想,二层数据帧头拆掉,添加GRE,添加新的IP地址
对比,可知vxlan保留了原始数据帧的MAC地址,保证VNI成员基于MAC地址进行二层通信。
Mac over UDP,也称NOV3
在这里插入图片描述

VXLAN头部
Flag(8位):其中I位必须设置成1以表示有效的VNI,R位设置成0。
VXLAN Network Identifier (VNI)(24位):表示VXLAN网络标识符。虚拟机属于相同的VXLAN才能互相通信。
Reserved fields:分别占24位和8位,填充0。
UDP头部
Source Port:UDP源端口号。由VTEP分配,源端口号是数据帧本身的二层帧头的哈希结果。这个哈希结果可以作为流量负载均衡的依据。
Dest Port:目的端口号,IANA分配端口号为4789。
UDP Length:UDP首部的长度。
UDP Checksum:UDP校验和,发送时填充0。
IP报头
Source IPv4 Address:发送报文的虚拟机所属VTEP的IP地址。
Destination IPv4 Address:表示的是需要通信的目的虚拟机所属VTEP的IP地址。
外部以太网帧
源Mac地址:VTEP的北向接口的MAC地址
目的MAC地址:下一跳节点的MAC地址
封装,定位,功能知晓后,VNI成员通信,如何知晓对方在哪里,如果在一个机架内部呢?或者即便真的是处在别的VTEP身后,那么该VTEP的地址是什么,如何知晓,这些都是控制层面的问题,而恰好vxlan是一种纯的数据层面技术,无法主动学习。
七、Flood&learn VXLAN端到端数据层面通信流程以及控制层面Mac路由获悉过程
一般一台VTEP需要存在以下表项才可以进行VNI成员通信:
Mac路由表:VNI内通信
本地表项:MAC地址 VNI编号 本地接口 与传统交换机一致,三要素
远端表项:MAC地址 VNI编号 对端VTEP的NVE的tunnel source地址 ——进行vxlan封装
如何学习?与传统交换机一致,动态学习
南向接口:收到数据帧,确认信源的MAC地址,接口,结合所属VNI形成本地表项
北向接口:收到VXLAN数据帧,VNI,信源MAC地址(内部二层数据帧头源MAC地址),对端VTEP地址(外部IP报头的源IP地址),三者形成远端表项。
动态学习是基于数据的接收,可如果没收到数据,如何学习?
PCA——VTEP1——Internet——VTEP2——PCB
PCA PCB都属于VNI10,两者通信:
1、PCA知晓PCB的MAC地址
PCA访问PCB数据帧达到VTEP1,VTEP1形成本地表项,接着查看目的MAC地址,发现未知,没有Mac路由表项
2、PCA不知晓PCB的MAC地址
PCA发送ARP报文到达VTEP1,VTEP1无法转发广播流量
3、PCA组播服务器,PCB组播接收者
VTEP1也无法转发组播流量
总结:未知单播,组播,广播都无法正常转发,与传统交换机一致,进行泛洪即可
南向泛洪与传统交换机一致;
北向泛洪,需要判断VTEP之间链路是否支持组播,一般情况都不支持(ISP问题),VTEP之间基本都是单播通信,所以分为两种,头端复制,集中复制。
头端复制:发送给所有VTEP,需要手工配置域内该VNI关联的所有VTEP的NVE接口的tunnel source地址,VTEP给每个单播地址发送一份。
集中复制:找一台代理VTEP,Proxy VTEP,可以不连接任何终端,只做北向泛洪,该VTEP部署所有VNI以及其他VTEP的NVE地址,而其他的VTEP也需要建立与该VTEP的连接,其余原理与头端复制一致。

而如果VTEP之间的连接支持PIM等组播协议,VTEP不需要指定任何VTEP的NVE source,只需要将VNI映射到一个组播地址,比如 VNI 10 = 239.1.1.1 、VNI 20 = 239.1.1.2,所有VTEP部署相同的映射关系,比如VTEP1收到一个BUM流量,直接在北向接口封装成组播数据,而连接该VNI的其他VTEP都会侦听。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrt是一个开源的嵌入式操作系统,可以用于路由器和其他网络设备。它提供了丰富的功能和灵活的配置选项,包括支持VXLAN(Virtual Extensible LAN)的配置VXLAN是一种虚拟化技术,用于在现有网络基础设施上创建逻辑上隔离的虚拟网络。它通过在现有网络上封装二层以太网帧来实现,将虚拟网络的数据包封装在UDP包中进行传输。 要在OpenWrt上配置VXLAN,您需要进行以下步骤: 1. 确保您的OpenWrt设备已经安装并配置好了网络接口和网络连接。 2. 安装VXLAN软件包。您可以使用OpenWrt的软件包管理器opkg来安装VXLAN软件包。运行以下命令来安装: ``` opkg update opkg install kmod-vxlan ``` 3. 配置VXLAN接口。编辑OpenWrt的网络配置文件,通常位于`/etc/config/network`。添加以下配置来创建VXLAN接口: ``` config interface 'vxlan' option proto 'vxlan' option ifname 'vxlan0' # 接口名称 option local_ip '192.168.1.1' # 本地IP地址 option remote_ip '192.168.1.2' # 远程IP地址 option id '100' # VXLAN标识符 ``` 这是一个示例配置,您需要根据您的网络环境进行相应的配置。 4. 配置VXLAN接口的物理接口。编辑网络配置文件,将VXLAN接口与物理接口进行关联。例如,如果您要将VXLAN接口与eth0物理接口关联,可以添加以下配置: ``` config interface 'lan' option ifname 'eth0 vxlan0' # 将eth0和vxlan0关联在一起 ``` 5. 保存并应用配置。保存并退出网络配置文件后,运行以下命令来应用新的配置: ``` /etc/init.d/network restart ``` 以上是在OpenWrt上配置VXLAN的基本步骤。请注意,具体的配置可能会因您的网络环境和需求而有所不同。建议您参考OpenWrt的官方文档或社区论坛获取更详细的配置指南和示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值