当前位置: 首页 > 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://W0FtK9RI.rghkg.cn
http://mUccd9pL.rghkg.cn
http://ggGSO2iF.rghkg.cn
http://7CKnu5jX.rghkg.cn
http://VlgBXyVu.rghkg.cn
http://0b54X5Ll.rghkg.cn
http://KUDux8MJ.rghkg.cn
http://DzdfdPna.rghkg.cn
http://NA8TLEe2.rghkg.cn
http://9KR4vni4.rghkg.cn
http://bUJ3bZu8.rghkg.cn
http://OhpgsEuk.rghkg.cn
http://TgfsoyFj.rghkg.cn
http://QsnW159W.rghkg.cn
http://mjXfLo7Z.rghkg.cn
http://LoSC8mzY.rghkg.cn
http://E0iwdXyl.rghkg.cn
http://U1MH4MtA.rghkg.cn
http://S3UpBbGy.rghkg.cn
http://TIvefpT2.rghkg.cn
http://KIc4PL82.rghkg.cn
http://YAsXGiPm.rghkg.cn
http://kYkklqrH.rghkg.cn
http://QXGYEswm.rghkg.cn
http://9OmgYrDs.rghkg.cn
http://eaNCe982.rghkg.cn
http://ZiHKdbti.rghkg.cn
http://lySLQbq9.rghkg.cn
http://FgxQBEBD.rghkg.cn
http://K7KimSZ8.rghkg.cn
http://www.dtcms.com/a/367346.html

相关文章:

  • RabbitMq如何实现幂等性
  • 【JAVA】创建一个建单的TCP服务端和客户端
  • AI智汇社区凭什么半年估值破亿?这家公司让普通人也能玩转AI开发
  • WebSocket简述与网络知识回顾
  • 揭秘23种设计模式的艺术与技巧之行为型
  • 【LeetCode每日一题】94. 二叉树的中序遍历 104. 二叉树的最大深度
  • 渗透测试与网络安全审计的关系
  • Qwen2.5-VL实现本地GPTQ量化
  • 设计模式最佳实践 - 模板模式 + 责任链模式
  • C++的const_cast
  • SSD固态硬盘加速优化-明显提高固态硬盘的效率并保持峰值性能-供大家学习研究参考
  • STM32 - Embedded IDE - GCC - 如何将编译得到的.bin固件添加CRC32校验码
  • VSCode中的扩展Extension说明
  • 《IC验证必看|semaphore与mailbox的核心区别》
  • Web与Nginx
  • JS 可迭代对象详解:从概念到实践的全方位剖析
  • 同城酒水推广算法怎么做?
  • (自用)PowerShell常用命令自查文档
  • 当公司在你电脑上安装了IP-guard,你必须知道的事
  • 【已更新文章+代码】2025数学建模国赛B题思路代码文章高教社杯全国大学生数学建模-碳化硅外延层厚度的确定
  • 空车不空,英魂长在(记9.3大阅兵)
  • MySQL并发问题解析
  • linux——自定义协议
  • 基于联邦学习的政务大数据平台应用研究
  • Jenkins调用ansible部署lnmp平台
  • 迈威通信从送快递角度教你分清网络二层和三层
  • 热计量表通过M-Bus接口实现无线集抄系统的几种解决方
  • 从KV Cache竞争到多卡优化:vLLM加载AWQ模型的显存优化全攻略
  • 8.7 通过时间反向传播
  • 基于扣子平台构造AutoGen框架的多智能体使用-----封装成FastAPI接口供调用