将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)
上一节完我们创建了外部网络 ext_net,接下来需要将其连接到 Neutron 的虚拟路由器,这样 instance 才能访问外网。
点击菜单 Project -> Network -> Routers 进入 router 列表。
点击 router_100_101 的 “Set Gateway” 按钮。
在 “External Network” 下拉列表中选择 ext_net,点击 “Set Gateway”。
外网设置成功。我们需要看看 router 发生了什么变化。
点击 “router_100_101” 链接,打开 “Interfaces” 标签页。
router 多了一个新 interface,IP 为 10.10.10.2。
该 interface 用于连接外网 ext_net,对应的 br-ex 的 port “qg-cf54d3ea-6a”。
在 router 的 namespace 中查可以看到 qg-cf54d3ea-6a 已经配置了 IP 10.10.10.2。
router interface 的命名规则如下:
1. 如果 interface 用于连接租户网络,命名格式为 qr-xxx。
2. 如果 interface 用于连接外部网络,命名格式为 qg-xxx。
查看 router 的路由表信息:
可以看到默认网关为 10.10.10.1。
意味着对于访问 vlan100 和 vlan101 租户网络以外的所有流量,router_100_101 都将转发给 ext_net 的网关 10.10.10.1。
现在 router_100_101 已经同时连接了 vlan100, vlan101 和 ext_net 三个网络,如下图所示:
我们在 cirros-vm3 上测试一下。
cirros-vm3 位于计算节点,现在已经可以 Ping 到 ext_net 网关 10.10.10.1 了。
通过 traceroute 查看一下 cirros-vm3 到 10.10.10.1 的路径:
数据包经过两跳到达 10.10.10.1 网关。
1. 数据包首先发送到 router_100_101 连接 vlan101 的 interface(172.16.101.1)。
2. 然后通过连接 ext_net 的 interface(10.10.10.2) 转发出去,最后到达 10.10.10.1。
当数据包从 router 连接外网的接口 qg-cf54d3ea-6a 发出的时候,会做一次 Source NAT,将包的源地址修改为 router 的接口地址 10.10.10.2,这样就能够保证目的端能够将应答的包发回给 router,然后再转发回源端 instance。
有关 Source NAT 的详细分析可以参考 Linux Bridge 中 router 的相关章节。
floating IP
通过 SNAT 使得 instance 能够直接访问外网,但外网还不能直接访问 instance。
直接访问 instance 指的是通信连接由外网发起,例如从外网 SSH instance。
如果需要从外网直接访问 instance,可以利用 floating IP。
Open vSwitch driver 环境中 floating IP 的实现与 Linux Bridge driver 完全一样:
都是通过在 router 提供网关的外网 interface 上配置 iptables NAT 规则实现。
有关 floating IP 的详细分析可以参考 Linux Bridge 中 floating IP 的相关章节。
至此,OVS 的路由服务就讨论完了,下一节我们将开始学习 Neutron VxLAN 的 OVS 实现。
将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)相关推荐
- 将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)
上一节 first_local_net 已经就绪,下面创建 instance 并将其连接到该网络. 将 instance 连接到 first_local_net launch 一个 instance, ...
- 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)
虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 ...
- 部署 DevStack - 每天5分钟玩转 OpenStack(17)
http://www.cnblogs.com/CloudMan6/p/5357273.html 部署 DevStack - 每天5分钟玩转 OpenStack(17) 本节按照以下步骤部署 DevSt ...
- LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8)
http://www.cnblogs.com/CloudMan6/p/5277927.html LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8) LVM 类型的 ...
- 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)
http://www.cnblogs.com/CloudMan6/p/5402490.html 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22) 本节首先讨论 p_ ...
- Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)
Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...
- Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)
Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...
- 每天5分钟玩转openstack跟学(一)预备知识
前言:对于openstack我是一名小白,打算跟着CloudMan的<每天5分钟玩转openstack>进行学习,有兴趣的小伙伴可以跟着我一起,相互探讨,互相进步,该系列博文基本不涉及原理 ...
- 写在最前面 - 每天5分钟玩转 OpenStack(1)
写在最前面 <每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节 ...
最新文章
- 面试碰到这个算法:字母异位词分组
- MAC终端配色Solarized
- ec6110刷linux系统,华为EC6110-T优盘强刷固件升级包及刷机教程
- 软件设计原则:内聚、耦合有哪几种类型?内聚度、耦合度如何比较?
- python online json editor_JSON Editor 中文文档
- iOS之友盟简单分享(第三方)及sso授权问题
- 备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具
- 简单的excel上传解析和错误反馈信息下载
- Machine Learning——Homework1
- android的listview单项中包含RadioButton,实现RadioButton的单选显示效果
- 支持x86/aarch/mips/loongarch的jogamp-2.3.2源码开源
- absolute之后居中宽度自适应
- 客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
- ​​​​浏览器中添加Json解析工具
- 服务器显示器指示灯不亮,电脑显示器指示灯不亮怎么办
- matlab实时处理数据,Matlab下实现的实时数据采集和处理
- Laravel框架简介与环境搭建
- 诺贝文学奖对莫言获奖评价
- mysql 登录失败18456_Sqlserver 2005 登录用户提示“sa'登录失败。错误18456“的解决方案...
- 计算机等级图片背景蓝色怎么调,如何给证件照换背景色/把背景底色为蓝色的证件照换为白色底 - 狸窝...
热门文章
- linux磁盘和文件系统管理
- HDU 2993 MAX Average Problem(斜率优化DP)
- Asp.net MVC 仿照博客园的简单网站首页 列表设计
- PowerDesigner(1)----转载
- 一个月按多少天计算日工资合理
- 7大最重要的管理方法
- python操作access数据库未发现数据源名称_ASP连接ACCESS数据库失败,提示“未发现数据源名称并且未指定默认驱动程序”...
- 机械制图符号_《机械制图》试卷
- JSTL的错误“attribute test does not accept any expressions”解决方法
- java json对象 输出_拼json字符串输出java对象