理解OpenStack中的OpenvSwitch的几个要点

原创 2014年02月18日 10:51:07
OpenvSwitch是实现虚拟化网络的重要基础组件,在OpenStack中利用OpenvSwitch作为底层部件来完成虚拟网络提供和租户网络管理。
在部署和应用OpenStack的过程中,可能会碰到网络相关的一些问题,能够准确的理解OpenStack中OpenvSwitch的角色和网络的理念,会有助于解决问题和快速部署。

OpenvSwitch可以认为是一种Linux Bridge的实现,只不过功能更多一些。因此,它完全可以替代Bridge。原先Bridge可以实现的功能在OpenvSwitch中都可以实现。

OpenvSwitch不等于OpenFlow Switch,恰恰相反,支持OpenFlow只是它的一个feature而已,可能还没有支持OvsDB协议更重要。因此,它在实现上自定义了很多地方,只是兼容OpenFlow协议。比如在OpenvSwitch中用户态的vswitchd和内核态的datapath。vswitchd会总管流表,而datapath中有精确匹配的部分流表,类似cache架构。

正因为OpenvSwitch不仅仅是一个OpenFlow Switch,它的流表组成除了of流表外,还有其他一些(隐藏)流表。这些隐藏流表是由于默认交换机和控制器在同一网络中(in-band),因此要保证两者互通。要关闭默认的inband可以通过“ovs-vsctl set controller br0 connection-mode=out-of-band”。

检查所有流表信息可以通过ovs-appctl bridge/dump-flows br0,这往往要比ovs-vsctl dump-flows br0打印出更多的信息来。ovs-dpctl dump-flows [dp]可以打印出datapath的流表信息。ovs-appctl dpif/dump-flows <br>可以打印出指定bridge上的datapath流。

OpenvSwitch可以实现访问控制功能,通过转发规则,可以实现简单的安全行为,包括通过、禁止等。现在OpenStack中的安全组是由iptables实现的,造成在节点上多了好几级的Bridge。理论上,以后都可以统一由OpenvSwitch来管理。

支持VLan(eth0为trunk口,创建vlan 1的tap0口):
ovs-vsctl add-br br0

ovs-vsctl add-port br0 eth0

ovs-vsctl add-port br0 tap0 tag=1


OpenvSwitch 在无法连接到控制器时候(fail mode)可以选择两种fail状态,一种是standalone,一种是secure状态。如果是配置了standalone(或者未设置fail mode)mode,在三次探测控制器连接不成功后,此时ovs-vswitchd将会接管转发逻辑(后台仍然尝试连接到控制器,一旦连接则退出fail状态),OpenvSwitch将作为一个正常的mac 学习的二层交换机。如果是配置了secure mode,则ovs-vswitchd将不会自动配置新的转发流表,OpenvSwitch将按照原先有的流表转发。可以通过下面命令进行管理。

ovs-vsctl get-fail-mode bridge
ovs-vsctl del-fail-mode bridge
ovs-vsctl set-fail-mode bridge standalone|secure



【OVS2.5.0源码分析】vlan&trunk实现原理分析(1)

传统交换机的端口可以按照vlan可以划分为access、trunk和hybrid三类接口。 首先,我们先看OVS的VLAN实现原理,最后对比OVS与传统交换机的差异。 OVS中,数据面的转发流表都是...
  • one_clouder
  • one_clouder
  • 2016年08月14日 23:10
  • 1814

部署完openstack后的网络配置(一)

需求分析: 部署完成后openstack,创建出虚拟机以后发现,不能和外网相通,比如rdo默认装完,public网络默认的public网络是vxlan,并且不能创建别的类型public网络类型的选择创...
  • linglong0820
  • linglong0820
  • 2015年09月28日 19:12
  • 866

Openvswtich 学习笔记

场景: 创建一个Virtual Switch,支持VLAN,支持MAC-Learning 包含下面四个Port: P1, truck portP2, VLAN 20P3, P4 VLAN 30 ...
  • popsuper1982
  • popsuper1982
  • 2014年11月04日 17:13
  • 1424

Neutron OVS 学习

OpenStack网络配置:一个tenant, 2个虚机 Type driver: GRE, Mechanism driver: OVS一个public network: ext-net 和相应...
  • S1234567_89
  • S1234567_89
  • 2016年07月08日 16:33
  • 1042

OpenvSwitch完全使用手册

1 什么是OpenvSwitch OpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and Virtual...
  • tantexian
  • tantexian
  • 2015年07月01日 10:17
  • 40025

OVS 网桥的Patch端口学习笔记

原文:http://blog.scottlowe.org/2012/11/27/connecting-ovs-bridges-with-patch-ports/ 一些理解: OpenSwi...
  • wiborgite
  • wiborgite
  • 2016年11月02日 23:12
  • 1083

OVS+KVM 虚拟环境测试

一. 基础介绍:ovs当前最新代码包主要包括以下模块和特性:    ovs-vswitchd主要模块,实现switch的 daemon,包括一个支持流交换的Linux内核模块;    ...
  • qq_15437629
  • qq_15437629
  • 2015年05月16日 10:09
  • 3892

自备ovs-vsctl命令详解

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock 这个问题往往是没有安装好。yum inst...
  • liushaochan123
  • liushaochan123
  • 2013年02月20日 19:41
  • 1517

OVS 配置虚机vlan

OVS 配置虚机vlan
  • daiominribao
  • daiominribao
  • 2017年02月20日 11:03
  • 1378

OpenStack网络实战系列一:通过Openvswitch实践了解交换机的基本概念和操作

本文通过openvswitch和Linux网络命名空间的基本操作帮助大家初步理解网络交换机的基本概念及操作,为后续理解和研究openstack网络概念打下初步基础。...
  • zztflyer
  • zztflyer
  • 2016年07月04日 19:21
  • 2766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:理解OpenStack中的OpenvSwitch的几个要点
举报原因:
原因补充:

(最多只允许输入30个字)