Openstack网络模型场景及代码解析

openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文将介绍openstack的网络类型以及不同网络类型应用场景分析。
作者:葛长威、章继虎
单位:中国移动智慧家庭运营中心
part 01 ●  openstack是什么? ● 
openstack是一个云计算平台,它是由多个组件组合起来,为公有云、私有云和混合云的建设与管理提供软件的开源项目。现在已经有来自100多个国家的数万名个人和200多家企业参与到openstack的开发,如 nasa、华为、谷歌、惠普、intel、ibm、微软等[1]。openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
part 02 ●  openstack能干什么? ● 
openstack可以规划并管理大量虚拟机,从而允许企业或服务提供商按需提供计算资源;openstack可以为云服务或云应用提供所需的对象及块存储资源。为了解决传统的网络管理技术无法真正的实现高扩展、高自动化地管理下一代网络,openstack 提供了插件式、可扩展、api 驱动型的网络及ip管理功能。
part 03 ●  openstack支持几种网络类型 ● 
openstack网络类型主要分为两种:provider networks、和self-service networks,其中self-service比provider多了一个三层路由功能组件(networking l3 agent)[2][3],该组件负责实现网络三层协议,为虚拟机完成snat、dnat等地址的转换与伪装,提供安全弹性隔离的云网络环境。
- provider network
provider网络就是常说的桥接网络,虚拟机内部网络通过bridge的方式直接桥接到宿主机的某张物理网卡上,从而实现虚拟机可以正常的访问外部网络,同时虚拟机外部网络也可以访问虚拟机的内部网络。
- self-service networks
self-service网络通过在虚拟机和宿主机之间建立虚拟路由器,在虚拟机内部可以是一个私有地址连接至虚拟路由器的一个接口上,而虚拟路由器的另外一端通过网桥桥接到宿主机的某一张物理网卡;所以self-service网络很好的隐藏了虚拟机的地址,它能够实现虚拟机访问外部网络,而外网用户是不能够直接访问虚拟机的;为了实现从虚拟机外部网络访问虚拟机,可以对虚拟机和外部的网络做一对一nat绑定或者进行端口映射[2][4]。总之provider网络具备的能力,self-service一般都具备,并在此基础上还兼具高度的自定义内部网络功能。
part 04 ●  不同网络类型应用场景 ● 
provider应用场景
provider networks拓扑中,虚拟机网口直接桥接在物理机网卡上,并且直接使用外部网络分配的ip地址,该网络类型尽可能减少了对openstack内部网络组件的依赖,主要利用外部网络基础设施,相对self-service networs不仅稳定性更强,同时引入内部网络处理时延更小;由于网络拓扑相对简单,因此适用于对网络特性要求不高的场景。
self-service应用场景
self-service网络拓扑中,虚拟机不是直接桥接在物理网卡上,自身具备一个私有网络,该私有网络通过虚拟路由器与物理网卡相连,网络拓扑结构相对复杂,相较provider直接桥接在物理网卡,self-service网络引入虚拟路由器,会引入一定的处理时延;由于网络拓扑相对复杂,灵活性较强,因此适用于对网络特性有一定要求的场景。
part 05 ●  openstack快速入门 ● 
openstack本身部署设计开源组件较多,为了降低用户和开发人员部署难度,社区提供了一个一键快速部署环境devstack。devstack是openstack开发版,通过自动化脚本,可以快速完成云计算系统环境的快速搭建和功能验证。
5.1 环境准备
当前devstack[5]基于ubuntu22.04进行了严苛测试,建议基于vmware创建ubuntu22.04虚拟机,详细配置如下:
虚拟机系统 ubuntu 22.04ram 至少8gb 硬盘 至少50gb网卡 建议两张:一个nat、一个桥接(nat:eth0 192.168.1.2, 桥接:eth2 192.168.2.2)
5.2 环境部署
(1)添加用户
sudo useradd -s /bin/bash -d /opt/stack -m stack
(2)添加执行权限
sudo chmod +x /opt/stack
(3)添加sudo权限
echo stack all=(all) nopasswd: all | sudo tee /etc/sudoers.d/stack
sudo -u stack -i
(4)下载devstack
git clone
https://opendev.org/openstack/devstack
cd devstack
(5)创建配置文件
vim local.conf
[[local|localrc]]host_ip=192.168.2.2service_host=192.168.2.2mysql_host=192.168.2.2rabbit_host=192.168.2.2glance_hostport=192.168.2.2:9292admin_password=secretdatabase_password=secretrabbit_password=secretservice_password=secret## neutron optionsq_use_secgroup=truefloating_range=192.168.1.0/24q_floating_allocation_pool=start=192.168.1.200,end=192.168.1.220public_network_gateway=192.168.1.1public_interface=eth0# open vswitch provider networking configurationq_use_providernet_for_public=trueovs_physical_bridge=br-expublic_bridge=br-exovs_bridge_mappings=public:br-ex
(6)开始安装
./stack.sh
part 06 ●  总结 ● 
总的来说,openstack网络类型分为provider和self-service两种类型,针对不同的网络场景,选择对应的部署方式:如云电脑、云桌面等网络拓扑相对固定,可以选择provider网络类型,但是需要注意provider对部署的基础设施和机房网络环境有一定要求;针对私有云、公有云等复杂业务场景可以选择self-service网络类型,以便满足云内部复杂的网络需求。
参考资料
[1]华为ip知识百科:什么是openstack,华为ip知识百科官网,2021年10月9日,https://info.support.huawei.com/info-finder/encyclopedia/zh/openstack.html
[2]cnblog平台:云计算管理平台之openstack网络服务neutron,2020年10月31日https://www.cnblogs.com/qiuhom-1874/p/13904845.html
[3]openstack官方安装文档:provider network 网络介绍, openstack官网,2023年1 月14日,https://docs.openstack.org/install-guide/launch-instance-networks-provider.html
[4]openstack官方安装文档:provider network 网络介绍, openstack官网,2023年1 月14日,https://docs.openstack.org/neutron/pike/admin/deploy-lb-selfservice.html
[5]openstack官方安装文档:provider network 网络介绍, openstack官网,2023年1 月12日,https://docs.openstack.org/devstack/latest/
=============
移动通信的未来发展方向在哪里?毫米波是无法避开的,我们将介绍毫米波的一些优势,以及未来的发展方向。  


华为即将在全球范围率先实现5G独立组网全覆盖
11个步骤完美排查linux机器是否已经被入侵
美军前线部署军用机器人 比俄军装备强太多
俄首个机器人宇航员将坐在特制椅子上飞向太空
轻松回顾语音记录仪的历史
Openstack网络模型场景及代码解析
锂电池回收或能再利用盈利 新能源汽车有望迎来进一步发展
电动车控制器工作原理图文解析
横河测试测量公司发布了IS8000集成测量软件平台-
LM4834音频功率放大电路
Intel新处理器路线图透露,新处理器将于今年10月发布
基于FPGA的改进型分组交织器的设计与实现
什么要求逐步的提高成为电动车发展趋势?
日韩贸易战,韩国电子行业发展类似中国
微波时钟同步设计方案
Milk-V Duo开发板免费体验 以太网电路验证分享
采用双极型静电感应晶体管实现ZCS谐振变换器电路的设计
是德科技——6G通信为何选择THz频段
苹果与竞争对手亚马逊在语音技术领域达成合作关系
“互联网+医疗健康”将让更多人享受到医疗服务
s