Neutron之OVS

2023-05-16

OVS即开放虚拟交换标准,不仅仅是为了支持OpenFlow协议,而是为了给虚拟化平台上运行的虚拟机实例提供一套纯软件实现的路由交换协议栈。具体点说,Open vSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!它旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP,802.1ag)。

Standard 802.1Q VLAN model with trunk and access ports;
NIC bonding with or without LACP on upstream switch;
NetFlow, sFlow(R), and mirroring for increased visibility;
QoS (Quality of Service) configuration, plus policing;
Geneve, GRE, GRE over IPSEC, VXLAN, and LISP tunneling;
802.1ag connectivity fault management;
OpenFlow 1.0 plus numerous extensions;
Transactional configuration database with C and Python bindings;
High-performance forwarding using a Linux kernel module;

​ OVS bridge 有两种模式:“normal” 和 “flow”。“normal” 模式的 bridge 同普通的 Linux 桥,而 “flow” 模式的 bridge 是根据其流表(flow tables) 来进行转发的。Neutron 使用两种 OVS bridge:br-int 和 br-tun。其中,br-int 是一个 “normal” 模式的虚拟网桥,而 br-tun 是 “flow” 模式的,它比 br-int 复杂得多。详情参考:Neutron二层网络服务实现原理

OVS基础架构

Open vSwitch分为三层:

1)管理层即:ovs-dpctl、ovs-vsctl、ovs-ofctl、ovsdb-tool。
2)业务逻辑层即:vswitchd、ovsdb。
3)底层服务层即:datapath。

ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-based switching。
ovsdb:轻量级的数据库服务,主要保存了整个OVS的配置信息,包括接口,交换内容,VLAN等等。ovs-vswitchd会根据数据库中的配置信息工作。
ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则。
ovs-vsctl:主要是获取或者更改ovs-vswitchd的配置信息,此工具操作的时候会更新ovsdb-server中的数据库。
ovs-ofctl:用来查询和控制Ovs作为Openflow交换机和控制器。

OVS常见命令

ovs-vsctl 系列

添加网桥

ovs-vsctl add-br br-int

列出网桥

ovs-vsctl list-br

给网桥添加端口

ovs-vsctl add-port br-int tap-xxx

列出挂载某网络接口的所有网桥

ovs-vsctl port-to-br tap-xxx

查看全部信息

ovs-vsctl show

ovs-ofctl 系列

查看所有网桥

ovs-vsctl list bridge

查看br-tun网桥

ovs-ofctl show br-tun

查看br-tun网桥上所有端口的状态
ovs-ofctl dump-ports br-tun

添加一条流表规则 丢弃从port2上发来的所有数据表

ovs-ofctl add-flow br-tun idle_timeout=120,in_port=2,actions=drop

其中每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。
基本字段包括: 生效时间 duration_sec,所属表项 table_id,优先级 priority,处理的数据包数 n_packets,空闲超时时间 idle_timeout ,其中 idle_timeout 以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为 0 表示该流规则永不过期,idle_timeout 将不包含于 ovs-ofctl dump-flows brname 的输出中。

条件字段包括: 输入端口号 in_port,dl_vlan=vlan(数据包的 VLAN Tag 值,范围是 0-4095,0xffff 代表不包含 VLAN Tag 的数据包),源目的 mac 地址 dl_src/dl_dst,源目的 ip 地址 nw_src/nw_dst,数据包类型 dl_type,网络层协议类型 nw_proto,匹配源或者目标的 MAC 地址01:00:00:00:00:00/01:00:00:00:00:00 代表广播地址,00:00:00:00:00:00/01:00:00:00:00:00 代表单播地址,dl_type=ethertype匹配以太网协议类型,dl_type=0x0800 代表 IPv4 协议,dl_type=0x086dd 代表 IPv6 协议,dl_type=0x0806 代表 ARP 协议。这些字段可以任意组合,但在网络分层结构中底层的字段未给出确定值时上层的字段不允许给确定值,即一 条流规则中允许底层协议字段指定为确定值,高层协议字段指定为通配符(不指定即为匹配任何值),而不允许高层协议字段指定为确定值, 而底层协议字段却为通配符(不指定即为匹配任何值),否则,ovs-vswitchd 中的流规则将全部丢失,网络无法连接。

动作字段包括:正常转发 normal、定向到某交换机端口 output:port、丢弃 drop、mod_vlan_vid、strip_vlan、更改源目的 mac 地址 mod_dl_src/mod_dl_dst 等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。 

 就在我抄这边文档的时候,没错,这篇是抄袭的,我的qq技术群有人离开了,有时候想想,有些人来了又走了,有些人来了一直都在。不知道为什么过了三十岁突然感觉很小的一件事情也能引发我的一些感慨。

转载于:https://www.cnblogs.com/wanstack/p/8392858.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Neutron之OVS 的相关文章

  • Centos7搭建KVM虚拟化平台之基于OVS网桥

    Centos7搭建KVM虚拟化平台之基于OVS网桥 文章目录 Centos7搭建KVM虚拟化平台之基于OVS网桥一 什么是虚拟化技术 xff1f 为什么要用虚拟化技术 xff1f 二 Qemu KVM基本工作原理分析三 KVM和Qemu基于
  • Neutron运营商网络和租户网络详解

    由租户创建并且管理的网络 xff0c Neutron称之为租户网络 但是Openstack不是万能的 xff0c Neutron也不是万能的 还有很多网络不在Neutron管理范围内 xff08 Neutron称之为外部网络 xff09 有
  • openstack-neutron-OVS agent(持续更新)

    概述 ML2Plugin的主要工作是管理虚拟网络资源 xff0c 保证数据正确无误 xff0c 具体物理设备的设置则由Agent完成 L2Agent通常运行在Hypervisor xff0c 与neutron server通过RPC通信 x
  • Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(8)

    问题导读 xff1a 1 怎样使用arp responder xff1f 2 怎样搭建l2pop环境 xff1f 3 ARP Responder arp responder 的原理不复杂 Neutorn DB 中保存了所有的端口的 MAC
  • ipv6 neutron应用(一)

    一 neutron支持ipv6 xff0c 有2个重要的属性 1 ipv6 ra mode 2 ipv6 address mode 这2个属性都可以设置下面三个值 1 slaac 2 dhcpv6 stateful 3 dhcpv6 sta
  • OpenStack OVS GRE/VXLAN

    https www jianshu com p 0b52de73a4b3 OpenStack OVS GRE VXLAN网络 学习或者使用OpenStack普遍有这样的现象 xff1a 50 的时间花费在了网络部分 xff1b 30 的时间
  • OVS 使用总结

    1 简介 Open vSwitch 是一个用C语言开发的多层虚拟交换机 1 1 工作原理 内核模块实现了多个 数据路径 xff08 类似网桥 xff09 每个都可以有多个 vports xff08 类似网桥的端口 xff09 每个数据路径也
  • 关于ovs中ovs-ofctl add-flow的“in_port”问题

    问题提出 在之前做的docker容器互联的实验中有这样一句命令 xff1a ovs ofctl add flow s1 span class token string 34 in port 61 1 actions 61 drop 34 s
  • OpenStack 之 OVS介绍

    一 概述 Open vSwitch的官方定义 xff1a Open vSwitch是一个具有工业级质量的多层虚拟交换机 通过可编程扩展 xff0c 可以实现大规模网络的自动化 xff08 配置 管理 维护 xff09 它支持现有标准管理接口
  • OpenStack Neutron 对接OVN 使用 networking-ovn

    OVN是OVS的控制平面 xff0c 它给 OVS 增加了对虚拟网络的原生支持 xff0c 大大提高了 OVS 在实际应用环境中的性能和规模 使用neutron 配置mechanism drivers 为OVN时 xff0c 会有以下优点
  • OVS Bond lacp源码分析

    近期项目中要使用Ovs bond接口 xff0c Ovs Bond 只有三种模式 xff1a balance tcp xff0c balance slb xff0c active backup 这三种模式的工作方式如下 xff1a 1 ac
  • ovs-vswitchd dbg

    root 64 Standard PC i440FX PIIX 1996 home smoke test gdb fGNU gdb Ubuntu 8 1 1 0ubuntu1 8 1 1 Copyright 2018 Free Softwa
  • VM跨主机通信ovs配置

    如果位于不同物理主机上的两个VM需要通信 xff0c 那么底层的虚拟交换机ovs需要配置tunnel端口 OVS中支持添加隧道 Tunnel 端口 xff0c 常见隧道技术有两种gre或vxlan 隧道技术是在现有的物理网络之上构建一层虚拟
  • [云计算]OpenStack - Neutron

    Neutron在OpenStack中的位置 可以为虚拟机或者 OpenStack 组件提供网络服务 xff0c xff08 由 Nova network 独立出来的 xff09 随着需承载业务的能力的增长作为 Nova 子组件无法满足 过程
  • OVS和OVN 2.8新功能

    OVS和OVN 2 8新功能 本文最初整理在我的github上SDN Learning notes 本文翻译自ovs官方文档 本文档主要是关于2017年8月底发布的Open vSwitch 2 8中添加的内容 xff0c 重点介绍OVN中的
  • OVS于DVS

    撰写时间 xff1a 2022 2 28 分布式虚拟交换机 xff08 DVS 注意 xff1a DVS是二层交换机 DVS特点 xff1a 1 集中管理 xff1a 通过统一的Portal页面进行集中管理 xff0c 简化用户配置 2 基
  • ovs+dpdk 三级流表(microflow/megaflow/openflow)

    本文介绍在ovs dpdk下 三级流表的原理及其源码实现 普通模式ovs的第一和二级流表原理和ovs dpdk下的大同小异 三级流表完全一样 基本概念 microflow 最开始openflow流表是在kernel中实现的 但是因为在ker
  • ML2 Plugin框架说明

    在H版本中 ML2 Plugin被添加意图取代所有的Core Plugin 它采用了更加灵活的结构进行实现 下图即为ML2 Plugin的实现框架 作为一个Core Plugin ML2自然会实现network subnet port三种核
  • OpenVSwitch数据面流表cache机制浅谈

    稍许笔墨写了一篇关于OpenVSwitch 以下简称OVS 的文章 https blog csdn net dog250 article details 103492099 但有些事情并没有说清楚 关于OVS的流表是如何映射成数据平面的Fl
  • ubuntu 下实现 docker+ovs+quagga搭建网络---bgp

    注 本机上现有quagga镜像 ovs虚拟交换机 2 9 1 docker 18 09 7 实现bgp网络搭建 1 sudo ovs vsctl add br br1 增加一个ovs网桥br1 2 sudo docker images 查看

随机推荐