将 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 连接到 flat_net - 每天5分钟玩转 OpenStack(88)
上一节我们创建了 "flat_net",本节将在此网络中部署 instance 并验证连通性. launch 新的 instance “cirros-vm1”,选择网络 falt_ ...
- 将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)
上一节 first_local_net 已经就绪,下面创建 instance 并将其连接到该网络. 将 instance 连接到 first_local_net launch 一个 instance, ...
- 将 instance 连接到 second_local_net - 每天5分钟玩转 OpenStack(85)
今天是 local network 的最后一个小节,我们将验证两个local network 的连通性. launch 新的 instance “cirros-vm3”,网络选择 second_loc ...
- 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)
虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 ...
- 每天5分钟 玩转OpenStack 目录列表
最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...
- 外网访问原理分析 - 每天5分钟玩转 OpenStack(105)
本节我们会将上节创建的 ext_net 连接到 router,并验证内外网的连通性. 更重要的,我们会分析隐藏在表象之下的原理. 将外网连接到 Neutron 的虚拟路由器,这样 instance 才 ...
- 写在最前面 - 每天5分钟玩转 OpenStack(1)
<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重 ...
- 创建 OVS 外部网络 ext_net - 每天5分钟玩转 OpenStack(144)
上一节完成连接外网的配置准备工作,今天就来创建 OVS 外部网络 ext_net. 进入 Admin -> Networks 菜单,点击 "Create Network" 按 ...
- 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
作为 OpenStack 的核心教程,我们已经到了最后总结的部分. OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder ...
随机推荐
- 说说Core Animation
前言 本次分享将从以下方面进行展开: 曾被面试官问倒过的问题:层与视图的关系 CALayer类介绍及层与视图的关系 CAShapeLayer类介绍 UIBezierPath贝塞尔曲线讲解 CoreAn ...
- 移动WEB模拟原声APP滑动删除
移动WEB模拟原声APP滑动删除 效果 代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 关于NOMINMAX这个预处理宏
标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max().通常用它可以计算某个值对的最小值和最大值.可惜在 Visual C++ 无法使用它们,因 ...
- Monitorix 监控 安装配置
Monitorix 监控 安装配置 1. 首先安装RPMforge RPMforge 是由 Dag 及其他包裝者合作維護的.他們為 CentOS 提供超過 5000 個套件,包括 wine.vlc.m ...
- [iOS Animation]-CALayer 变换
变换 很不幸,没人能告诉你母体是什么,你只能自己体会 -- 骇客帝国 在第四章“可视效果”中,我们研究了一些增强图层和它的内容显示效果的一些技术,在这一章中,我们将要研究可以用来对图层旋转,摆放或者扭 ...
- [Unity UGUI]UGUI提供多种不同的解决方案
现代游戏和应用程序经常需要支持各种不同的屏幕分辨率,特别是UI布局需要能够适应.UI系统在统一中包括各种工具来实现此目的,可以以多种方式组合在一起. 在这个小节我们将使用一个简单的案例研究和观察和比较 ...
- iOS开发——WAVE音频文件解析
WAV文件也分了好几类,相应的非数据信息存储在文件的头部,下面简单的提一下,然后在最后重点介绍44字节的那种,一般用的都是这个. 1.8KHz采样.16比特量化的线性PCM语音信号的WAVE文件头格式 ...
- mysqlslap 使用总结
mysqlslap 可以用于模拟服务器的负载,并输出计时信息.其被包含在 MySQL 5.1 的发行包中.测试时,可以指定并发连接数,可以指定 SQL 语句.如果没有指定 SQL 语句,mysqlsl ...
- Mac iTerm2使用rz、sz从远程上传下载文件
使用 brew install lrzsz .如果安装遇到错误的话,使用以下方法: 在mac终端下运行: brew install lrzsz (安装教程:http://brew.sh/index_z ...
- 可持久化Trie树初步
可持久化Trie树和可持久化线段树很像,依次插入信息,通过减法来进行历史版本查询. 2015年11月27日 bzoj3261 最大异或和 我们需要计算 a[p] xor a[p+1] xor ... ...