Skip to main content

Semantic Metadata Annotation for Network Anomaly Detection
draft-ietf-nmop-network-anomaly-semantics-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Authors Thomas Graf , Wanting Du , Alex Huang Feng , Vincenzo Riccobene , Antonio Roberto
Last updated 2024-12-09 (Latest revision 2024-12-08)
Replaces draft-netana-nmop-network-anomaly-semantics
RFC stream Internet Engineering Task Force (IETF)
Formats
Additional resources Mailing list discussion
Stream WG state WG Document
Associated WG milestone
Dec 2025
Submit Network Anomaly Management to the IESG
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-nmop-network-anomaly-semantics-00
NMOP                                                             T. Graf
Internet-Draft                                                     W. Du
Intended status: Experimental                                   Swisscom
Expires: 11 June 2025                                      A. Huang Feng
                                                               INSA-Lyon
                                                            V. Riccobene
                                                              A. Roberto
                                                                  Huawei
                                                         8 December 2024

       Semantic Metadata Annotation for Network Anomaly Detection
              draft-ietf-nmop-network-anomaly-semantics-00

Abstract

   This document explains why and how semantic metadata annotation helps
   to test, validate and compare Outlier and Symptom detection, supports
   supervised and semi-supervised machine learning development, enables
   data exchange among network operators, vendors and academia and make
   anomalies for humans apprehensible.  The proposed semantics uniforms
   the network anomaly data exchange between and among operators and
   vendors to improve their Service Disruption Detection Systems.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Operations and
   Management Area Working Group Working Group mailing list
   (nmop@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/nmop/.

   Source for this draft and an issue tracker can be found at
   https://github.com/network-analytics/draft-netana-nmop-network-
   anomaly-semantics/.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

Graf, et al.              Expires 11 June 2025                  [Page 1]
Internet-Draft          Network Anomaly Semantics          December 2024

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 11 June 2025.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Conventions and Definitions . . . . . . . . . . . . . . . . .   3
     2.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Observed Symptoms . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Semantic Metadata . . . . . . . . . . . . . . . . . . . . . .   7
     4.1.  Overview of the Model for the Symptom Semantic
           Metadata  . . . . . . . . . . . . . . . . . . . . . . . .   8
     4.2.  YANG Symptom Module . . . . . . . . . . . . . . . . . . .  11
     4.3.  YANG Service Topology Module  . . . . . . . . . . . . . .  14
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
   6.  Implementation status . . . . . . . . . . . . . . . . . . . .  17
     6.1.  Antagonist  . . . . . . . . . . . . . . . . . . . . . . .  18
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  18
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  18
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  19
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  19

Graf, et al.              Expires 11 June 2025                  [Page 2]
Internet-Draft          Network Anomaly Semantics          December 2024

1.  Introduction

   [I-D.ietf-nmop-network-anomaly-architecture] provides an overall
   introduction into how anomaly detection is being applied into the IP
   network domain and which operational data is needed.  It approaches
   the problem space by automating what a network engineer would
   normally do when verifying a network connectivity service.  Monitor
   from different network plane perspectives to understand wherever one
   network plane affects another negatively.

   In order to fine tune Service Disruption Detection as described in
   [I-D.netana-nmop-network-anomaly-lifecycle], the results provided as
   analytical data need to be reviewed by a Network Engineer.  Keeping
   the human out of the monitoring but still involving him in the alarm
   verification loop.

   This document describes what information is needed to understand the
   output of the Service Disruption Detection for a Network Engineer,
   but also at the same time is semantically structured that it can be
   used for Service Disruption Detection System testing by comparing the
   results systematically and set a baseline for supervised machine
   learning which requires labeled operational data.

2.  Conventions and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.1.  Terminology

   This document makes use of the terms defined in
   [I-D.ietf-nmop-network-anomaly-architecture] and
   [I-D.ietf-nmop-terminology].

   The following terms are used as defined in
   [I-D.ietf-nmop-network-anomaly-architecture]:

   *  Outlier Detection

   *  Service Disruption Detection

   *  Service Disruption Detection System

   The following terms are used as defined in
   [I-D.ietf-nmop-terminology]:

Graf, et al.              Expires 11 June 2025                  [Page 3]
Internet-Draft          Network Anomaly Semantics          December 2024

   *  System

   *  Detect

   *  Event

   *  State

   *  Relevance

   *  Problem

   *  Symptom

   *  Cause

   *  Alarm

3.  Observed Symptoms

   Observed network Symptoms are specified and categorized according to
   the following scheme:

   Action:  Which action a network node performed for a packet in the
      Forwarding Plane, a path or adjacency in the Control Plane or
      state or statistical changes in the Management Plane.  For
      Forwarding Plane we distinguish between missing, where the drop
      occurred outside the measured network node, drop and on-path
      delay, which was measured on the network node.  For Control Plane
      we distinguish between reachability, which refers to a change in
      the routing or forwarding information base (RIB/FIB) and adjacency
      which refers to a change in peering or link-layer resolution.  For
      Management Plane we refer to state or statistical changes on
      interfaces.

   Reason:  For each action, one or more reasons describe why this
      action was used.  For Drops in Forwarding Plane we distinguish
      between Unreachable because network layer reachability information
      was missing, Administered because an administrator configured a
      rule preventing the forwarding for this packet and Corrupt where
      the network node was unable to determine where to forward to due
      to packet, software or hardware error.  For on-path delay we
      distinguish between Minimum, Average and Maximum Delay for a given
      flow.  For Control Plane wherever a the reachability was updated
      or withdrawn or the adjacency was established or teared down.  For
      Management Plane we distinguish between interfaces states up and
      down, and statistical errors, discards or unknown protocol
      counters.

Graf, et al.              Expires 11 June 2025                  [Page 4]
Internet-Draft          Network Anomaly Semantics          December 2024

   Cause:  For each reason one or more causes describe why a network
      node has chosen that action.

   Table 1 consolidates for the forwarding plane a list of common
   Symptoms with their Actions, Reasons and Causes.

            +=========+==============+========================+
            | Action  | Reason       | Cause                  |
            +=========+==============+========================+
            | Missing | Previous     | Time                   |
            +---------+--------------+------------------------+
            | Drop    | Unreachable  | next-hop               |
            +---------+--------------+------------------------+
            | Drop    | Unreachable  | link-layer             |
            +---------+--------------+------------------------+
            | Drop    | Unreachable  | Time To Life expired   |
            +---------+--------------+------------------------+
            | Drop    | Unreachable  | Fragmentation needed   |
            |         |              | and Don't Fragment set |
            +---------+--------------+------------------------+
            | Drop    | Administered | Access-List            |
            +---------+--------------+------------------------+
            | Drop    | Administered | Unicast Reverse Path   |
            |         |              | Forwarding             |
            +---------+--------------+------------------------+
            | Drop    | Administered | Discard Route          |
            +---------+--------------+------------------------+
            | Drop    | Administered | Policed                |
            +---------+--------------+------------------------+
            | Drop    | Administered | Shaped                 |
            +---------+--------------+------------------------+
            | Drop    | Corrupt      | Bad Packet             |
            +---------+--------------+------------------------+
            | Drop    | Corrupt      | Bad Egress Interface   |
            +---------+--------------+------------------------+
            | Delay   | Min          | -                      |
            +---------+--------------+------------------------+
            | Delay   | Mean         | -                      |
            +---------+--------------+------------------------+
            | Delay   | Max          | -                      |
            +---------+--------------+------------------------+

              Table 1: Describing Symptoms and their Actions,
                   Reason and Cause for Forwarding Plane

   Table 2 consolidates for the control plane a list of common symptoms
   with their actions, reasons and causes.

Graf, et al.              Expires 11 June 2025                  [Page 5]
Internet-Draft          Network Anomaly Semantics          December 2024

    +==============+=============+====================================+
    | Action       | Reason      | Cause                              |
    +==============+=============+====================================+
    | Reachability | Update      | Imported                           |
    +--------------+-------------+------------------------------------+
    | Reachability | Update      | Received                           |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Received                           |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Peer Down                          |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Suppressed                         |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Stale                              |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Route Policy Filtered              |
    +--------------+-------------+------------------------------------+
    | Reachability | Withdraw    | Maximum Number of Prefixes Reached |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Established | Peer                               |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Established | Link-Layer                         |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Locally     | Peer                               |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Remotely    | Peer                               |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Locally     | Link-Layer                         |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Remotely    | Link-Layer                         |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Locally     | Administrative                     |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Remotely    | Administrative                     |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Locally     | Maximum Number of Prefixes Reached |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Remotely    | Maximum Number of Prefixes Reached |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Locally     | Transport Connection Failed        |

Graf, et al.              Expires 11 June 2025                  [Page 6]
Internet-Draft          Network Anomaly Semantics          December 2024

    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+
    | Adjacency    | Remotely    | Transport Connection Failed        |
    |              | Teared Down |                                    |
    +--------------+-------------+------------------------------------+

         Table 2: Describing Symptoms and their Actions, Reason and
                          Cause for Control Plane

   Table 3 consolidates for the management plane a list of common
   Symptoms with their Actions, Reasons and Causes.

               +===========+==================+============+
               | Action    | Reason           | Cause      |
               +===========+==================+============+
               | Interface | Up               | Link-Layer |
               +-----------+------------------+------------+
               | Interface | Down             | Link-Layer |
               +-----------+------------------+------------+
               | Interface | Errors           | -          |
               +-----------+------------------+------------+
               | Interface | Discards         | -          |
               +-----------+------------------+------------+
               | Interface | Unknown Protocol | -          |
               +-----------+------------------+------------+

                   Table 3: Describing Symptoms and their
                  Actions, Reason and Cause for Management
                                   Plane

4.  Semantic Metadata

   Metadata adds additional context to data.  For instance, in networks
   the software version of a network node where Management Plane metrics
   are obtained from as described
   in[I-D.claise-opsawg-collected-data-manifest].  Where in Semantic
   Metadata the meaning or ontology of the annotated data is being
   described.  In this section a YANG model is defined in order to
   provide a structure for the metadata related to anomalies happening
   in the network.  The module is intended to describe the metadata used
   to "annotate" the operational data collected from the network nodes,
   which can include time series data and logs, as well as other forms
   of data that is "time-bounded".  The aspects discussed so far in this
   document are grouped under the concept of "anomaly" which represents
   a collection of Symptoms.  The anomaly overall has a set of
   parameters that describe the overall behavior of the network in a
   given time-window including all the observed Symptoms and Outliers.

Graf, et al.              Expires 11 June 2025                  [Page 7]
Internet-Draft          Network Anomaly Semantics          December 2024

4.1.  Overview of the Model for the Symptom Semantic Metadata

   Figure 1 contains the YANG tree diagram [RFC8340] of the Figure 2
   which augments the [I-D.netana-nmop-network-anomaly-lifecycle]
   defined ietf-relevant-state.

   For each Symptom, the following parameters have been assigned:
   Action, Reason and Cause to describe the Symptom, a concern score
   indicating how critical the Symptom is and with Forwarding, Control
   and Management to which network plane the Symptom can be attributed
   to.

   module: ietf-network-anomaly-symptom-cbl

     augment /rsn:relevant-state/rsn:anomalies/rsn:symptom:
       +--rw action?             string
       +--rw reason?             string
       +--rw cause?              string
       +--rw (plane)?
          +--:(forwarding)
          |  +--rw forwarding?   empty
          +--:(control)
          |  +--rw control?      empty
          +--:(management)
             +--rw management?   empty
     augment /rsn:relevant-state-notification/rsn:anomalies/rsn:symptom:
       +-- action?             string
       +-- reason?             string
       +-- cause?              string
       +-- (plane)?
          +--:(forwarding)
          |  +-- forwarding?   empty
          +--:(control)
          |  +-- control?      empty
          +--:(management)
             +-- management?   empty

      Figure 1: YANG tree diagram for ietf-network-anomaly-symptom-cbl

   The module augments the anomaly of the relevant-state container and
   the relevant-state-notification of ietf-relevant-state defined in
   [I-D.netana-nmop-network-anomaly-lifecycle].  The relevant-state
   container is used for modifying the Symptom data in the Postmortem
   system.  Where the relevant-state-notification is used for messaging
   from the Alarm Aggregation to the Postmortem and the Alarm and
   Problem Management system.

Graf, et al.              Expires 11 June 2025                  [Page 8]
Internet-Draft          Network Anomaly Semantics          December 2024

   module: ietf-relevant-state
     +--rw relevant-state
        +--rw id             yang:uuid
        +--rw description?   string
        +--rw start-time     yang:date-and-time
        +--rw end-time?      yang:date-and-time
        +--rw anomalies* [id version]
           +--rw id                         yang:uuid
           +--rw version                    yang:counter32
           +--rw state                      identityref
           +--rw description?               string
           +--rw start-time                 yang:date-and-time
           +--rw end-time?                  yang:date-and-time
           +--rw confidence-score           score
           +--rw (pattern)?
           |  +--:(drop)
           |  |  +--rw drop?                empty
           |  +--:(spike)
           |  |  +--rw spike?               empty
           |  +--:(mean-shift)
           |  |  +--rw mean-shift?          empty
           |  +--:(seasonality-shift)
           |  |  +--rw seasonality-shift?   empty
           |  +--:(trend)
           |  |  +--rw trend?               empty
           |  +--:(other)
           |     +--rw other?               string
           +--rw annotator!
           |  +--rw name               string
           |  +--rw (annotator-type)?
           |     +--:(human)
           |     |  +--rw human?       empty
           |     +--:(algorithm)
           |        +--rw algorithm?   empty
           +--rw symptom!
           |  +--rw id                               yang:uuid
           |  +--rw concern-score                    score
           |  +--rw smcblsymptom:action?             string
           |  +--rw smcblsymptom:reason?             string
           |  +--rw smcblsymptom:cause?              string
           |  +--rw (smcblsymptom:plane)?
           |     +--:(smcblsymptom:forwarding)
           |     |  +--rw smcblsymptom:forwarding?   empty
           |     +--:(smcblsymptom:control)
           |     |  +--rw smcblsymptom:control?      empty
           |     +--:(smcblsymptom:management)
           |        +--rw smcblsymptom:management?   empty
           +--rw service!

Graf, et al.              Expires 11 June 2025                  [Page 9]
Internet-Draft          Network Anomaly Semantics          December 2024

              +--rw id
              |       yang:uuid
              +--rw smtopology:vpn-service-container
              |  +--rw smtopology:vpn-service* [vpn-id]
              |     +--rw smtopology:vpn-id      string
              |     +--rw smtopology:vpn-name?   string
              |     +--rw smtopology:site-ids*   string
              +--rw smtopology:vpn-node-termination-container
                 +--rw smtopology:vpn-node-termination*
                         [hostname route-distinguisher]
                    +--rw smtopology:hostname               inet:host
                    +--rw smtopology:route-distinguisher    string
                    +--rw smtopology:peer-ip*
                    |       inet:ip-address
                    +--rw smtopology:next-hop*
                    |       inet:ip-address
                    +--rw smtopology:interface-id*          int32

     notifications:
       +---n relevant-state-notification
          +--ro id             yang:uuid
          +--ro description?   string
          +--ro start-time     yang:date-and-time
          +--ro end-time?      yang:date-and-time
          +--ro anomalies* [id version]
             +--ro id                         yang:uuid
             +--ro version                    yang:counter32
             +--ro state                      identityref
             +--ro description?               string
             +--ro start-time                 yang:date-and-time
             +--ro end-time?                  yang:date-and-time
             +--ro confidence-score           score
             +--ro (pattern)?
             |  +--:(drop)
             |  |  +--ro drop?                empty
             |  +--:(spike)
             |  |  +--ro spike?               empty
             |  +--:(mean-shift)
             |  |  +--ro mean-shift?          empty
             |  +--:(seasonality-shift)
             |  |  +--ro seasonality-shift?   empty
             |  +--:(trend)
             |  |  +--ro trend?               empty
             |  +--:(other)
             |     +--ro other?               string
             +--ro annotator!
             |  +--ro name               string
             |  +--ro (annotator-type)?

Graf, et al.              Expires 11 June 2025                 [Page 10]
Internet-Draft          Network Anomaly Semantics          December 2024

             |     +--:(human)
             |     |  +--ro human?       empty
             |     +--:(algorithm)
             |        +--ro algorithm?   empty
             +--ro symptom!
             |  +--ro id                               yang:uuid
             |  +--ro concern-score                    score
             |  +--ro smcblsymptom:action?             string
             |  +--ro smcblsymptom:reason?             string
             |  +--ro smcblsymptom:cause?              string
             |  +--ro (smcblsymptom:plane)?
             |     +--:(smcblsymptom:forwarding)
             |     |  +--ro smcblsymptom:forwarding?   empty
             |     +--:(smcblsymptom:control)
             |     |  +--ro smcblsymptom:control?      empty
             |     +--:(smcblsymptom:management)
             |        +--ro smcblsymptom:management?   empty
             +--ro service!
                +--ro id
                |       yang:uuid
                +--ro smtopology:vpn-service-container
                |  +--ro smtopology:vpn-service* [vpn-id]
                |     +--ro smtopology:vpn-id      string
                |     +--ro smtopology:vpn-name?   string
                |     +--ro smtopology:site-ids*   string
                +--ro smtopology:vpn-node-termination-container
                   +--ro smtopology:vpn-node-termination*
                           [hostname route-distinguisher]
                      +--ro smtopology:hostname               inet:host
                      +--ro smtopology:route-distinguisher    string
                      +--ro smtopology:peer-ip*
                      |       inet:ip-address
                      +--ro smtopology:next-hop*
                      |       inet:ip-address
                      +--ro smtopology:interface-id*          int32

            Figure 2: YANG tree diagram for ietf-relevant-state

4.2.  YANG Symptom Module

   The YANG module has one typedef defining the score and a grouping
   defining Action, Reason and Cause and how it attributes to the
   network planes.

Graf, et al.              Expires 11 June 2025                 [Page 11]
Internet-Draft          Network Anomaly Semantics          December 2024

   <CODE BEGINS> file "ietf-network-anomaly-symptom-cbl@2024-10-18.yang"
   module ietf-network-anomaly-symptom-cbl {
       yang-version 1.1;
       namespace "urn:ietf:params:xml:ns:yang:ietf-network-anomaly-symptom-cbl";
       prefix smcblsymptom;

       import ietf-relevant-state {
           prefix rsn;
           reference
             "RFC XXX: Relevant State and Relevant State Notification";
       }

     organization "IETF NMOP (Network Management Operations) Working Group";
     contact
       "WG Web:   <http:/tools.ietf.org/wg/netconf/>
        WG List:  <mailto:nmop@ietf.org>

        Authors:  Thomas Graf
                  <mailto:thomas.graf@swisscom.com>
                  Wanting Du
                  <mailto:wanting.du@swisscom.com>
                  Alex Huang Feng
                  <mailto:alex.huang-feng@insa-lyon.fr>
                  Vincenzo Riccobene
                  <mailto:vincenzo.riccobene@huawei-partners.com>
                  Antonio Roberto
                  <mailto:antonio.roberto@huawei.com>";
       description
           "This module defines the semantic grouping to be used by a
                    Service Disruption Detection Systems. The defined objects is
                    used to augment the anomaly container. Describing the
                    symptoms action, reason and concern-score.

            Copyright (c) 2023 IETF Trust and the persons identified as
            authors of the code.  All rights reserved.

            Redistribution and use in source and binary forms, with or
            without modification, is permitted pursuant to, and subject
            to the license terms contained in, the Revised BSD License
            set forth in Section 4.c of the IETF Trust's Legal Provisions
            Relating to IETF Documents
            (https://trustee.ietf.org/license-info).

            This version of this YANG module is part of RFC XXXX; see the RFC
            itself for full legal notices.";

       revision 2024-10-18 {
           description

Graf, et al.              Expires 11 June 2025                 [Page 12]
Internet-Draft          Network Anomaly Semantics          December 2024

             "Initial version";
           reference
             "RFC XXX: Semantic Metadata Annotation for Network Anomaly Detection";
       }
       typedef score {
         type uint8 {
           range "0 .. 100";
         }
       }

       grouping cbl-symptom {
           leaf action {
               type string;
               description "action";
           }
           leaf reason {
               type string;
               description
                   "reason";
           }
           leaf cause {
               type string;
               description
                   "cause";
           }
           choice plane {
               description
                   "Network Plane affected by the symptom";
               case forwarding {
                   leaf forwarding {
                       type empty;
                                           description
                                                   "forwarding plane";
                   }
               }
               case control {
                   leaf control {
                       type empty;
                                           description
                                                   "control plane";
                   }
               }
               case management {
                   leaf management {
                       type empty;
                                           description
                                                   "management plane";
                   }

Graf, et al.              Expires 11 June 2025                 [Page 13]
Internet-Draft          Network Anomaly Semantics          December 2024

               }
           }
       }

       augment /rsn:relevant-state/rsn:anomalies/rsn:symptom {
           uses cbl-symptom;
       }

       augment /rsn:relevant-state-notification/rsn:anomalies/rsn:symptom {
           uses cbl-symptom;
       }

   }
   <CODE ENDS>

           Figure 3: ietf-network-anomaly-symptom-cbl YANG Module

4.3.  YANG Service Topology Module

   The YANG module has a service and a node-termination grouping
   defining vpn-id, vpn-name and site-ids for service and hostname, BGP
   route-distinguisher, BGP peer ip address, BGP path next-hop and node
   interface-id.

   Within the NMOP working group we discuss with the Digital Map authors
   which existing YANG nodes instead could be used to facilitate a
   service and network topology context view.

   <CODE BEGINS> file "ietf-network-anomaly-service-topology@2024-10-18"
   module ietf-network-anomaly-service-topology {
       yang-version 1.1;
       namespace "urn:ietf:params:xml:ns:yang:ietf-network-anomaly-service-topology";
       prefix smtopology;

       import ietf-inet-types {
           prefix inet;
           reference
                           "RFC 6991: Common YANG Data Types";
       }
       import ietf-relevant-state {
           prefix rsn;
           reference
             "RFC XXX: Relevant State and Relevant State Notification";
       }

     organization "IETF NMOP (Network Management Operations) Working Group";
     contact
       "WG Web:   <http:/tools.ietf.org/wg/netconf/>

Graf, et al.              Expires 11 June 2025                 [Page 14]
Internet-Draft          Network Anomaly Semantics          December 2024

        WG List:  <mailto:nmop@ietf.org>

        Authors:  Thomas Graf
                  <mailto:thomas.graf@swisscom.com>
                  Wanting Du
                  <mailto:wanting.du@swisscom.com>
                  Alex Huang Feng
                  <mailto:alex.huang-feng@insa-lyon.fr>
                  Vincenzo Riccobene
                  <mailto:vincenzo.riccobene@huawei-partners.com>
                  Antonio Roberto
                  <mailto:antonio.roberto@huawei.com>";
       description
           "This module defines the symptom conatiner to be used by a network
            anomaly detection system. The defined objects can be used to
            augment operational network collected observability data and
            analytical problem data equally. Describing the relevant-state
                    of observed symptoms.

            Copyright (c) 2023 IETF Trust and the persons identified as
            authors of the code.  All rights reserved.

            Redistribution and use in source and binary forms, with or
            without modification, is permitted pursuant to, and subject
            to the license terms contained in, the Revised BSD License
            set forth in Section 4.c of the IETF Trust's Legal Provisions
            Relating to IETF Documents
            (https://trustee.ietf.org/license-info).

            This version of this YANG module is part of RFC XXXX; see the RFC
            itself for full legal notices.";

       revision 2024-10-18 {
           description
             "Initial version";
           reference
             "RFC XXX: Semantic Metadata Annotation for Network Anomaly Detection";
       }

           grouping vpn-service-grouping {
                   container vpn-service-container {
                           list vpn-service {
                                   key "vpn-id";
                                   leaf vpn-id {
                                           mandatory true;
                                           type string;
                                           description
                                                   "Unique ID of the VPN connectivity service";

Graf, et al.              Expires 11 June 2025                 [Page 15]
Internet-Draft          Network Anomaly Semantics          December 2024

                                   }
                                   leaf vpn-name {
                                           type string;
                                           description
                                                   "Name of the VPN connectivity service";
                                   }
                                   leaf-list site-ids {
                                           type string;
                                           description
                                                   "List of unique site ID's of the VPN connectivity service";
                                   }
                           }
                   }
           }

           grouping vpn-node-termination-grouping {
                   container vpn-node-termination-container {
                           list vpn-node-termination {
                           key "hostname route-distinguisher";
                                   leaf hostname {
                                           mandatory true;
                                           type inet:host;
                                           description
                                                   "The hostname of the network node according to
                                                   [RFC1213]. This value is usually configured on
                                                   the node by the administrator to uniquely
                                                   identify the node in the network.";
                                   }
                                   leaf route-distinguisher {
                                           mandatory true;
                                           type string;
                                           description
                                                   "The BGP route-distinguisher obtained through
                                                   IPFIX IE90 mplsVpnRouteDistinguisher or BMP
                                                   route-monitoring or peer_up message type.";
                                   }
                                   leaf-list peer-ip {
                                           type inet:ip-address;
                                           description
                                                           "The BGP peering IP address learned through
                                                           BMP route-monitoring, peer_up or peer_down
                                                           message type.";
                                   }
                                   leaf-list next-hop {
                                           type inet:ip-address;
                                           description
                                                   "The BGP next-hop IP address learned through
                                                   BMP route-monitoring message type.";

Graf, et al.              Expires 11 June 2025                 [Page 16]
Internet-Draft          Network Anomaly Semantics          December 2024

                                   }
                                   leaf-list interface-id {
                                           type int32;
                                           description
                                                   "The interface identifier obtained through
                                                   IPFIX IE10 ingressInterface, IE14
                                                   egressInterface or
                                                   ietf-interfaces:interfaces/interface/if-index.";
                                   }
                           }
                   }
           }

           augment /rsn:relevant-state/rsn:anomalies/rsn:service {
                   uses vpn-service-grouping;
       }

           augment /rsn:relevant-state-notification/rsn:anomalies/rsn:service {
                   uses vpn-service-grouping;
       }

       augment /rsn:relevant-state/rsn:anomalies/rsn:service {
                   uses vpn-node-termination-grouping;
           }

           augment /rsn:relevant-state-notification/rsn:anomalies/rsn:service {
                   uses vpn-node-termination-grouping;
           }
   }
   <CODE ENDS>

        Figure 4: ietf-network-anomaly-service-topology YANG Module

5.  Security Considerations

   The security considerations.

6.  Implementation status

   This section provides pointers to existing open source
   implementations of this draft.  Note to the RFC-editor: Please remove
   this before publishing.

Graf, et al.              Expires 11 June 2025                 [Page 17]
Internet-Draft          Network Anomaly Semantics          December 2024

6.1.  Antagonist

   A tool called Antagonist has been implemented and refined during the
   IETF 119 and 120 hackathons, in order to validate the application of
   the YANG models defined in this draft.  Antagonist provides visual
   support for two important use cases in the scope of this document:

   *  the generation of a ground truth in relation to Symptoms and
      Problems in timeseries data

   *  the visual validation of results produced by automated network
      anomaly detection tools.

   The open source code can be found here: [Antagonist]

7.  Acknowledgements

   The authors would like to thank Reshad Rahman for his review and
   valuable comment.

8.  References

8.1.  Normative References

   [Antagonist]
              Riccobene, V., Roberto, A., Du, W., Graf, T., and H. Huang
              Feng, "Antagonist: Anomaly tagging on historical data",
              <https://github.com/vriccobene/antagonist>.

   [I-D.ietf-nmop-network-anomaly-architecture]
              Graf, T., Du, W., and P. Francois, "An Architecture for a
              Network Anomaly Detection Framework", Work in Progress,
              Internet-Draft, draft-ietf-nmop-network-anomaly-
              architecture-01, 20 October 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-nmop-
              network-anomaly-architecture-01>.

   [I-D.ietf-nmop-terminology]
              Davis, N., Farrel, A., Graf, T., Wu, Q., and C. Yu, "Some
              Key Terms for Network Fault and Problem Management", Work
              in Progress, Internet-Draft, draft-ietf-nmop-terminology-
              09, 26 November 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-nmop-
              terminology-09>.

   [I-D.netana-nmop-network-anomaly-lifecycle]
              Riccobene, V., Roberto, A., Graf, T., Du, W., and A. H.
              Feng, "An Experiment: Network Anomaly Lifecycle", Work in

Graf, et al.              Expires 11 June 2025                 [Page 18]
Internet-Draft          Network Anomaly Semantics          December 2024

              Progress, Internet-Draft, draft-netana-nmop-network-
              anomaly-lifecycle-05, 3 November 2024,
              <https://datatracker.ietf.org/doc/html/draft-netana-nmop-
              network-anomaly-lifecycle-05>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

8.2.  Informative References

   [I-D.claise-opsawg-collected-data-manifest]
              Claise, B., Quilbeuf, J., Lopez, D., Martinez-Casanueva,
              I. D., and T. Graf, "A Data Manifest for Contextualized
              Telemetry Data", Work in Progress, Internet-Draft, draft-
              claise-opsawg-collected-data-manifest-06, 10 March 2023,
              <https://datatracker.ietf.org/doc/html/draft-claise-
              opsawg-collected-data-manifest-06>.

Authors' Addresses

   Thomas Graf
   Swisscom
   Binzring 17
   CH-8045 Zurich
   Switzerland
   Email: thomas.graf@swisscom.com

   Wanting Du
   Swisscom
   Binzring 17
   CH-8045 Zurich
   Switzerland
   Email: wanting.du@swisscom.com

Graf, et al.              Expires 11 June 2025                 [Page 19]
Internet-Draft          Network Anomaly Semantics          December 2024

   Alex Huang Feng
   INSA-Lyon
   Lyon
   France
   Email: alex.huang-feng@insa-lyon.fr

   Vincenzo Riccobene
   Huawei
   Dublin
   Ireland
   Email: vincenzo.riccobene@huawei-partners.com

   Antonio Roberto
   Huawei
   Dublin
   Ireland
   Email: antonio.roberto@huawei.com

Graf, et al.              Expires 11 June 2025                 [Page 20]