5426
PROPOSED STANDARD

Transmission of Syslog Messages over UDP

Authors: A. Okmianski
Date: March 2009
Area: sec
Working Group: syslog
Stream: IETF

Abstract

This document describes the transport for syslog messages over UDP/ IPv4 or UDP/IPv6. The syslog protocol layered architecture provides for support of any number of transport mappings. However, for interoperability purposes, syslog protocol implementers are required to support this transport mapping. [STANDARDS-TRACK]

RFC 5426: Transmission of Syslog Messages over UDP [RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

PROPOSED STANDARD
Network Working Group                                       A. Okmianski
Request for Comments: 5426                           Cisco Systems, Inc.
Category: Standards Track                                     March 2009


                <span class="h1">Transmission of Syslog Messages over UDP</span>

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

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

   This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Abstract

   This document describes the transport for syslog messages over UDP/
   IPv4 or UDP/IPv6.  The syslog protocol layered architecture provides
   for support of any number of transport mappings.  However, for
   interoperability purposes, syslog protocol implementers are required
   to support this transport mapping.






<span class="grey">Okmianski                   Standards Track                     [Page 1]</span>

<span id="page-2" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


Table of Contents

   <a href="#section-1">1</a>. Introduction ....................................................<a href="#page-2">2</a>
   <a href="#section-2">2</a>. Conventions Used in This Document ...............................<a href="#page-3">3</a>
   <a href="#section-3">3</a>. Transport Protocol ..............................................<a href="#page-3">3</a>
      <a href="#section-3.1">3.1</a>. One Message Per Datagram ...................................<a href="#page-3">3</a>
      <a href="#section-3.2">3.2</a>. Message Size ...............................................<a href="#page-3">3</a>
      <a href="#section-3.3">3.3</a>. Source and Target Ports ....................................<a href="#page-4">4</a>
      <a href="#section-3.4">3.4</a>. Source IP Address ..........................................<a href="#page-4">4</a>
      <a href="#section-3.5">3.5</a>. UDP/IP Structure ...........................................<a href="#page-4">4</a>
      <a href="#section-3.6">3.6</a>. UDP Checksums ..............................................<a href="#page-4">4</a>
   <a href="#section-4">4</a>. Reliability Considerations ......................................<a href="#page-5">5</a>
      <a href="#section-4.1">4.1</a>. Lost Datagrams .............................................<a href="#page-5">5</a>
      <a href="#section-4.2">4.2</a>. Message Corruption .........................................<a href="#page-5">5</a>
      <a href="#section-4.3">4.3</a>. Congestion Control .........................................<a href="#page-5">5</a>
      <a href="#section-4.4">4.4</a>. Sequenced Delivery .........................................<a href="#page-5">5</a>
   <a href="#section-5">5</a>. Security Considerations .........................................<a href="#page-6">6</a>
      <a href="#section-5.1">5.1</a>. Sender Authentication and Message Forgery ..................<a href="#page-6">6</a>
      <a href="#section-5.2">5.2</a>. Message Observation ........................................<a href="#page-7">7</a>
      <a href="#section-5.3">5.3</a>. Replaying ..................................................<a href="#page-7">7</a>
      <a href="#section-5.4">5.4</a>. Unreliable Delivery ........................................<a href="#page-7">7</a>
      <a href="#section-5.5">5.5</a>. Message Prioritization and Differentiation .................<a href="#page-7">7</a>
      <a href="#section-5.6">5.6</a>. Denial of Service ..........................................<a href="#page-8">8</a>
   <a href="#section-6">6</a>. IANA Considerations .............................................<a href="#page-8">8</a>
   <a href="#section-7">7</a>. Acknowledgements ................................................<a href="#page-8">8</a>
   <a href="#section-8">8</a>. References ......................................................<a href="#page-8">8</a>
      <a href="#section-8.1">8.1</a>. Normative References .......................................<a href="#page-8">8</a>
      <a href="#section-8.2">8.2</a>. Informative References .....................................<a href="#page-9">9</a>

<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>.  Introduction</span>

   Informational <a href="./rfc3164">RFC 3164</a> [<a href="#ref-8" title=""The BSD Syslog Protocol"">8</a>] describes the syslog protocol as it was
   observed in existing implementations.  It describes both the format
   of syslog messages and a UDP [<a href="#ref-1" title=""User Datagram Protocol"">1</a>] transport.  Subsequently, a
   Standards-Track syslog protocol has been defined in <a href="./rfc5424">RFC 5424</a> [<a href="#ref-2" title=""The Syslog Protocol"">2</a>].

   <a href="./rfc5424">RFC 5424</a> specifies a layered architecture that provides for support
   of any number of transport layer mappings for transmitting syslog
   messages.  This document describes the UDP transport mapping for the
   syslog protocol.

   The transport described in this document can be used for transmitting
   syslog messages over both IPv4 [<a href="#ref-3" title=""Internet Protocol"">3</a>] and IPv6 [<a href="#ref-4" title=""Internet Protocol, Version 6 (IPv6) Specification"">4</a>].








<span class="grey">Okmianski                   Standards Track                     [Page 2]</span>

<span id="page-3" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


   Network administrators and architects should be aware of the
   significant reliability and security issues of this transport, which
   stem from the use of UDP.  They are documented in this specification.
   However, this transport is lightweight and is built upon the existing
   popular use of UDP for syslog.

<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>.  Conventions Used in This Document</span>

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in <a href="./rfc2119">RFC 2119</a> [<a href="#ref-5" title=""Key words for use in RFCs to Indicate Requirement Levels"">5</a>].

<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>.  Transport Protocol</span>

<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>.  One Message Per Datagram</span>

   Each syslog UDP datagram MUST contain only one syslog message, which
   MAY be complete or truncated.  The message MUST be formatted and
   truncated according to <a href="./rfc5424">RFC 5424</a> [<a href="#ref-2" title=""The Syslog Protocol"">2</a>].  Additional data MUST NOT be
   present in the datagram payload.

<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a>.  Message Size</span>

   This transport mapping supports transmission of syslog messages up to
   65535 octets minus the UDP header length.  This limit stems from the
   maximum supported UDP size of 65535 octets specified in <a href="./rfc768">RFC 768</a> [<a href="#ref-1" title=""User Datagram Protocol"">1</a>].
   For IPv4, the maximum payload size is 65535 octets minus the UDP
   header and minus the IP header because IPv4 has a 16-bit length field
   that also includes the header length.

   IPv4 syslog receivers MUST be able to receive datagrams with message
   sizes up to and including 480 octets.  IPv6 syslog receivers MUST be
   able to receive datagrams with message sizes up to and including 1180
   octets.  All syslog receivers SHOULD be able to receive datagrams
   with message sizes of up to and including 2048 octets.  The ability
   to receive larger messages is encouraged.

   The above restrictions and recommendations establish a baseline for
   interoperability.  The minimum required message size support was
   determined based on the minimum MTU size that Internet hosts are
   required to support: 576 octets for IPv4 [<a href="#ref-3" title=""Internet Protocol"">3</a>] and 1280 octets for IPv6
   [<a href="#ref-4" title=""Internet Protocol, Version 6 (IPv6) Specification"">4</a>].  Datagrams that conform to these limits have the greatest chance
   of being delivered because they do not require fragmentation.

   It is RECOMMENDED that syslog senders restrict message sizes such
   that IP datagrams do not exceed the smallest MTU of the network in
   use.  This avoids datagram fragmentation and possible issues
   surrounding fragmentation such as incorrect MTU discovery.



<span class="grey">Okmianski                   Standards Track                     [Page 3]</span>

<span id="page-4" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


   Fragmentation can be undesirable because it increases the risk of the
   message being lost due to loss of just one datagram fragment.  Syslog
   has no acknowledgement facility, and therefore there is no effective
   way to handle retransmission.  This makes it impossible for syslog to
   utilize packetization layer path MTU discovery [<a href="#ref-9" title=""Path MTU discovery"">9</a>].  When network MTU
   is not known in advance, the safest assumption is to restrict
   messages to 480 octets for IPv4 and 1180 octets for IPv6.

<span class="h3"><a class="selflink" id="section-3.3" href="#section-3.3">3.3</a>.  Source and Target Ports</span>

   Syslog receivers MUST support accepting syslog datagrams on the well-
   known UDP port 514, but MAY be configurable to listen on a different
   port.  Syslog senders MUST support sending syslog message datagrams
   to the UDP port 514, but MAY be configurable to send messages to a
   different port.  Syslog senders MAY use any source UDP port for
   transmitting messages.

<span class="h3"><a class="selflink" id="section-3.4" href="#section-3.4">3.4</a>.  Source IP Address</span>

   The source IP address of the UDP datagrams SHOULD NOT be interpreted
   as the identifier for the host that originated the syslog message.
   The entity sending the syslog message could be merely a relay.  The
   syslog message itself contains the identifier of the originator of
   the message.

<span class="h3"><a class="selflink" id="section-3.5" href="#section-3.5">3.5</a>.  UDP/IP Structure</span>

   Each UDP/IP datagram sent by the transport layer MUST completely
   adhere to the structure specified in the UDP <a href="./rfc768">RFC 768</a> [<a href="#ref-1" title=""User Datagram Protocol"">1</a>] and either
   the IPv4 <a href="./rfc791">RFC 791</a> [<a href="#ref-3" title=""Internet Protocol"">3</a>] or IPv6 <a href="./rfc2460">RFC 2460</a> [<a href="#ref-4" title=""Internet Protocol, Version 6 (IPv6) Specification"">4</a>], depending on which
   protocol is used.

<span class="h3"><a class="selflink" id="section-3.6" href="#section-3.6">3.6</a>.  UDP Checksums</span>

   Syslog senders MUST NOT disable UDP checksums.  IPv4 syslog senders
   SHOULD use UDP checksums when sending messages.  Note that <a href="./rfc2460">RFC 2460</a>
   [<a href="#ref-4" title=""Internet Protocol, Version 6 (IPv6) Specification"">4</a>] mandates the use of UDP checksums when sending UDP datagrams over
   IPv6.

   Syslog receivers MUST NOT disable UDP checksum checks.  IPv4 syslog
   receivers SHOULD check UDP checksums and SHOULD accept a syslog
   message with a zero checksum.  Note that <a href="./rfc2460">RFC 2460</a> [<a href="#ref-4" title=""Internet Protocol, Version 6 (IPv6) Specification"">4</a>] mandates the
   use of checksums for UDP over IPv6.








<span class="grey">Okmianski                   Standards Track                     [Page 4]</span>

<span id="page-5" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>.  Reliability Considerations</span>

   The UDP is an unreliable, low-overhead protocol.  This section
   discusses reliability issues inherent in UDP that implementers and
   users should be aware of.

<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>.  Lost Datagrams</span>

   This transport mapping does not provide any mechanism to detect and
   correct loss of datagrams.  Datagrams can be lost in transit due to
   congestion, corruption, or any other intermittent network problem.
   IP fragmentation exacerbates this problem because loss of a single
   fragment will result in the entire message being discarded.

<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>.  Message Corruption</span>

   The UDP/IP datagrams can get corrupted in transit due to software,
   hardware, or network errors.  This transport mapping specifies use of
   UDP checksums to enable corruption detection in addition to checksums
   used in IP and Layer 2 protocols.  However, checksums do not
   guarantee corruption detection, and this transport mapping does not
   provide for message acknowledgement or retransmission mechanism.

<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a>.  Congestion Control</span>

   Because syslog can generate unlimited amounts of data, transferring
   this data over UDP is generally problematic, because UDP lacks
   congestion control mechanisms.  Congestion control mechanisms that
   respond to congestion by reducing traffic rates and establish a
   degree of fairness between flows that share the same path are vital
   to the stable operation of the Internet [<a href="#ref-6" title=""Congestion Control Principles"">6</a>].  This is why the syslog
   TLS transport [<a href="#ref-7" title=""TLS Transport Mapping for Syslog"">7</a>] is REQUIRED to implement and RECOMMENDED for
   general use.

   The only environments where the syslog UDP transport MAY be used as
   an alternative to the TLS transport are managed networks, where the
   network path has been explicitly provisioned for UDP syslog traffic
   through traffic engineering mechanisms, such as rate limiting or
   capacity reservations.  In all other environments, the TLS transport
   [<a href="#ref-7" title=""TLS Transport Mapping for Syslog"">7</a>] SHOULD be used.

<span class="h3"><a class="selflink" id="section-4.4" href="#section-4.4">4.4</a>.  Sequenced Delivery</span>

   The IP transport used by the UDP does not guarantee that the sequence
   of datagram delivery will match the order in which the datagrams were
   sent.  The time stamp contained within each syslog message can serve
   as a rough guide in establishing sequence order.  However, it will
   not help in cases where multiple messages were generated during the



<span class="grey">Okmianski                   Standards Track                     [Page 5]</span>

<span id="page-6" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


   same time slot, the sender could not generate a time stamp, or
   messages originated from different hosts whose clocks were not
   synchronized.  The order of syslog message arrival via this transport
   SHOULD NOT be used as an authoritative guide in establishing an
   absolute or relative sequence of events on the syslog sender hosts.

<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>.  Security Considerations</span>

   Using this specification on an unsecured network is NOT RECOMMENDED.
   Several syslog security considerations are discussed in <a href="./rfc5424">RFC 5424</a> [<a href="#ref-2" title=""The Syslog Protocol"">2</a>].
   This section focuses on security considerations specific to the
   syslog transport over UDP.  Some of the security issues raised in
   this section can be mitigated through the use of IPsec as defined in
   <a href="./rfc4301">RFC 4301</a> [<a href="#ref-10" title=""Security Architecture for the Internet Protocol"">10</a>].

<span class="h3"><a class="selflink" id="section-5.1" href="#section-5.1">5.1</a>.  Sender Authentication and Message Forgery</span>

   This transport mapping does not provide for strong sender
   authentication.  The receiver of the syslog message will not be able
   to ascertain that the message was indeed sent from the reported
   sender, or whether the packet was sent from another device.  This can
   also lead to a case of mistaken identity if an inappropriately
   configured machine sends syslog messages to a receiver representing
   itself as another machine.

   This transport mapping does not provide protection against syslog
   message forgery.  An attacker can transmit syslog messages (either
   from the machine from which the messages are purportedly sent or from
   any other machine) to a receiver.

   In one case, an attacker can hide the true nature of an attack amidst
   many other messages.  As an example, an attacker can start generating
   forged messages indicating a problem on some machine.  This can get
   the attention of the system administrators, who will spend their time
   investigating the alleged problem.  During this time, the attacker
   could be able to compromise a different machine or a different
   process on the same machine.

   Additionally, an attacker can generate false syslog messages to give
   untrue indications of the status of systems.  As an example, an
   attacker can stop a critical process on a machine, which could
   generate a notification of exit.  The attacker can subsequently
   generate a forged notification that the process had been restarted.
   The system administrators could accept that misinformation and not
   verify that the process had indeed not been restarted.






<span class="grey">Okmianski                   Standards Track                     [Page 6]</span>

<span id="page-7" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


<span class="h3"><a class="selflink" id="section-5.2" href="#section-5.2">5.2</a>.  Message Observation</span>

   This transport mapping does not provide confidentiality of the
   messages in transit.  If syslog messages are in clear text, this is
   how they will be transferred.  In most cases, passing clear-text,
   human-readable messages is a benefit to the administrators.
   Unfortunately, an attacker could also be able to observe the human-
   readable contents of syslog messages.  The attacker could then use
   the knowledge gained from these messages to compromise a machine.  It
   is RECOMMENDED that no sensitive information be transmitted via this
   transport mapping or that transmission of such information be
   restricted to properly secured networks.

<span class="h3"><a class="selflink" id="section-5.3" href="#section-5.3">5.3</a>.  Replaying</span>

   Message forgery and observation can be combined into a replay attack.
   An attacker could record a set of messages that indicate normal
   activity of a machine.  At a later time, an attacker could remove
   that machine from the network and replay the syslog messages with new
   time stamps.  The administrators could find nothing unusual in the
   received messages, and their receipt would falsely indicate normal
   activity of the machine.

<span class="h3"><a class="selflink" id="section-5.4" href="#section-5.4">5.4</a>.  Unreliable Delivery</span>

   As was previously discussed in <a href="#section-4">Section 4</a>, Reliability Considerations,
   the UDP transport is not reliable, and packets containing syslog
   message datagrams can be lost in transit without any notice.  There
   can be security consequences to the loss of one or more syslog
   messages.  Administrators could be unaware of a developing and
   potentially serious problem.  Messages could also be intercepted and
   discarded by an attacker as a way to hide unauthorized activities.

<span class="h3"><a class="selflink" id="section-5.5" href="#section-5.5">5.5</a>.  Message Prioritization and Differentiation</span>

   This transport mapping does not mandate prioritization of syslog
   messages either on the wire or when processed on the receiving host
   based on their severity.  Unless some prioritization is implemented
   by sender, receiver, and/or network, the security implication of such
   behavior is that the syslog receiver or network devices could get
   overwhelmed with low-severity messages and be forced to discard
   potentially high-severity messages.









<span class="grey">Okmianski                   Standards Track                     [Page 7]</span>

<span id="page-8" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


<span class="h3"><a class="selflink" id="section-5.6" href="#section-5.6">5.6</a>.  Denial of Service</span>

   An attacker could overwhelm a receiver by sending more messages to it
   than could be handled by the infrastructure or the device itself.
   Implementers SHOULD attempt to provide features that minimize this
   threat, such as optionally restricting reception of messages to a set
   of known source IP addresses.

<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>.  IANA Considerations</span>

   This transport uses UDP port 514 for syslog, as recorded in the IANA
   port-numbers registry.

<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>.  Acknowledgements</span>

   The author gratefully acknowledges the contributions of: Chris
   Lonvick, Rainer Gerhards, David Harrington, Andrew Ross, Albert
   Mietus, Bernie Volz, Mickael Graham, Greg Morris, Alexandra Fedorova,
   Devin Kowatch, Richard Graveman, and all others who have commented on
   the various versions of this proposal.

<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>.  References</span>

<span class="h3"><a class="selflink" id="section-8.1" href="#section-8.1">8.1</a>.  Normative References</span>

   [<a id="ref-1">1</a>]   Postel, J., "User Datagram Protocol", STD 6, <a href="./rfc768">RFC 768</a>, August
         1980.

   [<a id="ref-2">2</a>]   Gerhards, R., "The Syslog Protocol", <a href="./rfc5424">RFC 5424</a>, March 2009.

   [<a id="ref-3">3</a>]   Postel, J., "Internet Protocol", STD 5, <a href="./rfc791">RFC 791</a>, September
         1981.

   [<a id="ref-4">4</a>]   Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
         Specification", <a href="./rfc2460">RFC 2460</a>, December 1998.

   [<a id="ref-5">5</a>]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.

   [<a id="ref-6">6</a>]   Floyd, S., "Congestion Control Principles", <a href="https://www.rfc-editor.org/bcp/bcp41">BCP 41</a>, <a href="./rfc2914">RFC 2914</a>,
         September 2000.

   [<a id="ref-7">7</a>]   Miao, F. and Y. Ma, "TLS Transport Mapping for Syslog", <a href="./rfc5425">RFC</a>
         <a href="./rfc5425">5425</a>, March 2009.







<span class="grey">Okmianski                   Standards Track                     [Page 8]</span>

<span id="page-9" ></span>
<span class="grey"><a href="./rfc5426">RFC 5426</a>                  Syslog UDP Transport                March 2009</span>


<span class="h3"><a class="selflink" id="section-8.2" href="#section-8.2">8.2</a>.  Informative References</span>

   [<a id="ref-8">8</a>]   Lonvick, C., "The BSD Syslog Protocol", <a href="./rfc3164">RFC 3164</a>, August 2001.

   [<a id="ref-9">9</a>]   Mogul, J. and S. Deering, "Path MTU discovery", <a href="./rfc1191">RFC 1191</a>,
         November 1990.

   [<a id="ref-10">10</a>]  Kent, S. and K. Seo, "Security Architecture for the Internet
         Protocol", <a href="./rfc4301">RFC 4301</a>, December 2005.

Author's Address

   Anton Okmianski
   Cisco Systems, Inc.
   595 Burrard St., Suite 2123
   Vancouver, BC V7X 1J1
   Canada

   Phone: +1-978-936-1612
   EMail: [email protected]































Okmianski                   Standards Track                     [Page 9]

Additional Resources