一 Neutron网络抽象
Neutron通过L3的抽象route提供路由器功能,通过L2的抽象network/subnet完成真实二层物理网络的映射,并且network有Linux Bridge、Open vSwitch等不同的实现方式。
除此之外,在L2中,Neutron还提供了一个重要的抽象port,代表了虚拟交换机上的一个虚拟交换端口,记录其属于哪个网络以及对应哪个IP等信息。当一个port被创建时,默认情况下,会为它分配指定subnet中可用的IP。当我们创建虚拟机时,可以为其指定一个port。
对于L2层出现network来说,必须需要映射到真正的物理网络,但Linux Bridge和Open vSwitch等只是虚拟网络的底层实现机制,并不能代表物理网络的拓扑类型,目前Neutron主要实现了如下几种网络类型的支持:
Flat:Flat类型的网络不支持VLAN,因此不属于二层隔离,所有虚拟机都在一个广播域。
VLAN:与Flat相比,VLAN类型的网络自然会提供VLAN支持。
NVGRE:Network Virtualization using Generic Routing Encapsulation,是点对点的IP隧道技术,可以用于虚拟网络互连。NVGRE容许在GRE内传输以太网帧,而GRE key拆成两部分,前24位作为Tenant ID,后8位作为Entropy用于区分隧道两端连接的不同虚拟网络。
VxLAN:Virtual Extensible LAN技术本质是将L2层的数据帧头重新定义后通过L4层的UDP进行传输。相较于采用物理VLAN实现网络虚拟化,VxLAN是UDP隧道,可以穿越IP网络,使得两个虚拟VLAN可以实现二层联通,并且突破4095的VLAN ID限制,提供多达1600万的虚拟网络容量。
除了上述L2和L3的抽象,Neutron还提供了更高层次的一些服务,主要由FWaas、LBaas