重大でないキューのドロップは、あまり一般的でないか、ユーザーに影響を与える可能性が低いものです。

監視可能な重大でないキューは次のとおりです。

[vc_queue_vcmp_init]:このキューは、新しいトンネルの設定に関する VCMP トンネルの開始メッセージを提供します。Gateway は、使用可能なコアに基づいて、着信トンネル要求を既存のトラフィックを中断することなく処理できる最大速度に抑制します。その結果、多くのトンネルがある Gateway のキューでドロップが想定されます。

これらのドロップは、Gateway の再起動や中継の中断などの特定のイベントの後に大きなバーストで発生し、通常の操作中にドロップが発生することはありません。

[vc_queue_vcmp_ctrl_0、vc_queue_vcmp_ctrl_1]:このキューは、既存のトンネルで受信した VCMP トンネル管理制御メッセージを提供します。これには、ルートの更新、パスの状態の更新、ハートビート、統計情報、QoS 同期、トンネル情報などのメッセージが含まれます。

ほとんどすべての制御メッセージには、ルートの更新など、これらのドロップを考慮した再試行メカニズムが組み込まれています。

VCMP の ctrl ドロップを検索する Python のサンプル スクリプトを次に示します。

#!/usr/bin/env python
"""
Check VCG vcmp drop count
"""
import os
import sys
import subprocess
import commands
import re
from optparse import OptionParser
# Parse commandline options:
parser = OptionParser(usage="%prog -w <warning threshold> -c <critical threshold> -o <vcmp> [ -h ]")
parser.add_option("-w", "--warning", action="store", type="string", dest="warn_threshold", help="Count Warning threshold should be in <value>")
parser.add_option("-c", "--critical",action="store", type="string", dest="crit_threshold", help="Count Critical threshold should be in <value>")
parser.add_option("-o", "--vcmp-name",action="store", type="string", dest="vcmp_name", help="VCMP Name in ctrl or tx drop <value>")
(options, args) = parser.parse_args()

def get_vcg_vcmp_drop_count(VCMPNAME):
 if os.path.isfile('/opt/vc/bin/debug.py'):
        L=[]
        f=subprocess.check_output(["/opt/vc/bin/debug.py","--handoff"])
        x=[r.split() for r in f.split('\n')]
        reg = re.compile(VCMPNAME)
        for i in x:
         if filter(reg.match, i):
           L.append((int(i[7])))
        return list(L)
 else:
    print "Critical: unable to get vcmp drop count()"
    sys.exit(2)

if __name__ == '__main__':
  if not options.vcmp_name:
      print "Critical: Missing vcmp drop name. (vc_queue_vcmp_ctrl or vc_queue_vcmp_tx)"
      sys.exit(2)
  if not options.crit_threshold:
      print "CRITICAL: Missing critical threshold value."
      sys.exit(2)
  if not options.warn_threshold:
      print "CRITICAL: Missing warning threshold value."
      sys.exit(2)

  vcmp_name = options.vcmp_name
  crit_threshold = options.crit_threshold
  warn_threshold = options.warn_threshold

  result = get_vcg_vcmp_drop_count(vcmp_name)
  result_data = sum(result)
  if os.path.exists("/tmp/ vc_queue_vcmp_data_output"):
     cmd="cat /tmp/ vc_queue_vcmp_data_output"
     status,output = commands.getstatusoutput(cmd)
     change= int(result_data) -  int(output)

  cmd="echo %d > /tmp/ vc_queue_vcmp_data_output" %result_data
  status,output = commands.getstatusoutput(cmd)
  if not list(result):
      print "Critical: Unable to get vcmp drop count."
      sys.exit(2)
  else:
      if int(change) > int(crit_threshold) :
        print "Critical. Drop count > crit_threshold: vc_queue_vcmp_ctrl_0: %s and vc_queue_vcmp_ctrl_1: %s" % (result[0],result[1])
        sys.exit(1)
      elif int(change) > int(warn_threshold) :
        print "Warning. Drop count > warn_threshold: vc_queue_vcmp_ctrl_0: %s and vc_queue_vcmp_ctrl_1: %s" % (result[0],result[1])
        sys.exit(1)
      else:
        print "OK. Drop count: %s" % result
        sys.exit(0)

[vc_queue_vcmp_bottom]:このキューは、VCMP トンネルを介して受信した VCMP データ パケットの処理の 2 番目のステージです。キューは、NAT、VLAN/VRF、Non SD-WAN Destination、Edge などの適切な宛先へのトラフィックのルーティングを処理します。

ドロップは [vc_queue_vcmp_data_X] キューで見られる可能性が高いため、このキューでドロップが発生する可能性はほとんどありません。

[vc_queue_ike]:このキューは IKE プロトコル メッセージを処理して、キーおよびその他の暗号化セッションの状態を管理します。

これは一般的に少量のトラフィックであり、ここでドロップが発生する可能性はほとんどありません。ドロップが発生すると、IKE メッセージが再試行されます。