Openstack实现共有云VPC的SDN网络
Neutron的第二个网络模型,自服务网络
参考官方文档:https://docs.openstack.org/newton/zh_CN/install-guide-rdo/neutron-controller-install-option2.html
在控制节点数据库,消息队列,keystone之前已经配置好
编辑``/etc/neutron/neutron.conf`` 文件并完成如下操作
[DEFAULT]
...
service_plugins = router
allow_overlapping_ips = True
编辑``/etc/neutron/plugins/ml2/ml2_conf.ini``文件并完成以下操作:
在``[ml2]``部分,启用flat,VLAN以及VXLAN网络:
[ml2]
type_drivers = flat,vlan,local,gre,vxlan,geneve
在``[ml2]``部分,启用VXLAN私有网络:
[ml2]
...
tenant_network_types = flat,vlan,gre,vxlan,geneve
在``[ml2]``部分,启用Linuxbridge和l2机制(原配置已经有linuxbridge):
[ml2]
...
mechanism_drivers = linuxbridge,l2population
在``[ml2]`` 部分,启用端口安全扩展驱动:
[ml2]
...
extension_drivers = port_security
在``[ml2_type_flat]``部分,配置公共虚拟网络为flat网络(之前已经修改并且添加了internal):
[ml2_type_flat]
...
flat_networks = provider
在``[ml2_type_vxlan]``部分,为私有网络配置VXLAN网络识别的网络范围
[ml2_type_vxlan]
...
vni_ranges = 1:1000
在 ``[securitygroup]``部分,启用 ipset 增加安全组的方便性(之前已配置):
[securitygroup]
...
enable_ipset = True
配置Linuxbridge代理
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``文件并且完成以下操作:
在``[linux_bridge]``部分,将公共虚拟网络和公共物理网络接口对应起来(之前已修改):
[linux_bridge]
physical_interface_mappings = provider:eth0,internal:eth1
在``[vxlan]``部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
enable_vxlan之前配置为False
local_ip为本地ip一会修改计算节点也是计算节点的本地ip
[vxlan]
enable_vxlan = True
local_ip =192.168.0.112
l2_population = True
在 ``[securitygroup]``部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动(之前已修改):
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置layer-3代理
编辑``/etc/neutron/l3_agent.ini``文件并完成以下操作:
在``[DEFAULT]``部分,配置Linuxbridge接口驱动和外部网络网桥:
[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
配置DHCP代理(之前已经配置)
编辑``/etc/neutron/dhcp_agent.ini``文件并完成下面的操作:
在``[DEFAULT]``部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
在计算节点配置
配置Linuxbridge代理
编辑``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``文件并且完成以下操作
在``[linux_bridge]``部分,将公共虚拟网络和公共物理网络接口对应起来(之前已配置)
[linux_bridge]
physical_interface_mappings = provider:eth0,internal:eth1
在``[vxlan]``部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population
[vxlan]
enable_vxlan = True
local_ip = 192.168.0.115
l2_population = True
在 ``[securitygroup]``部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动(之前已经配置)
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
重启服务
控制节点
systemctl restart neutron-server neutron-linuxbridge-agent neutron-l3-agent
计算节点
systemctl status neutron-linuxbridge-agent
验证
neutron agent-list

创建自服务网络 参考:https://docs.openstack.org/newton/zh_CN/install-guide-rdo/launch-instance-networks-selfservice.html
在控制节点获取demo权限(因为是自服务网络所以用demo)
source demo-openstack
创建网络
openstack network create selfservice

在网络上创建子网
openstack subnet create --network selfservice \
--dns-nameserver 192.168.0.1 --gateway 172.16.1.1 \
--subnet-range 172.16.1.0/24 selfservice

创建路由器(使用admin)
在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限
source admin-openstack
更新 provider网络
neutron net-update provider --router:external
又回到demo
source demo-openstack
创建路由(用路由把刚才创建的子网连接起来)
openstack router create router

给路由器添加一个私网子网的接口
neutron router-interface-add router selfservice

给路由器设置公有网络的网关
neutron router-gateway-set router provider

验证
使用demo登陆web界面
网络-网络拓扑

创建一台虚拟主机,选择网络的时候选择自服务网络
先修改之前的限制网络配置操作再来创建主机
编辑配置文件/etc/openstack-dashboard/local_settings把之前的以下配置改一下
全部改成True之前单一扁平网络开启了会报错,现在即使不使用也不会报错
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': False,
'enable_quotas': False,
'enable_ipv6': False,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': True,
'enable_ha_router': True,
'enable_lb': True,
'enable_firewall': True,
'enable_vpn': True,
'enable_fip_topology_check': True,
重启apache
systemctl restart httpd


私有网络无法访问公网可以添加一个公网IP
计算-访问与安全-浮动IP-关联-选择端口

Openstack实现共有云VPC的SDN网络的更多相关文章
- OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络
1.修改/etc/neutron/neutron.conf配置 [root@linux-node1 ~]# vim /etc/neutron/neutron.conf [defalut] ... co ...
- Openstack实现共有云多flat网络
首先给两台虚拟机添加网卡,模式为仅主机模式 配置控制节点IP /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet BOOTPROTO=sta ...
- SDN网络中hypervisor带来的控制器时延(Hypervisor位置的优化)
一,问题背景 1.介绍监督器大部分由软件实现,可灵活放置,高效的SDN网络虚拟化需要复杂的技术来放置hypervisor在合适的位置,才能提供租户最佳的性能.称为k-Network Hyperviso ...
- 一个比较有意思的SDN网络技术相关blog/doc
http://feisky.xyz/sdn/linux/index.html 涵盖了目前主流的网络技术,所有比较有意思的内容全都覆盖了 SDN网络 目录 基本网络 TCP/IP标准模型 DHCP与DN ...
- 干货 | VPC之间的网络连通实践
随着公有云技术的日臻完善,越来越多的政府部门.事业单位.企业.个人将自己的IT系统部署在公有云之上.在公有云之上部署业务系统有一个特点,就是先要规划网络,有了网络以后,才能把一些相关的产品部署在网络里 ...
- SDN网络虚拟化中有效协调的映射算法
来自论文An efficient and coordinated mapping algorithm in virtualized SDN networks,来自期刊<信息与电子工程前沿> ...
- SDN网络虚拟化、资源映射等相关论文粗读
1. Control Plane Latency with SDN Network Hypervisors: The Cost of Virtualization 年份:2016 来源:IEEE NE ...
- SDN网络IPv6组播机制支持实时视频业务海量用户扩展
以 OpenFlow 技术为核心的软件定义网络(SDN)框架具有集中控制的功能能够自己感知网络拓扑的变化,在细粒度的路径选择.接入控制.负载均衡方面有着天然的优势,为 IPv6 组播功能的实现提供了好 ...
- Openstack neutron:云数据中心底层网络架构
目录 - 目录 - 云数据中心流量类型 - NSX整体网络结构 - 管理网络(API网络) - 租户网络 - 外联网络 - 存储网络 - openstack整体网络结构 - 管理网络:(上图中蓝线) ...
随机推荐
- zookeeper单节点windows下安装
由于需要在windows下面安装zookeeper,故做个整理 1.下载zookeeper http://mirrors.hust.edu.cn/apache/zookeeper/ 2.解压 3.修改 ...
- 再谈Nginx Rewrite, 中文URL和其它
上次谈到过Nginx和中文URL的问题,这几天又加深了认识. 多分享几个关于Nginx Rewrite的经验. Nginx匹配指定中文URL的方法:rewrite "(*UTF8)^x{66 ...
- tornado异步web请求
1.为什么要使用异步web服务使用异步非阻塞请求,并发处理更高效. 2.同步与异步请求比较同步请求时,web服务器进程是阻塞的,也就是说当一个请求被处理时,服务器进程会被挂起直至请求完成. 异步请求时 ...
- python学习笔记(8)--爬虫下载占位图片
说明: 1. 虽然很简单,但总忘,所以还是记下来吧! 2. http://placekitten.com/300/300这个画猫的网站老是打开没有图片,改成了http://placehold.it/3 ...
- java 读取Zip文件进行写入
直接读取ZIp文件读取写入到别的文件中. package jp.co.misumi.mdm.batch; import java.io.BufferedReader; import java.io.F ...
- qt setData()和data()
简述 在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来自配置文件.注册表.数据库.或者是Server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被 ...
- Android基础总结(六)Activity
创建第二个Activity(掌握) 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <ac ...
- 关于ubuntu系统boot分区空间不足而又无法卸载旧内核的解决方法
2016年09月03日 14:16:45 萧氏一郎 阅读数:7802 标签: ubuntuboot分区清理更多 个人分类: linux 版权声明:本文为本猿原创文章,转载务必注明出处,多谢. ht ...
- javascript -- 事件捕获,事件冒泡
使用js的时候,当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,单击子元素时,父元素的onclick事件也会被触发.js里称这种事件连续发生的机制为事件冒泡或者事件捕获. 为什么会 ...
- 【BZOJ】1682: [Usaco2005 Mar]Out of Hay 干草危机(kruskal)
http://www.lydsy.com/JudgeOnline/problem.php?id=1682 最小生成树裸题.. #include <cstdio> #include < ...