Multi-Segment的困惑
Neutron中,有几个与Multi-Segments相关的字段和模型比较令人困惑。
第1点:在Network Model里有一个属性subnets,它是一个array(数组)类型,即与Network关联的subnet群。这意味着什么?如下图所示:
如果没有路由器,一个Network里面的多个Subnet就不能互通。既然不能互通,那还要network干什么?大家属于一个Network,毕竟有一个强烈的暗示:能够互通。
如果有路由器,一个network里面的多个Subnet就能够互通。既然能够互通,那还要这个network干什么?大家已经能够互通了,Network难道不显示多余?
Network处境尴尬,里外不是人。
第2点:Network可以创建租户Network和运营商Network,当创建运营商Network时,需要用到3个属性:provider:physical_network、provider:network_type、provider:segmentation_id。Neutron把3个属性称为provider extended attributes。不过同时,Network Model还有一个字段segments,它是一个array(数组),就包含着上面说的3个属性,举例如下图:
Neutron规定,不能在一个Network实例里,同时使用provider extended attributes和segments。
这个segments,大白话就是一个二层网络里面还有多个二层网络,如下图:
这个Network中的4个Segment都是二层网络,它们的网络ID不同,比如是VLAN网路,4个Segment的VLAN ID分别是10、20、30、40。那么它们到底是该通还是不通呢?
如果通:说不过去,因为VLAN ID互不相同,应该不通才能。
如果不通:那为什么要把4个放在一个Network中,为什么不是创建4个Network?
到底是通还是不通呢?
第3点:上述的困惑还没完,Neutron还专门设计了一个模型,就叫作Segment,它的字段如下表:
只看physical_network、network_type、segmentation_id这三个字段,跟Network中的那三个字段是一样的。
困惑多多,怎样理解?请听下回分解。