Subnet资源池

48 篇文章 11 订阅
Subnet资源池(Subnet Pool)是Openstack Kilo版本加入的特性,从模型角度来说,它是一个独立的模型,模型名是subnetpool。Subnet模型中的subnetpool_id字段关联的就是这个模型字段。
Subnet Pool中的Subnet与Neutron的模型Subnet不是同一个概念,为了避免混淆,后文中用子网网段表示Subnet Pool中的Subnet,用Subnet表示Neutron的模型。
子网网段资源池(后文中,简称资源池)目的是为了方便子网网段的管理。模型Subnet中有两个字段与子网网段相关,分别是cidr和ip_version。简单的说,资源池就是定义一个大的网段(含IP版本),模型Subnet就是从中分配一个小的网段。当我们使用命令行(或者Restful API)创建一个Subnet时,如果传递一个参数subnetpool_id,比如:
openstack subnet create –subnet-pool demo-subnetpool4 ……
Neutron会从资源池中分配一段子网给这个待创建的Subnet实例。
子网网段资源池与子网网段管理功能直接相关的字段,如下表:
表中内容分两部分:子网网段信息,子网网段分配规则。
表示子网网段信息的字段是prefixes,它是一个数组,其中每一个元素都是一个IP地址前缀,这些地址前缀可以是IPv4,也可以是IPv6,举例如下:
“prifixes”:[
        “10.10.0.0/21”,
        “192.168.0.0/16”,
        “2001:db8:0:2::/64”,
        “2001:db8::/63”
],
表中其余的字段都与子网网段分配规则相关。当一个Subnet期望从资源池中分配到一个网段时,可以通过命令行或者Restful API发送一个请求。在发送请求时,可以传入参数cidr或者prefixlen。这两个参数并没有体现在Subnet Pool模型中,而是体现在函数(或者命令行)调用的参数中。
cidr目的非常直接:就是期望使用这个网段。不过这个参数一般不使用,因为使用资源池的目的就是希望它能做好Subnet的管理,现在还需要租户指定这个参数有点违背资源池的初衷。
prefixlen指定了希望分配的子网网段的大小。这个比指定cidr好多了:我这个子网就要这么多的IP,剩下的你资源池看着办。我们举一个例子说明:假设资源池的网段为:prefixes[“10.10.0.0/16”],用户传入的请求参数为:prefixlen=24,这就意味着,从10.10.0.0/16这个网段(一共65535个IP地址)中选取256个IP地址。
如果请求参数中prefixlen也不指定,那么资源池就会采用default_prefixlen这个字段来给请求者分配子网网段。default_prefixlen默认值是min_prefixlen。
并不是说用户传入的每个prefixlen都是合法的,它必须满足资源池的约束条件。这个约束条件就是min_prefixlen和max_prefixlen,也就是说,prefixlen(或者cidr中的前缀长度)必须在这个范围内:[min_prefixlen,max_prefixlen]. min_prefixlen的默认值是8(IPv4)或者64(IPv6),max_prefixlen的默认值是32(IPv4)或者128(IPv6)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值