一、简介:

一种VPN技术,在任意路由可达的物理网络上叠加二层虚拟网络

通过VxLAN网关之间的VxLAN隧道实现网络内部的互通,也可以与传统非VxLAN网络互通

以太网in UDP封装,IP头在underlay网络中传输,延伸二层网络,同时由于三层网络没有网络结构限制,VxLAN具有大规模扩展能力。----虚拟机热迁移

1.1、实际应用领域:

云计算和数据中心网络

1.2、问题产生:

虚拟机从A硬件服务器迁移至另外一台B硬件服务器,由于需要跨三层,但是虚拟机的迁移必须在二层网络当中,故使用VxLAN技术

虚拟机---一般充当服务器的角色

1.3、underlay和overlay网络

前面提到IP头在underlay网络中传输,这里对underlay和overlay进行一个解释

1.3.1、underlay【具体,真实存在】

【传统IT基础设施网络[交换机和路由器等组成]====为overlay网络提供数据通信服务】

【专门承载用户IP流量的基础架构层,与overlay网络间如同[物理机][虚拟机]

【underlay网络和物理机都是真实存在的实体,分别对应真实的网络设备和计算设备】

【Overlay网络和虚拟机----依托下层实体使用软件虚拟出来的层级


VxLAN的学习以及静态/分布式VxLAN的配置_源地址

1.3.2、overlay【虚拟】

【基于物理网络之上的逻辑网络===网络架构上叠加的虚拟化技术】

【建立在underlay网络之上的网络】

【通过虚拟/逻辑链路进行通信】

【基于底层网络互联互通的基础+隧道技术构建虚拟网络[核心:打隧道]

【隧道转发本质:将容器双方的通信报文分别封装成各自宿主机之间的报文,借助宿主机网络隧道完成数据交换】

[隧道技术:TRILL、VxLAN、GRE、NVGRE等]

1.3.3、注:

underlay和overlay经常成对出现,underlay为overlay提供基础承载

【两者的概念是相对的,A为B提供基础网络架构,那么A就是underlay,B就是overlay】

主流overlay隧道技术:VxLAN、NVGRE、STT

目前所有的overlay跨主机容器网络方案几乎都是基于VxLAN实现的

二、在VxLAN中的出场嘉宾

2.1、VTEP

VxLAN隧道端点【边缘设备】

VTEP是VxLAN隧道端点,位于NVE中---VxLAN报文的封装和解封装

VxLAN报文【外层IP头--源IP地址=源端VTEP的IP地址,目的地址为目的端VTEP的IP地址】

2.2、VNI&BD

VNI 相当于传统网络的 VLAN ID

【区分VxLAN段,不通过的VxLAN段虚拟机无法直接二层相互通信】

【一个租户可以有一个或多个VNI,长度24bit,支持多达16M租户】

BD桥域

【传统网络用vlan划分广播域】【VxLAN网络中一个BD标识一个大二层广播域】

VNI以1:1方式映射到广播域BD,同一BD内中断可以进行二层互通

2.3、VAP

虚拟节点

实现VxLAN业务接入

2.3.1、VAP两种配置方式:

二层子接口方式接入 【创建二层子接口关联BD--子接口下的特定流量回注入到对应BD当中】

VLAN绑定方式接入 【配置VLAN关联广播域BD--子接口所有VLAN流量注入到对应BD当中】

2.4、Edge

【VxLAN网络边缘接入设备,传统网络流量由此静茹VxLAN网络】

2.5、Border

【VxLAN网络和外部网络通信节点,外部流量进入VxLAN网络/VXLA网络访问外部】

【一般连接具有三层转发能力的设备】

2.6、分类

2.6.1、网关分类:

二层网关【同子网通信

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_02

三层网关【跨子网通信

VxLAN的学习以及静态/分布式VxLAN的配置_封装_03

2.6.2、配置分类

集中式网关

L3网关部署在一台设备上,所有跨子网的流量都通过该设备转发,实现集中管理。

【[优点]:跨子网流量集中管理,简化网关部署和管理】

【[缺点]:转发路径并非最优。网关上需要维护大量通过VxLAN接入网络的终端ARP】

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_04

分布式网关

VTEP设备同时充当L2和L3网关。非网关节点对VXLAN隧道不感知,仅转发VxLAN报文。

【[优点]:VTEP节点只学习连接在本节点下终端ARP表项,网络规模扩展能力强】

【[缺点]:较集中式部署配置、实现复杂,部署工程量大】

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_05

三、工作原理

3.1、隧道类型

3.1.1、静态隧道

【手工配置本段和远端VNI、VTEP IP地址和头端复制列表】

3.1.2、动态隧道

【通过BGP EVPN[以太网虚拟私有网络]方式动态建立VXLA隧道】

【VTEP之间建立BGP EVPN对等体,对等体间用BGP EVPN路由互相传递VNI和VTEP IP地址信息,实现动态建立VxLAN隧道】

四、BUM流量转发

BUM【Broadcast[广播]、Unkonwn[未知]、Multicast[组播]】流量传输,VTEP将流量复制多份发送到头端复制列表中的对端VTEP,从而在Overlay网络中实现泛洪转发效果

VxLAN的学习以及静态/分布式VxLAN的配置_IP_06

五、静态隧道VxLAN基本配置

5.1、静态隧道拓扑

VxLAN的学习以及静态/分布式VxLAN的配置_IP_07

5.2、实验背景和需求

实验背景:

PC1和PC2,在物理网络中出于两个不同的三层子网

LSW1,LSW2和LSW3不支持VxLAN,CE

3和CE4支持VxLAN

实验需求:

1.如图,PC1和PC2,从underlay网络看,处于不同的广播域

2.通过配置VxLAN静态隧道,实现PC1和PC2在overlay网络上在同一广播域,可以互相通信

3.PC1和PC2在VLAN 10,BD 10,分配VNI 100

5.3、基础网络配置

LSW1:

sy
undo inf en
sys LSW1
vlan batch 10

int g0/0/1
port link tr
port tr al vl 10
int g0/0/2
port link a
port de vl 10

LSW2:

sy
undo inf en
sys LSW2
vlan batch 10

int g0/0/1
port link tr
port tr al vl 10
int g0/0/2
port link a
port de vl 10

LSW3:

sy
sys LSW3
undo inf en
vlan batch 100 200

int g0/0/1
port link a
port de vl 100
int g0/0/2
port link a
port de vl 200

int vlan 100
ip add 10.1.12.1 24
int vlan 200
ip add 10.1.23.1 24

ospf 1 
area 0
net 0.0.0.0 0.0.0.0

CE3:

int g1/0/1
undo portswitch
ip add 10.1.12.2 24
undo shutdown
commit
int g1/0/0
undo shutdown
int loop 0
ip ad 1.1.1.1 32
commit

ospf 1 
area 0
net 0.0.0.0 0.0.0.0

CE4:

int g1/0/1
undo portswitch
ip add 10.1.23.2 24
undo shutdown
commit
int loop 0
ip ad 2.2.2.2 32
commit

ospf 1 
area 0
net 0.0.0.0 0.0.0.0

5.4、VxLAN接入配置

流程:

①创建BD域

②创建子接口

③子接口关联vlan id

④子接口关联BD域

CE3:

bridge-domain 10						#创建BD域
int g1/0/0
port link tr
undo shutdown
commit
int g1/0/2.1 mode l2				#创建子接口
encapsulation dot1q vid 10	#子接口和vlan 10关联
bridge-domain 10						#子接口和BD域关联
quit
commit

CE4:

bridge-domain 10						#创建BD域
int g1/0/0
port link tr
undo shutdown
commit
int g1/0/2.1 mode l2				#创建子接口
encapsulation dot1q vid 10	#子接口和vlan 10关联
bridge-domain 10						#子接口和BD域关联
quit
commit

5.5、VxLAN隧道配置

流程:

①进入BD 10配置视图

②BD 10和VNI 100进行关联

③创建vxlan隧道,编号为1

④配置源地址

⑤配置隧道的源目标IP

CE3:

bridge-domain 10				#进入BD 10配置视图
vxlan vni 100						#将BD 10 和VNI 100进行关联
  interface nve 1					#创建vxlan隧道,编号为1
source 1.1.1.1					#配置源地址
vni 100 head-end peer-list 2.2.2.2					#配置隧道的源目标IP
commit

属于BD 10 的报文,将打上 VNI 的 vxlan 标识,并且封装上源地址为1.1.1.1,目标地址为2.2.2.2 的新IP头部,发到对端 NVE

CE4:

bridge-domain 10				#进入BD 10配置视图
vxlan vni 100						#将BD 10 和VNI 100进行关联
interface nve 1					#创建vxlan隧道,编号为1
source 2.2.2.2					#配置源地址
vni 100 head-end peer-list 1.1.1.1					#配置隧道的源目标IP
commit

属于BD 10 的报文,将打上 VNI 的 vxlan 标识,并且封装上源地址为2.2.2.2,目标地址为1.1.1.1 的新IP头部,发到对端 NVE

5.6、验证配置

查看隧道是否生效

display vxlan

CE3隧道验证:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_08

CE4隧道验证:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_09

PC端PING测试:

VxLAN的学习以及静态/分布式VxLAN的配置_封装_10

六、分布式VxLAN隧道基本配置


6.1、分布式隧道VxLAN基本配置

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_11

6.2、实验目标和实验规划

实验目标:

1、pc1在bd 10,pc2在bd 20,地址如图

2、希望通过分布式vxlan网关+evpn自动隧道,实现pc1和pc2的连通性

实验规划:

1、pc1和pc2属于ip vpn实例zhynet,L3 vni为123

2、bd 10的vni为100

3、bd 20的vni为200

4、所有vpn实例的rd/irt/ert为100:1

6.3、网络基本配置

LSW6:

sy
sys LSW6
undo inf en
vlan batch 10

int g0/0/1
port link a
port de vl 10
int g0/0/2
port link tr
port tr al vl 10

LSW7:

sy
sys LSW6
undo inf en
vlan batch 20

int g0/0/1
port link a
port de vl 20
int g0/0/2
port link tr
port tr al vl 20

AR3:

sy
sys AR3
undo inf en

int g0/0/0
ip ad 10.10.11.1 24
int g0/0/1
ip ad 10.10.22.1 24
int loopback 0
ip ad 3.3.3.3 32

ospf 1 router 3.3.3.3
area 0
net 10.10.0.0 0.0.255.255
net 3.3.3.3 0.0.0.0			#宣告自身环回地址

CE5:

sy im
sys CE5

bridge-domain 10		#创建BD域
vxlan vni 100				#关联VNI域
int g1/0/0
port link tr
int g1/0/0.10 mode l2		#创建子接口
encapsulation dot1q vid 10		#子接口关联vlan 10
bridge-domain 10
quit

int vbdif 10					#进入Vbdif视图配置网关
ip ad 192.168.10.1 24

int loopback 0
ip ad 5.5.5.5 32
int g1/0/1
undo shutdown
undo portswitch
ip ad 10.10.11.2 24

ospf 1 router 5.5.5.5
area 0
net 10.10.0.0 0.0.255.255
net 5.5.5.5 0.0.0.0		#宣告自身环回地址

CE6:

sy im
sys CE6

bridge-domain 20				#创建BD域
vxlan vni 200						#关联VNI域
int g1/0/0
undo shutdown
port link tr

int g1/0/0.20 mode l2		#创建子接口
encapsulation dot1q vid 20		#子接口关联vid 20
bridge-domain 20				#子接口关联BD域
quit

int vbdif 20					#进入Vbdif视图配置网关
ip ad 192.168.20.1 24

int loopback 0
ip ad 6.6.6.6 32
int g1/0/1
undo shutdown
undo portswitch
ip ad 10.10.22.2 24

ospf 1 router 6.6.6.6
area 0
net 10.10.0.0 0.0.255.255
net 6.6.6.6 0.0.0.0		#宣告自身环回地址

路由测试

display ospf peer brief

CE5:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_12

CE6:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_13

AR3:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_14

ping测试:

ping -a 5.5.5.5 6.6.6.6			#在CE5上进行ping测试,源地址为5.5.5.5  ping  目标地址为6.6.6.6

VxLAN的学习以及静态/分布式VxLAN的配置_封装_15

6.4、对等体

建立对等体,使用对端的环回地址作为邻居

流程:

①建立BGP对等体

②建立EVPN对等体

6.4.1、建立BGP对等体

CE5:

bgp 100
peer 6.6.6.6 as-number 100
peer 6.6.6.6 connect-interface loopback 0		#BGP邻居建立连接时所使用的接口

CE6:

bgp 100
peer 5.5.5.5 as-number 100
peer 5.5.5.5 connect-interface loopback 0

查看是否建立对等体:

dis bgp peer

VxLAN的学习以及静态/分布式VxLAN的配置_封装_16

VxLAN的学习以及静态/分布式VxLAN的配置_IP_17

6.4.2、建立EVPN对等体

CE5:

evpn-overlay enable			#开启evpn使能
bgp 100
l2vpn-family evpn				#在BGP当中开启EVPN的地址族
peer 6.6.6.6 enable			#与对端建立对等体
peer 6.6.6.6 advertise irb		#开启路由通告
y

CE6:

evpn-overlay enable			#开启evpn使能
bgp 100
l2vpn-family evpn				#在BGP当中开启EVPN的地址族
peer 5.5.5.5 enable			#与对端建立对等体
peer 5.5.5.5 advertise irb		#开启路由通告
y

查看EVPN对等体建立

dis bgp evpn peer

VxLAN的学习以及静态/分布式VxLAN的配置_封装_18

VxLAN的学习以及静态/分布式VxLAN的配置_IP_19

6.5、路由引入

流程:

①进入vxlan隧道口

②配置源地址

③关联bgp来自动创建隧道

CE5:

int nve 1
source 5.5.5.5
vni 100 head-end peer protocl bgp

CE6:

int nve 1
source 6.6.6.6
vni 200 head-end peer protocl bgp

6.6、创建RD

信息介绍:

RD:

理解:一台物理机上有多台虚拟服务器,即多个用户,因此用RD来区分不同用户在网络层面进行隔离

RD用来区分本地VRF,该属性仅本地有效。8个字节的RD+4个字节的IPv4地址组成96位VPNv4路由,使不唯一的IPv4地址转化为唯一的VPN-IPv4地址,该VPNv4路由在ISP域内传递(区分),RD给某VRF里面的路由打上标签,进而实现地址的复用而不产生冲突。

RT:

是BGP的扩展团体属性,它分成Import RTExport RT,分别用于路由的导入导出策略。

通过配置import和export RT,来控制收发路由

当从VPN表中导出路由时,要用export RT对VRF路由进行标记。

当往VRF表中导入路由时,只有所带RT标记与该VRF表中任意一个import RT相符的路由才会被导入到VRF表中。

CE5:

ip vpn-instance zhynet
route-distinguisher 100:1
vpn-target 100:1 both evpn
vxlan vni 123

int vbdif 10
ip binding vpn-instance zhynet
ip add 192.168.10.1 24
arp collect host enable		#收集主机路由

bridge-domain 10
evpn 
route-distinguisher 100:1
vpn-target 100:1 both

CE6:

ip vpn-instance zhynet
route-distinguisher 100:1
vpn-target 100:1 both evpn
vxlan vni 123

int vbdif 20
ip binding vpn-instance zhynet
ip add 192.168.20.1 24
arp collect host enable		#收集主机路由

bridge-domain 20
evpn
route-distinguisher 100:1
vpn-traget 100:1 both

验证:

dis bgp evpn all routing			#查看evpn路由表,发现可查看到对端IP

VxLAN的学习以及静态/分布式VxLAN的配置_IP_20

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_21

Ping测试:

VxLAN的学习以及静态/分布式VxLAN的配置_源地址_22

VxLAN的学习以及静态/分布式VxLAN的配置_IP_23

在CE的上行口抓包

VxLAN的学习以及静态/分布式VxLAN的配置_IP_24