OpenStack DevStack 中 Neutron 网络配置完全指南

OpenStack DevStack 中 Neutron 网络配置完全指南

【免费下载链接】devstack System for quickly installing an OpenStack cloud from upstream git for testing and development. Mirror of code maintained at opendev.org. 【免费下载链接】devstack 项目地址: https://gitcode.com/gh_mirrors/de/devstack

前言

作为 OpenStack 的核心网络组件,Neutron 提供了强大的网络虚拟化能力。本文将深入讲解如何在 DevStack 环境中配置和使用 Neutron 网络服务,特别是与 Open vSwitch (OVS) 的集成方案。

单网卡环境下的 Neutron 配置

适用场景

在开发环境(如笔记本电脑)中,通常只有一个可用的网络接口。此时需要将该物理接口添加到 OVS 网桥,并将 IP 地址迁移到网桥接口上。

重要警告

⚠️ 在单网卡配置过程中,当 IP 地址从物理网卡迁移到 OVS 网桥时,会出现短暂网络中断。如果通过 SSH 连接进行操作,可能会导致连接断开,进而中断 stack.sh 执行。

解决方案:建议在 screen 会话中启动 stack.sh 脚本。

物理网络架构

典型单节点 DevStack 部署场景中:

  • 使用硬件路由器提供外部连接和 DHCP
  • 开发机连接到该网络并与其他机器共享子网
  • 假设网络 MTU 为 1500

配置示例

完整 local.conf 配置(主机名为 devstack-1):

[[local|localrc]]
HOST_IP=172.18.161.6
SERVICE_HOST=172.18.161.6
MYSQL_HOST=172.18.161.6
RABBIT_HOST=172.18.161.6
GLANCE_HOSTPORT=172.18.161.6:9292
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret

## Neutron 选项
Q_USE_SECGROUP=True
FLOATING_RANGE="172.18.161.0/24"
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22"
Q_FLOATING_ALLOCATION_POOL=start=172.18.161.250,end=172.18.161.254
PUBLIC_NETWORK_GATEWAY="172.18.161.1"
PUBLIC_INTERFACE=eth0

# Open vSwitch 配置
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

多节点扩展配置

网络架构

在多节点环境中:

  • 控制节点(devstack-1)运行 L3 代理
  • 计算节点(devstack-2)通过 VXLAN 隧道将流量封装回控制节点

计算节点配置

计算节点的 local.conf 配置更为精简:

[[local|localrc]]
HOST_IP=172.18.161.7
SERVICE_HOST=172.18.161.6
MYSQL_HOST=172.18.161.6
RABBIT_HOST=172.18.161.6
GLANCE_HOSTPORT=172.18.161.6:9292
ADMIN_PASSWORD=secret
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret

## Neutron 选项
PUBLIC_INTERFACE=eth0
ENABLED_SERVICES=n-cpu,rabbit,q-agt,placement-client

使用 Provider Networks

适用场景

当需要使用外部路由器预配置的网络时,可采用 Provider Networks 方案。这种情况下:

  • 外部路由器管理网络
  • 开发者获得 VLAN 标签和 IP 地址范围
  • 实例直接使用外部路由器进行 L3 连接

物理网络配置

计算节点上:

  • eth0 用于 OpenStack 管理和 SSH 访问
  • eth1 不配置 IP 地址,加入 OVS 网桥

Ubuntu 系统配置示例(/etc/network/interfaces):

auto eth1
iface eth1 inet manual
        up ifconfig $IFACE 0.0.0.0 up
        down ifconfig $IFACE 0.0.0.0 down

服务部署方案

控制节点

  • 运行大多数 OpenStack API 和管理服务
  • 配置示例:
HOST_IP=10.0.0.2
SERVICE_HOST=10.0.0.2
MYSQL_HOST=10.0.0.2
RABBIT_HOST=10.0.0.2
GLANCE_HOSTPORT=10.0.0.2:9292
PUBLIC_INTERFACE=eth1

ADMIN_PASSWORD=secret
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret

## Neutron 选项
Q_USE_SECGROUP=True
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
OVS_PHYSICAL_BRIDGE=br-ex

Q_USE_PROVIDER_NETWORKING=True
disable_service q-l3

## 子网配置
IPV4_ADDRS_SAFE_TO_USE="203.0.113.0/24"
NETWORK_GATEWAY=203.0.113.1
PROVIDER_SUBNET_NAME="provider_net"
PROVIDER_NETWORK_TYPE="vlan"
SEGMENTATION_ID=2010
USE_SUBNETPOOL=False

计算节点

  • 运行 neutron-openvswitch-agent 和 nova-compute
  • 配置示例:
HOST_IP=10.0.0.3
SERVICE_HOST=10.0.0.2
MYSQL_HOST=10.0.0.2
RABBIT_HOST=10.0.0.2
GLANCE_HOSTPORT=10.0.0.2:9292
ADMIN_PASSWORD=secret
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret

# 计算节点服务
ENABLED_SERVICES=n-cpu,rabbit,q-agt

## Open vSwitch 配置
PHYSICAL_NETWORK=default
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_INTERFACE=eth1
Q_USE_PROVIDER_NETWORKING=True

高级配置技巧

非标准 MTU 配置

如需配置非标准 MTU(如支持巨帧的 9000 字节):

[[post-config|/$Q_PLUGIN_CONF_FILE]]
global_physnet_mtu = 9000

网络安全配置

现代网络安全工具可能导致网络问题,建议:

Fedora 系统

sudo service iptables save
sudo systemctl disable firewalld
sudo systemctl enable iptables
sudo systemctl stop firewalld
sudo systemctl start iptables

UFW 系统

sudo service iptables save
sudo ufw disable

ML2 插件扩展驱动

通过 Q_ML2_PLUGIN_EXT_DRIVERS 变量配置 ML2 插件扩展驱动,默认包含 'port_security'。如需移除所有扩展驱动:

Q_ML2_PLUGIN_EXT_DRIVERS=

使用 MacVTap 替代 OVS

MacVTap 代理不支持安全组,DevStack 会自动配置 NoopFirewall 驱动。

单节点 Provider Networks 配置

[[local|localrc]]
HOST_IP=10.0.0.2
...
Q_ML2_PLUGIN_MECHANISM_DRIVERS=macvtap
Q_USE_PROVIDER_NETWORKING=True
...

多节点 MacVTap 计算节点配置

HOST_IP=10.0.0.3
...
ENABLED_SERVICES+=n-cpu,q-agt
Q_AGENT=macvtap
PHYSICAL_NETWORK=default
...

总结

本文详细介绍了 DevStack 中 Neutron 网络的各种配置方案,从单节点基础配置到多节点扩展,再到高级网络功能实现。通过合理选择和配置这些方案,开发者可以构建满足不同需求的 OpenStack 网络环境。

【免费下载链接】devstack System for quickly installing an OpenStack cloud from upstream git for testing and development. Mirror of code maintained at opendev.org. 【免费下载链接】devstack 项目地址: https://gitcode.com/gh_mirrors/de/devstack

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值