(本文所有提及OSP=OpenStack Platform)
1 管理外部网络
1)OpenStack网络:
- OpenStack网络服务(代号Neutron)是 OpenStack 的网络框架。使用基于插件的架构
- 管理员可以通过创建和配置网络、子网、虚拟设备和网络路由来部署复杂网络拓扑
原始的OpenStack 网络实施(代号Nova)的 网络隔离通过利用VLAN和Netfilter来进行。Neutron 网络服务使用插件来提供可插拔式API后端。可以针对各种不同的供应商技术来编写插件。Neutron 网络服务插件支持VLAN,以及L2-in-L3 隧道和OpenFlow 等
OpenStack中的子网: OpenStack实例分配到子网中,以允许网络连接。为预先存在的网络配置子网。每个项目可以具有一个或多个子网,在使用同一网络的不同系统之间实现网络隔离
项目网络:OpenStack中的项目能够访问各种不同的网络类型,例如VLAN分隔,其中的每个网络使用一个唯一的VLAN标识符。项目还可使用虚拟可扩展局域网(VXLAN) 或GRE隧道VXLAN是一种网络虚拟化技术,它可以解决与大型云计算部署相关的扩展问题。它将扩展能力增加到最多1600万个逻辑网络,并允许在IP网络间的第2层邻接VXLAN用以封装第2层网络并将它们作为第3层网络上的隧道
外部网络:允许实例访问其专用网络范围以外的网络,如互联网。这种类型的网络默认使用网络地址转换(NAT)。 若要使流量能够到达实例,管理员必须为每种流量类型(如SSH或ICMP)创建安全规则。此外,还需要关联一个浮动IP到该实例。在OpenStack中,外部网络是可以在多个项目之间共享的特殊网络类型。外部路由受NeutronL3 代理管理,后者提供第3层路由和NAT转发
网络命名空间:RHEL7内核支持网络命名空间。网络命名空间通过虚拟化对端口和接口等网络资源的访问,覆盖具有抽象层的网络访问。ip命令和ip route命令都可用于查询网络命名空间中的资源
2)实例创建时的联网工作流:
- 在创建实例时,Nova 计算服务从Neutron API 查询必要的资源,如网络端口。Neutron 网络服务随后请求分配一个IP地址。此类请求由NeutronDHCP服务管理,该服务利用dnsmasq服务。dnsmasq 从地址池中返回一个可用IP地址
- 为新实例分配了IP地址后,OpenStack 网络服务请求Open vSwitch 设置必要的网络端口,从而将实例连接到子网
- 可选择路由器并加入到网络环境中,为实例提供外部访问。OpenStack 创建一系列Netfilter 规则来配置网络路由
3)利用Horizon 控制面板管理外部网络:
- 以管理员用户身份登录Horizon 控制面板, 再导航到Network > Networks
- 单击+Create Network 以创建新网络。为网络命名,再单击Next
- 在Subnet 选项卡中,使用CIDR表示法输入子网名称和子网范围,然后单击Next
- 选择是否要为网络启用DHCP服务,再输入用作分配池的范围
4)利用命令行界面管理外部网络:
- 提供项目的管理员用户的Keystone 凭据。
- 通过
openstack network create
命令创建网络。将网络创建为外部共享网络。注明物理网络提供商名称和网络提供商类型。 - 提供普通用户的Keystone 凭据。
- 使用openstack subnet create命令为网络创建一个子网。确保该子网属于能够从外部访问的范围。
- 使用 ovs-vsctl 命令检查网桥及其端口。
- 网络配置文件
/etc/sysconfig/network-scripts/ifcfg-br-ex
包含Open vSwitch网桥的网络定义。网络配置文件/etc/sysco