返回顶部
首页 > 资讯 > 精选 >openvswitch的原理和常用命令介绍
  • 654
分享到

openvswitch的原理和常用命令介绍

2023-06-19 10:06:56 654人浏览 薄情痞子
摘要

本篇内容介绍了“openvswitch的原理和常用命令介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一.Openvswitch工作原理 

本篇内容介绍了“openvswitch的原理和常用命令介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一.Openvswitch工作原理

  openvSwitch是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由 Nicira Networks开发,主要实现代码为可移植的C代码。它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。此外,它被设计位支持跨越多个物理服务器分布式环境,类似于VMware的vNetwork分布式vswitch或Cisco Nexus 1000 V。Open vSwitch支持多种linux 虚拟化技术,包括Xen/XenServer, KVM和VirtualBox。
  openvswitch是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer,KVM以及virtualBox多种虚拟化技术。在这种虚拟化的环境中,一个虚拟交换机主要有两个作用:传递虚拟机之间的流量,以及实现虚拟机和外界网络的通信。
  内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个“vports”(类似于桥内的端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。

1.OpenvSwitch的组成###

  • ovs-vswitchd:OVS守护进程是,OVS的核心部件,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换(flow-based switching)。它和上层 controller 通信遵从 OPENFLOW 协议,它与 ovsdb-server 通信使用 OVSDB 协议,它和内核模块通过netlink通信,它支持多个独立的 datapath(网桥),它通过更改flow table 实现了绑定和VLAN等功能。   

  • ovsdb-server:轻量级的数据库服务,主要保存了整个OVS 的配置信息,包括接口啊,交换内容,VLAN啊等等。ovs-vswitchd 会根据数据库中的配置信息工作。它于 manager 和 ovs-vswitchd 交换信息使用了OVSDB(JSON-rpc)的方式。

  • ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则。  

  • ovs-vsctl:主要是获取或者更改ovs-vswitchd 的配置信息,此工具操作的时候会更新ovsdb-server 中的数据库。  

  • ovs-appctl:主要是向OVS 守护进程发送命令的,一般用不上。

  • ovsdbmonitor:GUI 工具来显示ovsdb-server 中数据信息。  

  • ovs-controller:一个简单的OpenFlow 控制器  

  • ovs-ofctl:用来控制OVS 作为OpenFlow 交换机工作时候的流表内容。

2. OpenvSwitch的工作流程###

  1.VM实例 instance 产生一个数据包并发送至实例内的虚拟网络接口 VNIC,图中就是 instance 中的 eth0.
  2.这个数据包会传送到物理机上的VNIC接口,如图就是vnet接口.
  3.数据包从 vnet NIC 出来,到达桥(虚拟交换机) br100 上.
  4.数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理机上的 eth0 .
  5.数据包从 eth0 出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数 据包其实已经不受你的控制了.
  注:一般 L2 switch 连接 eth0 的这个口是一个 trunk 口, 因为虚拟机对应的 VNET 往往会设置 VLAN TAG, 可以通过对虚拟机对应的 vnet 打 VALN TAG 来控制虚拟机的网络广播域. 如果跑多个虚拟机的话, 多个虚拟机对应的 vnet 可以设置不同的 vlan tag, 那么这些虚拟机的数据包从 eth0(4)出去的时候, 会带上TAG标记. 这样也就必须是 trunk 口才行。

3.OpenvSwitch简单应用实例###

  通过以下命令即可实现:

root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-br br0 root[@localhost](Https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth0 root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth2

4.Openvswitch常见操作

  添加网桥:

ovs-vsctl add-br br0

  列出所有网桥:

ovs-vsctl list-br

  判断网桥是否存在:

ovs-vsctl br-exists br0

  将物理网卡挂载到网桥上:

ovs-vsctl add-port br0 eth0

  列出网桥中的所有端口:

ovs-vsctl list-ports br0

  列出所有挂载到网卡的网桥:

ovs-vsctl port-to-br eth0

  查看ovs的网络状态:

ovs-vsctl show

  删除网桥上已经挂载的网口:

ovs-vsctl del-port br0 eth0

  删除网桥:

ovs-vsctl del-br br0

  设置控制器:

ovs-vsctl set-controller br0 tcp:ip:6633

  删除控制器:

ovs-vsctl del-controller br0

  设置支持OpenFlow Version 1.3:

ovs-vsctl set bridge br0 protocols=OpenFlow13

  删除OpenFlow支持设置:

ovs-vsctl clear bridge br0 protocols

  设置vlan标签:

ovs-vsctl add-port br0 vlan3 tag=3 -- set interface vlan3 type=internal

  删除vlan标签:

ovs-vsctl del-port br0 vlan3

  查询 VLAN:

ovs-vsctl show ifconfig vlan3

  查看网桥上所有交换机端口的状态:

ovs-ofctl dump-ports br0

  查看网桥上所有的流规则:

ovs-ofctl dump-flows br0

  查看ovs的版本:

ovs-ofctl -V

“openvswitch的原理和常用命令介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: openvswitch的原理和常用命令介绍

本文链接: https://lsjlt.com/news/295418.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • openvswitch的原理和常用命令介绍
    本篇内容介绍了“openvswitch的原理和常用命令介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一.Openvswitch工作原理 ...
    99+
    2023-06-19
  • Git常用命令介绍
    常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库 一、新...
    99+
    2024-04-02
  • RPM常用命令介绍
    导读rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Li...
    99+
    2023-06-05
  • sftp常用命令介绍
    sftp常用命令: 1. sftp 登录sftp服务器 sftp user@ip ​​​​​​ 如需要看全部命令:则使用help即可 2. pwd和lpwd 、 ls和lls 、cd和lcd 等 sftp登录之后默认操作是远程服务器,当需...
    99+
    2023-08-18
    服务器 linux 运维
  • DBA常用的linux命令介绍
    这篇文章主要介绍“DBA常用的linux命令介绍”,在日常操作中,相信很多人在DBA常用的linux命令介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DBA常用的linux命令介绍”的疑惑有所帮助!接下来...
    99+
    2023-06-06
  • hbase shell基础和常用命令介绍
    这篇文章主要介绍“hbase shell基础和常用命令介绍”,在日常操作中,相信很多人在hbase shell基础和常用命令介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”hbase shell基础和常用命...
    99+
    2023-06-09
  • Docker常见命令介绍
    目录一、Docker容器信息1、查看docker容器版本2、查看docker容器信息3、查看docker容器帮助二、镜像操作命令1、查看镜像2、搜索镜像3、镜像下载4、删除镜像5、生...
    99+
    2024-04-02
  • ubuntu下常用apt命令介绍
    apt-get全称Advanced Package Tool,是一款适用于Unix和linux系统的高级包管理器。主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。 使用apt的主流Linux系统包括...
    99+
    2022-06-05
    ubuntu 常用apt命令
  • mysql常用命令汇总介绍
    设置更改mysqlroot密码 首次进入mysql数据库, ! 可以将mysql绝对路径加入到环境变量中, 还可以设置开机加载, 重新加载环境变量让mysql生效 重新登录 mysql...
    99+
    2024-04-02
  • redis命令的介绍和使用
    本篇文章展示了redis命令的语法介绍和使用,代码简明扼要容易理解,绝对能让你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执...
    99+
    2024-04-02
  • maven的生命周期及常用命令介绍
    maven简介及优势     maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。maven的...
    99+
    2023-05-30
    maven 生命周期 命令
  • Linux常用硬盘管理相关命令介绍
    目录1、df命令2、du命令3、fsck文件系统修复命令4、显示磁盘状态dumpe2fs5、查看文件的详细时间6、判断文件类型1、df命令 df命令用于统计分区的占用状况。 [root@localhost ~]# d...
    99+
    2022-06-04
    Linux硬盘管理命令 linux常用磁盘管理
  • Linux下find和grep常用命令及区别介绍
    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区别的。   区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所...
    99+
    2022-06-04
    区别 常用命令 Linux
  • linux环境中常用的mysql命令介绍
    进入mysql命令: mysql -u+(用户名) -p+(密码 ) mysql语句命令后面一定要加“;” 查询库名: show databases; 修改库: ...
    99+
    2024-04-02
  • atlas管理命令介绍
    通过atlas的管理命令可以很方便上线,下线服务器,添加用户,添加ip白名单,同时可以把配置变更保存到配置文件。环境介绍: 主:192.168.6.91 从:192.168.6.85 待加入的:192.16...
    99+
    2024-04-02
  • redis中key命令的介绍和使用
    这篇文章将为大家详细讲解有关redis中key命令的介绍和使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、概述:进入redis-cli之后,我们通常比较关心的是有哪...
    99+
    2024-04-02
  • oracle创建用户及常用命令介绍
    这篇文章主要讲解了“oracle创建用户及常用命令介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle创建用户及常用命令介绍”吧! --...
    99+
    2024-04-02
  • linux中的常用命令与快捷键介绍
    目录1 系统介绍2 系统快捷方式3 常用系统命令1 系统介绍 1、ping 格式: ping [网址] # 判断系统是否可以正常连网 2、主机登录用户信息 [root@localhost ~]# ...
    99+
    2022-06-04
    linux常用命令 linux快捷键
  • mysqlshow命令的用法介绍
    MySQL自带的mysqlshow命令,可以让我们在不连接到MySQL客户端的情况下查看MySQL的一些参数、数据库、表、列、索引等信息,其使用方法如下: 查看都有哪些库:mysqlshow -...
    99+
    2024-04-02
  • 基于Python os模块常用命令介绍
    1、os.name---判断现在正在实用的平台,Windows返回'nt';linux返回'posix' 2、os.getcwd()---得到当前工作的目录。 3、os.listdir()--- 4、os...
    99+
    2022-06-04
    模块 常用命令 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作