# bj环境统计单向流比例将近40% | ID | Creation Date | Assignee | Status | |----|----------------|----------|--------| | OMPUB-1125 | 2024-01-24T17:06:36.000+0800 | 杨威 | 已解决 | --- !image-2024-01-24-16-56-32-263.png|thumbnail! 请[~zhangzhihan]确认bj环境接入流量是否有存在单向流的情况**zhangzhihan** commented on *2024-01-24T17:13:52.817+0800*: 从sapp的sysinfo.log上看,tcp没有单向流,udp有单向流但比例不高 !screenshot-1.png|thumbnail! --- **doufenghu** commented on *2024-01-24T17:55:10.848+0800*: 单向流计算:(asymmetric_c2s_flows + asymmetric_s2c_flows)/closed_sessions, 选取1月24日最近一小时(16:00-17:00) 单向流比例为38.81%。需Firewall协助排查下。 * asymmetric_c2s_flows + asymmetric_s2c_flows = 130,703 * closed_sessioins = 336,749 --- **yangwei** commented on *2024-01-24T20:44:14.964+0800*: “选取1月24日最近一小时(16:00-17:00) ” 查询会话日志,共计337008条 !image-2024-01-24-20-31-19-292.png|width=609,height=278! 在这个范围内查询{*}session_record中{*}单向流(filter=“sent_pkts=0 OR received_pkts=0“), 共计130969条,可知{*}单向流比例130969/337008=38.8%,与issue描述一致{*} !image-2024-01-24-20-32-30-278.png|width=1160,height=526! 统计单向流会话的decode as分布,99.67%为BASE,进一步增加过滤条件,仅统计单向流中BASE的IP分布,发现单向流的Client IP排名第一的为5.5.5.5,其余多为内网地址(10.xx或者192.168.xx),Server IP排名靠前的也基本为内网地址。 !image-2024-01-24-20-38-42-125.png|width=810,height=378! !image-2024-01-24-20-41-06-328.png|width=814,height=373! 结论:通过查询会话日志,1月24日(16:00-17:00) {*}网关流量中接近40%为单向流,其中99%为UDP会话{*},且通信的双方大部分为内网地址,{*}推测经过网关的流量存在内网地址间的测试流量{*}。 --- **yangwei** commented on *2024-01-25T09:58:12.184+0800*: 查询1月24日 23:00-24:00)的日志,共计110,232条,其中单向流49,069条,单向流比例44.5%,所有的的Decode path均为BASE。 !image-2024-01-25-09-29-21-037.png|width=721,height=310! !image-2024-01-25-09-32-07-741.png|width=716,height=322! !image-2024-01-25-09-33-40-660.png|width=713,height=406! 进一步分析,虽然功能端输出session_record设置需要达到的最小包数和字节数限制(目前限制为包数>3 AND 字节数>5),但是session_record中存在包数为1的记录, 存在该session日志的原因为,该session命中了一条Monitor_ALL的安全策略。 !image-2024-01-25-10-07-37-292.png|width=682,height=375!   --- **yangwei** commented on *2024-01-25T10:40:01.025+0800*: 综合上述情况,目前Live Traffic Chart和session_record统计指标存在如下问题: * 问题1:session record过滤小流的限制条件,在session命中安全策略时仍然会被发送,并且在session record中能够被查询和统计,容易给用户造成困惑。 ** 方案1:不再设置过滤小流的限制条件,对所有session进行记录 *** 优点:数据口径一致,不存在用户不可感知的隐藏参数 *** 缺点:日志量可能增加(按照各个现场的经验,由于UDP小碎流的存在,预计日志整体增加一个数量级) ** 方案2:界面开放给用户设置记录session record过滤小流的条件,查询session record时olap执行该条件 *** 优点:用户可感知参数,在设置合理的前提下,能够有效减少小流的日志量 *** 缺点:增加从界面同步的参数 * 问题2:Live Traffic Chart的数据源,对所有的session进行统计输出(未执行session record过滤小流的限制条件),会造成Live Traffic Chart计算的单向流比例,与session record不一致(结合问题1,当前Live Traffic Chart为全量统计结果,session record记录的是过滤后的小流+命中策略的所有流) ** 方案1:从Live Traffic Chart中展示单向流的比例目的出发,如果是向用户展示接入流量的完整性趋势,参照24.01版本之前仅根据session record计算的逻辑,Live Traffic Chart中单向流比例仅展示TCP会话相关的结果 *** 优点:单向流比例不受UDP流干扰,更能反应流量中整体的情况 *** 缺点:未统计所有流,与session record查询结果对比时需要增加ip protocol=tcp的过滤条件,可能增加给用户的解释成本 ** 方案2:参照问题1的方案2,功能端输出Traffic Metric时,也执行小流过滤条件,仅输出满足条件的流的统计信息 *** 优点:数据输出口径保持一致 *** 缺点:未对所有流进行统计,增加给用户的解释成本 * 问题3:session record中,对于未达到满足app识别最小包数(当前值为20包)的流,功能端Application字段填充为-,在Live Traffic Chart中,Application值为-和unknown都被计算为unknown,该统计结果,与session record中的值不一致,容易给用户造成困惑。 ** 方案1:功能端对未满足app识别最小包数的流,统一标识为unknown *** 优点:数据口径一致 *** 缺点:Application为unknown可以作为策略条件执行,但对于未满足最小识别包数的流,在流结束时(通常为active timeout)执行安全策略无意义,此时产生安全事件日志容易给用户造成歧义(例如deny失效) ** 方案2:将app识别最小包数作为参数开放至界面允许用户配置,未达到最小识别包数的Application仍然被标识为-,同时Live Traffic Chart中增加-的统计行 *** 优点:用户可感知参数,减少解释成本 *** 缺点:当最小识别包数设置为较小的值时(例如1),安全策略不生效的歧义仍然存在 --- **yangwei** commented on *2024-01-29T13:38:51.554+0800*: 经2024-01-29讨论,上述3个问题,对应的解决方案选择如下: {*}问题1{*}:选择{*}方案2{*},界面在是否开启session_record的开关处,{*}增加可配置记录最小包数{*}(仅增加一个参数,减少用户配置的负担)的限制,默认值为2;用户查询session record时,UI查询olap时,增加该限制作为过滤条件。 {*}问题2{*}:{*}现有逻辑不做更改{*}。Live Traffic Chart统计的对象为全流量,session_record记录的是过滤后的流信息,两者的结果不能保证完全一致,仍然保留Live Traffic Chart记录所有流的特性 {*}问题3{*}:选择{*}方案1,{*}对于未满足识别长度即结束的流,统一标识为unknown,由于此时已不具备执行安全策略的条件(通常由时间触发active timeout,对应的session状态为closing),在此阶段不再执行安全策略。 --- **zhangwei** commented on *2024-01-31T15:57:17.319+0800*: {quote}{*}问题1{*}:选择{*}方案2{*},界面在是否开启session_record的开关处,{*}增加可配置记录最小包数{*}(仅增加一个参数,减少用户配置的负担)的限制,默认值为2;用户查询session record时,UI查询olap时,增加该限制作为过滤条件。 {quote} 在仍然有Management Vsys的版本中实现此功能,UI和CM在Management Vsys查询Session Records设置该限制作为过滤条件比较复杂,打破了现有CM补全Vsys过滤条件的实现逻辑。 * 当前实现:vsys_id in (1,2,3) and ($filter) * 如增加最小包数限制作为过滤条件:( (vsys_id=1 and recv_pkts+sent_pkts>=$vsys1_min_packets) or (vsys_id=2 and recv_pkts+sent_pkts>=$vsys2_min_packets) or (vsys_id=3 and recv_pkts+sent_pkts>=$vsys3_min_packets) ) and ($filter)   --- **doufenghu** commented on *2024-01-31T16:28:20.330+0800*: [~yangwei] 界面增加min_packets阈值后,UI查询OLAP默认为什么要增加过滤条件?Session Records 还会有小于min_packets的日志? --- **yangwei** commented on *2024-01-31T16:34:39.265+0800*: 24.01以后,功能端生成session_record与策略日志合并,对于命中策略的会话,即使不满足min_packets的条件,依然会向session_record的topic发送该会话的信息(例如上述分析中提到的命中monitor_all策略,但仅传输1个包的情况)。 --- **doufenghu** commented on *2024-02-01T10:05:28.718+0800*: 建议命中策略并且小于min_packets的会话,查询时默认不对其增加过滤条件。目前会话日志设计上以流量为中心,以全局视角应看到所有命中策略的日志。 --- **gitlab** commented on *2024-02-05T18:47:12.855+0800*: [刘学利|https://git.mesalab.cn/liuxueli] mentioned this issue in [a commit|https://git.mesalab.cn/tango/firewall/-/commit/9407dcda1f755ac66eac9ce8a9f986bd20de7cb3] of [TSG Appliance / firewall|https://git.mesalab.cn/tango/firewall] on branch [feature-tunnel-rename-encapsulation|https://git.mesalab.cn/tango/firewall/-/tree/feature-tunnel-rename-encapsulation]:{quote}TSG-18800, OMPUB-1125: Supports user-specified packet number limit for sending logs{quote} --- **gitlab** commented on *2024-02-05T19:07:56.344+0800*: [刘学利|https://git.mesalab.cn/liuxueli] mentioned this issue in [a commit|https://git.mesalab.cn/tango/firewall/-/commit/ce64026bca82435d3f594ebe84e03378d6ab8222] of [TSG Appliance / firewall|https://git.mesalab.cn/tango/firewall] on branch [feature-tunnel-rename-encapsulation|https://git.mesalab.cn/tango/firewall/-/tree/feature-tunnel-rename-encapsulation]:{quote}TSG-18800, OMPUB-1125: session is not identified app, and unknown is filled by default.{quote} --- ## Attachments **50981/image-2024-01-24-16-56-32-263.png** --- **51016/image-2024-01-24-20-31-19-292.png** --- **51017/image-2024-01-24-20-32-30-278.png** --- **51018/image-2024-01-24-20-38-42-125.png** --- **51019/image-2024-01-24-20-41-06-328.png** --- **51021/image-2024-01-25-09-27-24-206.png** --- **51022/image-2024-01-25-09-27-46-507.png** --- **51023/image-2024-01-25-09-29-21-037.png** --- **51024/image-2024-01-25-09-32-07-741.png** --- **51025/image-2024-01-25-09-33-40-660.png** --- **51029/image-2024-01-25-09-54-21-743.png** --- **51033/image-2024-01-25-10-06-49-337.png** --- **51035/image-2024-01-25-10-07-17-442.png** --- **51034/image-2024-01-25-10-07-37-292.png** --- **50985/screenshot-1.png** ---