Licensed under the Apache License, Version 2.0 (the “License”); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS, WITHOUTWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See theLicense for the specific language governing permissions and limitationsunder the License.Convention for heading levels in Open vSwitch documentation:=======  Heading 0 (reserved for the title in a document)-------  Heading 1~~~~~~~  Heading 2+++++++  Heading 3'''''''  Heading 4Avoid deeper levels because they do not render well.

=================
Why Open vSwitch?

Hypervisors need the ability to bridge traffic between VMs and with the outside
world. On Linux-based hypervisors, this used to mean using the built-in L2
switch (the Linux bridge), which is fast and reliable. So, it is reasonable to
ask why Open vSwitch is used.

The answer is that Open vSwitch is targeted at multi-server virtualization
deployments, a landscape for which the previous stack is not well suited. These
environments are often characterized by highly dynamic end-points, the
maintenance of logical abstractions, and (sometimes) integration with or
offloading to special purpose switching hardware.

The following characteristics and design considerations help Open vSwitch cope
with the above requirements.

The mobility of state

All network state associated with a network entity (say a virtual machine)
should be easily identifiable and migratable between different hosts. This may
include traditional “soft state” (such as an entry in an L2 learning table), L3
forwarding state, policy routing state, ACLs, QoS policy, monitoring
configuration (e.g. NetFlow, IPFIX, sFlow), etc.

Open vSwitch has support for both configuring and migrating both slow
(configuration) and fast network state between instances. For example, if a VM
migrates between end-hosts, it is possible to not only migrate associated
configuration (SPAN rules, ACLs, QoS) but any live network state (including,
for example, existing state which may be difficult to reconstruct). Further,
Open vSwitch state is typed and backed by a real data-model allowing for the
development of structured automation systems.

Responding to network dynamics

Virtual environments are often characterized by high-rates of change. VMs
coming and going, VMs moving backwards and forwards in time, changes to the
logical network environments, and so forth.

Open vSwitch supports a number of features that allow a network control system
to respond and adapt as the environment changes. This includes simple
accounting and visibility support such as NetFlow, IPFIX, and sFlow. But
perhaps more useful, Open vSwitch supports a network state database (OVSDB)
that supports remote triggers. Therefore, a piece of orchestration software can
“watch” various aspects of the network and respond if/when they change. This is
used heavily today, for example, to respond to and track VM migrations.

Open vSwitch also supports OpenFlow as a method of exporting remote access to
control traffic. There are a number of uses for this including global network
discovery through inspection of discovery or link-state traffic (e.g. LLDP,
CDP, OSPF, etc.).

Maintenance of logical tags

Distributed virtual switches (such as VMware vDS and Cisco’s Nexus 1000V) often
maintain logical context within the network through appending or manipulating
tags in network packets. This can be used to uniquely identify a VM (in a
manner resistant to hardware spoofing), or to hold some other context that is
only relevant in the logical domain. Much of the problem of building a
distributed virtual switch is to efficiently and correctly manage these tags.

Open vSwitch includes multiple methods for specifying and maintaining tagging
rules, all of which are accessible to a remote process for orchestration.
Further, in many cases these tagging rules are stored in an optimized form so
they don’t have to be coupled with a heavyweight network device. This allows,
for example, thousands of tagging or address remapping rules to be configured,
changed, and migrated.

In a similar vein, Open vSwitch supports a GRE implementation that can handle
thousands of simultaneous GRE tunnels and supports remote configuration for
tunnel creation, configuration, and tear-down. This, for example, can be used
to connect private VM networks in different data centers.

Hardware integration

Open vSwitch’s forwarding path (the in-kernel datapath) is designed to be
amenable to “offloading” packet processing to hardware chipsets, whether housed
in a classic hardware switch chassis or in an end-host NIC. This allows for the
Open vSwitch control path to be able to both control a pure software
implementation or a hardware switch.

There are many ongoing efforts to port Open vSwitch to hardware chipsets. These
include multiple merchant silicon chipsets (Broadcom and Marvell), as well as a
number of vendor-specific platforms. The “Porting” section in the documentation
discusses how one would go about making such a port.

The advantage of hardware integration is not only performance within
virtualized environments. If physical switches also expose the Open vSwitch
control abstractions, both bare-metal and virtualized hosting environments can
be managed using the same mechanism for automated network control.

Summary

In many ways, Open vSwitch targets a different point in the design space than
previous hypervisor networking stacks, focusing on the need for automated and
dynamic network control in large-scale Linux-based virtualization environments.

The goal with Open vSwitch is to keep the in-kernel code as small as possible
(as is necessary for performance) and to re-use existing subsystems when
applicable (for example Open vSwitch uses the existing QoS stack). As of Linux
3.3, Open vSwitch is included as a part of the kernel and packaging for the
userspace utilities are available on most popular distributions.

Why Open vSwitch?相关推荐

  1. linux启用日志记录功能,Linux下启用Open vSwitch的日志功能以便调试和排障

    问题 我试着为我的Open vSwitch部署排障,鉴于此,我想要检查它的由内建日志机制生成的调试信息.我怎样才能启用Open vSwitch的日志功能,并且修改它的日志等级(如,修改成INFO/DE ...

  2. Open vSwitch(OVS)版本与Linux内核的关系

    不同的Linux kernel需要不同的Open vSwitch版本, Ubuntu16.04的最新版Linux内核是4.15.2,只能在上面安装Open vSwitch的2.10和2.11版本. O ...

  3. Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15

    Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15 关于Open vSwitch(OVS)版本与Linux内核的关系,参考这篇文章:Open vSwitch( ...

  4. Open vSwitch 安装

    1. 从官方网站http://openvswitch.org/中下载Open vSwitch源代码包,最新版本可使用下面的链接: http://openvswitch.org/releases/ope ...

  5. FD.io/VPP — L2 vSwitch

    目录 文章目录 目录 L2 vSwitch L2 vSwitch 操作指令集合 MAC address ARP Bridge Domain 应用示例 L2 Switching VLAN L2 Swit ...

  6. Open vSwitch相关字段详解之L4:TCP, UDP, SCTP

    文章目录 字段概览 字段详解 TCP tcp_src/tp_src.tcp_dst/tp_dst tcp_flags UDP udp_src.udp_dst SCTP sctp_src.sctp_ds ...

  7. Open vSwitch VLAN相关字段详解(dl_vlan、dl_vlan_pcp、vlan_vid、vlan_pcp、vlan_tci)

    文章目录 字段概览 字段详解 vlan_tci vlan_vid vlan_pcp dl_vlan/dl_vlan_pcp 字段概览 字段名 长度 格式 Masking 前置项 访问权限 OpenFl ...

  8. 在CentOS7上配置Open vSwitch和VXLAN

    在CentOS7上配置Open vSwitch和VXLAN 环境 实验环境 主机环境 [yuwh@node0 ~]$ uname -a Linux node0 3.10.0-123.9.3.el7.x ...

  9. The Design and Implementation of Open vSwitch

    文章名称:The Design and Implementation of Open vSwitch 文章来源:Pfaff B , Pettit J , Koponen T , et al. The ...

  10. Open vSwitch系列实验(一):Open vSwitch使用案例扩展实验

    一.实验目的 通过python脚本调用OpenvSwitch命令: 学习Mininet基于python脚本创建拓扑的实现: 进一步深度使用"ovs-vsctl"命令直接控制Open ...

最新文章

  1. 慕课python课后作业_python基础1习题练习
  2. python3 分割函数 partition rpartition 函数
  3. java用递归删除文件夹_Java中通过递归调用删除文件夹下所有文件
  4. boost::hana::value_or用法的测试程序
  5. Web前端开发笔记——第二章 HTML语言 第三节 文本格式化标签
  6. 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515
  7. 550什么意思_布草知识 | 都是羽绒,为什么价格大不同?
  8. Jmeter中生成随机函数和使用csv文件数据
  9. 我们在 web 应用开发过程中经常遇到输出某种编码的字 符, 如 iso8859-1 等, 如何输出一个某种编码的字符串?...
  10. 【基础教程】基于matlab图像去噪总结【含Matlab源码 1274期】
  11. C语言中callback回调函数,C++回调函数(callback)的使用
  12. MATLAB突然打不开,窗口闪一下就退了,一种亲试解决方法:
  13. 如何快速让网站发布的文章被百度收录
  14. 庚子新年玩扫雷(模拟)(东北农业大学庚子新年欢乐赛)
  15. vscode中显示隐藏文件
  16. 产业分析:2022南京市产业全景
  17. 数据结构(Java)-树-堆排序的实现
  18. 手机抢红包助手深陷作弊指责 部分外挂植入木马
  19. Windows突然的软件更新
  20. java自动化测试语言高级之MySQL 连接

热门文章

  1. Java多线程学习十六:读写锁 ReadWriteLock 获取锁有哪些规则
  2. 美创意 -vue 组件的网站
  3. Java并发编程-ReentrantLock可重入锁
  4. 【redis】分布式锁实现,与分布式定时任务
  5. JavaScript eval
  6. Razor 中的@rendersection
  7. 前端开发必须说的那些事之——同源策略(same origin policy)
  8. 2MyBatis入门--深入浅出MyBatis技术原理与实践(笔记)
  9. maven pom.xml指定jdk
  10. Codeforces 699D Fix a Tree 并查集