# 如何在ML2中enable local network
## 前言
在OpenStack网络架构中,ML2(Modular Layer 2)插件是实现灵活网络配置的核心组件。当用户需要创建仅限本地通信的隔离网络时,启用local network类型是常见需求。本文将详细讲解在ML2中配置local network的完整流程,涵盖原理说明、环境准备、配置步骤及验证方法。
---
## 一、Local Network基础概念
### 1.1 什么是Local Network
Local network是OpenStack中最简单的网络类型,具有以下特性:
- **二层隔离**:仅在单个计算节点内有效
- **无外部连接**:不支持跨节点通信或访问外网
- **典型用途**:
- 开发测试环境
- 单节点应用部署
- 需要完全隔离的网络场景
### 1.2 ML2中的实现原理
ML2通过mechanism driver实现local network:
+———————–+ | ML2 Core Plugin | +———–+———–+ | v +———–+———–+ | Local Type Driver | # 处理local网络类型 +———–+———–+ | v +———–+———–+ | Local Mechanism | # 实现本地端口绑定 | Driver | +———————–+
---
## 二、环境准备
### 2.1 系统要求
- OpenStack版本:Queens或更高
- 已安装并运行的ML2插件
- 至少一个计算节点
### 2.2 配置文件定位
主要配置文件路径:
```bash
/etc/neutron/plugins/ml2/ml2_conf.ini
/etc/neutron/plugins/ml2/ml2_conf_local.ini # 可能存在的本地配置
[ml2]
type_drivers = local,flat,vlan,vxlan,geneve # 确保包含local
tenant_network_types = local # 允许租户创建local网络
mechanism_drivers = local,openvswitch,l2population # 包含local机制驱动
[ml2_type_local]
# 通常无需额外参数
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
systemctl restart neutron-server
systemctl restart neutron-openvswitch-agent # 如果使用OVS
# 创建网络
openstack network create --provider-network-type local test_local_net
# 创建子网
openstack subnet create --network test_local_net \
--subnet-range 192.168.100.0/24 local_subnet
openstack network show test_local_net -c provider -c status
预期输出:
{
"provider": "network_type='local'",
"status": "ACTIVE"
}
当需要同时支持多种网络类型时:
[ml2]
tenant_network_types = local,vxlan # 多类型支持
通过策略控制:
{
"network:create": "rule:regular_user and not field:network:provider_network_type=local"
}
openstack network qos policy create local_qos
openstack network qos rule create --max-kbps 1000 --ingress local_qos
openstack port create --network test_local_net --qos-policy local_qos local_port
错误现象 | 可能原因 | 解决方案 |
---|---|---|
Network创建失败 | type_drivers未包含local | 修改ml2_conf.ini后重启服务 |
虚拟机无法通信 | 安全组规则限制 | 添加允许规则或临时禁用安全组 |
状态显示DOWN | 机制驱动未加载 | 检查mechanism_drivers配置 |
/var/log/neutron/server.log
/var/log/neutron/openvswitch-agent.log # OVS环境
关键日志示例:
INFO neutron.plugins.ml2.managers [req-xxx] Created network with local type
资源分配:
监控指标:
openstack network usage
neutron port-list --device-owner compute:nova
清理无用网络:
openstack network purge --project <tenant_id>
通过本文的详细指导,您应该已经掌握了在ML2中启用local network的完整方法。Local network虽然功能简单,但在特定场景下能提供最高效的隔离方案。建议在实际部署前在测试环境充分验证,并根据业务需求选择合适的网络类型组合。
注意:生产环境中使用local network需谨慎评估扩展性需求,跨节点通信需要选择vxlan等 overlay 网络类型。 “`
该文档包含: - 完整的技术实现路径 - 配置示例和命令片段 - 可视化架构说明 - 故障排查表格 - 实际操作的代码块 - 注意事项和最佳实践
总字数约1500字,可根据需要调整具体章节的详细程度。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/2397560/blog/739071