Home Archives Categories Tags Docs

Neutron 新特性之 Routed Network

发布时间: 更新时间: 总字数:1367 阅读时间:3m 作者: 分享

一般情况下,系统管理员通过创建 Neutron 中的 Provider Network 为用户提供二层网络,此网络一般都是 VLAN 网络,通过此网络,用户的虚拟机可以较为方便的和物理网络联通,便于控制和管理。

介绍

在 Newton 版本中,Neutron 正式支持了 Routed Network 这一特性,通过 Routed Network,系统管理员可以极大的扩展二层网络。

一般地,Neutron 提供两种网络模型:Provider Network 和 Tenant Network。

  • Provider Network 一般为预定义网络,该网络由管理员在集群初始化时完成创建,相比较 Tenant Network 来说,Provider Network具有使用便利、排错方便,并且方便和物理网络打通的优点。
  • Tenant Network 一般为用户自定义网络,该网络由用户自行定义网络拓扑,相比较 Provider Network 来说,Tenant Network 具有使用灵活的优点,但缺点也较为明显:较难和物理网络互联,并且网络出现问题时的 Trouble Shooting 也较为困难。

例如,一个 Provider Network 可以如下创建:

neutron net-create public \
–provider:physical_network physnet0 \
–provider:network_type vlan \
–provider:segmentation_id=101

在上述的 Network 中继续创建相应的 Subnet 后,用户就可以使用该 Provider Network 了。需要注意到是,在 Provider Network 中,一个 Network 对应了一个 segment,对于 VLAN 网络来说,segmentation_id 即为 VLAN ID。

那么,Routed Network 和 Provider Network 又有哪些不同呢?

如果说,Provider Network 和 segment 是『一对一』的关系,那么 Routed Network 和 segment 就是 『一对多』的关系,即:一个 Routed Network 可以由多个 segment 组成。

通过在 Neutron 的配置项 『service_plugins』中添加 segments,来开启 Routed Network 相关特性。在 Routed Network 中,Network、Subnet 和 Port 都有了全新的属性,Network 通过 『l2_adjacency』属性表示该网络是普通的二层网络还是 Routed Network,通过 『segments』表示该 Network中包含几个 segment 以及相关详细信息;Subnet 通过 『segment_id』来表示该 Subnet 和哪个 segment 关联;Port 通过 『ip_allocation』来表示该 Port 的 IP 地址是立即分配(immediate)的,还是惰性(deferred)的。

在 Neutron 中如何使用 Routed Network ?

首先在 Neutron 配置文件中的 service_plugins 中添加 segments 属性,如下:

其次,创建一个 Routed Network,如下:

在创建了上述的 Network 后,Neutron 会创建两个 segment,通过 openstack network segment list 获取所有的 segment,最后,根据相关的 segment 创建 Subnet,举例如下:

这样就完成了 Routed Network 的创建。在此网络内创建虚拟机之前,还需要配置的是计算节点和 physical_network 的对应关系,在配置文件 /etc/neutron/plugins/ml2/openvswitch_agent.ini 中的 bridge_mappings 做如下配置:

最后指定 availability_zone 创建虚拟机即可:

在此计算节点上创建的虚拟机对外访问时候,会在 OVS Bridge br-physnet3 上打上相应的 VLAN ID,将物理网卡桥接在此 OVS 桥上后,虚拟机即可对外访问。

一些说明:Routed Network 并没有带来本质的变化,可以认为是 Provider Network 的『加强版』,其好处在于当配置多个预定义网络时,不必像 Provider Network 那样创建一个网络,创建子网,再创建一个网络,创建子网。

当使用 Routed Network 时,只需要在创建的时候指定若干个 segment,每个 segment 代表一个 L2 domain,在每个 segment 中,再依次创建 Subnet 即可,省去了创建网络的过程。还需注意的是,在使用 Routed Network 时,需要将计算节点和『physical_network』绑定,即配置参数 bridge_mappings 。

总的来说,一般情况下,Routed Network 和 Provider Network都需要通过物理网络来提供路由能力。

完毕。

相关文章
最近更新
最新评论
加载中...