openvswitch 通过ofproto/trace trace跟踪数据包匹配的流表

2023-05-16

目录

1. 解决的问题需求

    当vm互访不通时,不知道是哪天流表出问题,可以通过 ovs提供的工具模拟虚拟机实例发出的数据包来跟踪数据包经过的流表路径。

2. 使用方法

(一)解决的问题需求

我们在使用ovs的时候,通常会遇到虚拟机发出的数据包出现通信不通的情况,而不知道是ovs的哪条流表导致的。此时我们可以通过ovs-appctl ofproto/trace 来跟踪虚拟机发出来的数据包经过的pipeline 路径。

(二)使用方法

命令行语法:

ovs-appctl ofproto/trace {[dp_name] odp_flow | bridge br_flow} [OPTIONS...] [-generate|packet]

eg:

ovs-appctl ofproto/trace br-int "in_port=24,dl_src=00:10:3e:f6:26:6b,dl_dst=00:10:3e:38:41:a1,dl_type=2048,nw_src=192.168.1.8,nw_dst=192.168.155.200,nw_proto=6,tp_src=45578,tp_dst=20048" --generate

使用ovs-appctl ofproto/trace 命令行有两种使用方法:

1. 直接使用命令,后接报文信息

ovs-appctl ofproto/trace br-int in_port=3,dl_src=fa:16:3e:fd:59:5c,dl_dst=fa:16:3e:ee:ff:ff

2. 使用命令后接数据包二进制信息

有时我们可能不知道报文的内容,但我们想某个port发出的包经过的pipeline。那么就可以使用这种方法。

首先,使用tcpdump 抓取port的一个报文,如

发包:

 抓包:

使用ovs-pcap将抓包文件打印出来,输出16进制的数据:

 使用ovs-appctl ofproto/trace 跟踪数据包经过的ovs pipeline:

ovs-appctl ofproto/trace br-int in_port=3 "fa163eeefffffa163efd595c080045000054f586400040016a67c0a80a030808080808009d51544e0001d9693562000000002fc0090000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637"
 

(三)总结

        上述两种方法都可以在ovs上跟踪某个数据包经过的pipeline,第一种方法适合已知报文内容,或在报文内容输入较少的情况下使用(因为可以不用输入太多参数,能偷懒就偷懒使用第二种方法);第二种方法适合trace时包内容太多,且能够精确匹配数据包内容特征进行trace。

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

openvswitch 通过ofproto/trace trace跟踪数据包匹配的流表 的相关文章

  • OpenVSwitch数据面流表cache机制浅谈

    稍许笔墨写了一篇关于OpenVSwitch 以下简称OVS 的文章 https blog csdn net dog250 article details 103492099 但有些事情并没有说清楚 关于OVS的流表是如何映射成数据平面的Fl
  • Dubbo分布式日志追踪

    很多互联网公司都用的dubbo分布式框架进行微服务的开发 一个大系统往往会被拆分成很多不同的子系统 并且子系统还会部署多台机器 当其中一个系统出问题了 查看日志十分麻烦 所以我们需要一个固定的流程ID和机器ip地址等来把所有的日志穿起来 当
  • .NET 跟踪不适用于 Diagnostics.TraceSource,仅适用于 Diagnostics.Trace

    我正在尝试设置 NET 跟踪 我可以通过 System Diagnostics Trace 进行基本跟踪 但由于复杂的原因 我必须通过 System Diagnostics TraceSource 对象 自 NET 2 0 以来的新方法 激
  • C# 条件日志记录/跟踪

    我想向我的 C 应用程序添加日志记录或跟踪 但如果日志详细级别设置得太低以致于不会记录消息 我不希望记录格式化字符串或计算值的开销 在 C 中 您可以使用预处理器定义宏来阻止代码被执行 如下所示 define VLOG level expr
  • Python tkinter 跟踪错误

    我正在尝试为我的代码编写一个 GUI 我的计划是使用 tkinter 的StringVar DoubleVar等来实时监控我的输入 所以我发现DoubleVar trace w callback 功能 但是 每次我进行更改时都会遇到异常 E
  • 如何使用 Traceit 报告堆栈跟踪中的函数输入变量

    我一直在使用以下代码来跟踪程序的执行 import sys import linecache import random def traceit frame event arg if event line lineno frame f li
  • 如何在 ASP.NET MVC 中生成完整的trace.axd?

    在我的应用程序上 启用后ASP NET 跟踪 http msdn microsoft com en us library y13fw6we VS 71 aspx在 ASP NET MVC 应用程序中 时间计算统计数据相差 5000 倍 我的
  • Linux中通过perf为未列出的函数添加动态跟踪点

    我正在尝试跟踪功能zap pte range来自 mm memory c 使用perf 但功能并未在其中列出perf probe F 那么有没有办法动态追踪这个函数呢 IE 显式添加跟踪点并重新编译内核 perf probe a zap p
  • 当 KVM-QEMU 打开时,Intel-PT 不记录任何数据包

    我尝试在主机上使用 Intel PT 同时在客户机上运行通用软件程序 所以我期望主机中运行的 Intel PT 将记录所有相关数据包 如 PIP FUP TSC 等 以及所有基于 VM 的数据包 如 VMCS 我使用以下命令 perf kv
  • Trace Bug 仅在 CI 中偶尔发生

    我在 python 代码中有一个奇怪的错误 这种错误只在 CI 中有时发生 我们无法重现它 测试代码在哪里 response self admin client post url post self assertEqual 200 resp
  • 中介 R 包 p 值:获得更多有效数字的解决方法?

    我正在运行多项中介分析 需要纠正多重比较 然而 中介包提供的 p 值似乎已四舍五入存储 正如 Roland 关于此问题的非常有用的答案中所观察到的 R中介包 逗号后面的数字 https stackoverflow com questions
  • 有没有办法在Delphi中仅跟踪项目源?

    我正在使用 Delphi 2010 我想知道是否有一种方法可以跟踪项目中的代码 而无需跟踪对包含的 VCL 的调用 For example you put in a breakpoint and then use Shift F7 to t
  • FParsec 只解析括号之间的 expr

    我正在编写一个解析器 用于学习 pourpuses 我希望它能够解析类似的结构 let myVar be 40 plus 2 and let myVar be 40 plus 2 没有问题 但我的解析器不 理解 前者 它看到的是40并认为
  • 嵌套多线程操作跟踪

    我有一个类似的代码 void ExecuteTraced Action a string message TraceOpStart message a TraceOpEnd message 回调 a 可以再次调用 ExecuteTraced
  • 如何向 Traefik 添加唯一的请求 ID 标头

    在Traefik中 是否可以为请求添加唯一的Request ID标头 我希望能够将访问日志与后端服务的日志关联起来 AFAIK 不支持它 但是 Traefik 2 3 6 中有一个功能解决方法 static config tracing W
  • ubuntu 18.04 中 dpdk 和 ovs 上的 testpmd 出现问题

    我有一个 X520 SR2 10G 网卡 我将用它来创建 2 个使用 dpdk 编译的 OpenvSwitch 虚拟接口 从 ubuntu 18 04 的存储库安装 并使用 testpmd 测试这个虚拟接口 我做了以下工作 创建桥梁 ovs
  • 如何获取 ODP.NET 中通过 OracleParameter 传递的绑定变量的跟踪信息?

    经过多次谷歌搜索但没有找到我要找的东西后 我决定问这个问题 我在用着绑定变量正如这篇精彩文章所示2005 titled 具有约束力的价值观 http www oracle com technetwork issue archive 2005
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • 可以从操作系统内禁用/配置 Intel PT(处理器跟踪)吗?

    我有很多关于 Intel PT 的问题 一直在尝试解码手册 但非常困难 我的问题是 我试图找出 Intel PT 是否可以从操作系统内部禁用或重新配置 或者更一般地说 从它提供跟踪的系统内部禁用或重新配置 Intel PT 是否在写入特定寄

随机推荐

  • flutter学习之旅(二)

    如果不知道怎么安装编写可以查看这篇 创建项目 另一个创建方法 flutter create 项目名 热部署 vscode 热部署 vscode很简单 xff1a 可以通过Debug进行调试 使用flutter查看设备 flutter dev
  • Flutter学习之旅 - Scaffold属性Drawer侧边栏

    span class token class name Scaffold span span class token punctuation span appBar span class token punctuation span spa
  • Flutter学习之旅 - AppBar、TabBar、TabBarView实现头部顶部滑动导航

    文章目录 AppBar自定义顶部按钮图标 颜色取消debug图标TabBar TabBarView来实现顶部导航PreferredSize组件改变TabBar导航样式自定义KeepAliveWrapper缓存页面如何获取tab下的索引值销毁
  • Flutter学习之旅 - 路由

    文章目录 Flutter路由介绍普通路由普通路由传值 命名路由将 96 routes 96 的配置提到外面 使用的是Map 命名路由传值 路由跳转返回上一级路由替换路由返回到根路由返回Tabs后到指定页面 Flutter路由介绍 flutt
  • Ubuntu 和 Debian 的关系

    转自 xff1a http people ubuntu com happyaron udc cn lucid html ch11s09 html Debian 于 1993年8月16日 由一名美国普渡大学学生 Ian Murdock 首次发
  • Makefile学习笔记

    主要参考文档 xff1a 跟我一起写makefile xff0c 这里 有一篇 谈谈职业规划 CSDN对陈皓的采访 xff0c 被采访的大牛就是这个文档的作者 xff0c 他的CSDN专栏 本文的示例工程及Makefile 在这里 一 关于
  • 运行的docker增加端口映射

    1 运行了一个centos7的容器 xff0c 22端口映射给宿主机5002端口 xff1a docker span class token function ps span span class token operator span s
  • 23.易混淆命令(apt-get、wget、git clone、pip与pip3区别、apt-get和pip区别)

    摘要 xff1a 本文详细介绍了Ubuntu系统下apt get wget git clone pip与pip3 apt get和pip几组概念的区别 1 apt get 参考文献 xff1a apt get 是AdvancedPackag
  • ssh实现免密登录(文中附上脚本)

    1 为什么要互信 很多时候 xff0c 我们经常需要登录同一个服务器或者客户端 xff0c 但是输入密码很繁琐 xff0c 此时我们就需要能免密登录某些服务器或客户端 下面我们就来看怎么简单实现免密登录 有时候我们在shell脚本中会不断去
  • MapReduce概述及工作流程

    内容 mapreduce原语 xff08 独创 xff09 mapreduce工作流程 xff08 重点 xff09 MR作业提交流程 xff08 重点 xff09 YARN RM HA搭建 xff08 熟练 xff09 运行自带的word
  • IIC总线

    1 概念 IIC总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线 xff0c 主要用于连接整体电路 同一块板子两个芯片之间的通信是通过IIC总线进行的 xff08 stm32mp157a lt IIC gt SI7006 I
  • 函数拟合3

    所谓函数拟合 xff0c 就是给定一些输入点 xff0c 输出一个函数曲线 选择的基函数会直接影响线性组合函数的表达能力 当采样点较多 xff0c 而系数较少时 xff0c 会出现欠拟合 xff0c 表达能力不够 当采样点较少 xff0c
  • LDM命令

    http blog 163 com oy mcu blog static 16864297220120193458892 LDM STM指令主要用于现场保护 xff0c 数据复制 xff0c 参数传送等 STMFD指令 STMFD Rn r
  • LE Audio进入商用阶段

    LE Audio进入商用阶段 xff0c TWS耳机要变天了 36氪 蓝牙协议十年来的最大更新 xff0c LE Audio进入商用测试阶段 全球最畅销的IoT设备是什么 xff1f 我很轻松就能告诉你答案 xff1a AirPods 作为
  • CAN XL :CAN协议家族新成员

    十年之前 xff0c 你不认识我 xff0c 我也不认识CAN FD 如今 xff0c CAN FD已经陆续进入乘用车领域 xff0c 几乎所有汽车制造商都将在未来几年内逐步推出搭载CAN FD的乘用车 那十年之后 xff0c 车载网络又会
  • 【整理】嵌入式系统的各种常见外设

    原文地址 xff1a http www crifan com summary embedded system various peripherals 最后更新 xff1a 2013 11 14 TODO xff1a 1 添加更多的常见的外设
  • DDR controller driver

    在SOC中 xff0c DDR是很重要的 xff0c 需要在uboot中进行初始化 xff01 但是DDR异常的复杂 DDR controller也异常的复杂 xff0c 以candence DDR controller为例 xff0c 这
  • 一文看懂IC芯片生产流程:从设计到制造与封装

    origin http forum esm cn com FORUM POST 1000163993 1201257744 0 HTM ga 61 1 101949507 338942905 1436813394 芯片制造的过程就如同用乐高
  • 2015中国国内元器件分销商10亿俱乐部20强榜单

    origin http www v4 cc News 916429 html 元器件分销市场 xff0c 从欧美安富利 xff0c 艾睿 xff0c 富昌等巨头跨度到台湾大联大 xff0c 文晔等新势力 xff0c 花了30年时间 随着电子
  • openvswitch 通过ofproto/trace trace跟踪数据包匹配的流表

    目录 1 解决的问题需求 当vm互访不通时 xff0c 不知道是哪天流表出问题 xff0c 可以通过 ovs提供的工具模拟虚拟机实例发出的数据包来跟踪数据包经过的流表路径 2 使用方法 xff08 一 xff09 解决的问题需求 我们在使用