网络虚拟化、SDN、数据中心相关知识点(自学记录用)

VXLAN 用VNI来标识vlan,有24位,大约是1600万个
而VLAN用VLAN id来标识vlan,只有12位。

胖树结构

在spine和leaf之间用三层协议的原因是OSPF收敛快,而且三层路由有负载分担的功能,也便于横向扩展。
leaf有三种:

  • Server Leaf(Server)
  • Service Leaf(FW,LB)
  • Border Leaf(PE,router)

一些名词

IaaS,PaaS,SaaS
VDC,分配给租户的资源配额
LAG:链路聚合
VPC,虚拟私有云
VTEP,vxlan的角度,隧道的端点,两个VTEP可以确定一条VXLAN隧道,每个NVE至少有一个VTEP。VTEP的ip就是封装后的源、目的ip。给我的感觉是NVE是个设备,VTEP是一个VXLAN的端点。
NVE,隧道的起点(用于解封装?),是两层网关(vlan->vxlan/vxlan->vlan),虚拟化实现的角度,是指哪个设备来实现。要是host overlay,NVE就是距离虚机最近的vs,要是network overlay,NVE就是距离服务器最近的leaf。

把sdn控制器的功能放到openstack中固然可以,但是耦合程度就大了,open stack平台和控制器一体化了(捆绑销售)不太好。
网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第1张图片
交换机在不在机柜里面:
TOR:上图左
EOR:上图右

underlay:物理网络,设备和线路都已经配好,是不变的
overlay:按需定制的虚拟化网络–可由SDN来实现,给租户用的,VMs间互通的安全隔离的网络环境,是动态的

如果没有隧道(overlay),那么由于ip fabric是三层的,而服务器到leaf是二层的trunk,那么就成了孤岛,没法和与其他leaf连接的服务器/防火墙/LB互通。

bridge-domain

bridge-domain(好像华为在用这个,其他的不清楚):将vlan和vxlan联系起来,只在本地有意义,可以在本地绑定一个/多个vlan(不推荐),然后再通过vxlan隧道和其他leaf下的VMs相连,用子接口终结的方式。

有两种配置的方式:

  • 子接口,将vlan10和bd10绑定在一起(设leaf面向server方向有两个接口,分别是1/0/1,1/0/2,这里只配1/0/2)
    int 1/0/2.1 mode l2
    encapulation dot1q vid 10
    bridge-domain 10
    也可以将bd10与vlan20绑在一起,这样vlan10就可以访问vlan20,但不推荐这样做
  • 全局配置,用如下命令可以让任意一个接口进来的是vlan10的流进入bd10,进而和5010绑定,不需要再配置每个接口
    bridge-domain 10
    vxlan vni 5010
    l2 binding vlan 10

水平分割:leaf1与leaf2、leaf3都有相同的vxlan vni隧道,现在leaf1发送一个广播,会到达l2和l3,那么l2收到后不会继续向l3广播,防止环路出现。

同vlan访问

网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第2张图片
设上图三台leaf全互联5010vxlan隧道已经配置完毕:
网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第3张图片
上表也叫头端复制表
接下来主机1.1向1.2发送数据,那么1.1首先会查转发表,发现没有1.2的mac地址,所以要发送arp(目标mac全f)请求。经过vswitch到leaf1,发现这个包是vlan10的,因此进到bd10,再到5010。接下来5010会泛洪,如果leaf1下面的接口还有连接5010的也会一并发出,此外还会向leaf2和leaf4泛洪。leaf4收到后继续向和5010绑定的bd泛洪,没有命中1.2因此不做响应,但这时leaf4会有一条关于1.1的记录(自学习):

  • M1 leaf1 5010

leaf2也受到了arp请求,解封装进到bd10,bd10再进到vlan10,vlan10泛洪,1.2响应(单播响应):目标mac M1,源mac M2,又走到了leaf2,接着查表,刚才1.1的arp请求已经到过leaf2,因此leaf2也会学习到1.1的信息。因此会继续将这个回复发给leaf1,收到后解封装,查表,发现有1.1的信息,因此arp完成。
所以1.1知道了1.2的mac地址M2,现在ping1.2就可以了,报文格式是:

  • 源mac: M1
  • 目标mac: M2
  • 源ip: 1.1
  • 目标ip:1.2

这个消息到了leaf1之后,会直接发给leaf2(因为刚刚1.2的回复消息经过leaf1已经被学习了)

leaf交换机由于下面接服务器(二层),上面接ip fabric(三层),所以里面的桥表有两种:

  • 传统形式:MAC,port,vlan
  • 新形式:MAC,VTEP(ip),VNI

注意BUM帧,这些都是需要广播/多播的。头端复制,有多少个隧道就向相应的VTEP发送单播帧,这样底层不需要开启多播,甚至不支持多播也可以。

集中式网关

下图中的1.1想访问2.1,流程是怎样的?
网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第4张图片
目前的猜想是:1.1想访问2.1,首先要知道2.1的MAC地址,因此1.1发出一个arp请求报文,源ip是1.1,目标ip是1.254,源MAC为M1,目的MAC为M2。发给leaf1,leaf一看ip为1.1,因此判定属于vlan10,而vlan10与bd10(假设已经配置好)与vxlan5010联系,因此会将这个arp请求泛洪到所有VNI=5010的隧道,收到这个arp请求的有:

  • leaf2收到后根据与5010绑定的bd(设为10),将这个arp发出去,由于1.1请求的是2.1的MAC,因此leaf2下的VMs都不会响应。
  • 网关spine1收到后解封装,一看要访问2.1,所以要以2.0网关2.254的身份去请求2.1的MAC地址。而2.254网关和bd20、5020关联,因此会将这个arp请求通过隧道5020泛洪,…,2.1收到后会将arp回复报文发给leaf2,再发给spine1 2.254网关,最后到达1.1,所以1.1最后知道了2.1的MAC地址。
    现在1.1可以正常访问2.1了,步骤和上述类似,但由于交换机的自学习功能,有些步骤不会再泛洪,而是直达。

网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第5张图片
现在同属租户A的设备如上图,1.1想访问3.1,用分布式网关,应该怎么走?经过几个路由器?

VXLAN的RFC中需要组播路由,但现在支持这种实现的网络很少,因此需要其它的一些方法,例如:

  • EVPN(在vxlan上用BGP来负责每个VTEP学习到的ip到mac的映射,相当于构建了一个控制平面?)
  • 头端复制(提前设置好对端都有谁,然后一个一个发单播,但头端设备负担大,需要复制多份)

VXLAN、EVPN、NVGRE等等都是虚拟化网络的一种实现,而SDN基于物理设备定义虚拟化网络。

业务流程

用户点击服务->云os(openstack)->驱动SDN来构建overlay。
云os可以驱动不同的SDN控制器,但前提是云os要有纳入异构SDN控制器的能力。

分布式网关

IRB:集成路由桥接(既路由又交换)

  • 对称

  • 非对称:EVPN(使用BGP),是vxlan的数据平面,生成三张表:

    • MAC表,使得leaf不必自学习
    • L3表,路由表
    • ARP广播抑制表

    Type2负责传自己的交换机或VRF学到的信息,Type3负责传vxlan号和回环地址(用于BUM帧,相当于之前的头端复制,只不过现在是通过协议动态的配置了)

of协议

是用tcp的,由于传输的都是一些控制信息,因此有时需要用TLS加密。

三种类型的报文:
packetin/out:数据/控制报文的封装
flowmod:配置流表

三种消息类型:
controller-to-switch,asynchronous(异步),symmetric(对称),第一个由控制器发起,第二个由交换机发起,第三个都可以发起

NFV

在x86服务器上实现的4-7层的网络功能,用虚机来实现,而不是在物理防火墙上虚出多个虚墙(网络虚拟化?)

overlay模式

在这种模式下,交换机是ce交换机(里面有传统网络的2、3层功能,也有支持openflow的功能),而且南向协议也不止是openflow,还有NetConf、SNMPV3(上面这些是在数据中心中)

南向协议分类
网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第6张图片
如果是VMware的V center,那么虚机就是ESX;如果是华为的VRM,那么虚机就是CNA。

华为CE1800V

基于ovs开发,功能比ovs强大了很多(使用dpdk),是在服务器上运行的,但华为更希望交换机在TOR上,因为专用的交换机芯片更强大。

各种overlay

  • network overlay(硬件overlay):vxlan解封装在leaf上
    • 集中式网关:e可选
    • 分布式网关:e必须有
  • host overlay(软件overlay):vxlan解封装在服务器里的vs上
    网关是分布式的,在leaf下的服务器中(DVR),由于vswitch在服务器中,因此EVPN不能使用,所以要通过SDN控制器下发的表项来实现东西流量访问
  • hybrid overlay:前两者的混合
    • 华为的ac控制器只支持分布式
      网络虚拟化、SDN、数据中心相关知识点(自学记录用)_第7张图片

华为现在的是SDN + 硬件 + 分布式解决方案

就要用到BGP+EVPN来将每个leaf后的VMs位置发布到网络中。
华为现在的数据中心中,SDN的of协议已经不怎么用了(似乎hybrid overlay中还要用of协议来同步VMs间的位置信息,以及主机overlay场景中,由于BGP不能在服务器上配置,所以还需of来下发位置信息),现在主要用NetConf来推配置。

DVR&AVR

DVR,分布式虚拟路由,分以下两种情况讨论:

  • network overlay:这时DVR为TOR
  • host overlay:这时DVR为距离虚机最近的vs

AVR:南北网关,是虚拟的路由器(也是在服务器上),vxlan经过它就能访问外网?

路由协议选择

OSPF、ISIS、BGP
OSPF和ISIS是链路状态路由协议,拓扑的一点变动就能泛洪到全网。
BGP又分IBGP和EBGP,是矢量路由协议,隔离、控制比较方便。

LAG和MLAG

MALG在leaf到server之间用,LAG在leaf和spine之间用

外部网关

分为共有和私有:

  • 共有:从此处出去即可访问互联网(需要NAT)
  • 私有:从此处出去访问公共区域,还在数据中心里(不需NAT)

一个VPC想访问另一个VPC要穿过自己的和另一个VPC的防火墙

你可能感兴趣的:(文章,网络,分布式,网关)