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

用虚拟 router 连通 subnet - 每天5分钟玩转 OpenStack(141)

Neutron Routing 服务提供跨 subnet 互联互通的能力。
例如前面我们搭建了实验环境:

cirros-vm1      172.16.100.3        vlan100 cirros-vm3      172.16.101.3        vlan101

这两个 instance 要通信必须借助 router。可以是物理 router 或者虚拟 router。 下面详细讨论 Neutron 的虚拟 router 实现。

配置 l3 agent

Neutron 的路由服务是由 l3 agent 提供的。 l3 agent 需要正确配置才能工作,配置文件为 /etc/neutron/l3_agent.ini,位于控制节点或网络节点。

devstack 已经帮我们配置默认的属性,大部分情况下不需要修改就可以使用。

external_network_bridge 指定连接外网的网桥,默认是 br-ex。

interface_driver 是最重要的选项,如果 mechanism driver 是 open vswitch,则:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

如果选用 linux bridge,则:

interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

l3 agent 运行在控制或网络节点。



下面将创建虚拟 router “router_100_101”,打通 vlan100 和 vlan101。

创建 router

进入操作菜单 Project -> Network -> Routers。

点击 “Create Router” 按钮。

router 命名为 “router_100_101”,点击 “Create Router” 按钮确认。

router_100_101 创建成功。

接下来需要将 vlan100 和 vlan101 连接到 router_100_101。 点击 “router_100_101” 链接进入 router 的配置页面,在 “Interfaces” 标签中点击 “Add Interface” 按钮。

选择 vlan100 的 subnet_172_16_100_0,点击 “Add Interface” 确认。

用同样的方法添加 vlan101 的 subnet_172_16_101_0。

完成后,可以看到 router_100_101 有了两个 interface,其 IP 正好是 subnet 的 Gateway IP 172.16.100.1 和 172.16.101.1。

到这里,我们可以预见: 1. router_100_101 已经连接了 subnet_172_16_100_0 和 subnet_172_16_101_0。 2. router_100_101 上已经设置好了两个 subnet 的 Gateway IP。 3. cirros-vm1 和 cirros-vm3 应该可以通信了。

通过 PING 测试一下:

不出所料,cirros-vm1 和 cirros-vm3 能通信了。

下一节我们详细探究 router_100_101 是如何起作用的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ECMAScript 6 入门
  • 指令周期 机器周期 状态周期 振荡时钟周期(时钟周期)(转)
  • 关于java的print()
  • Laravel / Lumen 实践总结
  • 对象存储、快存储、文件存储的区别
  • 恶意程序入侵 dbuspm-session 发现了新的方法制这种恶意程序
  • 图示 Smart-Art
  • js中的正则表达式入门
  • Maven中的SNAPSHOT版本和正式版本理解
  • rabbitMq ubuntu下安装
  • 搜索框自动联想功能
  • JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决
  • Go 语言入门一: Go 安装
  • Go 获取当前可执行文件的所在目录
  • 认识clientWidth/offsetWidth/scrollWidth
  • 【comparator, comparable】小总结
  • Druid 在有赞的实践
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Leetcode 27 Remove Element
  • LeetCode29.两数相除 JavaScript
  • ng6--错误信息小结(持续更新)
  • python 学习笔记 - Queue Pipes,进程间通讯
  • python学习笔记-类对象的信息
  • SpingCloudBus整合RabbitMQ
  • Spring-boot 启动时碰到的错误
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 服务器从安装到部署全过程(二)
  • 记一次删除Git记录中的大文件的过程
  • 简单基于spring的redis配置(单机和集群模式)
  • 两列自适应布局方案整理
  • 如何编写一个可升级的智能合约
  • 新手搭建网站的主要流程
  • 原生Ajax
  • Hibernate主键生成策略及选择
  • 阿里云ACE认证之理解CDN技术
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (算法)Travel Information Center
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)VirtualBox安装增强功能
  • (源码分析)springsecurity认证授权
  • (转)我也是一只IT小小鸟
  • (转)原始图像数据和PDF中的图像数据
  • (自用)gtest单元测试
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ./和../以及/和~之间的区别
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃