flow

使用flow、debug 工具排查Juniper srx故障

泪湿孤枕 提交于 2020-03-25 15:54:56
Flow 的排查 通常配置完成后,发现业务访问不正常或是不通,需要使用一些方法进行排查 在接口上抓包查看实时的 Traffic 信息 lab@SRX210B> monitor traffic interface ge-0/0/0.0 no-resolve Flow 的 Debug set security flow traceoptions file flowlog #生成文件名 flowlog set security flow traceoptions flag basic-datapath set security flow traceoptions packet-filter to0 source-prefix 192.168.1.61/32 set security flow traceoptions packet-filter to0 destination-prefix 192.168.0.12/32 #上面 2 条是设置一个 packet-filter 把从源 192.168.1.61 到目标 192.168.0.12 的流量 Debug 信息记入 floglog 文件 lab@srx210B>show log filelog #查看 filelog 文件内容 lab@srx210B>clear log filelog #清除 filelog 文件内容

文件导入导出功能的实现

做~自己de王妃 提交于 2020-03-21 10:45:02
3 月,跳不动了?>>> #region 导入flow文件 private void toolStripButton_import_Click(object sender, EventArgs e) { try { do_import(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } string flownamePath = ""; private void do_import() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "xml文件|*.xml"; ofd.ValidateNames = true; ofd.CheckPathExists = true; ofd.CheckFileExists = true; string flowname = ""; if (ofd.ShowDialog() == DialogResult.OK) { flowname = ofd.FileName; flownamePath = ofd.FileName; string fileNameExt = flowname.Substring(flowname.LastIndexOf("\\") + 1); //获取文件名,不带路径 string

salt之pillar组件

感情迁移 提交于 2020-03-16 14:30:03
pillar也是salt最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板、state、API等。在pillar中定义的数据与不同业务特征的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此 pillar安全性很高 ,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户id、组id、读写权限、程序包等信息,定义的规范是采用Python字典形式,即键/值,最上层的键一般为主机的id或组名称。 pillar的定义: 1、主配置文件定义 salt默认将主控端配置文件中的所有数据都定义到pillar中,而且对所有被控主机开放,可通过修改/etc/salt/master配置中的pillar_opts: True或False来定义是否开户或禁用这项功能,修改后执行 salt '*' pillar.data 来观察效果。 2、SLS文件定义 pillar支持在slsy文件中定义数据,格式须符合YAML规范,与salt和state组件十分相似,两者文件的配置格式、入口文件top.sls都是一致的。 (1)定义pillar的主目录 修改主配置文件/etc/salt/master的pillar_roots参数,定义pillar的主目录 同时创建pillar目录,执行命令: install -d /srv

JWFDv0.96.3开源工作流-流程图提交异常BUG修改报告

只谈情不闲聊 提交于 2020-03-12 21:30:38
2011.2.25 BUG 将新建立的流程提交到数据库中的时候,发生异常,导致flow_manager的流程主记录未进入数据库中 请参考 JWFDv0.96 开源工作流引擎设计-数据库结构说明.doc 地址 http://www.cnblogs.com/comsci/favorite/260690.html 经过检查,发生问题出在 org.jwfd.workflowDesigner.UItools.Database.mysql.FlowsSqlControlModule.java 类中的new_flow()函数中BUG出现的原因是 由于v0.96数据库结构发生变化 flow_manager表结构和旧的flow_manager的表结构有几个字段发生变化而对应的SQL操作模块却没有进行及时的修改而导致的, BUG修正方法为,添加一个新的SQL操作函数 替换旧的SQL操作函数 修正BUG2011225001 所涉及的类和方法如下 ============================================================================================================ org.jwfd.workflowDesigner.UItools.Database.mysql.FlowsSqlControlModule

Git 工作流程

主宰稳场 提交于 2020-03-11 13:23:25
Git 作为一个源码管理系统,不可避免涉及到多人协作。 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。”工作流程”在英语里,叫做”workflow”或者”flow”,原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。 本文介绍三种广泛使用的工作流程: Git flow Github flow Gitlab flow 如果你对Git还不是很熟悉,可以先阅读下面的文章。 《Git 使用规范流程》 《常用 Git 命令清单》 《Git 远程操作详解》 一、功能驱动 本文的三种工作流程,有一个共同点:都采用”功能驱动式开发”(Feature-driven development,简称FDD)。 它指的是,需求是开发的起点,先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,该分支就合并到主分支,然后被删除。 二、Git flow 最早诞生、并得到广泛采用的一种工作流程,就是Git flow 。 2.1 特点 它最主要的特点有两个。 首先,项目存在两个长期分支。 主分支master 开发分支develop 前者用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版;后者用于日常开发,存放最新的开发版。 其次,项目存在三种短期分支。 功能分支(feature

Flow Layout

微笑、不失礼 提交于 2020-03-11 11:50:51
--------------siwuxie095 将根面板 contentPane 的布局切换为 Flow Layout Flow Layout 即 浮动布局,即 所有的控件都是可以浮动的 不是指 相互叠加,而是指 它们在窗体大小发送变化时之间的相对位置可以改变 如:向 contentPane 中添加 4 个 JButton,当缩放窗体时 对于一个控件,它的大小是由 布局管理器(Layout Manager) 来控制的 但是,有时候某些控件被 布局管理器 设定的大小并不合适, 或 不是所需要的 如:向 contentPane 中添加 1 个 JComboBox,发现其尺寸 非常小,不足以用来显示数据 选中 JComboBox,在 高级属性 中通过 preferredSize 属性 来修改其 宽度(Width) 和 高度(Height) 「preferredSize 即针对该控件推荐的理想的 宽度 和 高度」 将 preferredSize 的宽度改为 200 ,布局管理器 响应请求, 将 JComboBox 的宽度改为 200 效果如下: (注意:不能通过 size 属性来修改控件的 宽度 和 高度) Flow Layout 的属性: 对齐方式(alignment)、元素之间的横向区间(hgap)与纵向区间(vgap) 「大多数情况下,使用默认值即可」 【made by

期末作业

核能气质少年 提交于 2020-03-09 14:12:50
SDN期末作业——负载均衡 一.作业部分 1.负载均衡程序 代码链接 2.演示视频 视频链接 3.程序分工 小组:incredible five 构建拓扑:俞鋆 编写程序:陈绍纬、周龙荣 程序调试和视频录制:陈辉、林德望 4.个人工作 在期末作业中我和绍伟主要负责程序代码的编写,在做期末作业的过程中我们小组聚在一起开了两次会议,第一次确定要做的内容并分工,第二次将自己的部分和别人的对接。关于代码部分,我们参考了学长的代码,然后对于我们的拓扑结构进行了初步的构思,慢慢开始和队友合作一起编写代码。由于对python语言的不熟悉,编写代码的过程中还是查找了不少资料也和队友一起讨论了多次,最终完成了代码,并虚拟机上运行,和大家一起完成了验收。 程序思路 场景二默认包从s1-s4路径发送,所以先给s2、s3下发流表,使之通行。 (s2、s3流表链接) 。我们小组没有去底层交换机收集信息,再对数据处理得到动态负载均衡,最后经过小组讨论,将s1-s4、s1-s2-s4、s1-s3-s4三条线路默认1:2:2的关系,以经历的线路为基准进行负载均衡,对s4下发流表,使用hardtime机制,让3条线路在一段时间内的占比为2:1:1以达到负载均衡。 拓扑图 拓扑代码 from mininet.topo import Topo class MyTopo( Topo ): def __init__(

Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]

余生长醉 提交于 2020-03-07 17:35:32
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 复杂得多。 1. 基础知识 1.1 OpenFlow 结构、流表和数据包处理 下面左图是 Open vSwitch 中流表的结构。右图这个流程图详细描述了数据包流通过一个 OpenFlow 交换机的过程。 更详细的描述请参见 这里 。 1.2 ARP Proxy Proxy ARP 就是通过一个主机(通常是Router)来作为指定的设备对另一个设备作出 ARP 的请求进行应答。 举个例子:主机A,IP地址是192.168.0.11/24;主机B,IP地址是192.168.1.22/24。主机A和主机B通过路由器R相连接,并且路由器R启用了Proxy ARP,并配置有路由。网络拓扑如下: eth0 eth0 eth1 eth0 A------------------------Router R----------------------B 192.168

HDU 4862 Jump(最大k路径覆盖 费用流)

我怕爱的太早我们不能终老 提交于 2020-03-05 04:33:43
题意:一个n*m的矩阵,需要遍历所有点,从起点出发每次只可向右或向下跳,若到达位置的数字与上一步的数字相同,则获得该数字大小的能量; 否则消耗能量:哈密顿距离减1;求可获得的最大能量; 思路:网络流之最大k路径覆盖。 源点向n*m(X图)各点建流量为1,费用为0的边; n*m(Y图)各点向汇点建流量为1,费用为0的边; 新增一个起点; 源点向起点建流量为k,费用为0的边;起点向各点建流量1,费用为0的边; n*m各点间建边; 建好图后跑最小费用最大流,如果满流则存在解,否则不存在;最小费用的相反数就是所能够获得的最大能量; #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; const int MAXN = 1010; const int MAXM = 10010; const int INF = 0x3f3f3f3f; struct Edge { int to

最大流(模板EK,dinic,sap,未优化)

假装没事ソ 提交于 2020-03-04 05:30:16
模板题 这三种算法基于寻找增广路径来求解最大流,当一个网络图中不存在增广路径时我们就得到了最大流; 1.EK: //直接使用bfs找最近的增广路径,每找到一条就更新残余网络,然后继续找,直到不存在为止,这个真好懂^ V ^ # include <bits/stdc++.h> # include <iostream> # include <algorithm> # include <cstdio> # include <map> # include <cstring> # include <queue> const int maxn = 10000 + 10 ; const int maxm = 100000 + 10 ; const int inf_max = 0x3f3f3f3f ; using namespace std ; typedef long long ll ; int n , m , head [ maxn ] , cnt , flow [ maxn ] ; struct EDG { int w , v , nxt , id ; EDG ( ) { } EDG ( int tv , int tw , int tn ) { w = tw , v = tv , nxt = tn ; } } edge [ maxm << 1 ] , pre [ maxn ] ; void