FRR BGP协议分析9 -- FLOW SPEC

【FRRouting User Guide】(三)Basic Setup 安装FRR后,必须完成一些基本配置才能使用。 Crash logs 如果任何守护程序由于某种原因(分段错误、断言失败等)崩溃,它将尝试向位于/var/tmp/frr/<daemon>[-<instance>].<pid>/crashlog中的文件写入回溯。此功能不受任何配置选项的影响。 crashlog文件的目录还包含与名为/var/tmp/frr/<daemon>[-<instance>].<pid>/logb... 阅读详情

Flowspec引入了一种新的NLRI 编码格式,用于分发流量规则流规范。基本上,IP前缀不是简单地依赖于IP前缀的目标IP地址,而是由包含规则的n元组替换。该规则可以是或多或少复杂的以下组合:

  • 网络源/目标(可以是一个或另一个,或两者)。
  • UDP / TCP的第4层信息:源端口,目标端口或任何端口。
  • ICMP类型和ICMP代码的第4层信息。
  • TCP标志的第4层信息。
  • 第3层信息:DSCP值,协议类型,数据包长度,分段。
  • 其他第4层TCP标志。

上述规则的组合适用于流量过滤。这被编码为特定BGP扩展社区的一部分,其行动可以从明显的重新路由(到nexthop或单独的VRF)到整形或丢弃。

 

12种match和action

 

BGP Flowspec NLRI Type

Matching Field (IPv6)

Matching Field (IPv4)

Input Value

Type1

IPv6 destination address

IPv4 destination address

Prefix length

Type2

IPv6 source address

IPv4 source address

Prefix length

Type3

IPv6 next header

IPv4 protocol

Multi-value range

Type4

IPv6 source or destination port

IPv4 source or destination port

Multi-value range

Type5

IPv6 destination port

IPv4 destination port

Multi-value range

Type6

IPv6 source port

IPv4 source port

Multi-value range

Type7

IPv6 ICMP type

IPv4 ICMP type

Multi-value range

Type8

IPv6 ICMP code

IPv4 ICMP code

Multi-value range

Type9

IPv6 TCP flags

IPv4 TCP flags (2 bytes include reserved bits)

Bit mask

Type10

IPv6 packet length

IPv4 packet length

Multi-value range

Type11

IPv6 traffic class

IPv4 DSCP

Multi-value range

Type12

Reserved

IPv4 fragment bits

Bit mask

 

Type 1: Destination prefix component

https://i-blog.csdnimg.cn/blog_migrate/a7ac3c16dda73809b92e8ff7ca7ec1e7.png

Type 2: Source prefix component

https://i-blog.csdnimg.cn/blog_migrate/6dcf661023fa302691337669a32aff93.png

Type 3: IP Protocol component

https://i-blog.csdnimg.cn/blog_migrate/498d484d89dd4b5ffbdeca4de78746d7.png The option byte is defined as following:
-    E bit: end of option (Must be set to 1 for the last Option)
-    A bit: AND bit, if set the operation between several [option/value] is AND, if unset the operation is a logical OR. Never set for the first Option
-    Len: If 0 the following value is encoded in 1 byte ; if 1 the following value is encoded in 2 bytes
-    Lt bit: less than comparison between the Data and the given value
-    Gt bit: greater than comparison between the Data and the given value
-    Eq bit: equal comparison between the Data and the given value

Type 4: Port number component

https://i-blog.csdnimg.cn/blog_migrate/019525c6043b7a43f14396e740cf46d7.png

 Type 5: Destination port number component

https://i-blog.csdnimg.cn/blog_migrate/04034da638f88b648bf4d7a743d2b03b.png

Type 6: Source port number component

https://i-blog.csdnimg.cn/blog_migrate/2a7031f1c2d71668e54c7ee1ea4c9c0e.png

 Type 7: ICMP Type component

https://i-blog.csdnimg.cn/blog_migrate/8bbcd6b9131bd0f2522f762db72f98c6.png

Type 8: ICMP Code component

https://i-blog.csdnimg.cn/blog_migrate/db8604e6f2145293a304a27305fc000b.png
 

Type 9: TCP Flags component

https://i-blog.csdnimg.cn/blog_migrate/cee2b40c058c5e088375f4ff3d2b1555.png

The option byte is defined as following:
-    E bit: end of option (Must be set to 1 for the last Option)
-    A bit: AND bit, if set the operation between several [option/value] is AND, if unset the operation is a logical OR. Never set for the first Option
-    Len: If 0 the following value is encoded in 1 byte ; if 1 the following value is encoded in 2 bytes
-    NOT bit: logical negation operation between Data and the given value
-    m bit: match operation between the Data and the given value

Type 10: Packet Length component

https://i-blog.csdnimg.cn/blog_migrate/bf4d54e9ff87b6ccf2b5ad4f1027215f.png

Type 11: DSCP Value component

https://i-blog.csdnimg.cn/blog_migrate/e37f485e53ec9c7e7fb271e4ca6a8902.png

Type 12: Fragment component

https://i-blog.csdnimg.cn/blog_migrate/0de0ce97a64bc34d99f60476a0e3800b.png

After the flow definition, Traffic Actions (rules) are encoded as Extended Community Attribute (see RFC 4360)

https://i-blog.csdnimg.cn/blog_migrate/ba74b8e64f50683399a55bf8bcad29f7.png
There are 4 types of “Action”, each of them has a dedicated Extended Community TYPE. The tab below lists the current Actions available:

https://i-blog.csdnimg.cn/blog_migrate/5df4b450e62cab2168a486c4b835748d.png

Traffic-rate action:
Used for discard or rate-limit a specific flow. Discard action is actually a rate equal to zero. The remaining 4 octets carry the rate (in Bytes/sec) information.

https://i-blog.csdnimg.cn/blog_migrate/4b828e4b8f89d05e32745a3874198d1c.png

Traffic-action action:
Used to trigger specific processing the corresponding flow. Only the last 2 Bits of the 6 bytes are currently defined as following:

https://i-blog.csdnimg.cn/blog_migrate/e05670d1c5b3d2b196cc7dd08e47d055.png

-    Terminal Action (bit 47): When this bit is set, the traffic filtering engine will apply any subsequent filtering rules (as defined by the ordering procedure). If not set, the evaluation of the traffic filter stops when this rule is applied.
-    Sample (bit 46): Enables traffic sampling and logging for this flow specification.

Redirect action:
Traffic redirection allows to specify a
“route-target” community which will be handled by the router to redirect a Flow to a specific VRF.

https://i-blog.csdnimg.cn/blog_migrate/a9aa06fa97d30a06b67eb2a6c9f72198.png
Traffic-marking action:
Used to force a flow to be re-writted with a specific DSCP value when it leaves the routers.

https://i-blog.csdnimg.cn/blog_migrate/05adbf0d72e43562318b7dfa7c9f53c9.png

客户端处理流程

FRR实现了Flowspec客户端,也就是说BGP能够接收Flowspec条目,但不能充当管理器并发送Flowspec条目,FRR使用linux提供的PBR实现了下发的策略。

  • 使用过滤流量Netfilter。 Netfilter提供了一组类似的工具ipset和iptables那些强大到足以能够过滤等流程规格过滤规则。
  • 通过iproute2(通过 提供的命令)使用非标准路由表。 已经被FRR的PBR守护进程使用,该守护进程基于IP源和目的地标准提供基于策略的基本路由。

 

基本配置:

router bgp <ASx>
 neighbor <A.B.C.D> remote-as <ASz>
 address-family ipv4 flowspec
  neighbor A.B.C.D activate

调试命令:

show bgp ipv4 flowspec [detail | A.B.C.D]
show pbr ipset IPSETNAME | iptable
show ip route table TABLEID
[no] debug bgp flowspec
[no] debug bgp pbr [error]

 

收包处理流程

bgp_process_packet 处理BGP 收到的报文,FLOW SPEC是update的消息,
----调用bgp_update_receive处理update消息
---- bgp_attr_parse 解析update消息的attr
      ---- bgp_attr_ext_communities 解析 BGP_ATTR_EXT_COMMUNITIES 扩展属性为str,里面涉及flow spec的4种action,解析后存放在attr->ecommunity里面
      ---- bgp_mp_reach_parse解析BGP_ATTR_MP_REACH_NLRI属性,里面有flow spec的12种match,存放在struct bgp_nlri的nlri里面
---- bgp_nlri_parse 继续解析NLRI
     ---- bgp_nlri_parse_flowspec 解析flow spec的nlri,IPV6不支持??需要支持要修改什么?
          ---- bgp_fs_nlri_validate 解析flow spec的12种match 属性的合法性
          ---- bgp_update 这个函数有点庞大,的继续看
             ---- bgp_process
---- bgp_process_wq
     ---- bgp_process_main_one
    ---- bgp_zebra_announce
               ----bgp_pbr_update_entry  flowspec调用PBR 实现策略
bgp_pbr_update_entry
---- bgp_pbr_build_and_validate_entry 解析、填充flowspec的match和action
---- bgp_pbr_handle_entry 解析填充完成后,调用这个函数下发bgp pbr的策略
     ACTION_TRAFFICRATE 限速、ACTION_TRAFFIC_ACTION、ACTION_MARKING dscp当前的PBR是没有显示下发的。
     bgp_pbr_policyroute_add_to_zebra其余的支持的调用实现下发策略到zebra
     ---- bgp_pbr_policyroute_add_to_zebra_unit
          ---- bgp_send_pbr_ipset_match
          ---- bgp_send_pbr_ipset_entry_match

          ---- bgp_send_pbr_iptable

 

FRR 只支持FLOW SPEC的客户端,FRR是利用PBR实现的,PBR怎么实现的,后续再来补充

【信息科学与工程学】【安全领域】第八十七篇 网络空间安全中的数学物理约束01 密码学基础(对称加密/公钥加密/哈希/数字签名)密码分析学(差分分析/线性分析/侧信道)安全协议与形式化验证(认证协议/TLS/密钥交换)访问控制与身份认证(Bell-LaPadula/BIBA/RBAC/ABAC)网络安全与攻防对抗(DDoS/入侵检测/攻防博弈)恶意代码分析(传播动力学/图论模型)隐私保护(差分隐私/同态加密/多方计算)可信计算与硬件安全(TPM/侧信道/故障注入)风险评估与漏洞管理(CVSS/攻击图/贝叶斯网络)信息论安全(完善保密性/熵/信息泄露量化)约束:侧信道攻击中的功耗模型(R 阅读详情

相关推荐

【信息科学与工程学】【通信工程】第一百九十二篇 交换机体系结构01

编号类型领域问题详细的数学分析参数列表(表达式 / 范围 / 边界 / 测量)关联知识1.1算法-架构路由查找LPM 在多口线速下的时延界字符串集 + Trie 的偏序格:路由表 = 前缀集合 P⊂{0,1}^≤32,LPM 是找 p∈P 使 p 是 d 的最长前缀。TCAM 等价于并行匹配,复杂度 O(1);SRAM 软实现(DIR-24-8 等)≈ 多阶 Trie,期望比较次数 = 树深 = O(W),W=32/128。 优化理论:TCAM 占用 vs SRAM 的 knapsack:min ∑w

weixin_49199313的博客 515

BGP Flow Specification原理

定义 BGP Flow Specification功能是一种用于防止DoS(Denial of Service)/DDoS(Distributed Denial of Service)攻击的方法,可以提高网络安全性和可用性。 目的 DoS/DDoS攻击是对网络安全的一个重大威胁,DoS/DDoS攻击者通过多个控制端控制成千上万的攻击设备对同一个目的地址、网段或服务器同时发起流量攻击,导致网络...

~~ LINUX ~~ 8747

42、BGP安全技术:RTBH过滤与Flowspec配置详解

本文详细解析了BGP安全技术中的RTBH过滤与Flowspec配置,包括它们的原理、应用场景及具体配置步骤。针对DDoS攻击,介绍了如何使用RTBH在网络边缘丢弃流量,以及Flowspec如何基于多种参数进行精细流量控制。此外,还对比了RTBH与Flowspec的特点和适用场景,并探讨了它们在实际网络中的配合使用方式及未来发展趋势,为提升网络安全性提供了实用的技术参考。

plant的博客 216

BGP Flowspec的解释

BGP Flowspec 的快速解释 BGP Flowspec 允许您在 BGP UPDATE 消息中发送条件和操作。 条件 条件在 RFC4760 中定义的 MP_REACH_NLRI 或 MP_UNREACH_NLRI 中进行了描述。 使用的 AFI 和 SAFI 如下。AFI:1SAFI:133 http://www.iana.org/assignments/safi-namespace/...

剪刀石头布 735

【信息科学与工程学】【通信工程】第五十九篇 IP网络设计01

IP网络设计不是只写ip address;它本质是的问题,所以参数天然分布在:层级例子物理/传输(可选但你会要求光路/电路)光功率/OSNR/色散/衰减/BER/FEC;铜/微波链路预算L1/L2 链路模型速率、MTU、成帧开销、串行化、传播时延、缓冲排队/调度/QoS服务曲线、令牌桶、延迟界、丢包概率近似路由/TE/可靠性流守恒、路径容量、切换/收敛时间信息论/可达性Shannon 上限、FEC 有效码率、链路容量 after overhead计算科学/数值。

weixin_49199313的博客 511

【 ‌infrastructure】【数据中心】【AI infra】第十篇 智能计算数据中心解决方案集成测试和交付知识体系1005

路由协议需要同时处理动态拓扑(LEO)和静态拓扑(GEO),BGP 的收敛速度无法跟上 LEO 切换(秒级),而 OSPF 的 LSDB 更新过于频繁。mode 4(LACP)需要交换机支持,mode 0(round-robin)可能乱序,mode 2(active-backup)带宽利用率低。使用 DCB(Data Center Bridging)配置 PFC 优先级映射,将 RoCE 流量映射到高优先级(3 或 4),其他流量低优先级。或者使用异步 NVMe-oF,允许命令排队,容忍延迟。

weixin_49199313的博客 76

【信息科学与工程学】【通信工程】第三百零六篇 IPv6/SRv6服务链中的学科知识01

序号数据类型 (主类)数据类型 (子类)示例/说明存储/表示方式备注/应用场景2246生物信息型DNA序列ATGC碱基序列FASTA格式基因组2247生物信息型RNA序列AUGC碱基序列FASTA转录组2248生物信息型蛋白质序列氨基酸序列FASTA蛋白组2249生物信息型基因注释GFF/GTF文件Gene annotation功能2250生物信息型变异数据VCF文件Variant call formatSNP/INDEL2251生物信息型表达矩阵基因×样本Expression matrix (FPKM/T

weixin_49199313的博客 93

【信息科学与工程学】【通信工程】计算机科学与自动化——第二百三十三篇 云NaaS服务 系列二02

字段内容类型​云网络自定义路由表(Custom Route Table):允许用户自定义 VPC 或子网的路由规则,控制流量走向,支持黑白名单、策略路由。端计算节点->边缘计算节点->边缘DC->中心云的网络情况及存储需求及配置情况列表​端计算节点为 VPC 内的云资源。边缘计算节点不适用。边缘 DC 和中心云为路由表管理平台。存储需求:路由条目存储于数据库。网络:路由表在虚拟路由器中执行。QoS:无。网络的端到端配置(从接入到汇聚到核心)​。

weixin_49199313的博客 329

【信息科学与工程学】【通信工程】第七十九篇 网络规划中的方案中的数学建模01

编号学科网络领域产品核心知识点与数学方程式在网络设计中的详细作用理论/工程依据 关联知识和法律法规1概率论与数理统计​流量工程与负载均衡​路由器、交换机、SDN控制器核心知识点:​ 排队论 方程式:​ M/M/1队列平均等待时间 W=μ(μ−λ)λ​ 变量定义:​ λ = 平均到达率 (packets/s), μ = 平均服务率 (packets/s) 单位:​ packets/s, s 数值设计:​ 需满足 ρ=λ/μ<1 以保证队列稳定。 推导要点:​ 基于泊松到达过程与指

weixin_49199313的博客 327

【信息科学与工程学】【通信工程】【云骨干网】第一百三十三篇 智算中心互联之云骨干网01

传统网络方向(如硬件防火墙、交换机)和安全产品方向(如传统防病毒软件)并未“完全”进入衰退期,但已处于深度转型阶段。市场对基础能力的需求仍在,但技术形态、价值重心和竞争逻辑已发生根本变化。

weixin_49199313的博客 1122

【信息科学与工程学】【通信工程】第一百五十五篇 SRv6/SDN网络中的算法02

IPSec over SRv6是一种结合了SRv6灵活路由与IPSec高安全性的技术方案,适用于对传输安全性和路径可编程性均有要求的场景(如金融专网、跨域骨干网)。

weixin_49199313的博客 1473

【 ‌infrastructure】【数据中心】【AI infra】第十篇 智能计算数据中心解决方案集成测试和交付知识体系01

编号类型领域模块子模块学科知识点及详细数学建模与数值设计(推导/边界/示例)关联知识、标准、法律法规、论文、工业实践1.1架构智算集成总体拓扑业务/管理/数据/参数面分离系统架构、队列论、网络流四平面隔离:业务面带宽B_b、数据面B_d(对象/数仓ETL)、参数面B_p(NCCL AllReduce)、管理面B_m(Prometheus/API)。总成本C=Σ(N_server·C_s+N_sw·C_sw+N_dpu·C_dpu)+C_power;约束B_p≥模型梯度量G/t_step。示例:千卡A100、

weixin_49199313的博客 104

【信息科学与工程学】【通信工程】 第一百四十四篇 城域云网中的数学分析02

全面覆盖了文档中提到的所有业务场景(L1~L5体验、游戏加速、医疗、工业互联网、卫星、智慧城市、车联网、全息通信、云游戏、5G LAN、智慧医疗、工业TSN等)以及所有技术细节(基站、OTN、IP网络设备、城域网拓扑、FlexE、SRv6 Policy、BIER6、APN6、MEC、内生安全、数字孪生、意图驱动、AIOps、零信任、SD-WAN等),每一题都体现了多要素(基站、OTN、IP、拓扑、业务、配置、调度、优化)的联合优化。问题:在 WIFI6 空口和城域网中为直播业务分配资源,保障上行带宽。

weixin_49199313的博客 471

【信息科学与工程学】信息工程领域——第三十六篇 电路电子06 电路设计02

覆盖资质、域名、利益、权力、外部关系、品牌形象、财务、账务、销售话术、市场策略、经营策略、产品策略以及人性恶意与善意管理。编号类型领域行业模块管理的内容(定性及定量分析)及管理的频次及周期投入的资源及人力物力和财力及话术和手段和方法关联知识和法律法规1合规法务通用资质维护监控各项资质有效期 Texp​,提前90天启动续期。剩余天数 D=Texp​−Tcurrent​,若 D<90则触发预警。续期成功率 Prenew​=总要求项准备完成项​×(1−e−k⋅投入时间)。频次:每周检查一次。人力:1名法务专员;物

weixin_49199313的博客 45

【信息科学与工程学】【通信工程】第八十六篇 通信网络设备及通信网络组网的所有学科知识01

编号001类型网络虚拟化与覆盖技术网络领域数据中心网络子领域大二层网络 / 网络虚拟化核心数学方程式/算法模型核心算法:VXLAN封装与解封装。关键在于24位VNI(虚拟网络标识符)到物理网络的三层IP地址的映射。封装:收到原始以太帧后,为其添加 VXLAN 头部(含 VNI)、外层 UDP 头(目的端口 4789)、外层 IP 头(源 IP 为本地 VTEP IP,目的 IP 为对端 VTEP IP)以及外层 MAC 头。解封装:对端 收到报文后,剥离外层头部,根据内层帧的目的 MAC 和 VNI 进行二

weixin_49199313的博客 839

【信息科学与工程学】【数据中心】 第二十三篇【智算中心】DDC网络-满足大规模训练、推理、存储区网络(Roce2组网)-01

设计维度目标值设计原则实现手段评估指标性能目标​端到端延迟<10ms低延迟优先RDMA优化,拓扑扁平化延迟分布,p99延迟可用性目标​99.99%可用性冗余设计多路径,设备冗余MTBF,MTTR吞吐目标​核心交换>10Tbps无阻塞交换大带宽核心,Clos架构对分带宽扩展性目标​线性扩展至1000节点模块化设计标准Pod架构扩展成本函数安全目标​零信任架构纵深防御微分段,加密传输安全事件数能效目标​PUE<1.2绿色计算高效设备,智能调度能效比(W/IOPS) 2. 物理拓扑设计 2.1 数据中心物理

weixin_49199313的博客 561

【信息科学与工程学】计算机科学与自动化—第十五篇 云计算 11 算法篇02

但若第一个应用需求40GB/s,第二个10GB/s,总需求50GB/s>40GB/s,第一个得32GB/s,第二个得8GB/s,不公平。但若分区负载不均(分区1-2各有100任务/s,分区3-4各有50任务/s),A负责1-2(200/s),B负责3-4(100/s),仍均衡。任务 τi​ 的计算需求 Wi​(CPU周期),在频率 f 下执行时间 Ti​=Wi​/f,能耗 Ei​=Pdyn​⋅Ti​=Ceff​⋅V2⋅f⋅(Wi​/f)=Ceff​⋅V2⋅Wi​。若 Mneed​>Mi​,需使用远程显存。

weixin_49199313的博客 107

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3459
上一篇: FRR BGP协议分析6 -- 路由更新(3)
下一篇: FRR BGP协议分析7 -- BGP 层3隧道 (1)
废言Pro
博客等级 码龄16年 1093粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值