热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStackLinuxBridge网络模式修改为OpenvSwitch网络模式

一、测试环境二、查询当前openstack的网络类型三、neutron的配置(controller节点)1.关闭Linuxbridge服务2.重建neutron数据库3.安装ope

一、测试环境
二、查询当前openstack的网络类型
三、neutron的配置(controller节点)
1. 关闭Linuxbridge服务
2. 重建neutron数据库
3. 安装openvswitch软件包
4. 配置ML2 插件
5. 配置ML3 插件
6. 配置openvswitch_agent
7. 配置dhcp
8. 初始化neutron数据库
9. 启动openswitch服务
四、neutron的配置(compute节点)
1. 关闭Linuxbridge服务
2. 安装openvswitch软件包
3. 配置openvswitch_agent
4. 启动openswitch服务
五、控制节点执行以下操作
1. 查询网络的类型是否为OVS
2. 删除之前留下的Linuxbridge网桥信息
3. 添加br-ex网桥
4. 查看ovs的状态
六、dashboard界面正常创建网络
1. 创建完成如下图
2. 创建云主机访问百度测试


一、测试环境

基于这个篇博客的环境来进行配置:OpenStack Stein版部署

 


二、查询当前openstack的网络类型

[root@controller ~]# openstack network agent list
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| 3adf1be0-6bb2-4407-97a8-4650c853c37a | Linux bridge agent | compute | None | :-) | UP | neutron-linuxbridge-agent |
| 608949e5-f0de-451e-9c58-d43d47901ed8 | DHCP agent | controller | nova | :-) | UP | neutron-dhcp-agent |
| 8bbbd0b9-80ee-49d7-936c-2d357847c0a6 | Linux bridge agent | controller | None | :-) | UP | neutron-linuxbridge-agent |
| b237a133-3ecd-485a-8270-dd5708a175cd | Metadata agent | controller | None | :-) | UP | neutron-metadata-agent |
| e98685f1-f6f3-499a-89f1-5b215cbe0a8d | L3 agent | controller | nova | :-) | UP | neutron-l3-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+

 


三、neutron的配置(controller节点)

原来的配置不动,只需要修改如下几个文件里面的内容即可

1. 关闭Linuxbridge服务

[root@controller ~]# systemctl stop neutron-linuxbridge-agent.service
[root@controller
~]# systemctl disable neutron-linuxbridge-agent.service
Removed symlink
/etc/systemd/system/multi-user.target.wants/neutron-linuxbridge-agent.service.

2. 重建neutron数据库

MariaDB [(none)]> DROP DATABASE neutron;
MariaDB [(none)]
> CREATE DATABASE neutron;
MariaDB [(none)]
> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '000000';
MariaDB [(none)]
> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '000000';

3. 安装openvswitch软件包

[root@controller ~]# yum install openstack-neutron-openvswitch -y

4. 配置ML2 插件

修改如下内容即可
[root@controller
~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers
= flat,vlan,vxlan
tenant_network_types
= vxlan
mechanism_drivers
= openvswitch,l2population
extension_drivers
= port_security
[ml2_type_flat]
flat_networks
= provider
[securitygroup]
enable_ipset
= true
[ml2_type_vxlan]
vni_ranges
= 1:1000
[ml2_type_vlan]
network_vlan_ranges
= default:3001:4000

5. 配置ML3 插件

[root@controller ~]# vi /etc/neutron/l3_agent.ini
[DEFAULT]
verbose
= true
interface_driver
= neutron.agent.linux.interface.OVSInterfaceDriver
external_network_bridge
= br-ex

 


6. 配置openvswitch_agent

[root@controller ~]# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
[ovs]
tunnel_bridge
= br-tun
local_ip
= 192.168.100.10 #隧道IP地址即管理网卡IP地址
integration_bridge
= br-int
tenant_network_type
= vxlan
tunnel_type
= vxlan
tunnel_id_ranges
= 1:1000
enable_tunneling
= true
bridge_mappings
= provider:br-ex
prevent_arp_spoofing
= true
[agent]
tunnel_types
= vxlan
l2_population
= true
[securitygroup]
firewall_driver
= neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group
= true

7. 配置dhcp

[root@controller ~]# vi /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver
= neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver
= neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata
= true

 


8. 初始化neutron数据库

[root@controller ~]# 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

9. 启动openswitch服务

[root@controller ~]# systemctl restart neutron-server.service neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
[root@controller
~]# systemctl enable neutron-server.service neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service

 


四、neutron的配置(compute节点)


1. 关闭Linuxbridge服务

[root@compute ~]# systemctl stop neutron-linuxbridge-agent.service
[root@compute
~]# systemctl disable neutron-linuxbridge-agent.service

2. 安装openvswitch软件包

[root@controller ~]# yum install openstack-neutron-openvswitch -y

3. 配置openvswitch_agent

[root@compute ~]# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
[ovs]
tunnel_bridge
= br-tun
local_ip
= 192.168.100.20 #隧道IP地址 管理网卡IP地址
integration_bridge
= br-int
tenant_network_type
= vxlan
tunnel_type
= vxlan
tunnel_id_ranges
= 1:1000
enable_tunneling
= true
[agent]
tunnel_types
= vxlan
l2_population
= true
[securitygroup]
firewall_driver
= neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group
= true

 


4. 启动openswitch服务

[root@compute ~]# systemctl start neutron-openvswitch-agent.service
[root@compute
~]# systemctl enable neutron-openvswitch-agent.service

 


五、控制节点执行以下操作


1. 查询网络的类型是否为OVS

[root@controller ~]# openstack network agent list
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
| 1e651e34-d239-43fb-8af7-553411afe406 | Open vSwitch agent | compute | None | :-) | UP | neutron-openvswitch-agent |
| 2f8e4601-47ae-4ce6-8c8f-9ed7b3fe648c | Metadata agent | controller | None | :-) | UP | neutron-metadata-agent |
| 41e68b12-2003-4534-97a4-107bb0390cb7 | Linux bridge agent | compute | None | XXX | UP | neutron-linuxbridge-agent |
| 825f9141-08bd-47f7-8cc5-7eeee9cbb522 | DHCP agent | controller | nova | :-) | UP | neutron-dhcp-agent |
| a6bf0bf8-508e-4bb0-9540-2c41c00b83bd | Open vSwitch agent | controller | None | :-) | UP | neutron-openvswitch-agent |
| f62de0be-8a0a-4037-b3b7-01070c10c885 | L3 agent | controller | nova | :-) | UP | neutron-l3-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+

2. 删除之前留下的Linuxbridge网桥信息

不操作这一步添加br-ex会报错

先使用 brctl delif 网桥名称 绑定网卡的名称 这条命令解除网卡的绑定
brctl delif brq59014ca7
-b8 ens34
然后down掉对应的网桥 在进行删除即可
[root@controller
~]# ifconfig brq59014ca7-b8 down
[root@controller
~]# ifconfig brqdb369f01-a7 down
[root@controller
~]# ifconfig vxlan-1 down
[root@controller
~]# brctl show 查看网桥信息
bridge name bridge id STP enabled interfaces
brq59014ca7
-b8 8000.000000000000 no
brqdb369f01
-a7 8000.000000000000 no
[root@controller
~]# brctl delbr brq59014ca7-b8
[root@controller
~]# brctl delbr brqdb369f01-a7
[root@controller
~]# brctl show
bridge name bridge id STP enabled interfaces

 


3. 添加br-ex网桥

[root@controller ~]# ovs-vsctl add-br br-ex
[root@controller
~]# ovs-vsctl add-port br-ex ens34
然后重启以下控制节点和计算节点的网络服务即可

 


4. 查看ovs的状态

br-ex 上网用的主要连接外部网卡
br-tun 隧道网卡,建立隧道的
br-int 确保云主机可以上网的
br-tun这里会显示隧道的IP地址

[root@controller ~]# ovs-vsctl show
[root@controller
~]# ovs-vsctl show
8f6d9ea5
-4be3-409e-af6e-e9c2b1783dfe
Manager
"ptcp:6640:127.0.0.1"
is_connected:
true
Bridge br
-ex
Controller
"tcp:127.0.0.1:6633"
is_connected:
true
fail_mode: secure
Port
"ens34"
Interface
"ens34"
Port br
-ex
Interface br
-ex
type:
internal
Port phy
-br-ex
Interface phy
-br-ex
type: patch
options: {peer
=int-br-ex}
Bridge br
-tun
Controller
"tcp:127.0.0.1:6633"
is_connected:
true
fail_mode: secure
Port
"vxlan-c0a86414"
Interface
"vxlan-c0a86414"
type: vxlan
options: {df_default
="true", egress_pkt_mark="0", in_key=flow, local_ip="192.168.100.10", out_key=flow, remote_ip="192.168.100.20"}
Port patch
-int
Interface patch
-int
type: patch
options: {peer
=patch-tun}
Port br
-tun
Interface br
-tun
type:
internal

六、dashboard界面正常创建网络


1. 创建完成如下图

 

 

 


2. 创建云主机访问百度测试

 

 

 

 

摘自: https://blog.csdn.net/qq_45631844/article/details/120822263

 



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • JAVA调用存储过程CallableStatement对象的方法及使用示例
    本文介绍了使用JAVA调用存储过程CallableStatement对象的方法,包括创建CallableStatement对象、传入IN参数、注册OUT参数、传入INOUT参数、检索结果和OUT参数、处理NULL值等。通过示例代码演示了具体的调用过程。 ... [详细]
author-avatar
苏小丫123_877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有