VXLAN本质上是一种VPN技术,把物理层网络虚拟成一台二层交换机,一般使用在虚拟化园区网和数据中心
将以太网帧封装在IP报文之上(UDP),只需要连接的短端节点支持虚拟化即可
TOR:一台机柜的服务器需要有一台网络设备进行互联,最上面一台网络设备就叫TOR,TOR之间就方便牵线
VXLAN的报文格式:
概念介绍:
建立VXLAN端点的设备叫NVE(网络虚拟化边缘设备),使用VTEP进行标识,VTPE(VXLAN Tunnel EndPoint,VXLAN隧道端点)
VXLAN的Flags字段的1表示VNI是有效的,其他的0即为保留暂无作用
VNI还分为2层vni和3层vni
类似于传统网络中采用VLAN划分广播域,BD域内是本地有效的
实现VXLAN业务接入
VAP有两种配置方式,二层子接口方式或者VLAN绑定方式
Edge: VXLAN网络的边缘接入设备,传统网络的流量由此进入VXLAN网络。
Border: VXLAN网络和外部网络通信的节点,用于连接外部网络或VXLAN网络的出口
CE的子接口有三种不同的封装方式dot1q,untag,default
业务接入配置:
bridge-domain 30 //创建BD域
vxlan vni 3 //配置VNI为3
l2 binding vlan 30 //所有属于VLAN30的数据帧都属于BD域30
interface g1/0/1.1 mode l2 //配置子接口为2层子接口
source 3.3.3.3
encapsulation dot1q vid 10 // 指定封装为dot1q,处理vlan10的数据帧
bridge-domain 10 //该接口属于BD10
静态隧道建立:
interface nve 1
display vxlan tunnel //查看隧道信息
vxlan网络会通过一种叫头端复制的方式去泛洪BUM报文(广播,组播报文,DMAC未知的单播报文)
集中式网关VXLAN:
interface vbdif 1
L3网关部署在一台设备上,所有跨子网的流量都通过该设备转发,实现流量集中管理,但网关需要维护大量的通过终端接入的vxlan arp
分布式网关:
VTEP即是L2网关又是L3网关,VTEP只学习连接在本节点下终端的ARP表项,网络规模扩展能力强
EVPN动态创建VXLAN隧道协议
#
bridge-domain 10
vxlan vni 1
e
route-distinguisher 1:1
-target 1:1 export-extcommunity
-target 1:1 import-extcommunity
#
控制器下发的配置是这样的:
e -target e_11 bd-mode
route-distinguisher 1058:16
-target 1:1 export-extcommunity
-target 1:1 import-extcommunity
#
bridge-domain 18
l2 binding vlan 32
vxlan vni 32
e binding -instance e_18
则建立一条到对端的VXLAN隧道;同时,创建一个相应VNI的头端复制表,用于后续BUM报文转发。
e-overlay enable //开启e功能,必配项
l2-family e //激活e邻居关系
peer 2.2.2.2 enable
int nve 1
vni 1 head-end peer-list protocol bgp //使用e建立vxlan隧道,BGP会产生type3的更新updata路由
TYPE3类的路由(Inclusive MuIticast):
Ethernet Tag ID 该字段为当前设备的VLAN ID,在此路由中为全0
Flags 标识当前隧道是否需要叶子节点信息。 在VXLAN场景中,该字段没有实际意义。
Tunnel Type 该字段为此路由携带的隧道类型。目前,在VXLAN场景中,支持的类型只有“6:Ingress Replication”,即头端复制,用于BUM报文转发。
type code字段表示是头端复制
EVPN二类路由:MAC/IP路由
Ethernet Tag ID 当前设备实际配置的VLAN ID,
MPLS Label1为此路由携带的二层VNI,MPLS Label2为此路由携带的三次VNI
该路由作用:
MAC/IP路由,可以相互通告已经获取到的主机MAC
主机ARP通告主要用于:
2,主机IP路由通告:
peer 1.1.1.1 advertise arp //通告ARP路由信息
1,通过流量的接收动态学习
2,通过e协议的type2路由来进行学习
vxlan anycase-gateway enable //开启vxlan分布式网关功能
arp collect host enable //vxlan网关发布的路由类型为IRB时使用,用来发布主机路由
三层VNI作用:用于Leaf节点在收到数据报文时判断报文使用哪个L3VPN实例的路由表指导转发
3,IRB类型的路由:
收到IRB类型的路由进行如下处理:
1,检查该路由携带的ERT,如果与本段EVPN实例的IRT相同,则接收该路由,EVPN实例还能提取其中的ARP类型路由,用于主机路由通告
2,如果该路由的ERT与本端L3VPN实例的eIRT相同则接收,得到虚拟机的IP,三层VNI,并在路由表中保存该主机路由
中继配置:
#
dhcp select relay
dhcp relay binding server ip 10.1.1.1
dhcp option 82 vendor-specific insert enable
#
dhcp option 82 link-selection insert enable //将客户端网关作为link-selection插入到DHCP报文的82选项中
DHCP客户端与服务器跨场景:
支持各VPN内的网段可以重叠,通过插入option子选项151和子选项5来实现
151子选项,表示relay插入子选项,并填写主机的实例
分布式网关下的跨子网通信:非对称IRB转发,对称IRB转发
1,非对称IRB转发在传递路由时不会传递本地下连主机的32位主机路由
2,在本地就可以实现跨子网转发,给对应的vbdif进行处理,入节点同时执行L3,L2查表转发,出节点只需要进行L2查表转发
Vxlan环境中的Type2路由分为几种
MP-BGP EVPN的路由和MP-BGP十分类似,都会有一个名为MP_REACH_NLRI和MP_UNREACH_NLRI的path attribute,MP_UNREACH_NLRI用于发送撤销路由,MP_UNREACH_NLRI用于发送更新路由,该属性中的NLRI字段用于存放EVPN的具体路由信息,在该属性中携带next hop network address信息,其内容为产生该路由的设备VTEP IP,同时每个路由更新信息中都会携带扩展团体属性(extended communities)用于存放RT或其他信息。Type2的路由,称为MAC advertisement route,用于传递主机的mac或mac&IP的路由信息,设备通过该路由可以完成相关的转发表的建立;
type2的NLRI信息如下:
- RD为BD中配置的RD:
- Ethernet segment identifier用来在多个PE之间标识连接的相同的CE,在VXLAN环境中不需要使用,固定为全0;
- ethernet tag ID由于华为仅支持一个BD对应一个EVI,不支持多个BD绑定同一个EVI,所以该字段只能是0;
- mac address length固定为48;
- mac address为主机的mac地址,可以通过BD对应的mac地址表获取或ARP中获取;
- IP address length固定为32;IP address为主机的IP地址,从ARP表中获取;
- MPLS Label 1为L2 VNI从BD中获取;
- MPLS Label 2为L3 VNI从VRF中获取。
- Type2的路由中Ethernet segmentation id,ethernet tag id,mac address length,mac address,ip address length,ip address可以作为路由前缀信息,其他信息作为路由的属性存在;
Type2扩展团体属性包含如下:
- 多个配置在BD中的RT(export RT)
- encapsulation(固定为VXLAN)
- 一个未知的子类型(用于存放router‘s mac,不一定携带)
- 一个mac mobility属性(用于存放sticky/static信息和sequence number,不一定携带)
华为将Type2的路由分为三种
扩展团体属性中包含RT(route-target)和encapsulattion EVPN用于VXLAN场景时该值固定为8,表示vxlan
2、 ARP通告路由
扩展团体属性的mac mobility字段中包含两个重要字段sticky/static和sequence number,当生成某个type2路由的转发表的某条表项为static类型,即静态写入时,此时type2的路由中会携带mac mobility字段,并且将其中的sticky/static值置为1,sequence number的值为0;
收到路由的设备认为不应该从别的交换机或本地产生相同的路由信息,如果收到相同的路由信息会直接丢弃。
Sequence number的值会用来记录相同的路由在EVPN网络中更新了几次,一个设备在将一个路由信息发布之前会在本地的EVPN中检查是否已经从别的设备收到过相同的路由,如果没有任何记录且产生该路由的转发表项类型不是为static的话,则在发布时不携带mac mobility字段;
如果收到的路由没有携带mac mobility属性,则设备直接认为sequence number为0.
扩展团体属性在分布式网关场景的VM迁移时,迁移的目的端交换机会在团体属性中会携带一种mac mobility字端,在其中的sequence number的值会对原来的值加1。
收到路由的设备会比对sequence number与之前本地EVPN路由表中的哪个更大,如果新收到的更大则让那位该路由更新。对于原产生该路由的设备收到该路由会发送ARP探测,如果未能收到回复,则更新mac和IP转发表,并同时更新EVPN路由表,之后会发出withdraw路由通知所有的EVPN邻居撤销原路由;
3、 IRB类型路由
IRB类型路由用于分布式anycast网关场景,可以通过该IRB类型的路由实现对称式路由,比ARP路由多了L3 VNI,并且扩展团体属性中增加了一个router’s mac,而这两个信息加IP address就是实现对称式路由的关键了
L3 VNI为每个VRF分配,而router‘s mac每个设备一个,路由前缀和ARP路由类型同样是通过感知ARP表的变化,之后提取对应BD中的RD和export RT信息(RT一般有两个,其中一个和某个VRF的RT相同),转变为EVPN路由发送至其他EVPN邻居,其他设备收到后会将通过携带的两个RT,将mac西南西放入BD的转发表,将IP信息放入VRF路由表中。
某一终端在发出跨3层访问的数据包时,到了leaf设备,leaf设备会查询对应的VRF的路由表,找到主机明细路由,下一跳为对端VTEP IP出接口为VXLAN;数据包发出时会先将原始数据帧的源mac替换为自己的router’s mac 目的mac替换为对端的router’s mac 再封装L3 VNI之后封装underlay信息并发出。