当前位置: 首页 > news >正文

OpenStack VLAN网络类型实训案例

在这里插入图片描述

一、 案例需求与目标
  1. 需求背景
    某公司计划在OpenStack云平台上为两个部门(研发部、财务部)部署业务系统。出于安全和管理需求,要求两个部门的网络在二层上完全隔离,但都可以访问互联网,并且云平台管理员能够清晰地管理这些网络。

  2. 实现需求

    • 创建两个租户项目(project-dev, project-finance),模拟两个部门。
    • 在每个项目中创建各自的VLAN类型私有网络(vlan-net-dev, vlan-net-finance)。
    • 为每个网络创建子网,并配置DHCP服务自动分配IP地址。
    • 在每个网络中启动云实例(虚拟机)。
    • 验证:同一VLAN网络内的实例可以互通;不同VLAN网络的实例不能互通。
    • 验证:所有实例均可以通过浮动IP访问外部网络(互联网)。
  3. 实训目标

    • 理解VLAN在OpenStack中实现多租户网络隔离的原理。
    • 掌握使用OpenStack Dashboard (Horizon) 和命令行 (CLI) 两种方式创建和管理VLAN网络。
    • 学会创建路由器并连接外部网络,使租户网络具备NAT能力。
    • 掌握通过安全组策略和网络连通性测试来验证网络设计。
二、 逻辑拓扑图

下图清晰地展示了本实训案例的逻辑网络结构:
在这里插入图片描述

拓扑说明

  1. 物理层面:计算节点和控制节点的物理网卡(如eth1)通过Trunk链路连接到物理交换机,允许携带VLAN标签(如VLAN 101, 102)的流量通过。
  2. 虚拟层面
    • OpenStack Neutron通过Open vSwitch (OVS) 创建了集成桥(br-int)和外部桥(br-ex)。
    • 每个租户的VLAN网络在br-int上被分配了唯一的内部VLAN标签,用于隔离。
    • 虚拟路由器作为每个租户网络的网关,并连接到共享的“外部网络”(提供商网络)。路由器执行SNAT(让虚拟机访问互联网)和DNAT(浮动IP映射)。

三、 实施步骤

前提条件

  • 一个已部署好的OpenStack环境(如Victoria、Wallaby版本),至少包含1控制节点+1计算节点。
  • 管理员已创建好一个名为provider的“外部网络”(Flat或VLAN类型),并配置了物理网络对接。
  • 已安装OpenStack命令行客户端工具并配置好管理员权限的openrc文件。

步骤一:创建租户和用户(管理员操作)

  1. 登录OpenStack控制节点或通过Dashboard(管理员身份)。
  2. CLI命令
    # 创建两个项目
    openstack project create project-dev
    openstack project create project-finance# 创建用户(可选,也可使用现有用户)
    openstack user create user-dev --password password
    openstack user create user-finance --password password# 将用户赋予对应项目,赋予 member 角色
    openstack role add --project project-dev --user user-dev member
    openstack role add --project project-finance --user user-finance member
    

步骤二:创建VLAN类型租户网络(以租户用户身份操作)

  1. 获取user-dev用户的openrc文件并导入环境变量。
  2. CLI命令(user-dev)
    # 在 project-dev 项目中创建 VLAN 网络
    openstack network create --project project-dev --provider-network-type vlan --provider-physical-network provider --provider-segment 101 vlan-net-dev
    # 创建子网
    openstack subnet create --project project-dev --network vlan-net-dev --subnet-range 192.168.101.0/24 --gateway 192.168.101.1 --dhcp dev-subnet# 在 project-finance 项目中创建 VLAN 网络 (使用 user-finance 用户)
    # ... 过程类似,VLAN ID 改为 102,网段改为 192.168.102.0/24
    
  3. Dashboard操作(user-dev)
    • user-dev身份登录Dashboard。
    • 导航到【网络】->【网络】->【创建网络】。
    • 名称:vlan-net-dev
    • 【高级选项】->提供商网络类型:VLAN;物理网络:provider(与ml2_conf.ini中配置的相同);段ID:101
    • 下一步,创建子网:192.168.101.0/24

步骤三:创建路由器并连接网络

  1. CLI命令(user-dev)
    # 创建路由器
    openstack router create dev-router
    # 将路由器接口连接到租户网络
    openstack router add subnet dev-router dev-subnet
    # 将路由器网关设置为外部网络(通常是 public 或 provider)
    openstack router set dev-router --external-gateway public
    
  2. Dashboard操作(user-dev)
    • 导航到【网络】->【路由器】->【创建路由器】。
    • 名称:dev-router,连接到外部网络:public
    • 进入路由器详情页,在【接口】标签页中点击【添加接口】,选择vlan-net-dev的子网。

步骤四:启动实例

  1. CLI命令(user-dev)
    # 创建安全组规则,允许ICMP(ping)和SSH
    openstack security group rule create --protocol icmp --remote-ip 0.0.0.0/0 default
    openstack security group rule create --protocol tcp --dst-port 22 --remote-ip 0.0.0.0/0 default# 启动实例,并将其放入 vlan-net-dev 网络
    openstack server create --flavor <flavor-name> --image <image-name> --network vlan-net-dev dev-vm1
    
  2. Dashboard操作(user-dev)
    • 导航到【计算】->【实例】->【启动实例】。
    • 选择镜像、规格,在网络选项中选择vlan-net-dev

为财务部门(project-finance)重复步骤二、三、四,创建vlan-net-finance(VLAN 102)、finance-router和实例finance-vm1

步骤五:分配浮动IP(Floating IP)

  1. CLI命令
    # 申请浮动IP
    openstack floating ip create public
    # 将浮动IP关联到实例
    openstack server add floating ip dev-vm1 <floating-ip-address>
    
  2. Dashboard操作
    • 在【计算】->【实例】页面,找到目标实例,在操作下拉菜单中选择【关联浮动IP】。

四、 验证步骤
  1. 验证同一VLAN内通信

    • project-dev项目中再启动一个实例dev-vm2,其IP为192.168.101.x
    • 登录dev-vm1(通过控制台或浮动IP SSH),尝试ping同一网络内的dev-vm2的内部IP。
    • 预期结果:ping通,说明同一VLAN内二层互通。
  2. 验证不同VLAN间隔离

    • 登录dev-vm1,尝试ping财务部实例finance-vm1的内部IP(192.168.102.x)。
    • 预期结果:ping不通,请求超时。说明VLAN实现了二层网络隔离。即使知道了对方IP地址,也无法直接通信。
  3. 验证外部网络访问(SNAT)

    • 登录dev-vm1,尝试ping一个外部地址(如8.8.8.8)或执行curl ifconfig.me获取公网IP。
    • 预期结果:可以ping通外部地址,且查出的公网IP是路由器的外部网关IP,而不是实例的私有IP。说明路由器SNAT工作正常。
  4. 验证浮动IP访问(DNAT)

    • 从一台可以访问外部网络的外部电脑(如你的实训PC),尝试pingssh到分配给dev-vm1的浮动IP。
    • 预期结果:可以成功连接到dev-vm1。说明路由器DNAT(端口转发)工作正常。

五、 最终结论

通过本实训案例,我们成功设计、部署并验证了OpenStack中的VLAN网络类型:

  1. 隔离性 Achieved:通过为不同租户(项目)分配不同的VLAN ID(101和102),成功在数据链路层实现了网络流量的严格隔离。研发部和财务部的虚拟机无法直接通信,满足了企业网络安全隔离的基本需求。
  2. 连通性 Achieved:通过创建虚拟路由器并将其分别连接到租户网络和外部网络,为每个隔离的VLAN网络提供了三层网关和NAT服务。实例可以访问互联网,外部用户也可以通过浮动IP访问特定实例。
  3. 自动化与管理性:充分利用了OpenStack Neutron的优势,网络、子网、路由器的创建和关联全部通过API/UI自动化完成,DHCP服务也自动提供,极大地简化了传统VLAN网络繁琐的物理配置。

本案例证明了OpenStack VLAN提供商网络是一种高效、灵活且安全的多租户网络解决方案,非常适合用于构建需要严格隔离的企业私有云环境。

http://www.xdnf.cn/news/1459423.html

相关文章:

  • 机器学习:后篇
  • LangChain4j的初步学习【逐步添加中】
  • 强化学习DQN解决Cart_Pole问题
  • claude code route 使用教程|命令大全
  • linux中的awk使用详解
  • 深度解读《实施“人工智能+”行动的意见》:一场由场景、数据与价值链共同定义的产业升级
  • 【8】C#上位机---泛型、委托delegate与多线程Task
  • 2025年代理IP服务深度评测:三大平台横评,谁是最强业务助手?
  • 检查数据集格式(77)
  • 计算机二级C语言操作题(填空、修改、设计题)——真题库(16)附解析答案
  • C++基础——模板进阶
  • 【C++题解】关联容器
  • Linux的权限详解
  • 一次死锁的排查
  • 激活函数:神经网络的“灵魂开关”
  • 阅读论文神奇Zotero下载安装教程以及划词翻译(Translate for Zotero)的配置
  • 动态内存管理柔性数组
  • Vue 中绑定样式的几种方式
  • Process Explorer 学习笔记(第三章3.1.1):度量 CPU 的使用情况详解
  • 【Unity知识分享】Unity接入dll调用Window系统接口
  • 无限时长视频生成新突破!复旦联合微软、腾讯混元推出StableAvatar,仅需1张照片+1段音频实现真人说话视频
  • hutool的EnumUtil工具类实践【持续更新】
  • 揭秘23种设计模式的艺术与技巧之行为型
  • 美联储计划召开稳定币和代币化创新会议
  • 大数据框架Doris全面解析
  • 期权平仓后权利金去哪了?
  • 基于STM32的智能家居语音控制系统设计
  • Pycharm终端pip install的包都在C:\Users\\AppData\Roaming\Python\解决办法
  • 手写Spring框架
  • 前端跨域终极指南:3 种优雅解决方案 + 可运行 Demo