负载通知功能

目的

在QoS功能中,可以对发送的数据包根据QoS策略进行控制。但是接收数据,特别是在LAN接口的入口处由于过度接收而被丢弃的情况,将不可能根据策略进行控制。也就是说,接收的时候,在高负荷时也可能丢弃优先度高的数据包。

本功能的目的是将在接收时的非本意的数据包丢弃抑制在最小限度。作为手段,运行时监控自身的负载状态,在负载增大时要求对端设备数据包。

本功能在无法预测对端设备的负载状态的环境中特别有效。例如在hub-and-spoke型的网络中,中心同时处理从复数分支发来的流量时,分支处设备不能把握中心设备的负载状况。这时,在中心侧的设备可以根据自身的负载状态向分支侧的设备要求暂时抑制流量的发送以防丢包,可以使通信质量更加安定。

  ┏━━┓■■■■→
  ┃分支┣━━━━━━┓
  ┗━━┛            ┃            各分支的流量集中发送到中心的服务器上
                      ┃↓          中心的路由器的接收负载增大,发生丢包
  ┏━━┓■■■■→  ┃
  ┃分支┣━━━━┓  ┃              ■  ■            ┏━━━┓
  ┗━━┛        ┃  ┃ ■■■■■■■■■■→       ┣┫服务器┃
                ┏┻━┻━━━┓      发生丢弃        ┃┗━━━┛
  ┏━━┓■■  ┃            ┃        ┏━━━━┓  ┃
  ┃分支┣━━━┫ 网  络  ┣━━━━┫中  心┣━┫
  ┗━━┛      ┃            ┃        ┗━━━━┛  ┃
                ┗┳━┳━━━┛
  ┏━━┓■■■  ┃  ┃
  ┃分支┣━━━━┛  ┃↑
  ┗━━┛            ┃
                      ┃
  ┏━━┓■■■■■  ┃
  ┃分支┣━━━━━━┛            中心要求分支抑制流量的发送
  ┗━━┛              ←────────

       各分支在发送时根据规则进行QoS控制

  ┏━━┓■   ■→
  ┃分支┣━━━━━━┓
  ┗━━┛            ┃
                      ┃↓          负载减轻后,中心的路由器在接收时可以避免丢包
  ┏━━┓ ■   ■→ ┃
  ┃分支┣━━━━┓  ┃                                ┏━━━┓
  ┗━━┛        ┃  ┃         ■   ■   ■→       ┣┫服务器┃
                ┏┻━┻━━━┓          没有丢包    ┃┗━━━┛
  ┏━━┓  ■  ┃            ┃        ┏━━━━┓ ┃
  ┃分支┣━━━┫ 网  络 ┣━━━━┫中  心┣━┫
  ┗━━┛      ┃            ┃        ┗━━━━┛  ┃
                ┗┳━┳━━━┛
  ┏━━┓■  ■  ┃  ┃
  ┃分支┣━━━━┛  ┃↑
  ┗━━┛            ┃
                      ┃
  ┏━━┓ ■  ■     ┃
  ┃分支┣━━━━━━┛
  ┗━━┛

另一方面,在所有流量中,和控制对象的设备以外的通信占比较多的环境中需要注意。例如上例中存在和分支以外的连接的话,中心设备的接收流量中大部分来自于非分支的环境中,即使抑制了分支的流量也不会减轻中心设备的负载。在分支发送时进行QoS控制可以抑制重要数据包的丢失,但是中心设备的负载一直没有减轻,抑制一直不解除的话,结果反而使得控制对象的分支的可用带宽变窄。

本功能和带宽检测功能无法同时使用。

支持的机型和固件版本

雅马哈路由器的以下机型和固件,支持负载通知功能。

机型固件
RTX5000 Rev.14.00.15以后
RTX820 Rev.11.03.16以后
RTX1200 Rev.10.01.20以后
RTX800 Rev.10.00.20以后

运行概要

检测负载的设备作为服务器,根据结果接受服务器的控制要求的一侧作为客户端。

服务器侧,监控以下的负载值。

  • CPU负载,阈值为%
  • LAN接口
    • 接收量,阈值为单位时间内的比特数
    • 接收过量次数,阈值为单位时间内发生的次数
    • 发送量,阈值为单位时间内的比特数
  • 隧道接口
    • 接收量,阈值为单位时间内的比特数
    • 发送量,阈值为单位时间内的比特数

服务器监控的这些值如果超过预先设置的阈值时,会向客户端发送抑制请求通知。持续超过阈值的话,服务器会要求客户端在一定周期内抑制发送数据包。另外,在负载减轻时,为了迅速恢复,只要一下降到抑制解除阈值以下,服务器就会要求客户端解除抑制。为了防止频繁进行请求和解除,请使用不同的阈值,还可以指定发出通知前的检测的次数。

服务器侧的运行例(以连续检测出3次进行通知为例)

        ↑                    通知
  检测值│                123        ○●
        │                  ○●○    ○    ○○      ●
        │----------------○------○●----------●○○--○------------------------ 抑制要求阈值
        │          ○  ○                                ○
        │        ○  ○                                    ○ 负载的减轻       ○
        │      ○  负载的上升                                ○              ○
        │----○------------------------------------------------○----------○---- 抑制解除阈值
        │○○                                                    ○●○○○
        │                                                      123
        │                                                            通知
          ─────────────────────────────────────→
                                                                                时间
  计算的时间和值    : ○
  计算的结果,通知客户端: ●

客户端接收服务器的通知,进行QoS控制。接收到抑制要求通知时,通过一定比例来抑制流量。反复收到通知时,会抑制更多的流量。不再接收到服务器的通知时,会向着最大设置带宽或抑制开始前的设置值中的较小值,逐渐恢复流量。接收到抑制解除通知时,迅速恢复原状态。

接收到服务器的通知,由于恢复动作流量的抑制量发生变化等,影响了内部的QoS功能的动作,所以根据负载和时间点可能会发生丢包,对Dynamic Class Control的运行也会暂时造成影响。

客户端侧运行例

        ↑ 通过最大设置带宽运行
        │○○○○○○○○○○--------------------------------------●○○○○○------ 最大设置带宽
设置带宽│                │                                        ↑
        │接收到抑制要求而降低    ○                                │接收到抑制解除而恢复
        │                ↓    ○ 缓缓地回复                     ○
        │                    ●        ○                      ○
        │                            ○                      ○
        │                          ●        ○            ○ 缓缓地回复
        │       接收到抑制要求而降低       ○      ○    ○
        │                                ●      ○    ○
        │--------------------------------------●----●------------------------------ 最小设置带宽
        │                                      到达下限
          ─────────────────────────────────────→
                                                                                时间
  设置带宽                : ○
  接收到通知而变化的带宽 : ●

通过选项的设置可以定义每个对端的动作。选项的一览如下所示。详细请参考命令的项目。

[负载通知功能中,服务器和客户端必要的设置选项一览]

◎:必须的设置
○:可以设置
×:无法设置

设置项目 设置值 cooperation load-watch remote命令
remote=server
(客户端侧)
remote=client
(服务器侧)
必要性 默认值 必要性 默认值
ID 1~100 - -
ROLE server,client
(server)
-
(client)
-
ADDRESS (注1) - -
OPTION trigger 触发器的定义号,可以重复适用 × - 无设置
control 控制动作定义号 无设置 × -
port 表示端口号的10进制数 59410 59410
syslog on,off off off
apply on,off (注2) on (注2) on
register on,off (注3) off × -
register-interval 1~2147483647 [sec] (注3) 1200 × -
register-time 1~2147483647 [sec] × - (注4) 3600
name 最多16字符 (注5) 无设置 (注5) 无设置

[注意事项]

  • 注1:可以设置IP地址,FQDN或者any。
    客户端侧为非固定IP地址时,服务器侧设置为"any",客户端处设置为"register=on"。
  • 注2:服务器处设置为"apply=off"时,检测结果不发送给客户端。
    客户端处设置为"apply=off"时,QoS控制中不使用接收到的检测结果。
  • 注3:服务器侧的ADDRESS中指定了"any"以外时,可以设置。
  • 注4:客户端侧的ADDRESS指定为"any"时,可以设置。
  • 注5:不设置name时,接收所有的要求和通知。
    设置了name时,只接收名称一致的要求和通知。

设置例

例1.中心分别连接3处分支,中心处根据负载情况向各分支发出抑制请求,各分支接收该请求并反映在QoS设置中

              ┌──────┐
 172.16.100.1 │分支A       ├──────────┐
              └──────┘                    │
                                    ┌──────┴──────┐
              ┌──────┐      │                          │      ┌────────┐
 172.16.110.1 │分支B       ├───┤          网   络         ├───┤     中  心     │172.16.10.1
              └──────┘      │                          │      └────────┘
                                    └──────┬──────┘
              ┌──────┐                    │
 172.16.120.1 │分支C       ├──────────┘
              └──────┘


 中心设备的LAN2出的接收负载的监控值的变化的例:
 最抑制分支A的流量,对分支C的流量的影响最小。
 显示中心的负载的增加减少时的动态例。

 [Mbit/s] ↑
          │                                      ○○○○○○
          │                                    ○            ○
          │                                  ●→向C请求抑制   ○
          │                                ○                    ○
       80 │----------------------------- ●→向B请求抑制           ○  负载减少
          │                            ○                            ○
          │                          ○                                ○
          │                        ○                                    ○
          │                      ●→向A请求抑制                           ○
          │                    ○                                            ○
       50 │----------------- ○----------------------------------------------- ●→向C请求解除
          │                ○                                                    ○
          │              ○                                                        ●→向B请求解除
          │ 负载增加   ○                                                            ○
          │          ○                                                                ○
          │        ○                                                                    ○
       20 │----- ○----------------------------------------------------------------------- ●→向A请求解除
          │    ○                                                                            ○
          │  ○                                                                                ○
          │○                                                                                    ○
          │                                                                                        ○
            ─────────────────────────────────────────────→
                                                                                               时间
                                    分支A的流量抑制期间
                                  <--------------------------------------------------------->
                                            分支B的流量抑制期间
                                          <----------------------------------------->
                                                分支C的流量抑制期间
                                              <--------------------------------->

[设置说明]

中心
#cooperation load-watch trigger 1 lan2 receive high=50m low=20m,1
#cooperation load-watch trigger 2 lan2 receive high=80m,1 low=50m
#cooperation load-watch trigger 3 lan2 receive high=80m low=50m,1
#cooperation load-watch remote 1 client 172.16.100.1 trigger=1
#cooperation load-watch remote 2 client 172.16.110.1 trigger=2
#cooperation load-watch remote 3 client 172.16.120.1 trigger=3
#cooperation load-watch server on
分支A(优先控制)
#speed lan2 20m
#queue lan2 type priority
#cooperation load-watch client on
#cooperation load-watch control 1 high=20m low=1m
#cooperation load-watch remote 1 server 172.16.10.1 control=1
分支B(带宽控制)
#speed lan2 50m
#queue lan2 type shaping
#queue lan2 class property 1 bandwidth=30%
#cooperation load-watch client on
#cooperation load-watch control 1 high=50m low=1m lower=50 raise=2
#cooperation load-watch remote 1 server 172.16.10.1 control=1
分支C
#speed lan2 50m
#queue lan2 type priority
#cooperation load-watch client on
#cooperation load-watch control 1 high=50m low=10m lower=20 raise=5
#cooperation load-watch remote 1 server 172.16.10.1 control=1

[解说]

中心
#cooperation load-watch trigger 1 lan2 receive high=50m low=20m,1

设置通知的触发器。用单位时间内LAN2的接收比特数计算接收速度,该值连续3次超过50[Mbit/s]以上时,发送抑制请求,之后只要有1次下降到20[Mbit/s]以下时,就发送抑制解除。

#cooperation load-watch trigger 2 lan2 receive high=80m,1 low=50m

设置通知的触发器。用单位时间内LAN2的接收比特数计算接收速度,该值只要有1次超过80[Mbit/s]以上,就发送抑制请求,之后连续3次下降到50[Mbit/s]以下时,发送抑制解除。

#cooperation load-watch trigger 3 lan2 receive high=80m low=50m,1

设置通知的触发器。用单位时间内LAN2的接收比特数计算接收速度,该值连续3次超过80[Mbit/s]以上时,发送抑制请求,之后只要有1次下降到50[Mbit/s]以下时,就发送抑制解除。

#cooperation load-watch remote 1 client 172.16.100.1 trigger 1

将分支A登录为客户端。作为1号触发器的通知的对象。

#cooperation load-watch remote 2 client 172.16.110.1 trigger 2

将分支B登录为客户端。作为2号触发器的通知的对象。

#cooperation load-watch remote 3 client 172.16.120.1 trigger 3

将分支C登录为客户端。作为3号触发器的通知的对象。

#cooperation load-watch server on

作为服务器运行。

分支A(优先控制)
#speed lan2 20m

设置LAN2接口的速度。

#queue lan2 type priority

LAN2接口使用优先控制。需要另外设置别的Class。

#cooperation load-watch client on

作为客户端运行。

#cooperation load-watch control 1 high=20m low=1m

设置抑制动作。接口速度最高20[Mbit/s],接收到抑制请求时下降到最低1[Mbit/s]。

#cooperation load-watch remote 1 server 172.16.10.1 control 1

将中心侧作为服务器登录。设置从服务器接收到抑制请求时的适用的动作。

分支B(带宽控制)
#speed lan2 50m

设置LAN2接口的速度。

#queue lan2 type shaping

LAN2接口使用带宽控制。

#queue lan2 class property 1 bandwidth=30%

使用负载通知功能时,在queue class property命令中用%指定带宽。用%以外指定时,无法保证此设置值。需要另外设置别的Class。
本例中,由负载通知功能的变化后的速度的30%分配给class1。

#cooperation load-watch client on

作为客户端运行。

#cooperation load-watch control 1 high=50m low=1m lower=50 raise=2

设置抑制动作。接口最大速度为50[Mbit/s],接收到抑制请求时下降到最低1[Mbit/s]。接收到抑制请求时的抑制比率为50%,每个单位时间回复2%。

#cooperation load-watch remote 1 server 172.16.10.1 control 1

将中心侧作为服务器登录。设置从服务器接收到抑制请求时的适用的动作。

分支C
#speed lan2 50m

设置LAN2接口的速度。

#queue lan2 type priority

LAN2接口使用优先控制。需要另外设置别的class分类。

#cooperation load-watch client on

作为客户端运行。

#cooperation load-watch control 1 high=50m low=10m lower=20 raise=5

设置抑制动作。接口最大速度为50[Mbit/s],接收到抑制请求时下降到最低10[Mbit/s]。接收到抑制请求时的抑制比率为20%,每个单位时间回复5%

#cooperation load-watch remote 1 server 172.16.10.1 control 1

将中心侧作为服务器登录。设置从服务器接收到抑制请求时的适用的动作。

命令

设置协作运行时使用的端口号

[格式]

cooperation port PORT
no cooperation port [PORT]

[设置值]

  • PORT ... 端口号

[说明]

设置协作运行时使用的UDP的端口号。协作运行中用作发送数据包的源端口使用。另外,接收到发送至该端口号的数据包时,将当做运行相关的数据包进行处理。

[默认值]

59410

设置是否进行负载监控通知动作

[格式]

cooperation load-watch ROLE SW
no cooperation load-watch ROLE [SW]

[设置值]

  • ROLE ... 在协作运行中的角色
    • server ... 服务器
    • client ... 客户端
  • SW
    • on ... 有效
    • off ... 无效

[说明]

设置负载监控动作的每个功能的动作。

[默认值]

全功能off

负载通知中,进行每个对端运行时动作的设置

[格式]

cooperation load-watch remote ID ROLE ADDRESS [OPTION=VALUE]
no cooperation load-watch remote ID ROLE [ADDRESS [OPTION=VALUE]]

[设置值]

  • ID ... 对端的ID号(1-100)
  • ROLE ... 协作运行中对端的角色
    • server ... 对端作为服务器运行
    • client ... 对端作为客户端运行
  • ADDRESS ... 协作运行的对端的IP地址或FQDN或'any'
  • OPTION ... 选项
    • trigger ... 作为服务器运行时,定义进行通知客户端的触发器编号,用','区分可以复数指定。只有在对端设置为客户端时才能设置
    • control ... 作为客户端运行时,接收到服务器的通知时运行的控制动作定义编号只有在对端设置为服务器时才能设置
    • port ... 对端使用的UDP的端口号(1-65535)
    • syslog ... 是否保存运行的log,'on' or 'off'
    • apply ... 是否反映负载监控通知的结果,'on' or 'off'
    • register ... 对服务器是否发送登录数据包,'on' or 'off'
    • register-interval ... 客户端向服务器发送登录数据包的间隔,(1-2147483647)
    • register-time ... 服务器上维持客户端登录信息的时间,(1-2147483647)
    • name ... 对端的识别名,最多16字符
    • local-address ... 发送数据包的源IP地址

[说明]

负载通知中,进行每个对端运行的动作的设置。

[Note]

ROLE参数设置为client时可以使用trigger选项,ROLE参数设置为server时可以使用control选项。

服务器侧指定为any时,为了通知客户端的存在,客户端必须设置register=on。

设置了name选项时,服务器和客户端必须同名才能运行。

设置了多个触发器时,发送抑制请求的时间点由各触发器分别检测。发送时间点各不相同时,就根据时间点进行抑制要求的发送,发送时间点一致时,作为一个抑制要求进行发送。发送过抑制解除给对端后,直到下次抑制要求的发送为止,不会再次发送抑制解除。
不满足发送抑制要求的触发器的条件的话,即使满足了抑制解除的条件也不发送抑制解除通知。
在抑制控制进行中删除对端信息的话,控制对象的接口的速度将维持这个时间点的速度。

[默认值]

port=59410
syslog=off
apply=on
register=off
register-interval=1200
register-time=3600

作为服务器运行的触发器的设置

[格式]

cooperation load-watch trigger ID POINT high=HIGH[,COUNT]
                                    low=LOW[,COUNT] [OPTION=VALUE]
no cooperation load-watch trigger ID [POINT high=HIGH[,COUNT]
                                    low=LOW[,COUNT] [OPTION=VALUE]]

[设置值]

  • ID ... 触发器的定义编号(1-65535)
  • POINT ... 负载监控对象点
    • cpu load ... 以单位时间间隔,监控CPU负载率值可以指定%(1-100)
    • INTERFACE receive ... 监控接口上单位时间内的接收量值可以指定1秒内的比特数(64k-100M)
      • INTERFACE ... 接口名(LAN, tunnel)
    • INTERFACE overflow ... 监控LAN接口上单位时间内接收过量的发生次数和接收缓冲错误的发生次数。值可以指定次数(0-65535)
      • INTERFACE ... LAN接口名
    • INTERFACE [CLASS] transmit ... 监控接口上单位时间内的发送量。值可以指定1秒内的比特数(64k-100M)
      • INTERFACE ... 接口名(LAN, tunnel)
      • CLASS ... Class号(LAN接口时)
  • HIGH ... 检测出高负载的阈值
  • LOW ... 检测出负载减轻的阈值
  • COUNT ... 发送通知前的检测次数(1-100),省略时为3
  • OPTION ... 选项
    • interval ... 监控的间隔(1-65535)[sec]、省略时为10[sec]
    • syslog ... 是否保存运行的log,'on' or 'off',省略时为'off'

[说明]

设置检测设备的负载,向对端发送流量抑制要求的条件。监控单位时间内对象点的负载,连续COUNT次数超过high设置的阈值时,发送抑制请求。在此状态下持续超过上限阈值的话,将以COUNT的间隔持续发送抑制请求。
同样的,连续COUNT次数低于low设置的阈值时,发送抑制解除。对于同一对端,不能连续发送抑制解除。

class选项只有内置了带宽控制功能的机型可以使用。

[Note]

作为决定阈值时的参考值,可以使用show environment或show status lan显示的信息,也可以使用由syslog选项显示的log。

[默认值]

无设置

[设置例]

#cooperation load-watch trigger 1 cpu load high=80 low=30

以一定的时间间隔监测CPU的负载率,负载率连续3次超过80%以上时,发送抑制请求,之后连续3次下降到30%以下时,发送抑制解除。

#cooperation load-watch trigger 2 lan2 receive high=80m,5 low=50m,1

用单位时间内LAN2上的接收比特数来计算接收速度,该值连续5次超过80[Mbit/s]以上时发送抑制请求,之后只要1次下降到50[Mbit/s]以下,就发送抑制解除。

#cooperation load-watch trigger 3 lan2 overflow high=2,1 low=0,5

监控单位时间内LAN2上的接受过量数的增加,只要有1次检测出2个的话就发送抑制请求,连续5次没有检测到的话发送抑制解除。

设置负载监控的作为客户端运行的动作

[格式]

cooperation load-watch control ID high=HIGH [raise=RAISE] low=LOW
                                          [lower=LOWER] [OPTION=VAL]
no cooperation load-watch control ID [high=HIGH [raise=RAISE] low=LOW
                                          [lower=LOWER] [OPTION=VAL]]

[设置值]

  • ID ... 控制动作定义号(1-65535)
  • HIGH ... bit/sec、带宽上限值
  • RAISE ... %、没有到达带宽上限值时,每隔一定时间增加该比例的带宽。省略时为5%
  • LOW ... bit/sec、带宽下限值
  • LOWER ... %、没有到达带宽上限值时,接收到抑制请求时,当前带宽将减少该比例的发送带宽。省略时为30%
  • OPTION ... 选项
    • interval ... 增加带宽的间隔(1-65535)[sec]、省略时为10[sec]
    • interface ... 带宽变化的LAN接口
    • class ... 带宽变化的Class

[说明]

设置接收到抑制请求时的动作。带宽控制在high设置的带宽和low设置的带宽之间。

接收到抑制请求时,当前的发送带宽将减少lower值的比例。只要没有到达high,就根据raise的值增加使用带宽。

接收到流量抑制解除时,带宽增加至high设置的带宽值。

class选项只有内置了带宽控制功能的机型可以使用。

[默认值]

无设置

协作运行的手动执行

[格式]

cooperation load-watch go ID TYPE

[设置值]

  • ID ... 对端的ID号(1-100)
  • TYPE ... 数据包类型、'lower' or 'raise'

[说明]

对指定的对端,发送和通过负载监控的触发器发送的相同的数据包。

[Note]

对端的角色为客户端时有效。

协作运行的状态的显示

[格式]

show status cooperation TYPE [ID]

[设置值]

  • TYPE ... 协作运行的类型
    • bandwidth-measuring ... 线路带宽检测
    • load-watch ... 负载监控通知
  • ID ... 对端的ID号(1-100)

[说明]

显示协作运行的信息。

负载监控通知时,将显示以下的项目。

  • 对端的信息
  • 状态显示
    • 抑制请求次数
    • 抑制解除次数
    • 履历

返回顶部Return to Top