五分钟技术趣谈 | Openstack网络模型场景分析
创始人
2025-06-28 12:11:54
0

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

不同网络类型应用场景 

1️⃣provider应用场景

provider networks拓扑中,虚拟机网口直接桥接在物理机网卡上,并且直接使用外部网络分配的IP地址,该网络类型尽可能减少了对Openstack内部网络组件的依赖,主要利用外部网络基础设施,相对self-service networs不仅稳定性更强,同时引入内部网络处理时延更小;由于网络拓扑相对简单,因此适用于对网络特性要求不高的场景。

2️⃣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.04
RAM 至少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.2
SERVICE_HOST=192.168.2.2
MYSQL_HOST=192.168.2.2
RABBIT_HOST=192.168.2.2
GLANCE_HOSTPORT=192.168.2.2:9292
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.1.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.1.200,end=192.168.1.220
PUBLIC_NETWORK_GATEWAY="192.168.1.1"
PUBLIC_INTERFACE=eth0
# Open vSwitch provider networking configuration
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

(6)开始安装

./stack.sh

Part 06

总结 

总的来说,Openstack网络类型分为provider和self-service两种类型,针对不同的网络场景,选择对应的部署方式:如云电脑、云桌面等网络拓扑相对固定,可以选择provider网络类型,但是需要注意provider对部署的基础设施和机房网络环境有一定要求;针对私有云、公有云等复杂业务场景可以选择self-service网络类型,以便满足云内部复杂的网络需求。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...