mitaka版本openstack网络之open vSwitch

作者:【吴业亮】

博客:http://blog.csdn.net/wylfengyujiancheng

一、硬件配置及服务拓扑
1. controller节点:一块网卡
2. 网络节点:四块网卡。
3. 计算节点:三块网卡
这里写图片描述
这里写图片描述

controller节点
1. 运行 neutron数据库
2. 运行消息队列服务
3. 运行认证。
4. 运行OpenStack计算nova相关网络,需配置nova.conf文件。
5. 运行插件ML2 。
网络节点
1. Neutron认证相关信息需配置neutron.conf文件。
2. Open vSwitch服务,Open vSwitch代理,L3代理,DHCP代理,元数据代理,一些依赖项。
计算节点
1. 运行OpenStack身份与合适的配置服务 需配置neutron.conf文件。
2. 运行OpenStack计算nova相关网络,需配置nova.conf文件。
3. Open vSwitch服务,Open vSwitch代理,一些依赖项。
二、各个节点服务关系及说明
这里写图片描述
网络节点网络包含以下组件:
1. open vswitch-agent
2. l3-agent
3. dhcp-aent
4. Metadata-agent
这里写图片描述
这里写图片描述
计算节点网络包含以下组件:
1. Open vSwitch-agent。
2. 网桥。
这里写图片描述
这里写图片描述
三、场景举例
Note请注意
南北网络:虚拟机内部数据到外部网络
东西网络:虚拟机之间通信
案例1:南北网络、实例对应一个固定的IP地址
这里写图片描述
案例2:南北网络,实例对应一个浮动IP地址
这里写图片描述
案例3:东西网络,实例在不同的网络上
这里写图片描述
案例4:东西网络、实例在同一网络
这里写图片描述
四、安装配置
(一)controller节点
1、安装组件

# yum install openstack-neutron openstack-neutron-ml2 python-neutronclient which 

2、配置服务器组件
编辑 /etc/neutron/neutron.conf文件,并完成以下动作:
在[数据库]节中,配置数据库访问:

[database]
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

替换 NEUTRON_DBPASS为你的密码
在[默认的]部分

[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

在[默认的]和[oslo_messaging_rabbit]部分,配置RabbitMQ消息队列访问:

[DEFAULT]
rpc_backend = rabbit
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

替换 RABBIT_PASS为你的密码
在[默认的]和[keystone_authtoken]部分,配置身份服务访问:

[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS

替换NEUTRON_PASS为你的密码
Note请注意
注释掉或删除任何其他选项 [keystone_authtoken]部分。
在[默认的]和[nova]部分,配置网络通知计算网络拓扑变化:

[DEFAULT]
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
[nova]
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS

替换 NOVA_PASS 为你的密码
在[oslo_concurrency]节中,配置锁路径:

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

3、编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件
在[ml2]部分,使平、VLAN和VXLAN网络:

[ml2]
type_drivers = flat,vlan,vxlan

在[ml2]部分,使VXLAN自助服务网络:

[ml2]
tenant_network_types = vxlan

在[ml2]部分

[ml2]
mechanism_drivers = openvswitch,l2population

在[ml2]部分,启用端口安全

[ml2]
extension_drivers = port_security

在[ml2_type_flat]部分,虚拟网络配置提供者平面网络:

[ml2_type_flat]
flat_networks = provider

在[ml2_type_vxlan]部分,配置VXLAN网络标识符范围自助服务网络:

[ml2_type_vxlan]
vni_ranges = 1:1000

在[securitygroup]部分,使ipset提高效率的安全组规则:

[securitygroup]
enable_ipset = True

编辑/etc/nova/nova.conf文件和执行以下操作:
在[nova]节中,配置访问参数,使元数据代理

[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
service_metadata_proxy = True

4、创建链接

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

5、同步数据库

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf   --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

6、重启nova服务

systemctl restart openstack-nova-api.service

7、启动neutron服务

# systemctl enable neutron-server.service
# systemctl start neutron-server.service

(二)网络节点
1. 编辑 /etc/sysctl.conf

net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0

2.执行下列命令,立即生效

# sysctl -p

3.安装软件包

# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch

4.配置组件
编辑/etc/neutron/neutron.conf文件,并完成以下动作:
在[数据库]节中,删除配置数据库访问:
在[默认的]部分,使模块化层2)中打开(名为ML2插件,路由器的服务,和重叠的IP地址:

[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

在[默认的]和[oslo_messaging_rabbit]部分,配置RabbitMQ消息队列访问:

[DEFAULT]
rpc_backend = rabbit
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

替换 RABBIT_PASS 为你的密码
在[默认的]和[keystone_authtoken]部分,配置身份服务访问:

[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS

替换 NEUTRON_PASS为你的密码
Note请注意
注释掉或删除任何其他选项 [keystone_authtoken]部分。
在[oslo_concurrency]节中,配置锁路径:

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

5、编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件
在[ml2]部分,使平、VLAN和VXLAN网络:

[ml2]
type_drivers = flat,vlan,vxlan

在[ml2]部分,使VXLAN自助服务网络:

[ml2]
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security

在[ml2_type_flat]部分,虚拟网络配置提供者平面网络:

[ml2_type_flat]
flat_networks = provider

在[ml2_type_vxlan]部分,配置VXLAN网络标识符范围自助服务网络:

[ml2_type_vxlan]
vni_ranges = 1:1000

在[securitygroup]部分,使ipset提高效率的安全组规则:

[securitygroup]
enable_ipset = True

6、编辑 /etc/neutron/plugins/ml2/openvswitch_agent.ini文件:

[ovs]
local_ip=TUNNEL_INTERFACE_IP_ADDRESS
bridge_mappings=vlan:br-vlan,external:br-ex
[agent]
tunnel_types=gre,vxlan
l2_population=True
prevent_arp_spoofing=True
[securitygroup]
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group=True

取代 TUNNEL_INTERFACE_IP_ADDRESS与接口的IP地址处理GRE / VXLAN项目网络。
1. 配置L3代理。编辑 /etc/neutron/l3_agent.ini文件:

[DEFAULT]
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
external_network_bridge=

Note请注意
的 external_network_bridge选择故意不包含值。
2. 配置DHCP代理。编辑 /etc/neutron/dhcp_agent.ini文件:

[DEFAULT]
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=True
  1. 配置元数据代理。编辑 /etc/neutron/metadata_agent.ini文件:
[DEFAULT]
nova_metadata_ip=controller
metadata_proxy_shared_secret=METADATA_SECRET

6、创建链接

# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

7、启动服务
创建网桥

# ovs-vsctl add-br br-ex

将网卡加入到网桥中

# ovs-vsctl add-port br-ex INTERFACE_NAME
# systemctl restart openstack-nova-api.service
# systemctl start neutron-openvswitch-agent.service neutron-l3-agent.
service neutron-dhcp-agent.service neutron-metadata-agent.service
# systemctl enable neutron-openvswitch-agent.service neutron-l3-agent.
service neutron-dhcp-agent.service neutron-metadata-agent.service

(三)计算节点
1. 编辑 /etc/sysctl.conf

net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1

2.执行下列命令,立即生效

# sysctl -p

3.安装软件包

# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch

4.编辑 /etc/neutron/neutron.conf文件,并完成以下动作:
• 在 [数据库]节中,注释掉 连接选项,因为计算节点不直接访问数据库。
• 在 [默认的]和 [oslo_messaging_rabbit]部分,配置RabbitMQ消息队列访问:

[DEFAULT]
rpc_backend = rabbit
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

1

替换 RABBIT_PASS为你的密码
• 在 [默认的]和 [keystone_authtoken]部分,配置身份服务访问:

[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS

替换 NEUTRON_PASS为你的密码
Note请注意
注释掉或删除任何其他选项 [keystone_authtoken]部分。
• 在 [oslo_concurrency]节中,配置锁路径:

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

5.编辑 /etc/neutron/plugins/ml2/openvswitch_agent.ini

[ovs]
local_ip = TUNNEL_INTERFACE_IP_ADDRESS
bridge_mappings = vlan:br-vlan
[agent]
tunnel_types = gre,vxlan
l2_population = True
prevent_arp_spoofing = True
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group = True

6.编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件
在[ml2]部分,使平、VLAN和VXLAN网络:

[ml2]
type_drivers = flat,vlan,vxlan

在[ml2]部分,使VXLAN自助服务网络:

[ml2]
tenant_network_types = vxlan

在[ml2]部分,使Linux桥和2层人口机制:

[ml2]
mechanism_drivers = openvswitch,l2population

在[ml2]部分,启用端口安全扩展司机:

[ml2]
extension_drivers = port_security

在[ml2_type_flat]部分,虚拟网络配置提供者平面网络:

[ml2_type_flat]
flat_networks = provider

在[ml2_type_vxlan]部分,配置VXLAN网络标识符范围自助服务网络:

[ml2_type_vxlan]
vni_ranges = 1:1000

在[securitygroup]部分,使ipset提高效率的安全组规则:

[securitygroup]
enable_ipset = True

配置nova配置文件
•7编辑 /etc/nova/nova.conf文件,并完成以下动作:
o 在 [neutron]节中,配置访问参数:

[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS

替换 NEUTRON_PASS为你的密码
8.启动服务

# systemctl enable neutron-openvswitch-agent.service
# systemctl start neutron-openvswitch-agent.service
# systemctl restart openstack-nova-compute.service

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91212

(0)
N27_DanryN27_Danry
上一篇 2018-01-22 14:27
下一篇 2018-01-22 19:17

相关推荐

  • 网络分层基础概念与TCP,IP协议解析

    网络分层基础概念:   与ISO的OSI网络分层模型不同。网络分层事实上的标准为TCP/IP 的网络分层模型。   下图是他们是他们之间的对应关系。   左边为OSI网络分层模型。右边为TCP/IP的网络分层模型。 网络分层,是将一个大而复杂的网络,拆分为多个层次,每个层次单独完成自己的任务,多个层次再结合起来,完成一个复杂的通…

    2017-05-04
  • 8月5日第七节课作业

    一、当天练习 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使 用两种方式) …

    Linux干货 2016-08-08
  • Centos6系统救援模式

    CentOS 6系统救援模式 在学习了CentOS 5、6系统启动流程与启动故障排除之后,为了加深印象进行了如下破坏性尝试。 删除/boot目录与/etc/fstab文件后尝试修复系统 1. 首先是第一步删除/boot目录与/etc/fstab 删除/boot /etc/fstab 可以看到虽然boot目录无法删除但是目录中的文件已经全部删掉了。 2. 重新…

    Linux干货 2016-11-24
  • 面向对象

    语言分类 面向机器:抽象成机器指令,机器容易理解。代表:汇编语言 面向过程:一件事情分步骤来完成,出现各种情况有解决办法一一对应,问题规模小可以步骤化、按部就班的处理。代表:C语言 面向对象oop(object Oriented Programming):随着计算机解决问题的规模扩大、情况更复杂,需要很多部分协作,面向过程编程就不合适了,演变出了面向对象编程…

    Linux干货 2017-11-13
  •   在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?

      在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?   服务器硬盘出现硬件故障时,大家应注意以下几点:   1、硬盘出现异声,此时磁头已不正常寻址,为防止打伤盘体,需立即断电不可拆解硬盘,需交有超净间的专业公司拆开检查。   2、BIOS不认盘,找不到硬盘,先请计算机工程师仔…

    Linux干货 2016-04-05
  • 集群-ipvsadm和NAT实验(3)

    纠正:报文进入内核空间后,当到达input链时发现是一个集群服务时,则直接发送到postrouting链,不经过forward链。 调度算法: 1、静态方法: rr:轮询,即依照次序从所有RS中进行挑选 wrr:加权轮询,按照权重在RS中进行轮询 sh:source hashing,源地址哈希,即对来自相同客户端的请求发送至同一RS,这样会破坏负载均衡效果。…

    Linux干货 2015-12-15