• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

08-ACL和QoS配置指导

目录

03-数据缓冲区配置

本章节下载 03-数据缓冲区配置  (301.85 KB)

03-数据缓冲区配置


1 数据缓冲区

1.1  数据缓冲区简介

1.1.1  数据缓冲区分类

数据缓冲区用来临时存储报文,如图1-1所示,数据缓冲区分为接收缓冲区、发送缓冲区和Headroom缓冲区:

·     接收缓冲区:用来缓存接收的数据。当设备的CPU繁忙时,端口不能立即将收到的报文交给CPU处理,会将数据暂时存储到接收缓冲区。

·     发送缓冲区:用来缓存发送的数据。当网络拥塞时,端口不能立即发送数据,为防止数据丢失,会将数据暂时存储到发送缓冲区。

·     Headroom缓冲区:设备优先使用接收缓冲区和发送缓冲区,当这两种数据缓冲区用尽后,设备将使用Headroom数据缓冲区提供额外的报文缓存能力。

图1-1 数据缓冲区划分示意图

1.1.2  cell资源

发送数据缓冲区和接收数据缓冲区在缓存数据时,都会同时用到cell资源。cell资源用来存储数据包的内容,端口会根据报文的实际大小占用相应大小的cell资源。一个cell资源是256字节,假设当发送的报文是128字节时,端口会给它分配一个cell资源,当发送的报文是300字节时,端口会给它分配两个cell资源。

1.1.3  固定区域和共享区域

cell资源分为共享区域和固定区域。

·     固定区域是按队列划分的,每个队列又按端口均分,如图1-2所示。如果设备CPU繁忙或网络发生拥塞,设备在接收或发送报文时,会根据一定的策略将报文分发到相应的队列。如果该端口的该队列缓冲区满,则放到共享区域中的相应队列;如果共享区域中该队列满,则将报文丢弃。在固定缓冲区中,系统会根据用户的配置给队列预留指定大小的空间,即便该队列没有报文存储需求,其他队列也不能抢占。给队列预留的空间均分给每个端口的,即使某端口的某队列没有报文存储需求,其他端口也不能抢占。

·     共享缓冲区只按队列划分,不再按端口均分,如图1-2所示。系统会根据用户配置以及实际需要收发报文的数量决定每个队列实际可占用的缓冲区的大小。如果某个队列没有报文存储需求,则其他队列会抢占该队列的配额。对于某个队列的缓冲区,所有端口接收或发送的报文采用抢占的方式,先到先得,如果资源耗尽,则后到达的报文将被丢弃。

·     共享缓冲区还可以按照服务池(Service Pool)进行划分,如图1-2所示。服务池是针对不同应用服务划分出来的独立空间,在接收缓冲区、发送缓冲区中的共享缓冲区内划分。同时,用户可以配置指定队列映射到指定服务池,此时该队列只能抢占该服务池的资源,不会影响其它服务池的工作。缺省情况下,所有共享缓冲区均属于Service Pool 0。

图1-2 固定区域和共享区域划分示意图

1.2  数据缓冲区配置限制和指导

用户可以使用以下两种方式配置数据缓冲区:

·     配置Burst功能自动分配缓冲区

·     手工配置数据缓冲区

需要注意的是,以上两种数据缓冲区的配置方式不能同时使用,如果已经使用某一种方式进行了配置,则必须先取消该方式的配置之后,才能使用另外一种方式进行配置。否则,配置失败。

数据缓冲区的配置比较复杂,而且对设备的转发功能有重要的影响,建议用户不要轻易修改数据缓冲区的缺省参数。在需要较大的缓存空间时,建议使用Burst功能来自动分配缓冲区。

请在设备接收转发报文之前完成手工分配数据缓冲区、队列可用的数据缓冲区大小和队列与服务池映射关系的相关配置。如果在报文转发过程中配置此类任务,有可能引起丢包。

1.3  数据缓冲区配置任务简介

数据缓冲区配置任务如下:

·     配置Burst功能自动分配缓冲区

·     手工分配数据缓冲区

·     配置队列可用的数据缓冲区大小

¡     配置队列最多可使用的固定区域的大小

¡     配置队列最多可使用的共享区域的大小

·     配置队列与服务池的映射关系

·     (可选)配置数据缓冲区监控功能

·     (可选)配置数据缓冲区告警功能

¡     配置接收或发送缓冲区超门限告警功能

¡     配置Headroom缓冲区超门限告警功能

¡     开启数据缓冲区丢包告警功能

1.4  配置Burst功能自动分配缓冲区

1. 功能简介

在下列情况下,Burst功能可以提供更好的报文缓存功能和流量转发性能:

·     广播或者组播报文流量密集,瞬间突发大流量的网络环境中。

·     报文从高速链路进入设备,由低速链路转发出去。

·     报文从相同速率的多个端口同时进入设备,由一个相同速率的端口转发出去。

开启数据缓冲区自动分配功能前后,设备缓冲区的分配情况会有较大的变化,可以通过display buffer命令查看开启前后设备数据缓冲区的分配情况。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启Burst功能。

burst-mode enable

缺省情况下,未开启Burst功能

1.5  手工分配数据缓冲区

1. 功能简介

设备上整个数据缓冲区的大小是固定的,用户可以手工配置共享区域的大小,其余部分将自动成为固定区域。

缺省情况下,所有队列均分共享区域/固定区域。用户可以手工调整指定队列最多可使用的共享区域/固定区域的大小,其它未配置的队列最多可使用的共享区域/固定区域的大小仍遵循缺省值。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置数据缓冲区分配规则。请至少选择其中一项进行配置。

¡     配置数据缓冲区中共享区域的大小。

buffer egress [ slot slot-number ] cell total-shared ratio ratio

缺省情况下,cell缓冲区中共享区域所占比例为100%。

¡     配置队列最多可使用的共享区域的大小。

buffer egress [ slot slot-number ] cell queue queue-id shared { ratio ratio | size }

缺省情况下,每个队列最多可使用的共享区域比例均为20%。

各队列最多可使用的共享区域的大小将根据本命令的配置,以及实际需要收发报文的数量决定。

buffer egress [ slot slot-number ] cell queue queue-id shared size命令是配合PFC功能使用的。不使用PFC功能时,请勿单独配置本命令。有关PFC功能的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网接口”。

仅Release 6616及以上版本支持size参数。

¡     配置队列最多可使用的固定区域的大小。

buffer egress [ slot slot-number ] cell queue queue-id guaranteed ratio ratio

所有队列所配置的固定区域大小之和,不应超过可配置的总固定区域大小,否则配置失败。

¡     配置服务池最多可使用的共享区域的大小。

buffer { egress | ingress } [ slot slot-number ] cell service-pool sp-id shared ratio ratio

缺省情况下,服务池0可使用的共享区域的大小为100%。

(3)     应用数据缓冲区分配规则。

buffer apply

执行本命令后,所配置的数据缓冲区分配规则才会生效。如果需要修改数据缓冲区分配规则,需要先取消应用,再修改分配规则并重新应用。

1.6  配置队列可用的数据缓冲区大小

1.6.1  配置队列最多可使用的固定区域的大小

1. 功能简介

数据缓冲区中的固定区域是按队列划分的,每个队列又按端口均分。在报文存储时,即便某队列没有报文存储需求,其他队列也不能抢占。通过本功能可以调整接口下指定队列最多可使用固定区域的比例。其它未配置的队列则均分剩余的固定区域。

2. 配置限制和指导

接口下所有队列所配置的可使用的固定区域大小之和,不应超过可配置的总固定区域大小,否则配置失败。

对于配置队列最多可使用的固定区域的大小,接口下的配置的优先级高于系统下的配置,即如果针对某队列在接口视图及系统视图下均做了配置,则接口视图下的配置生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置队列最多可使用的固定区域的大小。

buffer egress cell queue queue-id guaranteed ratio ratio

缺省情况下,所有队列最多可使用的固定区域大小均为13%。

1.6.2  配置队列最多可使用的共享区域的大小

1. 功能简介

数据缓冲区中的共享区域是按队列划分。在报文存储时,如果某队列没有报文存储需求,其他队列也可以抢占该队列的存储资源。通过本功能可以调整接口下指定队列最多可使用共享区域的大小,其它未配置的队列最多可使用的共享区域的大小仍遵循缺省值。最终,各队列最多可使用的共享区域的大小将由芯片根据buffer shared配置,以及实际需要收发报文的数量决定。

2. 配置限制和指导

对于配置队列最多可使用的共享区域的大小,接口下的配置的优先级高于系统下的配置,即如果针对某队列在接口视图及系统视图下均做了配置,则接口视图下的配置生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置队列最多可使用的共享区域的大小。

buffer egress cell queue queue-id shared { ratio ratio | size }

缺省情况下,所有队列最多可使用的共享区域大小均为20%。

buffer egress cell queue queue-id shared size命令是配合PFC功能使用的。不使用PFC功能时,请勿单独配置本命令。有关PFC功能的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网接口”。

仅Release 6616及以上版本支持size参数。

1.7  配置队列与服务池的映射关系

1. 功能简介

配置本功能后,队列将使用指定服务池进行报文存储。此时该队列只能抢占该服务池的资源,不会影响其它服务池的工作

由于队列与队列中缓存的报文的802.1p优先级存在映射关系,即dot1p-lp映射表,所以:

·     对于发送缓冲区,本命令中配置的queue-id指队列ID,而非队列中缓存的报文的802.1p优先级值。

·     对于接收缓冲区,本命令中配置的queue-id指报文的802.1p优先级,而非缓存此类报文的队列的ID。

2. 配置准备

通过buffer service-pool shared命令配置服务池最多可使用的共享区域的比例。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置队列与服务池的映射关系。

buffer { egress | ingress } queue queue-id map-to service-pool sp-id

缺省情况下,所有队列均映射到服务池0。

1.8  配置数据缓冲区监控功能

1. 功能简介

用户可以设置接口使用数据缓冲区的门限值,设备通过该值来判断接口当前是否处于超量使用缓冲区的状态。当接口上某一队列中需要处理的报文增多,造成该接口对数据缓冲区的使用比例超过设定的门限值时,系统会为该队列增加一次超量使用缓冲区的计数,以此监控数据缓冲区的使用情况。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置接口的数据缓冲区使用门限值。

buffer usage threshold slot slot-number ratio ratio

缺省情况下,接口的数据缓冲区使用门限值为70。

1.9  配置数据缓冲区告警功能

1.9.1  功能简介

数据缓冲区告警功能需要配合iMC等网管软件使用,数据缓冲区告警包括超门限告警和丢包告警。设备数据缓冲区产生告警后,会周期性的将告警信息上送iMC等网管软件,网管软件会生成相应的告警提示,方便查看设备数据缓冲区的使用情况。

1.9.2  配置接收或发送缓冲区超门限告警功能

(1)     进入系统视图。

system-view

(2)     配置队列接收或发送缓冲区告警门限值。请至少选择其中一项进行配置。

¡     配置全局队列接收或发送数据缓冲区使用门限值。

buffer { egress | ingress } usage threshold slot slot-number queue queue-id ratio ratio

缺省情况下,全局所有接口下每个队列的接收或发送数据缓冲区使用门限值均为100%。

¡     请依次执行以下命令配置接口队列接收或发送数据缓冲区使用门限值

interface interface-type interface-number

buffer { egress | ingress } usage threshold queue queue-id ratio ratio

缺省情况下,接口队列接收或发送数据缓冲区与全局队列数据缓冲区使用门限值相同。

¡     配置服务池使用率的告警门限值功能。

buffer { egress | ingress } usage threshold service-pool sp-id slot slot-number ratio ratio

缺省情况下,服务池使用率的告警门限值为100%。

(3)     开启接收或发送数据缓冲区超门限告警功能。

buffer threshold alarm { egress | ingress } enable

缺省情况下,接收或发送数据缓冲区超门限告警功能处于关闭状态。

(4)     (可选)配置接收或发送数据缓冲区超门限告警发送周期。

buffer threshold alarm { egress | ingress } interval interval

缺省情况下,接收或发送数据缓冲区超门限告警发送周期为5秒。

1.9.3  配置Headroom缓冲区超门限告警功能

(1)     进入系统视图。

system-view

(2)     配置Headroom缓冲区的门限值。请至少选择其中一项进行配置。

¡     配置全局Headroom缓冲区的使用门限值。

buffer usage threshold headroom slot slot-number ratio ratio

缺省情况下,全局所有接口下每个队列的Headroom缓冲区使用门限值均为100%。

¡     请依次执行以下命令配置接口Headroom缓冲区的使用门限值。

interface interface-type interface-number

buffer usage threshold headroom queue queue-id ratio ratio

缺省情况下,接口Headroom缓冲区与全局Headroom缓冲区使用门限值相同。

(3)     开启Headroom缓冲区超门限告警功能。

buffer threshold alarm headroom enable

缺省情况下,Headroom缓冲区超门限告警功能处于关闭状态。

(4)     (可选)配置Headroom缓冲区超门限告警发送周期。

buffer threshold alarm headroom interval interval

缺省情况下,Headroom缓冲区超门限告警发送周期为5秒。

1.9.4  开启数据缓冲区丢包告警功能

1. 功能简介

开启本功能后,设备将周期性的将数据缓冲区的丢包信息上送网管服务器。

2. 配置限制和指导

本功能对Headroom缓冲区不起作用。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启数据缓冲区丢包告警功能。

buffer packet-drop alarm enable

缺省情况下,数据缓冲区丢包告警功能处于关闭状态。

(3)     (可选)配置数据缓冲区丢包告警发送周期。

buffer packet-drop alarm interval interval

缺省情况下,数据缓冲区丢包告警发送周期为5秒。

1.10  数据缓冲区显示和维护

在完成上述配置后,在任意视图下执行display命令可以查看数据缓冲区的手工配置效果。

表1-1 设备管理显示和维护

操作

命令

显示数据缓冲区的大小

display buffer [ slot slot-number ] [ queue [ queue-id ] ]

显示数据缓冲区的使用率

display buffer usage [ slot slot-number ]

显示接口的数据缓冲区使用统计信息

display buffer usage interface [ interface-type [ interface-number ] ] [ verbose ]

 


2 TCB

2.1  TCB简介

2.1.1  概述

TCB(Transient Capture Buffer,瞬时抓包缓存)是一种用来监控MMU(Memory Management Unit,缓存管理单元)队列丢包的技术。开启TCB功能后,系统将持续监控队列。当队列发生丢包时,系统将收集丢包时间、丢包原因、被丢弃报文的原始数据等信息,可通过gRPC方式上报网管,方便网络管理员及时知晓设备上发生的丢包事件。

MMU是设备转发芯片中管理数据缓冲区的核心,负责对各接口下接收缓冲区和发送缓冲区进行合理分配,并对其中的队列进行灵活调度,使设备更好的应对各种突发流量。

图2-1 MMU队列示意图

 

2.1.2  运行机制

TCB功能的状态机如下:

(1)     TCB功能被开启,进入待触发状态;

(2)     当队列长度大于start-threshold-value门限时,由待触发状态进入预触发状态;此时使用pre-sample-rate对队列进行采样抓包;

(3)     当队列发生丢包时,由预触发状态进入触发状态;此时使用post-sample-rate对队列进行采样抓包;

(4)     当队列长度小于stop-threshold-value门限时停止抓包,由触发状态进入待触发状态;

(5)     在待触发状态下,当队列长度再次大于start-threshold-value门限时,重复步骤(2);

(6)     如果抓包数量达到frozen-number或抓包时间达到timer-value,由触发状态进入冻结状态;

(7)     对丢包原因及丢弃报文特征等信息进行分析,并将分析结果发送给gRPC模块,由gRPC上报网管;

(8)     由冻结状态进入待触发状态。

图2-2 TCB状态机

 

上报信息主要有:

·     接口和队列信息;

·     丢包原因;

·     丢弃报文特征(源/目的IP地址,源/目的端口号,协议号等),或直接上报被丢弃报文的原始数据。

2.2  TCB配置限制和指导

在系统视图下开启并配置全局TCB功能对相应slot上所有支持TCB功能的接口生效,在接口视图下开启并配置TCB功能仅对当前接口生效。两种配置方式互斥,如果当前已经使用一种方式开启了TCB功能,需要在该方式下关闭TCB功能后,才能使用另一种方式配置。

使用接口视图下的命令开启TCB功能时,设备仅支持在一个接口下开启TCB功能。

TCB的gRPC采样路径为tcb/tcbpacketinfoevent和tcb/tcbrawpacketinfoevent。有关gRPC的详细介绍,请参见“Telemetry配置指导”中的“gRPC”。

在VXLAN网络中的VTEP上开启TCB功能、对VTEP发往租户网络方向的报文进行丢包监控时,TCB功能获取到的丢包报文特征为VXLAN报文的外层头信息,而非内层头信息。

2.3  开启并配置TCB

2.3.1  开启并配置全局TCB

1. 软件版本适配关系

仅Release 6616及以上版本支持全局TCB功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启并配置TCB功能。

buffer transient-capture global [ slot slot-number ] egress enable [ no-local-analysis ] [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ start-threshold start-threshold-value stop-threshold stop-threshold-value ] [ frozen-number frozen-number frozen-timer timer-value ] [ pre-sample-rate pre-sample-rate post-sample-rate post-sample-rate ] [ poll-frequency frequency-value ]

2.3.2  开启并配置接口TCB

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     开启并配置TCB功能。

buffer transient-capture { egress [ queue queue-id ] | ingress } enable [ no-local-analysis ] [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ start-threshold start-threshold-value stop-threshold stop-threshold-value ] [ frozen-number frozen-number frozen-timer timer-value ] [ pre-sample-rate pre-sample-rate post-sample-rate post-sample-rate ] [ poll-frequency frequency-value ]

缺省情况下,TCB功能处于关闭状态。

2.4  TCB显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后TCB的运行情况,通过查看显示信息验证配置的效果。

说明

仅Release 6616及以上版本支持display buffer transient-capture packet-drop命令。

 

表2-1 TCB显示和维护

操作

命令

显示TCB捕获的丢包信息

display buffer transient-capture packet-drop slot slot-number { ethernet | ipv4 | ipv6 }

 

2.5  TCB典型配置举例

2.5.1  接口TCB配置举例

1. 组网需求

Device作为gRPC客户端与采集器相连。采集器为gRPC服务器。

在Device上开启并配置TCB与gRPC功能,监控MMU队列丢包,并将收集到的数据通过gRPC推送给Collector。

2. 组网图

3. 配置步骤

(1)     配置Device与Collector的IP地址,并确保它们之间路由可达,配置步骤略。

(2)     开启并配置TCB。

# 创建编号为3001的IPv4高级ACL,并为其创建如下规则:匹配源IP地址为192.168.5.2的报文。

<Device> system-view

[Device] acl advanced 3001

[Device-acl-ipv4-adv-3001] rule permit ip source 192.168.5.2 0

[Device-acl-ipv4-adv-3001] quit

# 对接口Twenty-FiveGigE1/0/1出方向队列1中匹配ACL 3001的报文开启TCB功能,不对抓包数据进行本地分析,进入预触发状态的队列长度门限值为10000字节,退出预触发状态的队列长度门限值为5000字节,抓包数量为1000,抓包时间为500微妙,预触发状态时的采样率为10,触发状态时的采样率为10,数据上报频次为600次/分钟。

[Device] interface twenty-fivegige 1/0/1

[Device-Twenty-FiveGigE1/0/1] buffer transient-capture egress queue 1 enable no-local-analysis acl 3001 start-threshold 10000 stop-threshold 5000 frozen-number 1000 frozen-timer 500 pre-sample-rate 10 post-sample-rate 10 poll-frequency 600

[Device-Twenty-FiveGigE1/0/1] quit

(3)     开启并配置gRPC。

# 开启gRPC功能。

[Device] grpc enable

# 创建传感器组test,并添加采样路径tcb/tcbpacketinfoevent和tcb/tcbrawpacketinfoevent。

[Device] telemetry

[Device-telemetry] sensor-group test

[Device-telemetry-sensor-group-test] sensor path tcb/tcbpacketinfoevent

[Device-telemetry-sensor-group-test] sensor path tcb/tcbrawpacketinfoevent

[Device-telemetry-sensor-group-test] quit

# 创建目标组collector1,并配置IP地址为192.168.2.1、端口号为50050的采集器。

[Device-telemetry] destination-group collector1

[Device-telemetry-destination-group-collector1] ipv4-address 192.168.2.1 port 50050

[Device-telemetry-destination-group-collector1] quit

# 创建订阅A,配置关联传感器组为test,关联目标组为collector1。

[Device-telemetry] subscription A

[Device-telemetry-subscription-A] sensor-group test

[Device-telemetry-subscription-A] destination-group collector1

[Device-telemetry-subscription-A] quit

[Device-telemetry] quit

4. 验证配置

当设备上开启TCB功能的MMU队列发生丢包时,采集器将收到设备推送的数据信息。

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们