RFC 7922

Interface to the Routing System (I2RS) Traceability: Framework and Information Model

๐Ÿ“… published June 2016, from ietf

RFC 7922: Interface to the Routing System (I2RS) Traceability: Framework and Information Model ๐Ÿฆ‹

Category: Informational ๐Ÿ’– Authors: J. Clarke, G. Salgueiro, and C. Pignataro, all from Cisco ๐ŸŽ€ Date: June 2016 ๐ŸŒธ ISSN: 2070-1721 โœจ Obsoletes and updates: the title block doesn't list anything this RFC obsoletes or updates ๐Ÿ’…


Abstract ๐ŸŒˆ

okay bestie, this doc is a framework for traceability in I2RS (the Interface to the Routing System) plus an information model for it ๐Ÿงš It covers the motivation, requirements, and use cases, and it defines an information model for recording interactions between the elements that implement the I2RS protocol. The framework gives every component in the I2RS architecture one consistent tracing interface, so they can record what was done, which component did it, and when ๐Ÿ’… The goal is better management of I2RS implementations, and it's useful for troubleshooting, auditing, forensics, and accounting. Iconic, honestly ๐Ÿ”ฅ

Status of This Memo โญ

This doc is not an Internet Standards Track spec. It's published just for information ๐Ÿ“

This doc is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community, got public review, and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so see Section 2 of RFC 7841 for that ๐Ÿซถ

Info about the current status of this doc, any errata, and how to give feedback is at http://www.rfc-editor.org/info/rfc7922 ๐Ÿ’œ

Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. ๐ŸŒธ

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the date of publication. Please read these carefully, because they describe your rights and restrictions for this doc ๐Ÿ™ˆ Code Components pulled out of this doc must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License ๐Ÿ’…

Table of Contents ๐Ÿงš

1. Introduction ....................................................3
2. Terminology and Conventions .....................................3
3. Motivation ......................................................4
4. Use Cases .......................................................4
5. Information Model ...............................................5
   5.1. I2RS Traceability Framework ................................5
   5.2. I2RS Trace Log Fields ......................................7
   5.3. End of Message Marker .....................................11
6. Examples .......................................................11
7. Operational Guidance ...........................................11
   7.1. Trace Log Creation ........................................12
   7.2. Trace Log Temporary Storage ...............................12
   7.3. Trace Log Rotation ........................................13
   7.4. Trace Log Retrieval .......................................13
        7.4.1. Retrieval via Syslog ...............................14
        7.4.2. Retrieval via I2RS Information Collection ..........14
        7.4.3. Retrieval via I2RS Pub/Sub .........................14
8. Security Considerations ........................................15
9. References .....................................................16
   9.1. Normative References ......................................16
   9.2. Informative References ....................................16
Acknowledgments ...................................................17
Authors' Addresses ................................................17

1. Introduction โœจ

okay so the I2RS architecture [RFC7921] says that I2RS clients who want to read or change the routing state on a routing element MUST authenticate to an I2RS agent ๐Ÿ” The I2RS client gets a unique identity that it uses for authentication, and it should provide another opaque identity for the applications talking through it ๐Ÿ’– Programming routing state gives back a return code with the result of the operation, plus the reason(s) for that result. All of this is critical info for understanding the history of I2RS interactions, so it's giving main character energy ๐Ÿ‘‘

This doc defines the framework you need to trace those interactions between the I2RS client and the I2RS agent ๐Ÿฆ‹ It then goes through use cases for traceability in I2RS. Based on those use cases, it proposes an information model and reporting requirements so that I2RS interactions get recorded properly ๐Ÿ“ Here, effective troubleshooting means being able to figure out which operation a specific I2RS client ran through the I2RS agent, what the result of that operation was, and when it happened. That's the whole vibe ๐Ÿ“

2. Terminology and Conventions ๐ŸŒธ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be read as described in [RFC2119] ๐Ÿ’…

The I2RS architecture spec [RFC7921] defines extra terms that are specific to the I2RS domain, like "I2RS agent", "I2RS client", and so on ๐Ÿงš You're expected to already know the terminology and concepts from [RFC7921], so go read that first if you haven't, bestie ๐Ÿ“š

3. Motivation ๐Ÿ’œ

As networks scale up and policy becomes a bigger part of the control plane (the part that creates and maintains the forwarding state), the operational complexity goes up too ๐Ÿ˜ญ I2RS gives more granular, coherent control over policy and control-plane state, but it also removes or reduces the locality of the policy applied to the control plane on any single forwarding device ๐Ÿ™ˆ Being able to automate and abstract even complicated policy-based controls makes it obvious that you need a traceability function that scales just as well. It has to record, at event-level granularity, how the routing system evolves, and it has to stay compliant with the I2RS requirements (Section 5 of [RFC7920]) โœจ

4. Use Cases ๐ŸŽ€

The big obvious reason for I2RS traceability is troubleshooting, so you can find the root causes of problems in these increasingly complex routing systems ๐Ÿ” Like, I2RS is a high-throughput, multi-channel, full duplex, highly responsive interface, so I2RS clients might be running a huge number of operations on I2RS agents at the same time, or at nearly the same time, and maybe in super rapid succession ๐Ÿƒโ€โ™€๏ธ As all those changes happen, the network reacts. Those changes could lead to a race condition, performance issues, data loss, or a service disruption ๐Ÿ˜ฑ To isolate the root cause, a network operator or administrator really needs visibility into what changes were made via I2RS at a specific time ๐Ÿ’–

Some network environments have strong auditing requirements for configuration and runtime changes. Others have policies that require saving logging info for operational or regulatory compliance ๐Ÿ“‹ So I2RS has to provide an account of the changes made to network element routing systems. No pressure, lol ๐Ÿซถ

As I2RS gets more and more pervasive in routing environments, a traceability model that supports controllable trace log retention, using a standardized structured data format, is a massive win ๐ŸŒˆ It makes it possible to build common tools for automated testing, and it enables these use cases:

  • real-time monitoring and troubleshooting of router events ๐Ÿ‘€
  • automated event correlation, trend analysis, and anomaly detection ๐Ÿ“ˆ
  • offline (manual or tools-based) analysis of router state evolution from the retained trace logs ๐Ÿ”Ž
  • enhanced network audit, management, and forensic analysis capabilities ๐Ÿ•ต๏ธโ€โ™€๏ธ
  • improved accounting of routing system operations ๐Ÿงพ
  • a standardized format for incident reporting and test logging ๐Ÿ“

5. Information Model ๐Ÿงšโ€โ™€๏ธ

These sections describe the I2RS traceability information model and the details of each field that gets logged โœจ

5.1. I2RS Traceability Framework ๐Ÿ’…

This section describes a framework for I2RS traceability, based on the I2RS Architecture ๐Ÿฆ‹

The interaction between the optional network application that drives client activity, the I2RS client, the I2RS agent, the Routing System, and the data captured in the I2RS trace log is shown in Figure 1. Picture it, bestie ๐Ÿ‘‡

           +---------------+
      +----------------+   |
      |Application     |   |
      |..............  |   |  0 or more Applications
      | Application ID |   +
      +----------------+
             ^
             |
             |
             v
          +-------------+
      +-------------+   |
      |I2RS Client  |   |
      |.............|   |  1 or more Clients
      |  Client ID  |   +
      +-------------+
             ^
             |
             |
             v
      +-------------+                 +-----------------------------+
      |I2RS Agent   |---------------->|Trace Log                    |
      |             |                 |.............................|
      +-------------+                 |Log Entry  [1 .. N]          |
            |  ^                      |.............................|
            |  |                      |Event ID                     |
            |  |                      |Starting Timestamp           |
            |  |                      |Request State                |
            |  |                      |Client ID                    |
            |  |                      |Client Priority              |
            |  |                      |Secondary ID                 |
Operation + |  | Result Code          |Client Address               |
 Op Data    |  |                      |Requested Operation          |
            |  |                      |Applied Operation            |
            |  |                      |Operation Data Present       |
            |  |                      |Requested Operation Data     |
            |  |                      |Applied Operation Data       |
            |  |                      |Transaction ID               |
            |  |                      |Result Code                  |
            |  |                      |Ending Timestamp             |
            |  |                      |Timeout Occurred             |
            v  |                      |End Of Message               |
      +-------------+                 +-----------------------------+
      |Routing      |
      |System       |
      +-------------+

            Figure 1: I2RS Interaction Trace Log Capture

Part 2 is coming next, bestie, with the rest of Section 5 and everything after it ๐Ÿ’œ๐Ÿซถ

5.2. I2RS Trace Log Fields ๐Ÿ“œโœจ

Okay bestie, this is the fun part ๐Ÿ’… These fields are the whole reason an I2RS trace log is useful. Every I2RS interaction has to be traceable back to the client that made the request, at a specific moment in time ๐Ÿ•ฐ๏ธ๐Ÿฆ‹

The list below covers the fields in the I2RS trace log. It's the shared set that MUST appear in all I2RS trace logs ๐Ÿซถ On top of those, I2RS agent implementations MAY choose to log extra stuff too, like the I2RS client vendor or agent stats such as free memory and performance metrics ๐Ÿ“Šโœจ

Event ID: This is a unique ID for each event in the trace log ๐Ÿ†” An event can be a client authenticating with the agent, a client doing an operation on the agent, or a client disconnecting from the agent. Operation events can be logged all at once when they finish (so they get both a Starting and an Ending Timestamp), or they can be logged at the start of each Request State transition. Operations from the same client can happen at the same time, so you need an ID that points to exactly one entry, no mix-ups ๐Ÿ™…โ€โ™€๏ธ If every state transition gets logged for an operation, the same ID MUST be used for each of the Request State log entries ๐Ÿงต That way you can follow the whole life of a request through the log like a storyline ๐Ÿ“– Beyond that, the Event ID MUST be unique for each event, and the exact type and value is up to the implementation ๐ŸŒธ

Starting Timestamp: This is the exact time the I2RS operation enters the specified Request State inside the agent โฑ๏ธ If the log entry covers the whole duration of the request, this is the time the agent first received it ๐Ÿ“ฅ This field MUST be present in every entry that marks the start of a state transition, and in every entry that logs the whole duration of the request ๐Ÿ’– The time is written in the full timestamp format from [RFC3339], with the date and the offset from Coordinated Universal Time (UTC) ๐ŸŒ Since lots of I2RS operations can happen back to back, the fractional seconds part of the timestamp MUST be used so you get enough granularity ๐Ÿ” Fractional seconds SHOULD be expressed with at least three significant digits in second.microsecond format โœจ

Request State: This is where the operation is in the I2RS agent state machine at the given Starting or Ending Timestamps ๐ŸŽข The I2RS agent SHOULD generate a log entry at the exact moment a request enters or exits a state ๐Ÿšช When a request enters a new state, the entry has a Starting Timestamp set to the time of entry and no Ending Timestamp. When it exits a state, the entry has an Ending Timestamp set to the time of exit and no Starting Timestamp ๐Ÿ” You can link the request's journey through all its states using the Event ID ๐Ÿ”— The states can be one of these values:

  • PENDING: The request came in and got queued up for processing ๐Ÿ“ฌ
  • IN PROCESS: The agent is actively handling the request right now ๐Ÿ› ๏ธ
  • COMPLETED: The request has hit a terminal point ๐Ÿ

Every state transition SHOULD be logged, unless logging it would put an undue performance burden on the I2RS agent ๐Ÿ‹๏ธ BUT an entry with the Request State set to COMPLETED MUST be logged for all operations, no exceptions ๐Ÿ™…โ€โ™€๏ธ If COMPLETED is the only entry for a request, then it MUST have both a Starting and an Ending Timestamp that cover the entire duration of the request, from the moment it came into the agent until it completed ๐ŸŽฌ

Client Identity: This is the I2RS client identity that was used to authenticate the client to the I2RS agent ๐Ÿชช

Client Priority: This is the I2RS client priority that the access control model assigns when it authenticates the client ๐Ÿ‘‘ For example, this can be set by the Network Configuration Protocol (NETCONF) Access Control Model (NACM), as described in [RFC6536] ๐Ÿ›ก๏ธ

Secondary Identity: This is an opaque identity that the client might know from some controlling network application ๐Ÿ•ต๏ธโ€โ™€๏ธ It's how you trace which network application is actually driving the client's actions ๐ŸŽญ The client may not give this identity to the agent if there's no external network application driving it ๐Ÿคทโ€โ™€๏ธ BUT this field MUST be logged even if the client doesn't provide a Secondary Identity. In that case, it gets logged with an empty value ๐Ÿซ™

Client Address: This is the network address of the client that connected to the agent ๐Ÿ“ For example, it could be an IPv4 or an IPv6 address ๐ŸŒ

Requested Operation: This is the I2RS operation that was asked for ๐Ÿ™‹โ€โ™€๏ธ For example, it could be an add route operation when a route is being inserted into a routing table ๐Ÿ›ฃ๏ธ This may not be the operation that was actually applied to the agent ๐Ÿ‘€

When a client authenticates to the agent, the Requested Operation MUST be "CLIENT AUTHENTICATE" ๐Ÿ” When a client disconnects from the agent, the Requested Operation MUST be "CLIENT DISCONNECT" ๐Ÿ‘‹

Applied Operation: This is the I2RS operation that was actually performed ๐ŸŽฏ It can be different from the Requested Operation when the agent can't satisfy the request ๐Ÿ™ƒ This field may not be logged unless the Request State is COMPLETED ๐Ÿ

Operation Data Present: This is a Boolean field that says whether or not extra per-Operation Data is there ๐Ÿงพ

Requested Operation Data: This field holds the data passed to the agent so it can complete the operation you wanted ๐Ÿ“ฆ For example, if the operation is a route add, the Operation Data would include the route prefix, the prefix length, and the next-hop info to insert, plus the specific routing table the route gets added to ๐Ÿ—บ๏ธ If Operation Data is provided, then the Operation Data Present field MUST be set to TRUE โœ… Some operations don't come with operation data at all. For those, the Operation Data Present field MUST be set to FALSE, and this field MUST be empty ๐Ÿซฅ This might not match the data that was actually used for the operation applied on the agent ๐Ÿค”

When a client authenticates to the agent, the Requested Operation Data MUST contain the client priority ๐Ÿ‘‘ Other attributes, like the credentials used for authentication, MAY be logged ๐Ÿ”‘

Applied Operation Data: This field holds the data that was actually applied as part of the Applied Operation ๐ŸŽจ If the agent can't satisfy the Requested Operation with the Requested Operation Data, this field can be different from the Requested Operation Data ๐Ÿ”„ This field will be empty unless Requested Operation Data was specified ๐Ÿ“ญ It may not be logged unless the Request State is COMPLETED ๐Ÿ

Transaction ID: This tells you the operation is part of a long-running I2RS transaction, which can include several related I2RS operations ๐Ÿงถ Using this value, you can tie multiple log entries together as parts of one big overall I2RS operation ๐Ÿงฉ This is an optional field, and it may not be logged unless the event is part of a long-running transaction ๐Ÿซง

Result Code: This field holds the result of the operation once the Request State is COMPLETED ๐Ÿ“‹ For Routing Information Base (RIB) operations, this MUST be the return code specified in Section 4 of [RIBINFO] ๐Ÿงฎ The operation may not finish with a result code if it times out โฐ BUT if the operation fails to complete, it MUST still log the attempted operation with an appropriate result code ๐Ÿ’€

Timeout Occurred: This is a Boolean field that says whether or not a timeout happened during the operation โณ When this is true, the Ending Timestamp MUST be set to the time the agent recorded for the timeout ๐Ÿ• This field may not be logged unless the Request State is COMPLETED ๐Ÿ

Ending Timestamp: This is the exact time the I2RS operation exits the specified Request State inside the I2RS agent ๐Ÿ›ฌ If the log entry covers the whole duration of the request, this is the time the request reached a terminal point inside the agent ๐Ÿ This field MUST be present in every entry that marks the end of a state transition, and in every entry that logs the whole duration of the request ๐Ÿ’– The time uses the full timestamp format from [RFC3339], with the date and the offset from Coordinated Universal Time (UTC) ๐ŸŒ Check the Starting Timestamp description above for the proper format of the Ending Timestamp too ๐Ÿ”

End Of Message: Each log entry SHOULD have an appropriate End Of Message (EOM) indicator ๐Ÿ›‘ See Section 5.3 below for more details ๐Ÿ‘‡

5.3. End of Message Marker ๐Ÿชง

Because the I2RS trace log fields can vary quite a bit, implementors MUST use a format-appropriate End Of Message (EOM) indicator to mark the end of each record ๐Ÿงฑ No matter the format, the I2RS trace log MUST provide a distinct way to tell where one record ends and the next one begins ๐Ÿซถ For example, in a linear-formatted log (kinda like a syslog), the EOM marker might be a newline character ๐Ÿ“ In an XML-formatted log, the schema would give you element tags that mark the start and end of records ๐Ÿท๏ธ In a JSON-formatted log, the syntax would handle record separation, probably with comma-separated array elements ๐Ÿง

6. Examples ๐ŸŽ€

This section shows a sample of what the fields and values could look like ๐Ÿ‘€

   Event ID:                 1
   Starting Timestamp:       2013-09-03T12:00:01.21+00:00
   Request State:            COMPLETED
   Client ID:                5CEF1870-0326-11E2-A21F-0800200C9A66
   Client Priority:          100
   Secondary ID:             com.example.RoutingApp
   Client Address:           2001:db8:c0c0::2
   Requested Operation:      ROUTE_ADD
   Applied Operation:        ROUTE_ADD
   Operation Data Present:   TRUE
   Requested Operation Data: PREFIX 2001:db8:feed:: PREFIX-LEN 64
                             NEXT-HOP 2001:db8:cafe::1
   Applied Operation Data:   PREFIX 2001:db8:feed:: PREFIX-LEN 64
                             NEXT-HOP 2001:db8:cafe::1
   Transaction ID:           2763461
   Result Code:              SUCCESS(0)
   Timeout Occurred:         FALSE
   Ending Timestamp:         2013-09-03T12:00:01.23+00:00

7. Operational Guidance ๐Ÿงญ

Specific operational procedures for temporary log storage, rollover, retrieval, and access of I2RS trace logs are out of scope for this document ๐Ÿ™…โ€โ™€๏ธ Organizations that use I2RS trace logging are responsible for setting up their own operational procedures, suited to their specific requirements and operating environment ๐Ÿข In this section, we only give fundamental, generalized operational guidelines that don't depend on any particular implementation ๐Ÿซถ

7.1. Trace Log Creation โœจ

Okay so the I2RS agent is the one chatting with the Routing and Signaling functions of the Routing Element ๐Ÿ’…. Since the agent is the one actually making the routing changes on the device, it creates and keeps a log of operations ๐Ÿ“œ that you can pull up later to troubleshoot any I2RS-related impact on the network. Changes to the element's local config made outside of I2RS that preempt I2RS state will only be logged if the network element notifies the I2RS agent ๐Ÿ™ˆ. So if something sneaky happens without the element telling anyone, that's on the element, bestie ๐Ÿ˜ญ

7.2. Trace Log Temporary Storage ๐Ÿงš

The trace info can be stored temporarily, either in an in-memory buffer or as a file local to the agent. You should totally think about how many I2RS operations the agent expects, so the right storage medium gets picked and the log stays super useful without messing with the agent's performance and health ๐Ÿ’–.

Also, client requests may not always be processed synchronously or within a bounded time period ๐Ÿ˜ฌ. So to make sure fields like "Operation" and "Result Code" end up in the same trace log record, buffering the trace log entries may be required ๐Ÿซถ. Just know that buffering can add resource load on the agent and the network element, so plan for it ๐Ÿ”ฅ.

Section 7.3 covers rotating the trace log so you keep the operation history without draining agent or network device resources ๐Ÿ”„. So it's perfectly acceptable to use an in-memory buffer for recent operations while rotating or archiving the older ones to a local file. Iconic multitasking ๐Ÿ‘‘

It's outside the scope of this document to spell out the implementation details (i.e., size, throughput, data protection, etc.) for the physical storage of the I2RS log file. Still, data retention is a big deal ๐Ÿ™ˆ. Pay attention to how long the I2RS trace log data is kept when it contains security- or privacy-sensitive attributes. The longer it's retained, the higher the impact if it ever leaks ๐Ÿ’€. Legislation may also impose extra requirements on the minimum and/or maximum durations for which some kinds of data may be retained, so keep an eye on that too ๐ŸŒธ.


7.3. Trace Log Rotation ๐Ÿ”„

To prevent the exhaustion of resources on the I2RS agent or its associated network device, it is RECOMMENDED that the I2RS agent implements trace log rotation ๐Ÿ’œ. How that gets achieved is left up to the implementation and is outside the scope of this document. Still, it should be possible to do a file rotation based on either the time or the size of the current trace log โฐ๐Ÿ“. If file rollover is supported, multiple archived log files should be supported too, so you get the maximum troubleshooting and accounting benefits ๐Ÿฆ‹.

7.4. Trace Log Retrieval ๐ŸŒˆ

Implementors are free to provide their own proprietary interfaces and build custom tools to retrieve and display the I2RS trace log ๐Ÿ› ๏ธ. That can include showing the trace log as command-line interface (CLI) output. But the whole point of this information model is a vendor-agnostic and consistent interface for collecting I2RS trace data, so retrieving the data should be vendor-agnostic too ๐Ÿซถ.

Exporting this info is an invaluable diagnostic tool for off-box analysis, but exporting MUST NOT interfere with the agent's ability to process new incoming operations ๐Ÿšซ. The agent has to keep its focus on the new stuff!

The following three sections describe potential ways the trace log can be accessed. Using I2RS pub/sub to access trace log data is mandatory-to-implement, while the others are optional ๐Ÿ’….

7.4.1. Retrieval via Syslog ๐Ÿ“จ

The syslog protocol [RFC5424] is a standard way of sending event notification messages from a host to a collector. However, the protocol doesn't define any standard format for storing those messages, so implementors of I2RS tracing would be left to define their own format ๐Ÿคทโ€โ™€๏ธ. That means the data in a syslog message would adhere to this information model and might be readable by a human operator, but it wouldn't be easily parseable by a machine ๐Ÿ˜ฉ.

If syslog is used for trace log retrieval, then you should lean on the existing logging infrastructure and the capabilities of syslog [RFC5424] without needing to define or extend any existing formats ๐Ÿง . The various fields described in Section 5.2 MAY be... sorry, the various fields described in Section 5.2 SHOULD be modeled and encoded as Structured Data Elements (referred to as "SD-ELEMENT"), as described in Section 6.3.1 of [RFC5424] ๐ŸŽ€.

7.4.2. Retrieval via I2RS Information Collection ๐Ÿ“ฆ

Section 7.7 of the I2RS architecture [RFC7921] defines a mechanism for information collection. That can mean grabbing a snapshot of a large amount of data from the network element ๐Ÿ“ธ. It's the intent of I2RS to make this data available in an implementor-agnostic fashion, so the I2RS trace log SHOULD be made available via the I2RS information collection mechanism, either as a single snapshot or via a subscription stream ๐Ÿ’–.

7.4.3. Retrieval via I2RS Pub/Sub ๐Ÿ“ก

Section 7.6 of the I2RS architecture [RFC7921] goes on to describe notification mechanisms for a feed of changes happening within the I2RS layer. The requirements for a publish-subscribe system for I2RS are defined in [RFC7923]. And here's the big one: I2RS agents MUST support publishing I2RS trace log information to that feed as described in [RFC7923] ๐Ÿ‘‘.

Once that's in place, subscribers get a live stream of I2RS interactions in trace log format and can flexibly choose what to do with the messages ๐Ÿฆ‹. For example, they could log the messages to a datastore, or aggregate and summarize interactions from a single client, etc. The full range of potential activities is virtually limitless, though the details of how they're performed are outside the scope of this document ๐ŸŒŸ.


8. Security Considerations ๐Ÿ”

Okay, this section is serious, so listen up ๐Ÿšจ. The I2RS trace log, like any log file, reveals the state of the entity producing it, plus the identifying information elements and detailed interactions of the system containing it ๐Ÿ‘€. The information model described in this document doesn't itself introduce any security issues. But it does define the set of attributes that make up an I2RS log file, and those attributes may contain sensitive information. So they should adhere to the security, privacy, and permission policies of the organization using the I2RS log file ๐Ÿซก.

Warning, bestie: the stored log file is not protected by this document. It's outside the scope of this document to specify how to protect it, but adequate precautions and security best practices are expected. Think disk encryption, appropriately restrictive file/directory permissions, suitable hardening and physical security of logging entities, mutual authentication, transport encryption, channel confidentiality, and channel integrity if log files are being transferred ๐Ÿ”’๐Ÿ’….

Also, the potentially sensitive information in a log file SHOULD be adequately anonymized or obfuscated by operators to ensure its privacy ๐Ÿ™ˆ๐Ÿซถ. Protect that data like it's your diary, periodt ๐Ÿ“”โœจ.


9. References ๐Ÿ“š

9.1. Normative References

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

[RFC3339]  Klyne, G. and C. Newman, "Date and Time on the Internet:
           Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
           <http://www.rfc-editor.org/info/rfc3339>.

[RFC5424]  Gerhards, R., "The Syslog Protocol", RFC 5424,
           DOI 10.17487/RFC5424, March 2009,
           <http://www.rfc-editor.org/info/rfc5424>.

[RFC7921]  Atlas, A., Halpern, J., Hares, S., Ward, D., and T.
           Nadeau, "An Architecture for the Interface to the Routing
           System", RFC 7921, DOI 10.17487/RFC7921, June 2016,
           <http://www.rfc-editor.org/info/rfc7921>.

[RFC7923]  Voit, E., Clemm, A., and A. Gonzalez Prieto, "Requirements
           for Subscription to YANG Datastores", RFC 7923,
           DOI 10.17487/RFC7923, June 2016.

9.2. Informative References

[RFC6536]  Bierman, A. and M. Bjorklund, "Network Configuration
           Protocol (NETCONF) Access Control Model", RFC 6536,
           DOI 10.17487/RFC6536, March 2012,
           <http://www.rfc-editor.org/info/rfc6536>.

[RFC7920]  Atlas, A., Ed., Nadeau, T., Ed., and D. Ward, "Problem
           Statement for the Interface to the Routing System",
           RFC 7923, DOI 10.17487/RFC7923, June 2016,
           <http://www.rfc-editor.org/info/rfc7920>.

[RIBINFO]  Bahadur, N., Ed., Kini, S., Ed., and J. Medved, "Routing
           Information Base Info Model", Work in Progress,
           draft-ietf-i2rs-rib-info-model-08, October 2015.

Acknowledgments ๐Ÿซถ

The authors would like to thank Alia Atlas for her initial feedback and overall support for this work ๐Ÿ’œ. They also acknowledge Alvaro Retana, Russ White, Matt Birkner, Jeff Haas, Joel Halpern, Dean Bogdanovich, Ignas Bagdonas, Nobo Akiya, Kwang-koog Lee, Sue Hares, Mach Chen, Alex Clemm, Stephen Farrell, Benoit Claise, Les Ginsberg, Suresh Krishnan, and Elwyn Davies for their reviews, contributed text, and suggested improvements to this document ๐Ÿ‘‘๐ŸŒธ. Iconic squad, honestly โœจ.

Authors' Addresses ๐Ÿ“ฎ

Joe Clarke
Cisco Systems, Inc.
7200-12 Kit Creek Road
Research Triangle Park, NC  27709
United States

Phone: +1-919-392-2867
Email: jclarke@cisco.com


Gonzalo Salgueiro
Cisco Systems, Inc.
7200-12 Kit Creek Road
Research Triangle Park, NC  27709
United States

Email: gsalguei@cisco.com


Carlos Pignataro
Cisco Systems, Inc.
7200-11 Kit Creek Road
Research Triangle Park, NC  27709
United States

Email: cpignata@cisco.com
๐Ÿ“ฆ where this page comes from