类似于各个计算节点在Nova中被泛化为计算资源池,Openstack所在的整个物理网络在Neutron中也被泛化为网络资源池,通过对物理网络资源的灵活划分与管理,Neutron能够为同一个物理网络上的每个租户提供独立的虚拟网络环境。
在Openstack云环境里基于Neutron构建自己私有网络的过程,就是创建各种Neutron资源对象并进行连接的过程,完全类似于使用真实物理网络设备来规划自己的网络环境。
首先,应该至少有一个由管理员所创建的外部网络对象来负责Openstack环境与Internet的连接,然后租户可以创建自己私有的内部网络并在其中创建虚拟机,为了使内部网络中的虚拟机能够访问互联网,必须创建一个路由器将内部网络连接到外部网络。
这个过程中,Neutron提供了一个L3(三层)的抽象Route与一个L2(二层)的抽象network,route对应于真实网络环境中的路由器,为用户提供路由、NAT等服务,network则对应于一个真实物理网络中的二层局域网(LAN),从租户的角度看,它为租户所私有。
这里的subnet从Neutron的实现来看并不能完全理解为物理网络中子网的概念。subnet属于网路中3层概念,指定一段IPv4或IPv6地址并描述其相关配置信息,它附加在一个二层network上,指定属于这个network的虚拟机可使用的IP地址范围。一个network可以同时拥有一个IPv4 subnet和一个IPv6 subnet。
典型Neutron网络结构