OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络
1.修改/etc/neutron/neutron.conf配置
[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
[defalut]
...
core_plugin = ml2
service_plugins = router <==之前是等于空,开启路由插件
allow_overlapping_ips = Ture <==允许重叠ip [root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini <==启用vxlan[ml2]
type_drivers = flat,vlan,vxlan <==驱动类型
tenant_network_types = vxlan <==租户网络类型为vxlan
mechanism_drivers = linuxbridge,l2population <==启用linuxbridge ml2机制
[ml2_type_vxlan]
vni_ranges=: <==为私有网络配置Vxlan网络识别范围 配置linuxbridge代理
[root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[vxlan]
enable_vxlan = True
local_ip = 192.168.56.11
l2_population = True 配置layer-3代理(网络层)做路由
[root@linux-node1 ~]# vim /etc/neutron/l3_agent.ini 在``[DEFAULT]``部分,配置Linuxbridge接口驱动和外部网络网桥: interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver OVS(open vswitch)==>用于公有云 linuxbridge==>私有云
2.安装配置计算节点
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[vxlan]
enable_vxlan = True
local_ip = 192.168.56.12
l2_population = True
3.重启服务
[root@linux-node1 ~]# systemctl restart neutron-server neutron-linuxbridge-agent neutron-l3-agent
[root@linux-node2 ~]# systemctl restart neutron-linuxbridge-agent
4.创建自服务网络
①获取demo凭证
[root@linux-node1 ~]# source demo-openstack ②创建自服务网络
[root@linux-node1 ~]# openstack network create selfservice
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | --14T02::57Z |
| description | |
| headers | |
| id | 24bfcb74-238b--bd4c- |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| mtu | |
| name | selfservice |
| port_security_enabled | True |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| revision_number | |
| router:external | Internal |
| shared | False |
| status | ACTIVE |
| subnets | |
| tags | [] |
| updated_at | --14T02::57Z |
+-------------------------+--------------------------------------+
③创建子网
[root@linux-node1 ~]# openstack subnet create --network selfservice \
> --dns-nameserver 192.168.56.2 --gateway 172.16.1.1 \
> --subnet-range 172.16.1.0/ selfservice-subnet
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 172.16.1.2-172.16.1.254 |
| cidr | 172.16.1.0/ |
| created_at | --14T02::34Z |
| description | |
| dns_nameservers | 192.168.56.2 |
| enable_dhcp | True |
| gateway_ip | 172.16.1.1 |
| headers | |
| host_routes | |
| id | 01941fd0-4cfa-44a6-8a09-df56a5e4314b |
| ip_version | |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | selfservice-subnet |
| network_id | 24bfcb74-238b--bd4c- |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| revision_number | |
| service_types | [] |
| subnetpool_id | None |
| updated_at | --14T02::34Z |
+-------------------+--------------------------------------+
5.创建路由器
①获取admin凭证
[root@linux-node1 ~]# source admin-openstack ②更新public的网络
[root@linux-node1 ~]# neutron net-update public --router:external
Updated network: public ③获取demo凭证
[root@linux-node1 ~]# source demo-openstack ④创建路由
[root@linux-node1 ~]# openstack router create router
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | --14T02::26Z |
| description | |
| external_gateway_info | null |
| flavor_id | None |
| headers | |
| id | 1a189a9c-c8e3--a51b-ae408dcbd830 |
| name | router |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| project_id | 02aaf7ba97114238b1d8169fedabb9be |
| revision_number | |
| routes | |
| status | ACTIVE |
| updated_at | --14T02::26Z |
+-------------------------+--------------------------------------+ ⑤给路由器添加一个私网子网的接口
[root@linux-node1 ~]# neutron router-interface-add router selfservice-subnet
Added interface 5c3b3398-ccf0--bed5-0580f99f2cc0 to router router. ⑥给路由器设置公共网络网关
[root@linux-node1 ~]# neutron router-gateway-set router public
Set gateway for router router ⑦打开neutron网络,并重启httpd服务 [root@linux-node1 ~]# vim /etc/openstack-dashboard/local-setting 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_***': True,
'enable_fip_topology_check': True, [root@linux-node2 ~]# systemctl restart httpd
6.登录dashboard查看自服务网络:

7.创建自服务网络的云主机:
网络选项:选择selfservice-subnet

此时,创建的云主机的ip:172.16.1.9是无法通过外网进行访问的,需要对其增加一个浮动ip,相当于一个外网ip的映射,通过路由器进行连接,如图:

浮动ip绑定:"计算"-->"访问安全"-->"浮动ip"-->"分配给项目" 创建完毕后 "关联"到自服务网络的项目


查看网络拓扑结构:云主机连接自服务网络(selfservice),再连接路由器,路由器连接到公有网络

直接ping云主机内部ip:172.16.1.9是无法ping通的
[root@linux-node1 ~]# ping 172.16.1.9
PING 172.16.1.9 (172.16.1.9) () bytes of data.
^C
--- 172.16.1.9 ping statistics ---
packets transmitted, received, % packet loss, time 3010ms
增加浮动ip后,可以ping通,并且可以通过ssh远程登录
[root@linux-node1 ~]# ping 192.168.56.111
PING 192.168.56.111 (192.168.56.111) () bytes of data.
bytes from 192.168.56.111: icmp_seq= ttl= time=1.19 ms
bytes from 192.168.56.111: icmp_seq= ttl= time=1.26 ms
^C
--- 192.168.56.111 ping statistics ---
packets transmitted, received, % packet loss, time 1001ms
rtt min/avg/max/mdev = 1.199/1.234/1.269/0.035 ms
[root@linux-node1 ~]# ssh cirros@192.168.56.111
The authenticity of host '192.168.56.111 (192.168.56.111)' can't be established.
RSA key fingerprint is SHA256:JGnicOkiSuFIvu5hea2od5L3CsPJwDbBxdqRjQ7zqaw.
RSA key fingerprint is MD5:b8:b8::f3::e5:a9:af::ab:b7:3a::d6:0c:7e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.111' (RSA) to the list of known hosts.
$ ifconfig
eth0 Link encap:Ethernet HWaddr FA::3E::6B:
inet addr:172.16.1.9 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe37:6b72/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (16.8 KiB) TX bytes: (17.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 B) TX bytes: (0.0 B)
OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络的更多相关文章
- OpenStack入门篇(二十)之实现阿里云ESC多FLAT网络
1.给两台虚拟机增加网卡,使用仅主机模式,网段为:192.168.57.0/24 2.修改两台主机网卡配置 [root@linux-node1 ~]# cp /etc/sysconfig/networ ...
- Openstack入门篇(十二)之neutron服务(计算节点)的部署与测试
1.Neutron组件安装 [root@linux-node2 ~]# yum install -y openstack-neutron-linuxbridge ebtables ipset 2.配置 ...
- 【Android开发日记】之入门篇(十二)——Android组件间的数据传输
组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...
- 明解C语言 入门篇 第十二章答案
练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的 ...
- JS基础入门篇(十二)—JSON和Math
1.JSON JSON: 对象格式的字符串 轻量的数据传输格式 注意事项: 键名 需要 使用 双引号 包起来 JOSN有两个方法:JSON.parse和 JSON.stringify. JSON.pa ...
- Openstack入门篇(十八)之Cinder服务-->使用NFS作为后端存储
1.安装cinder-volume组件以及nfs [root@linux-node2 ~]# yum install -y openstack-cinder python-keystone [root ...
- Openstack入门篇(十六)之Cinder服务的部署与测试
1.理解块存储服务 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系统:或者直接使用裸硬盘存储数据(数据库) 通 ...
- Openstack入门篇(十五)之如何创建生产使用的openstack镜像
在linux-node1节点上: [root@linux-node1 ~]# yum install -y openstack-nova-compute [root@linux-node1 ~]# y ...
- Openstack入门篇(十四)之horizon服务的部署与测试
1.Horizon介绍 •提供一个web界面操作openstack的系统 •使用Django框架基于openstack API开发 •支持将session存储在DB.memcached •支持集群 t ...
随机推荐
- XXX esx.problem.hyperthreading.unmitigated.formatOnHost not found XXX (Build 9313334)
昨天把一台服务器(VMware ESXi, 6.0.0, 5572656)更新了一下补丁,更新到最新版(VMware ESXi, 6.0.0, 9313334),服务器重启后,vCenter出现以下错 ...
- Win7如何设置多用户同时远程登录
有时候服务器是Win7系统的时候,远程登录桌面时,即使登录的是不同的管理账号,还是会把远程登录的人给记下来.即不同的账号只能同时存在一个会话窗.本文教大家如果设置Win7让两个账号的两会话同时存在,且 ...
- scala数据库工具类
scala的数据库连接池,基于mysql import java.util.concurrent.ConcurrentHashMap import com.jolbox.bonecp.{ BoneCP ...
- ZT 类模板Stack的实现 by vector
*//*第3章 类模板 与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,你就可以实现容器类,而不需要确定容器中元素 ...
- codeforces 348D Turtles
codeforces 348D Turtles 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define fi first ...
- iis里URL重写重定向,http做301重定向https
上一篇文章写了iis和apache共用80端口,IIS代理转发apache. 因为第一次配置,这中间还是碰到了很多问题.这里记录下来,希望以后能避免错误. 使用Application Request ...
- Java 实现对文件系统的监控
在开发中经常会用到监控文件或是目录的状态,如果你还在手写轮巡扫描文件的话,那你久out了. 1. Commons io为我们提供了一套可靠.高性能的一套文件系统监控API 1.1. 需要的jar包如下 ...
- js实现svg图形转存为图片下载[转]
我们知道canvas画布可以很方便的js原生支持转为图片格式并下载,但是svg矢量图形则并没有这方面原生的支持.研究过HighChart的svg图形的图片下载机制,其实现原理大体是浏览器端收集SVG代 ...
- python第十课——循环结构收尾
2.4.time模块的初体验 sleep(sec)函数:程序一旦执行到sleep()函数,会立即休眠sec秒,等到时间到了,自动醒过来,然后继续往下执行... 思路步骤: 第一步:导入time模块 i ...
- P2607 [ZJOI2008]骑士
题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...