阿里云飞天洛神

飞天

主要组件:洛神、盘古、伏羲、天基等等

洛神

大二层网络到应用层网络的虚拟

ecs,slb,rds,oss,avs等就是就是应用层的业务网元(网元产品);物理交换机,nfv,物理机,vm等就是基础网元,是物理网络中的真实网元

业务网元对用户向下屏蔽物理网络和组成物理网络的基础网元,用户只感知到这些业务网元(基础设置服务,iaas),不需要关注物理网络细节。iaas做的就是如何向下屏蔽物理网络,向上对用户提供网元产品(并给用户API来使用这些网元产品,应用层通过使用这些网元产品相互连接即构成一个应用层虚拟网络,比如用户可以自己在vpc里用avs连接几个slb,slb后面挂几个ecs集群作为rs)

这些网元通过物理网络具体实现过程虚拟化的过程。具体地,底层是个大二层物理网络(而这个大二层物理网络实际上over在一个真实物理网络之上的)+SDN控制转发,对用户将下面这一切屏蔽掉,表现为不同的网元产品。

至于SDN,是我们具体实现如何向上提供API,向下屏蔽物理网络的一种网络设计方法,将控制与转发分离,来向下集中控制转发行为,向上提供API,打通虚拟网络和物理网络(但大二层实际也是个虚拟网络,但是接触物理机的)

具体地,SDN的控制与转发具体操作:

控制组根据北向API监听,获取用户需求,再使用netconf南向API,进行配置下发

转发组参照Controller下发的配置,进行TCP/UDP通信,实现转发逻辑

而真实物理网络中,有直接的物理设备集群,也有NFV网元(再一层抽象!物理机器网元和NFV网元是基础网元,SLB ECS等网元是业务网元,基础网元和业务网元不是一个层面的东西!)

然后转发设备也就是物理设备(或NFV)才有装DPDK这些东西,是与硬件紧密结合的,加速转发

(飞天的SDN是自己定义的netcof,并没有用openflow协议进行流表下发)

真实物理网络到大二层网络的虚拟

上层转发的物理主机/NFV之间的大二层通信网络实际上是个虚拟网络

实际上这下面还有一层,首先硬件由AIS(alibaba infrastructure service)负责,他们负责机房的物理搭建,线缆的连接;

然后使用VxLAN网关等物理设备,基于VxLAN隧道技术,将整个DC(Data Center)网络全部打通成一个大二层局域网(给上层提供一个overlay网络,比如上层转发设备想要建立北京的ECS-A到东京的ECS-B的通信,那么对于上层的转发层来说他们在一个大二层,可以直接内网IP寻址过去;但实际上DC网是隔离了广播域的,实际是使用VxLAN技术来联通的,可以理解为最底层的物理层网络向上提供了API,形成大二层

这一层虚拟也是基于SDN架构的,也有控制与转发,转发设备就各个物理转发设备

具体地解释(为啥要有大二层这层虚拟)

整个数据中心的所有主机,全都是在一个大局域网内的!(跨Region的DC(数据中心)之间通过比较复杂的广域网协议连接,一个Region底下有多个AZ)

但为了DC的复杂的管理结构,我们要使广播域隔离(将原来的大局域网分隔成多个具有横纵层级的广播域,以避免广播风暴)。(一个交换机隔离一个广播域)。广播域隔离之后,就无法跨广播域通信了,所以我们才要打隧道,使得主机可以跨广播域通信,形成一个虚拟的“大二层”。使用VxLAN网关可以支持隧道协议,这样我们既能享受广播隔离的好处(防广播风暴),也能做到跨广播域的灵活通信。(VxLAN网关实际上就是路由器,隧道协议本质就是MAC over IP,通过VxLAN路由器进行寻路过去的,看起来像是点到点隧道一样)【这里具体物理实现了解不多,需要更深入查阅】

想象一下,原来的复杂的数据网,在隧道技术下,变成了一个扁平式的大二层网络,这个大二层网络每一个节点就是一个VxLAN网关,挂载一个广播域!

【那么,我就可以直接通过目的主机的内网IP地址,进行隧道传输,好像就在一个二层局域网内】

那么上层就可以直接在这个大二层上,用内网IP进行一切主机间通信

对于用户来说,屏蔽了物理主机,他们只看得见网元产品。但是对于网元产品研发来说,物理主机是可见的(但实际的真实网络不可见,我们看见的是大二层虚拟网络)。公有云数据网的内网IP对应一台唯一物理主机/NFV,我们也要负责管理。第一层虚拟化虚拟化的是通信承载网络,将跨广播域的通信网络虚拟成了一个大二层。

每台主机发出的包,在广播域出入口都有一个VxLAN网关,它进行VxLAN头的解析与封装进行传输,所有跨广播域的机器/NFV之间的交流就会通过VxLAN协议。同一个网关内的主机就不会走VxLAN协议。在跨广播域的时候(注意,一切都是在大数据中心局域网内!没有去公网!)路由器会把包带到目的网络的虚拟交换机,VxLAN网关通过拆UDP头解析VxLAN的IP,发现这个IP就是我自己,然后取出MAC地址,再在这个广播域内进行广播

显然整个数据中心网络公有云所有机器的内网IP(CIDR)是不能重叠的,不然就没法跨广播域通信了。

VxLAN,里面是内网MAC,外面是内网IP(CIDR)

其实教育网也是这样!(所以我在实验室部署NAS才不可能在寝室访问到,广播隔离了)

但是VPC就不一样了,由于VPC内部不可访问,那么不同VPC的CIDR地址是可以重叠的!

但是VPC与VPC互联的时候,CIDR地址就不能重叠了。所以出现了private link技术,特点就是CIDR地址重叠的VPC之间可以互相访问

继续阅读:

http://blog.sina.cn/dpool/blog/s/blog_69c81c3e0102x96d.html

https://blog.csdn.net/qq_42248536/article/details/88869263(环路问题)

VPC

一方面是为了灵活(地址可重复、也使得可用地址数量更多、且无缝迁移)、另一方面是拉通一个大二层网络不安全,所以诞生了VPC

VPC的内部二层网络实际上也类似于VxLAN的随道技术,进行了二层包的封装

那为什么我一个公网SLB,要设计成(当然我知道实际上VPC本身就类似于隧道的封装,所以能做到理所应当)能够直接将VPC里的rs挂上去,不是完全逻辑隔离了吗——设计理念:SLB替代NAT作为公网入口,所以才这么设计!
然后VPC实际上不是真独立的,虽然逻辑隔离,但是SLB/NAT这里是可以做到访问VPC的(应该底层实现更复杂)

总结

注意一个问题,应用层的用户是无法接触到物理机的,而下面两层都会接触到物理机,最后一层都大二层的虚拟是将网络结构虚拟了。

三层虚拟:

真实网络->大二层网络->应用层网络(网元产品);后者over在前者之上,每一层都是基于SDN实现

此即洛神,洛神即阿里云网络,两层虚拟都属于洛神网络平台;最底下的物理裸机、线缆、真实网络属于网络的基础设施,由AIS负责

阿里云网络主要由三个层面组成: 底层的物理层及其SDN控制器, Overlay网络层及其SDN控制器, 以及应用层。

其中每个层面都由更细节的模块组成。阿里云的物理层网络是世界上最大的SDN网络之一, 可以细分为DC 网络, 阿里城域网, 阿里骨干网等组件, 物理层的控制器负责管理物理层网络, 并向Overlay层提供 API, 屏蔽各种物理网络的细节, 在本文中不会对物理网络展开描述; Overlay 网络层则由网关(Gateway), 阿里虚拟交换机(AVS: Alibaba Virtual Switch), 负载均衡器(SLB: Server Load Balance)等本层数据面的网络组件, Overlay 网络层的控制平面以及 Overlay 网络层的管理平面组成。

Overlay 网络层控制器负责管理各个网络组件, 向应用层的产品和服务提供统一的API, 并调用物理层的控制器完成网络功能; 应用层则主要是阿里云网络的各大主要产品如CEN和资源管理调度系统(例如伏羲), 它们通过调用Overlay控制器的北向接口实现了阿里云网络的使用和调度.

摘自阿里巴巴云栖社区


且听风吟