这里以办公网测试环境为例,
 
(一)创建租户demo的网络
 
使用admin用户
source admin-openrc.sh
创建public公网
neutron net-create 1040100 --shared --provider:physical_network public  --provider:network_type flat  --router:external
 
声明public网段DHCP等信息
neutron subnet-create 1040100 10.40.100.0/24 --name 1040100 \
  --allocation-pool start=10.40.100.10,end=10.40.100.240 \
  --dns-nameserver 114.114.114.114 --gateway 10.40.100.254
 
使用demo用户
source demo-openrc.sh
创建private网段17216100
neutron net-create 17216100
 
private网段17216100的DHCP声明
neutron subnet-create 17216100 172.16.100.0/24 --name 17216100 --allocation-pool start=172.16.100.11,end=172.16.100.240  --dns-nameserver 114.114.114.114
 
用demo用户创建一个名叫100的路由器
neutron router-create 100
 
路由器添加一个接口接到172.16.100网段
neutron router-interface-add 100 17216100
 
换回admin用户,分配一个public的IP,并将它接到路由器100上
source admin-openrc.sh
neutron router-gateway-set 100 1040100 --fixed-ip ip_address=10.40.100.9
 
实践中证明,VM同时启动public 网络+private网络 2张网卡的需求不多,除非你的public网络是公网IP,并且模仿阿里云的公有云主机的双网卡方式的话,这个组合才是有用的。
因此,从我们的架构中可以看到,我们的public网段也是内网的,再启一个private内网网段就显得有些多余,后来实践证明,我们在创虚拟机时,只需要使用到的public网段,即可满足绝大部需求。
 
以上的配置你预先配置进去,也是不影响,如果你将来虚拟机有双网卡的需求的话,可以使用,但有个前提
VM虚拟机关联2张网卡,默认都会由2个DHCP发下2条默认网关路由,VM上的路由是会混乱的,有2种 方式可以解决,
1、需要在demo网页上把网络-内网的网段17216100有个网关的配置选 项禁用掉。这个17216100网关在DHCP下发时,不会带默认路由给VM
2、虚拟机上手工配置默认路由的优先级,为metric 10,优先级降低。则会去使用Public的默认路由。这样的话,操作比较麻烦
route add default gw 172.16.100.1 metric 10
 
 
按以上配法,建议了可用主机分配的IP尾数为13-250  (其中0-12是保留的)
 
 
 
验证:
source admin-openrc.sh
 
查看两台controller分别存了不同的DHCP和privat网关信息。但后缀有个id值 ,并且PING不通10.40.100.X网关。,这id是不应该出现的,后来查了,是iproute组件的一个bug,需要将iproute-3.10.0-54.el7.x86_64降成iproute-3.10.0-21.el7.x86_64
如果后续的openstack修复了这个BUG的话,那是皆大欢喜的。
 
[root@controller1 ~]# ip netns
qdhcp-73fa5049-7293-414b-985e-b01a0588152a (id: 1)
qdhcp-4034ed8e-bafe-4695-9eab-29c6c1351216 (id: 0)
[root@controller2 ~]# ip netns
qrouter-1caaf33f-1908-41f7-9415-9962734d6ca4 (id: 0)
 
降级iproute,所有的节点,同时降级。
Quick solution is to simple downgrade the package:
# wget http://mirror.centos.org/centos/7.1.1503/os/x86_64/Packages/iproute-3.10.0-21.el7.x86_64.rpm
 
# yum -y downgrade ./iproute-3.10.0-21.el7.x86_64.rpm
 
[root@controller2 ~]# neutron router-port-list router
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                            |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
| 05823abd-8546-4f81-8629-d03f55873178 |      | fa:16:3e:c1:33:29 | {"subnet_id": "877568a2-c97c-4bc3-8c22-451ddd2e7736", "ip_address": "172.16.1.1"}    |
| d8f3e28a-81ab-47a7-b4a6-4308a433c488 |      | fa:16:3e:d7:30:45 | {"subnet_id": "51d5b8e7-903a-46be-9e42-a3d5805c8df6", "ip_address": "10.40.100.9"} |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
 
ping 10.40.100.9
验证public桥接到demo路由器的网关外网连通性
 
 
(二)controller创建ssh key,并通过cloud-init注入VM方式 ,实现从controller免密登录VM的方式 ,这一步可以选择不做。
 
(三)接下来网络创建完后,配置防火墙
 
规则还是要放的。当然可以在dashboard网页上放开所有的TCP,UDP协议端口的外网访问
 
以下是传统使用命令方式放通demo租房防火墙。
source demo-openrc.sh
 
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
 
nova secgroup-add-rule default tcp 22 22  0.0.0.0/0
 
创建一个实例前,验证定义的其它功能可用性
source demo-openrc.sh
 
nova flavor-list
 
nova image-list
 
neutron net-list
 
验证无问题,即可创建实例
通过dashboard网页上创建
 
 
 

由于我们的Public网段的上联传统交换机,支持一个VLAN接口,配置多个网段,
我们除了创建10.40.100.X,我们还可以再创建其它网段,比如10.40.200.X
10.40.100.X 用于开发网段
10.40.200.X 用于测试网段

新增网段示例如下

使用admin用户
source admin-openrc.sh

声明public 1040100网段的第二个DHCP信息
neutron subnet-create 1040100 10.40.200.0/24 --name 1040200 \
--allocation-pool start=10.40.200.10,end=10.40.200.240 \
--dns-nameserver 114.114.114.114 --gateway 10.40.200.254

使用demo用户
source demo-openrc.sh
创建private网段17216200
neutron net-create 17216200

private网段17216200的DHCP声明
neutron subnet-create 17216200 172.16.200.0/24 --name 17216200 --allocation-pool start=172.16.200.11,end=172.16.200.240 --dns-nameserver 114.114.114.114

用demo用户创建一个名叫200的路由器
neutron router-create 200

路由器添加一个接口接到172.16.200网段
neutron router-interface-add 200 17216200

换回admin用户,分配一个public的IP,并将它接到路由器200上
source admin-openrc.sh
neutron router-gateway-set 200 1040100 --fixed-ip ip_address=10.40.200.9

openstack私有云布署实践【15 创建租户网络+实例】的更多相关文章

  1. openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  2. openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  3. openstack私有云布署实践【13.2 网络Neutron-compute节点配置(办公网环境)】

    所有compute节点 下载安装组件   # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset -y ...

  4. openstack私有云布署实践【13.1 网络Neutron-compute节点配置(科兴环境)】

    所有kxcompute节点 下载安装组件   # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset ...

  5. openstack私有云布署实践【0 前言】

    管理控制层面示图: 其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了openstack高可用的指导思想.我们自己实践的高可用其实是适应自己的架构而做的调整,因为我们现实手头上中没有比较符 ...

  6. openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...

  7. openstack私有云布署实践【8.1 身份认证keystone的API创建(科兴环境)】

    其中一台controller上面加入环境变量,我选kxcontroller1,关注的是endpoint的名称不一样,其它创建的参数与测试环境一致 export OS_TOKEN=venicchina ...

  8. openstack私有云布署实践【8.2 身份认证keystone的API创建(办公网环境)】

    其中一台controller上面加入环境变量,我选controller1,关注的是endpoint的名称不一样,其它创建的参数与生产环境一致 export OS_TOKEN=venicchina ex ...

  9. openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】

    还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...

随机推荐

  1. .NET基础——运算符

    这一篇我们来讲解C#中的运算符 1. C#中的算术运算符 5个算数运算符:+  -  *  /  %     它们都是二元运算符,*  /  % 的运算优先级相同,并且高于 +  - ,+  - 的运 ...

  2. 0-ajax操作json(番外篇)

    [可以先看后边再看此文] get获取json 前端代码 <!DOCTYPE html> <html> <head> <meta charset="u ...

  3. 怎样通过WireShark抓到的包分析出SIP流程图

    WireShark抓到了SIP包, 逐条分析, 看瞎...希望能够写个脚本, 自动生成流程图

  4. codevs1028花店橱窗布置(费用流)

    这几天刚学了费用流,找到了这道题来练一练手. 题目: 题目描述 Description 假设以最美观的方式布置花店的橱窗,有F束花,V个花瓶,我们用美学值(一个整数)表示每束花放入每个花瓶所产生的美学 ...

  5. [UWP小白日记-10]程序启动屏(ios解锁既视感)

    讲一下 微软爸爸的开发者大会2016又暴了个表达式动画和Windows.UI.Composition的API,好叼的样子. 官方示例库GitHub 目前是懵逼状态,好复杂.脑细胞已经在地府排队了. ( ...

  6. 安装hadoop-eclipse-plugin插件报错解决办法

    安装myecplise的hadoop-eclipse-plugin-2.2.0插件的时候,  把插件放到这个文件夹里 打开myeclipse windows-->preferences 点击 H ...

  7. Vue.js教程

    https://aotu.io/notes/2016/10/13/vue2/?o2src=juejin&o2layout=compat

  8. New : HTML5 中的新标签

    基础 标签 描述 <!DOCTYPE>  定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body> 定义文档 ...

  9. iOS Size Class使用

    iOS8和iPhone6发布已经过去蛮久了,广大的果粉终于迎来了大屏iPhone,再也不用纠结为大屏买三星舍苹果了-但是对于iOS开发人员来说,迎来了和Android开发开发一样的问题->各种屏 ...

  10. VR行业未来是会走向巅峰还是会归于落寞?

    日前591ARVR资讯网www.591arvr.com根据有关市场调研机构的权威数据分析进行预测表明,全球VR头显出货量将达到1.3亿部,但是现在市场数字不过年出货1700万部,这一部分VR并不指的是 ...