当前位置:首页 > 技术 > 正文内容

OpenStack Linux Bridge遗留网络部署方案

访客 技术 2026年6月8日 1

网络架构概述

此方案描述使用Linux Bridge实现的ML2插件为OpenStack提供传统网络服务。该架构允许普通用户管理项目内的虚拟网络,主要包含以下组件:

项目网络

项目网络为特定租户的实例提供连通性。普通用户可在管理员定义的范围内管理这些网络。
支持VLAN、VXLAN传输协议(GRE协议不被支持)。通常使用RFC1918私有IP地址段,
默认不提供与外部网络(如互联网)的直接连接。
固定IP地址指分配给项目网络上实例的静态IP地址。

外部网络

外部网络提供互联网接入能力,仅限管理员管理。支持Flat或VLAN传输协议,
通常使用公共IP地址段。注意:每个物理网桥仅支持一个Flat网络,
生产环境建议使用VLAN传输协议。

虚拟路由器

路由器连接项目网络与外部网络,默认启用SNAT提供出站连接。
每个路由器需占用外部网络的一个IP地址。同时通过DNAT提供入站连接能力,
此时使用的IP地址称为浮动IP。路由器还可连接同一租户内的多个项目网络。

辅助服务

DHCP服务管理实例IP分配,元数据服务提供SSH密钥等配置信息获取接口。
示例支持Flat外部网络+VXLAN项目网络组合,也兼容VLAN网络方案。

部署先决条件

物理基础设施

  • 控制节点:管理网络接口
  • 网络节点:管理接口、隧道接口、VLAN接口、外部接口
  • 计算节点:管理接口、隧道接口、VLAN接口

网络规划示例:

  • 管理网络:10.0.0.0/24
  • 隧道网络:10.0.1.0/24
  • 外部网络:203.0.113.0/24

服务依赖

控制节点

需正确配置:
- neutron.conf中的数据库连接
- neutron.conf中的消息队列
- neutron.conf中的认证服务
- nova.conf中计算服务与Neutron的集成

网络节点

需运行:
- ML2插件
- Linux网桥代理
- L3代理
- DHCP代理
- 元数据代理

计算节点

需配置:
- neutron.conf中的认证服务
- nova.conf中计算服务与Neutron的集成
- Linux网桥代理

系统架构

传统架构在网络节点集中处理路由,虽简化部署但存在单点故障风险。生产环境建议采用DVR或L3 HA架构。

网络节点组件

  • Linux网桥代理:管理虚拟交换机连接
  • DHCP代理:管理qdhcp命名空间
  • L3代理:管理qrouter命名空间
  • 元数据代理:处理实例元数据请求

计算节点组件

Linux网桥代理管理虚拟交换机连接与安全组规则。

数据流分析

南北流量(固定IP)

实例→项目网络→网络节点路由→外部网络

南北流量(浮动IP)

外部网络→网络节点DNAT→项目网络→实例

跨项目网络东西流量

实例A→项目网络1→网络节点路由→项目网络2→实例B

同项目网络东西流量

实例A→项目网络→直接交换→实例B

配置示例

控制节点配置

# /etc/neutron/neutron.conf
[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

# /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vlan,vxlan
mechanism_drivers = linuxbridge,l2population

[ml2_type_flat]
flat_networks = external

[ml2_type_vlan]
network_vlan_ranges = external,vlan:100:200

[ml2_type_vxlan]
vni_ranges = 1000:2000
vxlan_group = 239.1.1.1

网络节点配置

# 启用内核转发
net.ipv4.ip_forward=1

# /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = vlan:eth1,external:eth2

[vxlan]
enable_vxlan = True
local_ip = 10.0.1.101
l2_population = True

# /etc/neutron/l3_agent.ini
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

计算节点配置

# /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = vlan:eth1

[vxlan]
enable_vxlan = True
local_ip = 10.0.1.102

网络初始化

# 创建外部网络
neutron net-create ext-net --router:external \
  --provider:physical_network external --provider:network_type flat

# 创建项目网络
neutron net-create tenant-net --provider:network_type vxlan

# 创建路由器
neutron router-create tenant-router
neutron router-interface-add tenant-router tenant-subnet
neutron router-gateway-set tenant-router ext-net

服务验证

# 检查代理状态
neutron agent-list

# 验证命名空间
ip netns list

# 测试网络连通性
ping 203.0.113.101
ping openstack.org

# 创建安全规则
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default

# 分配浮动IP
neutron floatingip-create ext-net
nova floating-ip-associate vm-instance 203.0.113.102

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。