首页/新闻资讯/正文详情

OpenStack 网络管理(实操):建网络、连路由、浮动 IP 与安全组

发布时间:2026/11/5 1:57:41 来源:云帆数科 栏目:资讯中心
OpenStack 网络管理(实操):建网络、连路由、浮动 IP 与安全组
网络管理的实操可以一次走完先用 Dashboard 把「建网络 → 验证隔离 → 连路由 → 上外网 → 绑浮动 IP → 配安全组」走通再用 CLI 把同一套流程复现一遍最后看 OVN 下的现象与经典 Linux Bridge 有什么不同。每一步都给出验证方法——建完怎么证明两台机器真的隔离、绑了浮动 IP 怎么证明真的出得去。理论与架构见第 1 篇。一、实验设计三个结论撑起全场整个实验围绕三个结论展开先记住后面的每一步都是在验证它们同一网络中的虚拟机实例默认可以互通不同网络间的虚拟机实例默认无法互通二层隔离不同网络接入同一个路由器后可以互通三层路由。前置准备管理员身份创建镜像 Img_web / Img_cli、实例规格 Flavor_web / Flavor_cli步骤同镜像/计算管理实验。二、Dashboard创建网络与子网用 admin 登录 Dashboard「项目 网络 网络拓扑」单击下方「创建网络」网络页签网络名称Network_web_01勾选「共享的」其他默认子网页签子网名称Subnet_web_01网络地址192.168.1.0/24网关 IP192.168.1.1子网详情页签分配地址池起止192.168.1.100, 192.168.1.200。创建后到「项目 网络 网络」列表点进 Network_web_01能看到概览 / 子网 / 端口三个页签——端口页签里已经有一个网口固定 IP 是 192.168.1.2网关侧端口从 2 开始分配实例从地址池 100 起拿。参考上面步骤再建一套Network_web_02 / Subnet_web_02192.168.2.0/24池 100~200。三、验证一同网互通异网隔离发放 2 个实例名称Instance_web_test、数量 2、启动源 Image不建新卷、镜像 Img_web、规格 Flavor_web、网络只选 Network_web_01。记录两个 IP如 192.168.1.137 / 192.168.1.140进两台实例的控制台互 ping——通。结论 1 到手。再发一台Instance_web_test-3唯一区别是网络选 Network_web_02。控制台里与 test-1 互 ping——不通。看网络拓扑图两台实例分属两个独立网络中间没有路由。结论 2 到手。四、验证二路由器打通异网「项目 网络 路由」→「新建路由」名称Router_web其他默认。点进 Router_web →「接口」页签 →「增加接口」先选子网Subnet_web_01 (192.168.1.0/24)提交再加Subnet_web_02 (192.168.2.0/24)。接口状态都为「运行中」后网络拓扑图上两个网络被 Router_web 连在一起。再互 ping test-1 与 test-3——通了。结论 3 到手。五、外部网络与浮动 IP5.1 创建外部网络此时实例还出不了外网。外部网络是管理员侧的操作「管理员 网络 网络」→ 创建网络名称按环境惯例实验里叫External界面显示资源池名勾选「外部网络」物理网络填什么取决于配置文件ml2 的 flat_networks 配置本环境填physnet1这类值子网地址填真实能上网的网段取决于宿主机网络配置比如 192.168.108.0/24。然后「项目 网络 路由」→ Router_web → 设置外部网关指向 ExternalCLI 对应router set --external-gateway。拓扑图上路由器接上了外部网络实例可以访问外网了SNAT。5.2 浮动 IP从「能出去」到「能进来」在外部服务器上 ping 实例的固定 IP——不通Network_web_02 是 OpenStack 内部网络外部要访问实例必须通过外部网络分配浮动 IP。「项目 网络 浮动 IP」→「分配 IP 给项目」→ 资源池选 External → 分配。然后到实例列表「绑定浮动 IP」选刚分配的地址关联。绑定后从外部 ping——还是不通。这里就是实验的连环坑两个检查点按顺序查检查点 1浮动 IP 的状态。浮动 IP 列表里看到状态是Down——只创建、没关联成功。重新关联到实例端口状态变为「运行中/Active」才算生效。验证小实验把浮动 IP 关联到 test-1 再解绑、释放观察状态随操作变化。检查点 2安全组入口规则。状态对了还不通就是 default 安全组把入口流量拦了见下一节。5.3 安全组放行入口流量先看现状实例默认挂的是default安全组「项目 网络 安全组」→ default →「管理规则」允许所有出口流量但入口除内部来源外全禁——外部 ping 不进来是设计使然。自建安全组放行「创建安全组」名称SG_web「添加规则」规则「所有 ICMP 规则」、方向「入口」、远程「CIDR」0.0.0.0/0再加一条「所有 TCP 规则」、入口、0.0.0.0/0SSH 用到实例 test-3「编辑安全组」移除 default添加 SG_web保存。再从外部 ping 浮动 IP——通了。用ssh cirros浮动IP密码 gocubsgo登录成功实验闭环。六、CLI同一套流程的命令版导入环境变量source keystonerc_admin先备好镜像和规格openstack image create --disk-format qcow2 --container-format bare\--min-disk1--min-ram128--private--file./cirros-0.5.2-x86_64-disk.img Img_cli openstack flavor create--vcpus1--ram128--disk1Flavor_cli6.1 网络与子网# 创建共享网络openstack network create--shareNetwork_cli_01 openstack network list# 创建子网网段 地址池 网关openstack subnet create--networkNetwork_cli_01\--subnet-range192.168.3.0/24\--allocation-poolstart192.168.3.100,end192.168.3.200\--gateway192.168.3.1 Subnet_cli_01 openstack subnet list# 查看网络的端口列表--long 显示更多字段openstack port list--networkNetwork_cli_01--long# 同样方式再建 Network_cli_02 / Subnet_cli_02192.168.4.0/246.2 发实例与连通性验证# --min 2 --max 2 一次发两台同配置实例openstack server create--imageImg_cli--flavorFlavor_cli\--networkNetwork_cli_01--min2--max2Instance_cli_test# 第三台挂到另一个网络openstack server create--imageImg_cli--flavorFlavor_cli\--networkNetwork_cli_02 Instance_cli_test-3 openstack server list进控制台互 ping复现「同网通、异网不通」。6.3 路由器# 创建路由器并指定外部网关openstack router create--projectadmin Router_cli openstack routerset--external-gateway External Router_cli# 两个子网分别加进路由器openstack routeraddsubnet Router_cli Subnet_cli_01 openstack routeraddsubnet Router_cli Subnet_cli_02# 查看路由器接口信息openstack router show Router_cli|grepinterfaces_info再加完接口后异网互 ping——通。6.4 浮动 IP# 查实例的网口记录 PORT_IDopenstack port list--serverInstance_cli_test-3# 直接给端口创建并绑定浮动 IP一步到位openstack floatingipcreate--portPORT_ID External openstack floatingiplist--long# 状态 RUNNING 已关联生效# 两步式先建后绑openstack floatingipcreate External openstack serveraddfloatingipInstance_cli_test-1 FLOATING_IP# 解绑与释放openstack server remove floatingipInstance_cli_test-1 FLOATING_IP openstack floatingipdelete FLOATING_IP注意区分--port方式创建即绑定状态 RUNNING不带--port创建的浮动 IP 状态是DOWN要server add floating ip关联后才通——这就是检查点 1 的命令版。6.5 安全组# 查实例当前的安全组与项目 IDopenstack server show Instance_cli_test-3 openstack security group list--projectPROJECT_ID# 建安全组并加入口规则ICMP TCPopenstack security group create SG_cli openstack security group rule create--protocolicmp--ingress--remote-ip0.0.0.0/0 SG_cli openstack security group rule create--protocoltcp--ingress--remote-ip0.0.0.0/0 SG_cli openstack security group rule list|grepSECURITY_GROUP_ID# 给实例换安全组先摘 default再挂 SG_cliopenstack server remove security group Instance_cli_test-3 default openstack serveraddsecurity group Instance_cli_test-3 SG_cli openstack server show Instance_cli_test-3|grepsecurity_groups之后外部 ping 浮动 IP 通、SSH 登录成功。七、OVN 实验用 ovn-nbctl 看穿 Neutron本环境用 OVN 作为 Neutron 的后端实现可以「透视」每个操作在 OVN 里变成了什么openstack network agent list# 看到 OVN Controller / OVN Metadata agentcontroller 与 compute 节点各一对关键配置/etc/neutron/plugins/ml2/ml2_conf.ini[ml2] type_driversgeneve,flat # 支持的类型geneveOVN 默认 overlay flat tenant_network_typesgeneve # 租户网络用 geneve 隧道 mechanism_driversovn # 机制驱动是 ovn [ml2_type_geneve] vni_ranges10:100 # VNI 分配范围 [ml2_type_flat] flat_networks* # flat 网络的物理网卡映射 [ovn] ovn_nb_connectiontcp:192.168.108.10:6641 # 北向库 ovn_sb_connectiontcp:192.168.108.10:6642 # 南向库创建外部网络waiwang、内网 neiwang-1192.168.11.0/24、路由器 router1 连接两者、发两台实例绑内网后用ovn-nbctl show逐阶段观察建外网后出现一个switch逻辑交换机带localport端口和localnet端口连物理网络建内网后多一个 switch带自己的 localport建路由器后出现router两个router类型端口分别插在内外网 switch 上内网口 192.168.11.1/24、外网口拿到外部地址发实例后内网 switch 上多出实例端口观察 NATrouter 里有type: snat记录——内网网段 192.168.11.0/24 共用路由器的外部 IP 出网。两台内网实例互 ping 通同网二层一切现象与前面的三个结论吻合——OVN 只是把「交换机、路由器、NAT」从 iptables/netns 换成了自己的逻辑流表实现。八、命令速查总表命令关键选项/参数说明openstack network create--share共享创建网络openstack subnet create--network归属网络--subnet-range网段--allocation-pool start,end地址池--gateway网关创建子网openstack port list--network过滤--long详细查端口openstack server create--image镜像--flavor规格--network网络--min N --max N批量数量发放实例openstack router create--project归属项目创建路由器openstack router set--external-gateway 外部网络设置外部网关openstack router add subnet路由器名 子网名子网接入路由器openstack floating ip create外部网络--port 端口创建即绑定创建浮动 IPopenstack server add/remove floating ip实例名 浮动 IP绑定/解绑浮动 IPopenstack floating ip delete浮动 IP释放浮动 IPopenstack security group create名称创建安全组openstack security group rule create--protocol icmp/tcp--ingress入口--remote-ip 0.0.0.0/0添加安全组规则openstack server add/remove security group实例名 安全组名挂载/摘除安全组ovn-nbctl show—查看 OVN 北向逻辑拓扑九、三个结论 两个检查点复习锚点同一网络默认互通不同网络默认隔离挂同一路由器互通外部访问实例 外部网络 浮动 IPDNAT 安全组放行三步缺一不可排错顺序先floating ip list --long看状态Down没关联再看安全组入口规则default 只出不进最后才查路由器网关配置。 参考资料官方文档Neutron 官方文档网络服务总览、安装与配置https://docs.openstack.org/neutron/latest/OpenStack Networking Guide基础网络、overlay 协议、网络命名空间、NAT、OVN 驱动https://docs.openstack.org/neutron/latest/admin/配套阅读同目录第 1 篇《OpenStack 网络管理理论Linux 网络虚拟化是 Neutron 的地基》。

相关推荐

《信息安全原理与技术》期末考点|包过滤规则实例(SMTP)【万字完整版】
《信息安全原理与技术》期末考点|包过滤规则实例(SMTP)【万字完整版】

《信息安全原理与技术》期末考点|包过滤规则实例(SMTP)【万字完整版】适配教材:郭亚军《信息安全技术(第4版)》 适用场景:本科期末考试 / 金管局科技岗笔试 内容包含:原理溯源、TCP … · 2026/11/5 1:57:41

Java为什么要分堆和栈
Java为什么要分堆和栈

1.生命周期不一样栈:跟方法走堆:生命周期不确定栈里的数据:跟着方法走。方法调用 → 压入栈帧;方法执行完毕 → 栈帧直接弹出销毁。生命周期很短,不需要垃圾回收。 存:局部变量、基本类型、对象引用地址&am… · 2026/11/5 1:56:41

Python 进阶神器:拷贝、迭代器、生成器、装饰器,老哥一次给你补齐
Python 进阶神器:拷贝、迭代器、生成器、装饰器,老哥一次给你补齐

基础语法你会了,但离 "写优雅的 Python" 还差几个高级武器。老哥这篇把拷贝、迭代器、生成器、闭包、装饰器一次补齐。一、浅拷贝 vs 深拷贝先分清三种 "复制":直接赋值:只是引用的别名,不产生拷贝&#xff1… · 2026/11/5 1:56:41

可自部署10分钟临时邮箱:SMTP收信、TTL清理与验证码提取
可自部署10分钟临时邮箱:SMTP收信、TTL清理与验证码提取

简介:面向开发者与Web学习者的10分钟临时邮箱源码包,围绕短时有效邮箱地址的生成、收信与到期失效流程,适合用于注册验证、下载试用等不愿暴露真实邮箱的场景,也可作为PHP邮件系统与Web服务设计的实践项目。压缩包共492个文件&… · 2026/11/5 2:41:02

DataGrip连接达梦数据库的完整配置指南
DataGrip连接达梦数据库的完整配置指南

1. 项目概述最近在帮客户做数据迁移时遇到了一个典型场景:需要连接达梦数据库(DM)进行数据操作,但发现DataGrip这款主流数据库IDE并没有预置DM的驱动配置。这其实是个挺常见的痛点——很多国产数据库或小众数据库在主流工具中缺乏原生支持。经过一番摸索… · 2026/11/5 2:41:02

Proxmox VE 7 apt-get update 100错误排查
Proxmox VE 7 apt-get update 100错误排查

很多人在 Proxmox VE 7 上装完系统、打开网页面板、新建第一台虚拟机,回头在 shell 里敲一句apt-get update,结果被一屏红色输出糊了一脸,最后一行写着E: Some index files failed to download...或者干脆只留一句apt-get update failed: exi… · 2026/11/5 2:41:02

DataGrip连接达梦数据库(DM8)实战指南
DataGrip连接达梦数据库(DM8)实战指南

1. 项目概述作为一名长期与数据库打交道的开发者,我深知连接非主流数据库时的痛苦。达梦数据库(DM)作为国产数据库的代表之一,在企业级应用中越来越常见,但很多开发者第一次连接时总会遇到各种问题。本文将基于DataGrip这款强大的数据库管理工… · 2026/11/5 2:41:02

MySQL 5.7安装与配置全指南:从入门到生产环境部署
MySQL 5.7安装与配置全指南:从入门到生产环境部署

1. MySQL 5.7安装前的认知准备MySQL作为全球最流行的开源关系型数据库,5.7版本因其稳定性与性能平衡成为众多企业的首选。这个版本首次引入了原生JSON支持、多源复制等企业级功能,同时优化了InnoDB存储引擎的性能。在开始安装前,需要明确几个… · 2026/11/5 2:41:02

Blender渲染参数与出图流程:引擎、采样、光程、降噪与提速
Blender渲染参数与出图流程:引擎、采样、光程、降噪与提速

1. 先把“渲染”这件事拆成三层来看很多人第一次点开 Blender 的渲染面板,会被密密麻麻的折叠菜单劝退,其实真正影响一张简单静物图成色的,就那么十来个参数。渲染在 Blender 里不是“一个按钮”,而是三层不同性质的东西叠在一起&… · 2026/11/5 2:40:02

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码