Neutron的网络抽象和网络架构

一 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、VPNaas。

二 Neutron架构
不同于Nova和Swift,Neutron只有一个主要的服务进程neutron-server,它运行于控制节点,提供RESTful API作为Neutron的入口,neutron-server接收到用户的HTTP请求,最终由遍布于计算节点和网络节点上的各种Agent来完成相应功能。
Neutron提供的众多API资源对应了前面所述的各种Neutron网络抽象,其中L2的抽象network/subnet/port可以认为是核心资源,其他层次的抽象,包括router以及众多的高层次服务则是扩展资源(Extension API)。
为了更容易进行扩展,Neutron利用Plugin的方式组织代码,每个Plugin支持一组API资源并完成特定的操作,这些操作最终由Plugin通过RPC调用相应的Agent来完成。
这些Plugin又被做了一些区分,一些提供基础二层虚拟网络支持的Plugin称为Core Plugin,它们必须至少实现L2的三个主要抽象(network/subnet/port),管理员需要从这些已经实现的Corn Plugin中选择一种。Core Plugin之外的其他Plugin则被称为Service Plugin,比如提供防火墙服务的Firewall Plugin。至于L3抽象router,在H版本之中,Neutron实现了一个专门的名为L3 Router Service Plugin提供router服务。
Agent一般专属于某个功能,用于使用物理网络设备或一些虚拟化技术完成某些实际的操作。比如实现router具体操作的L3 Agent。
Neutron的完整架构如下图
因为各种Core Plugin的实现之间存在很多重复的代码,比如对数据库的访问操作,所以H版本中的Neutron实现了一个ML2 Core Plugin,它采用了更加灵活的结构进行实现,通过Driver的形式可以对现有各种Core Plugin提供支持,因此可以说ML2 Plugin的出现意在取代目前的所有Core Plugin。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值