Title

BGPv4特性探究-1@QPPB复杂流分类

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。

自动换行

其他相关资料

......

Border Gateway Protocol自1989年定义以来已经历过4个版本:1989年RFC1105的Version1,1990年RFC1163的Version2,1991年RFC1267的Version3,1994年RFC1654的Version4。而V4又历经了几次迭代,到目前比较全面完整的是2006年发布的RFC4271。
本文档旨在介绍相关原理,对于不同设备及厂家的实现上不做深究。有意者建议阅读相关资料。个人能力有限,如有疑问欢迎留言指导~

目录

1.相关术语和概念

BGP(Border Gateway Protocol,边界网关协议) 是一个 AS(Autonomous System,自治系统) 间的路由协议。BGP 的主要功能是与其他 BGP 系统交换网络可达性信息。

为便于介绍,在此先介绍一些关于BGP的相关术语
Autonomous System自治系统
单个路由协议管理下的一组路由器,使用内部网关协议(IGP)和通用度量来确定如何在AS内路由数据包。如果一个AS内运行了多个IGP协议,对于其他AS来说也认为其执行了内部一致的路由规则。

三张处理表/库
1@--Adj-RIB-In:邻居入方向的路由信息表/库。用于描述对等体向自己传输的完整路由信息。该路由表未进行入方向的路由策略。
2@--Adj-RIB-Out:邻居出方向的路由信息表/库。用于描述自己向对等体描述的路由信息,或者放置于Update消息报文中的路由信息。该路由表已进行出方向的路由策略。
3@--Loc-RIB:放置已被本地BGP以便进行选择的路由。该路由表已进行入方向的路由策略。

因此有如下的路由处理过程:
在这里插入图片描述简单来说Adj-RIB-In和Adj-RIB-Out是放置于Update报文中的路由信息。

NLRI
Network Layer Reachability Information,网络层可达信息。放置于Update报文中,主要描述了路由信息或路由的相关属性。

IBGP/EBGP
Internal和External BGP,简单来说为相同AS的对等体关系为IBGP邻居,相反为EBGP。

相关概念
1@:BGP 使用 TCP 的 179 端口进行相关协议报文的发送和监听。
2@:在建立了完整的 BGP 对等体关系后,BGP 只发送增量更新。而非周期性泛洪或刷新路由表。
因此 BGP 为了使路由有正确的结果需要 TCP 周期保活或使用Route-Refrsh路由刷新

BGP 提供了如下三种机制进行路由更改:
1@:发送withdraw类型的Update报文,将该路由进行撤销
2@:发送具有相同NLRI的Update报文,进行更新。通过此种方式可以更改路由的属性。
3@:中断BGP连接。

关于 BGP 基本原理的相关内容,可参考博客-BGPv4-原理介绍+报文分析+配置示例

点击此处回到目录

2.QPPB

2.1.QPPB基本背景

在普通 IP 网络中,所有报文遵循 BE(Best Effert) 尽力转发模型,所有的报文都被无区别的等同对待。在这种情况下一旦出现带宽不足链路拥塞等情况,部分高价值的业务将受到影响。

因此 QOS(Quality of Service) 技术应运而生。QOS 技术可以为高价值业务提供端到端的服务质量保证。同时 QoS 不会增加网络带宽,允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务。

QOS技术主要分为以下三种

1@流量分类与标记:主要用于接口入方向,可用于后续的进一步数据处理。
2@监管与整形:主要用于限制流量大小,提高网络资源使用效率。
3@拥塞管理与避免:主要用于在发生拥塞之后的报文处理原则以及如何缓解网络拥塞。

QOS Policy Propagation Through the Border Gateway Protocol
QPPB 全称 QOS Policy Propagation Through the Border Gateway Protocol,意为通过 BGP 协议传递 QOS 策略。这是一种特殊的复杂流分类方法。复杂流分类通常可以结合链路层、网络层、传输层信息、等的组合,对报文进行精细的分类。通常在 Differentiated Services 域的边界路由器上对流量进行复杂流分类。

在大型组网中,端到端的报文转发很可能需要经历多个 AS 域,并且 AS 域内也很可能存在大量的路由。同时复杂网络往往要经历实时的拓扑及路由变化。在这种情况下,既要保证大量高价值业务的高质量又要满足实时的动态变化需求,使用普通的 QOS 策略来动态保证端到端的质量转发是难以实现的。

为此,产生了 QPPB,一种可以针对 AS、community 等路由属性对报文进行流分类的技术。应用 QPPB 技术可以由 BGP Speaker 通过设置 BGP 属性预先对路由进行分类,BGP路由接收者只需要定义合适 BGP 路由属性后为为其设置 QoS 参数。数据转发时,读取 FIB 表中关联的 QOS 信息执行相应的 QoS 动作。

在网络发生变化后,BGP路由接收者可以不更改本地的配置,只是通过BGP路由发送者对发送的BGP路由属性做相关改动即可。

2.2.QPPB基本原理

在此为便于理解将 QPPB 行为分为控制面行为和转发面行为。控制面行为用于传递 QOS 策略,转发面行为用于执行对应的 QOS 动作。

本质上而言,BGP 传递的只是路由信息,具体的 QOS 动作还是通过本地定义的行为来执行。

QPPB的控制面行为
1@:远端 BGP Speaker 定义业务路由的特定属性。通常选用的 BGP 路由属性有 Path Attributes Code 2 = AS_PATH,Path Attributes Code 8 = Community,Path Attributes Code 16 = Extended_Community。
2@:本地 BGP Speaker 接受对应的业务路由。
3@:本地 BGP Speaker 根据本地定义的路由策略为匹配不同属性的路由绑定对应的 QOS-ID,并下发至对应的 FIB 转发表并关联不同的 Behavior ID。

QPPB的转发面行为
1@:本地定义策略路由,为具有不同 QOS-ID 的数据定义 QPPB 行为。
2@:在流量的上下行方向定义绑定 QOS 行为。

2.3.QPPB配置示例

此处仅介绍本端的 QPPB 复杂流分类的关键动作。

bgp 100
 peer 10.20.1.1 as-number 200
#
ipv4-family unicast
  peer 10.20.1.1 route-policy BGP_QPPB import
#
route-policy BGP_QPPB permit node 10
 if-match community-filter 10
 apply qos-local-id 1
#
 ip community-filter 10 index 10 permit 10:10 
#


traffic classifier Port_QPPB_Cla
 if-match qos-local-id 1
#
traffic behavior Port_QPPB_Beh
 remark dscp af11
#
traffic policy Port_QPPB
 classifier Port_QPPB_Cla behavior Port_QPPB_Beh
#
interface GigabitEthernet1/0/0
 ip address 10.10.1.1 255.255.255.0
 qppb-policy qos-local-id source inbound
 qppb-policy qos-local-id destination inbound
 qppb-policy qos-local-id both inbound
 traffic-policy Port_QPPB outbound
#


qppb local-policy Port_QPPB
 qos-local-id 1 behavior Port_QPPB_Beh
#
interface GigabitEthernet2/0/0
 ip address 20.10.1.1 255.255.255.0
 qppb-policy Port_QPPB source inbound
 qppb-policy Port_QPPB destination inbound
 qppb-policy Port_QPPB outbound
#


if-match qos-local-id 命令用来配置基于QoS策略ID的匹配规则。如果执行命令 if-match qos-local-id,后续需要执行命令 qppb-policy qos-local-id { destination | source } inbound,在接口入方向上应用 QPPB 流策略。
自动换行

qppb-policy qos-local-id 命令用来在接口入方向上基于报文的源和目的QoS策略ID使能复杂流策略
自动换行

qppb-policy inbound 命令用来将 QPPB 策略应用到接口入方向上,并选择对数据报文的匹配 FIB 方式。
自动换行

qppb-policy outbound 命令用来将 QPPB 策略应用到接口出方向。此时需要在上行需要在上行方向配置 qppb-policy qos-local-id { destination | source } inbound 命令。
自动换行
qppb-policy qos-local-id { destination | source } inbound 命令相当于在接口使能 QPPB 行为。
Cisco ASR 系列产品对应的命令为 ipv4 bgp policy propagation input qos-group { destination | source }。
qos-local-id { destination | source } inbound 可以同时在接口使能 QPPB 行为并执行 QPPB 动作。

点击此处回到目录

更新

posted @ 2025-05-03 12:58  m风行者  阅读(69)  评论(0)    收藏  举报