多个router和多个network
一般搭建成功了opentack后,都会按照文档的这样创建网络
Scenario 1: one tenant, two networks, one router

Scenario 2: two tenants, two networks, two routers

然而neutron号称软件定义网络,可否创建更复杂的拓扑图

我创建了上面的三个网络,每个网络都运行一个主机,网络1和网络2,并不直接相连,但是通过网络2相连。
对于主机net1,由于网络只有一个路由器,所以gateway只能是它
root@net1:/home/ubuntu# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:f2:68:34 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.2/24 brd 10.0.0.255 scope global eth0
inet6 fe80::f816:3eff:fef2:6834/64 scope link
valid_lft forever preferred_lft forever
root@net1:/home/ubuntu# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
对于主机net3,所在的网络业只有一个路由器,所以gateway也只能是它
root@net3:/home/ubuntu# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:73:2b:1f brd ff:ff:ff:ff:ff:ff
inet 10.0.2.2/24 brd 10.0.2.255 scope global eth0
inet6 fe80::f816:3eff:fe73:2b1f/64 scope link
valid_lft forever preferred_lft forever
root@net3:/home/ubuntu# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.1 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
比较纠结的是主机net2,它的网络上有两个路由器,默认gateway只能是一个,那它如何才能ping通两面的主机呢,必须手动添加路由器。
root@net2:/home/ubuntu# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:3c:65:ad brd ff:ff:ff:ff:ff:ff
inet 10.0.1.4/24 brd 10.0.1.255 scope global eth0
inet6 fe80::f816:3eff:fe3c:65ad/64 scope link
valid_lft forever preferred_lft forever
root@net2:/home/ubuntu# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.1.1 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 10.0.1.1 255.255.255.0 UG 0 0 0 eth0
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.0 10.0.1.2 255.255.255.0 UG 0 0 0 eth0
到不同的网络,gateway不一样。
最后的问题是,net1和net3之间怎么通信,如果neutron创建的路由器支持动态路由就好了,一般通过routed或者gated,相邻的路由器router1和router2可以相互同步路由表,这样router1才可能知道,在router2的另一端,还有一个网络,反之亦然。
https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing
然而这个好像还没实现,所以要想net1和net3之间通信,需要手动添加路由表到路由器
我们修改router1的路由表
root@escto-bj-hp-z620:~# ip netns exec qrouter-8fd947fc-2b5b-40a3-b16e-72aabb001f2d route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-bbbc67c3-81
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-10b0d153-4c
10.0.2.0 10.0.1.2 255.255.255.0 UG 0 0 0 qr-10b0d153-4c
再来修改router2的路由表
root@escto-bj-hp-z620:~# ip netns exec qrouter-d2c831c9-44ff-43dd-8c9d-2dc42370c2fd route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 10.0.1.1 255.255.255.0 UG 0 0 0 qr-ad73f294-6d
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-ad73f294-6d
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-866838bd-d7
这样相互就ping通了



通过API创建路由表
https://blueprints.launchpad.net/neutron/+spec/quantum-l3-routes
多个router和多个network的更多相关文章
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 深入理解openstack网络架构(4)-----连接到public network
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...
- OVN实战---《The OVN Gateway Router》翻译
Overview 在本文中我将在前文的基础上添加一个OVN gateway router.gateway router将使得lab network能访问我们的overlay network The l ...
- OpenStack Network --- introduction部分 阅读笔记
Basic Networking 1.混杂模式(promiscuous mode):当网卡被配置为混杂模式时,它们会将所有的frame传递给操作系统,即使MAC地址不匹配. 2.交换机(switch) ...
- Vitual Router in The Cloud
VyOS and ESXi,VyOS Configuration The next step is to configure both VyOS routers. Before we do, we s ...
- Identifying a distributed denial of service (DDOS) attack within a network and defending against such an attack
The invention provides methods, apparatus and systems for detecting distributed denial of service (D ...
- Neutron 网络基本概念 - 每天5分钟玩转 OpenStack(66)
上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念. Neutron 管理的网络资源包括 Network,subnet 和 port,下面依次介绍. netw ...
- openstack网络(neutron)模式之GRE的基本原理
neutron网络目的是为OpenStack云更灵活的划分网络,在多租户的环境下提供给每个租户独立的网络环境. neutron混合实施了第二层的VLAN和第三层的路由服务,它可为支持的网络提供防火墙, ...
- 深入理解openstack网络架构(3)-----路由
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture2 译文转自:http://b ...
随机推荐
- django-form字段form 和插件widgets
26)django-form字段和插件widgets 创建Form类时,主要涉及到 [字段] 和 [插件],字段用于对用户请求数据的验证,插件用于自动生成HTML 一:常用字段 1.Django中Fo ...
- vs2017打包安卓项目简述
1.使用vs2017创建安卓项目 2.选择Release模式编译项目 3.项目存档 4.签名分发 存档完成后,点击分发按钮进入如下界面 按要求输入签名信息 选择apk保存位置 5.分享apk文件 参考 ...
- OpenStack--glance组件镜像服务
glance介绍 Glance 是 OpenStack 项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找,注册和检索等.Glance 提供 Restful API 可以查询虚拟机镜像的 metad ...
- poj1456 Supermarket 贪心+并查集
题目链接:http://poj.org/problem?id=1456 题意:有n个物品(0 <= n <= 10000) ,每个物品有一个价格pi和一个保质期di (1 <= pi ...
- 2018-2019-2 网络对抗技术 20165314 Exp3 免杀原理与实践
免杀原理与实践说明 一.实验说明 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 任务 ...
- 2018年冬季寒假作业4--PTA 币值转换
1. 实验代码: #include<stdio.h> int main (void) { int n, initial_n; scanf("%d", &n); ...
- [FJWC2018]全排列
题解: 考虑长度为k的时候的贡献 即取出一些元素然后给他们排个顺序然后问你有多少排法 假设排法为ans 那么应该就是$C(n,k)*C(n,k)*(n-k)!*(n-k)!*(n-k+1)*ans$ ...
- .Net Core小技巧 - Swagger适配虚拟目录及二级目录
前言 随着前后端分离模式与微服务架构的出现,Web API变得越来越重要及普遍.而后出现的网关技术,使开发者更倾向于使用二级/多级目录来暴露Web API,一是暴露的端口更少,方便管理:二是在网关中可 ...
- 通过zabbix的API接口获取服务器列表
Zabbix API说明 1) 基于Web的API,作为Web前端的一部分提供,使用JSON-RPC 2.0协议 2) 身份认证Token:在访问Zabbix中的任何数据之前,需要登录并获取身份验证令 ...
- 畅通工程续 -- HDU 1874 floyd
题目大意: 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. 思路: floyd算法模板题,这是一个牺牲空间换取时间的算法,本质是动态规划. AC代码: #include < ...