As per Relevance of the word reliable, we have this rfc below:











Network Working Group D.
Request for Comments: 3195 M.
Category: Standards Track Dover Beach Consulting, Inc
November 2001


Reliable Delivery for

Status of this

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

Copyright

Copyright (C) The Internet Society (2001). All Rights Reserved



The BSD Syslog Protocol describes a number of service options
to propagating event messages. This memo describes two mappings
the syslog protocol to TCP connections, both useful for
delivery of event messages. The first provides a trivial
maximizing backward compatibility. The second provides a
complete mapping. Both provide a degree of robustness and
in message delivery that is unavailable to the usual UDP-based
protocol, by providing encryption and authentication over
connection-oriented protocol




















New & Rose Standards Track [Page 1]

RFC 3195 Reliable Delivery for syslog November 2001


Table of

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. The Model . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. The RAW Profile . . . . . . . . . . . . . . . . . . . . . . 7
3.1 RAW Profile Overview . . . . . . . . . . . . . . . . . . . . 7
3.2 RAW Profile Identification and Initialization . . . . . . . 9
3.3 RAW Profile Message Syntax . . . . . . . . . . . . . . . . . 10
3.4 RAW Profile Message Semantics . . . . . . . . . . . . . . . 10
4. The COOKED Profile . . . . . . . . . . . . . . . . . . . . . 11
4.1 COOKED Profile Overview . . . . . . . . . . . . . . . . . . 11
4.2 COOKED Profile Identification and Initialization . . . . . . 11
4.3 COOKED Profile Message Syntax . . . . . . . . . . . . . . . 11
4.4 COOKED Profile Message Semantics . . . . . . . . . . . . . . 12
4.4.1 The IAM Element . . . . . . . . . . . . . . . . . . . . . . 12
4.4.2 The ENTRY Element . . . . . . . . . . . . . . . . . . . . . 14
4.4.3 The PATH Element . . . . . . . . . . . . . . . . . . . . . . 19
5. Additional Provisioning . . . . . . . . . . . . . . . . . . 25
5.1 Message Authenticity . . . . . . . . . . . . . . . . . . . . 25
5.2 Message Replay . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 Message Integrity . . . . . . . . . . . . . . . . . . . . . 25
5.4 Message Observation . . . . . . . . . . . . . . . . . . . . 26
5.5 Summary of Recommended Practices . . . . . . . . . . . . . . 26
6. Initial Registrations . . . . . . . . . . . . . . . . . . . 27
6.1 Registration: The RAW Profile . . . . . . . . . . . . . . . 27
6.2 Registration: The COOKED Profile . . . . . . . . . . . . . . 27
7. The syslog DTD . . . . . . . . . . . . . . . . . . . . . . . 28
8. Reply Codes . . . . . . . . . . . . . . . . . . . . . . . . 32
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 33
9.1 Registration: BEEP Profiles . . . . . . . . . . . . . . . . 33
9.2 Registration: The System (Well-Known) TCP port number
syslog-conn . . . . . . . . . . . . . . . . . . . . . . . 33
10. Security Considerations . . . . . . . . . . . . . . . . . . 34
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35
Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 36














New & Rose Standards Track [Page 2]

RFC 3195 Reliable Delivery for syslog November 2001


1.

The syslog protocol [1] presents a spectrum of service options
provisioning an event-based logging service over a network.
option has associated benefits and costs. Accordingly, the choice
to what combination of options is provisioned is both an
and administrative decision. This memo describes how to realize
syslog protocol when reliable delivery is selected as a
service. It is beyond the scope of this memo to argue for,
against, the use of reliable delivery for the syslog protocol

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
document are to be interpreted as described in RFC 2119 [2].





































New & Rose Standards Track [Page 3]

RFC 3195 Reliable Delivery for syslog November 2001


2. The

The syslog service supports three roles of operation: device, relay
and collector

Devices and collectors act as sources and sinks, respectively,
syslog entries. In the simplest case, only a device and
are present. E.g.,

+--------+ +-----------+
| Device | -----> | Collector |
+--------+ +-----------+

The relationship between devices and collectors is potentially many
to-many. I.e., a device might communicate with many collectors
similarly, a collector might communicate with many devices

A relay operates in both modes, accepting syslog entries from
and other relays and forwarding those entries to collectors and
relays

For example

+--------+ +-------+ +-------+ +-----------+
| Device | ---> | Relay | -...-> | Relay | ---> | Collector |
+--------+ +-------+ +-------+ +-----------+

As shown, more than one relay may be present between any
device and collector

A relay may be necessary for administrative reasons. For example,
relay might run as an application proxy on a firewall. Also,
might be one relay per company department, which authenticates
the devices in the department, and which in turn authenticates
to a company-wide collector

A relay can also serve to filter messages. For example, one
may collect the syslog information from an entire web server farm
summarizing hit counts for report generation, forwarding "page
found" messages (indicating a possible broken link) to a
that presents it to the webmaster, and sending more urgent
(such as hardware failure reports) to a collector that gateways
to a pager. A relay may also be used to convert formats from
device's output to a collector's input

It should be noted that a role of device, relay, or collector
relevant only to a particular BEEP channel (q.v., below). A
server can serve as a device, a relay, and a collector, all at once



New & Rose Standards Track [Page 4]

RFC 3195 Reliable Delivery for syslog November 2001


if so configured. It can even serve as a relay and a collector
the same device at the same time using different BEEP channels
the same connection-oriented session; this might be useful to
status yet relay urgent error messages

To provide reliable delivery when realizing the syslog protocol,
memo defines two BEEP profiles. BEEP [3] is a generic
protocol framework for connection-oriented,
interactions. Within BEEP, features such as authentication, privacy
and reliability through retransmission are provided. There are
profiles defined in this memo

o The RAW profile is designed to provide a high-performance, low
impact footprint, using essentially the same format as
existing UDP-based syslog service

o The COOKED profile is designed to provide a structured
format, in which individual entries are acknowledged (
positively or negatively).

Note that both profiles run over BEEP. BEEP defines "
mappings," specifying how BEEP messages are carried over
underlying transport technologies. At the time of this writing,
one such transport is defined, in [4], which specifies BEEP over TCP
All transport mappings are required to support enough reliability
sequencing to allow all BEEP messages on a given channel to
delivered reliably and in order. Hence, both the RAW and
profile provide reliable delivery of their messages

The choice of profile is independent of the operational
discussed above

For example,

+--------+ +-------+ +-----------+
| Device | -----> | Relay | -----> | Collector |
+--------+ +-------+ +-----------+

the device-to-relay link could be configured to use the RAW profile
while the relay-to-collector link could be configured to use
COOKED profile. (For example, the relay may be parsing the
syslog messages from the device, knowing the details of
formats, before passing them to a more generic collector.) Indeed
the same device may use different profiles, depending on
collector to which it is sending entries






New & Rose Standards Track [Page 5]

RFC 3195 Reliable Delivery for syslog November 2001


Devices and relays MAY discover relays and collectors via the DNS
algorithm [5]. If so configured, the service used is "syslog"
the protocol used is "tcp". This allows for central
of addressing, fallback for failed relays and collectors, and
load balancing. Security policies and hardware configurations may
such that device configuration is more secure than the DNS server
Hardware devices may be of such limited resources that DNS SRV
is inappropriate. Firewalls and other restrictive routing
may need to be dealt with before a reliable syslog connection can
established. In these cases, DNS might not be the most
configuration mechanism








































New & Rose Standards Track [Page 6]

RFC 3195 Reliable Delivery for syslog November 2001


3. The RAW

3.1 RAW Profile

The RAW profile is designed for minimal implementation effort,
efficiency, and backwards compatibility. It is
especially in cases where legacy syslog processing will be applied

It should be noted that even though the RAW profile uses the
format for message payloads as the UDP version of syslog uses
delivery is reliable. The RAW syslog profile is a profile of
[3], and BEEP guarantees ordered reliable delivery of messages
each individual channel

When the profile is started, no piggyback data is supplied. All
messages in the RAW profile are specified as having a MIME Content
Type [6] of application/octet-stream. Once the channel is open,
listener (not the initiator) sends a MSG message indicating it
ready to act as a syslog sink. (Refer to [3]'s Section 2.1 for
discussion of roles that a BEEP peer may perform,
definitions of the terms "listener", "initiator", "client",
"server".)

The initiator uses ANS replies to supply one or more syslog
in the current UDP format, as specified in [1]'s Section 3. When
initiator has no more entries to send, it finishes with a NUL
and closes the channel

An example might appear as follows

L: incoming connection
I: <establish connection
L: RPY 0 0 . 0 201
L: Content-type: application/beep+
L
L: L: <
L: uri='http://xml.resource.org/profiles/syslog/COOKED' />
L:
L:
L:
I: RPY 0 0 . 0 52
I: Content-type: application/beep+
I
I:
I:
I: MSG 0 1 . 52 133
I: Content-type: application/beep+



New & Rose Standards Track [Page 7]

RFC 3195 Reliable Delivery for syslog November 2001


I
I:
I:
I: I:
L: RPY 0 1 . 201 100
L: Content-type: application/beep+
L
L:
L:
L: MSG 1 0 . 0 50
L
L: Central Services. This has not been a recording
L:
I: ANS 1 0 . 0 61 0
I
I: <29>Oct 27 13:21:08 ductwork imxpd[141]: Heating emergency.
I: ANS 1 0 . 61 58 1
I
I: <29>Oct 27 13:22:15 ductwork imxpd[141]: Contact Tuttle.
I: NUL 1 0 . 119 0
I:
L: MSG 0 3 . 301 70
L: Content-Type: application/beep+
L
L:
L:
I: RPY 0 3 . 185 46
I: Content-Type: application/beep+
I
I:
I:
I: MSG 0 4 . 231 72
I: Content-Type: application/beep+
I
I:
I:
L: RPY 0 4 . 371 46
L: Content-type: application/beep+
L
L:
L:
L: connection
I: connection
L: connection






New & Rose Standards Track [Page 8]

RFC 3195 Reliable Delivery for syslog November 2001


Here we see a BEEP session established, followed by the use of
RAW profile. The initiator is a device, while the listener is
collector. The initiator opens the channel, but the listener
the first MSG. This allows the initiator to send any number of
replies carrying syslog event messages. The initiator sends a
reply to indicate it is finished. Upon receiving the NUL,
listener closes the RAW channel. The initiator has the choice
closing the entire BEEP session or opening a new syslog channel (
or COOKED) for more transfers. In this example, the
chooses to close the entire BEEP session

The overhead for one ANS frame is about thirty octets, once
initial handshakes have been exchanged. If this overhead is
high, then messages are likely being generated at a high rate.
this case, multiple syslog messages can be aggregated into a
ANS frame, each separated by a CRLF sequence from the preceding.
final message still MUST NOT end with a CRLF

For example

L: MSG 1 0 . 0 50
L
L: Central Services. This has not been a recording
L:
I: ANS 1 0 . 0 119 0
I
I: <29>Oct 27 13:21:08 ductwork imxpd[141]: Heating emergency
I: <29>Oct 27 13:21:09 ductwork imxpd[141]: Contact Tuttle.
I: NUL 1 0 . 119 0
I:

3.2 RAW Profile Identification and

The RAW syslog profile is identified

http://xml.resource.org/profiles/syslog/

in the BEEP "profile" element during channel creation

No data is piggybacked during channel creation











New & Rose Standards Track [Page 9]

RFC 3195 Reliable Delivery for syslog November 2001


3.3 RAW Profile Message

All BEEP messages in this profile have a MIME content-type
application/octet-stream. The listener's first BEEP message
ignored and indeed may be empty except for headers; hence, any
is acceptable

The ANS replies the initiator sends in response MUST be
according to Section 4 of [1]. In particular, If the receiver
acting as a relay, then it MUST follow the rules as laid out
Section 4.2.2 of [1].

If multiple syslog messages are included in a single ANS reply,
is separated from the preceding with a CRLF. There is no
delimiter, but each syslog event message body length MUST be 1024
bytes or less, excluding BEEP framing overhead. Note that there
NOT be a CRLF between the text of the final syslog event message
the "END" marking the trailer of the BEEP frame

3.4 RAW Profile Message

The listener's opening BEEP MSG message has no semantics. (It is
good place to put in an identifying greeting.) The initiator's
replies MUST specify a facility, severity, and textual message,
described in [1].


























New & Rose Standards Track [Page 10]

RFC 3195 Reliable Delivery for syslog November 2001


4. The COOKED

4.1 COOKED Profile

The COOKED profile is designed for new implementations of
protocol handlers. It provides a much finer grain of
tagging, allowing a better degree of automation in processing
Naturally, it includes more overhead as well in support of this

The COOKED profile supports three elements of interest

o The "iam" element identifies the sender to the receiver,
each peer to name itself for the other, and specifying the
(device, relay, or collector) each is taking on

o The "entry" element provides a parsed version of the syslog entry
with the various fields of interest broken out

o The "path" element identifies a list of relays through which
tagged collection of "entry" elements has passed, along with a
of flags indicating what assurances of security have been
effect throughout its delivery

4.2 COOKED Profile Identification and

The COOKED syslog profile is identified

http://xml.resource.org/profiles/syslog/

in the BEEP "profile" element during channel creation

During channel creation, the corresponding "profile" element in
BEEP "start" element may contain an "iam" element. If
creation is successful, then before sending the corresponding reply
the BEEP peer processes the "iam" element and includes the
response in the reply. This response will be an "ok" element or
"error" element. The choice of which element is returned
dependent on local provisioning of the recipient. Including an "iam
in the initial "start" element has exactly the same semantics
passing it as the first MSG message on the channel

4.3 COOKED Profile Message

All BEEP messages in this profile have a MIME Content-Type [6]
application/beep+xml. The syntax of the individual elements
specified in Section 7.





New & Rose Standards Track [Page 11]

RFC 3195 Reliable Delivery for syslog November 2001


4.4 COOKED Profile Message

Initiators issue two elements: "iam" and "entry", each using a "MSG
message. The listener issues "ok" in "RPY" messages and "error"
"ERR" messages. (See [3]'s Section 2.3.1 for the definitions of
"error" and "ok" elements.)

4.4.1 The IAM

The "iam" element serves to identify a device, relay, or collector
one end of the BEEP channel to the device, relay, or collector at
other end of the channel. The "iam" element includes the type
peer (device, relay, or collector), the fully qualified domain
of the peer, and an IP address of the peer. (The IP address
SHOULD be the IP address associated with the underlying
protocol carrying the channel.) The character data of the element
free-form human-readable text. It may be used to further
the peer, such as by describing the physical location of the machine

An "iam" element may be sent by the initiator of the channel at
time. The listener responds to an "iam" element with an "ok
(indicating acceptance), or an "error" (indicating rejection).
identity and role in effect is specified by the most recent "iam
answered with an "ok".

An "iam" could be rejected (with an "error" element) by the
if the privacy or authentication that has been negotiated
inadequate or if the authenticated user does not have
to serve in the specified role. It is expected that
installations will require an "iam" from the peer before
any "entry" messages




















New & Rose Standards Track [Page 12]

RFC 3195 Reliable Delivery for syslog November 2001


For example, a successful creation might look like this

I: MSG 0 10 . 1832 259
I: Content-type: application/beep+
I
I:
I: <
I: uri='http://xml.resource.org/profiles/syslog/COOKED'>
I: I: type='device'/> ]]>
I: I: L:
L: RPY 0 10 . 704 138
L: Content-type: application/beep+
L
L:
L: ]]>
L: L:

A creation with an embedded "iam" that fails might look like this

C: MSG 0 12 . 1832 259
C: Content-type: application/beep+
C
C:
C: <
C: uri='http://xml.resource.org/profiles/syslog/COOKED'>
C: C: type='relay'/> ]]>
C: C: C:
S: RPY 0 12 . 704 241
S: Content-type: application/beep+
S
S:
S: S: User 'buttle.example.com' not
S: to "iam" for 'tuttle.example.com'
]]>
S: S:

In this case, the error code indicates that the
"buttle.example.com" has logged in via some SASL profile, but
syslog COOKED profile implementation is claiming to
"tuttle.example.com", a mismatch that the server is disallowing



New & Rose Standards Track [Page 13]

RFC 3195 Reliable Delivery for syslog November 2001


4.4.2 The ENTRY

The "entry" element carries the details of a single syslog entry.
attributes of an "entry" element include "facility", "severity",
"timestamp", "hostname", and "tag". "Facility" and "severity"
the semantics defined in [1]'s 4.1. The other attributes have
semantics as in Sections 4.2.1 and 4.2.3 of [1]. An "entry"
can also contain a "pathID" attribute, described below

If the client is a relay, the "entry" SHOULD also contain
attributes "deviceFQDN" and "deviceIP", specifying the FQDN and
address of the device that originally created the entry.
attributes may be added by either the relay or the
device. If possible, the device SHOULD add these entries,
to the interface most closely associated with the syslog entry
Before a relay forwards an entry from a device that does not
these attributes, it SHOULD add them based on the "iam" element
has received from the device, or based on the underlying
connection address. A relay MUST NOT add these fields if they
missing and an "iam" element on the channel has indicated
messages are coming from another relay

The "pathID" attribute indicates the path over which this entry
travelled, from device through relays to the final collector
Syntactically, its value is a string of digits that must match
"pathID" attribute of a "path" element sent earlier over the
channel. Semantically, it indicates that the list of relays
flags indicated in that earlier "path" element apply to this "entry
element

The character data for the element is the unstructured syslog
message being logged. If the original device delivers the
for the first time via the COOKED profile, it may have any
inside the CDATA. However, for maximum compatibility, the
SHOULD format the CDATA of the message in accordance with
4.2.1 through 4.2.3 of [1].















New & Rose Standards Track [Page 14]

RFC 3195 Reliable Delivery for syslog November 2001


In the message is being relayed, "tag" SHOULD be those of
original device generating the entry (unless the device cannot
a tag). The "timestamp" SHOULD be that of the original
generation time, rather than the time the entry was passed
from the relay. The "hostname" SHOULD be the host name or IP
by which the device knows itself; this MUST follow the
established in Sections 4.2.1 through 4.2.3 of [1]. The
contents of the syslog message MUST be preserved in the CDATA of
"entry" element; this includes preservation of exact content
translation from the UDP or RAW formats. In particular,
timestamps MUST NOT be rewritten in the CDATA of the "entry" element
the tag MUST NOT be removed from the CDATA even if presented in
"entry" attributes as well, and so on

To be consistent with the spirit of [1], a relay receiving a
that does not contain a valid priority, timestamp or hostname
follow the same general rules as described in section 4.2.2 of [1]
while including the exact contents of the received syslog packet
the CDATA. The values of the facility and severity will be
to be 8 and 6 respectively and will be placed into the
attributes of the "entry" element. The hostname will be the name
the device as it is known to the relay and will also be inserted
the "entry" element's attributes. The timestamp would be set to
received time, inserted only into the attributes of the "entry
element. As an example, consider this message received on UDP
514 and interpreted as a traditional syslog message, assuming
underlying IP source address is that of the "pipeworks" machine

<.....eeeek

To be relayed, it must be modified as follows

C: MSG 1 0 . 2079 156
C: Content-Type: application/beep+
C
C: facility='8' severity='6'
C: hostname='pipeworks
C: timestamp='Oct 31 23:59:59'
C: ><.....eeeek! C:
S: RPY 1 0 . 933 45
S: Content-Type: application/beep+
S
S:
S:






New & Rose Standards Track [Page 15]

RFC 3195 Reliable Delivery for syslog November 2001


As another example, consider a message being received that does
properly adhere to the conventions described in Section 4.2.2 of [1].
In particular, the timestamp has a year, making it a
format

<166> 1990 Oct 22 01:00:00 bomb tick[0]: BOOM

This would be relayed as follows

C: MSG 1 0 . 2235 242
C: Content-Type: application/beep+
C
C: facility='160' severity='6'
C: hostname='bomb
C: deviceFQDN='bomb.terrorist.net' deviceIP='10.0.0.83'
C: timestamp='Oct 22 01:00:04'
C: ><166> 1990 Oct 22 01:00:00 bomb tick[0]: BOOM! C:
S: RPY 1 0 . 978 45
S: Content-Type: application/beep+
S
S:
S:

Note that the tag value was not readily apparent from the
message (due to the failed parsing of the timestamp), so it was
included in the "entry" element

It is explicitly permitted for a relay to parse raw messages in
more sophisticated way, but all implementations MUST be able to
messages presented in the format described in [1]. A
sophisticated relay could have recognized the year and
parsed out the correct time, tag, and hostname, but such
parsing capability is OPTIONAL

Consider the following example, in contrast

<166> Oct 22 01:00:00 bomb tick[0]: BOOM













New & Rose Standards Track [Page 16]

RFC 3195 Reliable Delivery for syslog November 2001


This conformant message would be relayed as follows

C: MSG 1 0 . 2477 248
C: Content-Type: application/beep+
C
C: facility='160' severity='6'
C: hostname='bomb
C: deviceFQDN='bomb.terrorist.net' deviceIP='10.0.0.83'
C: timestamp='Oct 22 01:00:00' tag='tick
C: ><166> Oct 22 01:00:00 bomb tick[0]: BOOM! C:
S: RPY 1 0 . 1023 45
S: Content-Type: application/beep+
S
S:
S:

In this case, the tag is detected and the timestamp represents
message generation time rather than the message reception time

Finally, the "entry" element may also contain an "xml:lang
attribute, indicating the language in which the CDATA content of
tag is presented, as described in [7].

The "entry" element is answered with either an empty "ok" element
everything was successful, or a standard "error" element if there
a problem. An "entry" element can be rejected if no "iam"
has been accepted by the listener. It can also be rejected if
user authenticated on the BEEP session (if any) does not have
authority to generate (as a device) or relay that entry. An error
also possible if the "pathID" attribute refers to an unknown (
rejected) "path" element



















New & Rose Standards Track [Page 17]

RFC 3195 Reliable Delivery for syslog November 2001


A successful exchange of an "entry" element may look like this

C: MSG 1 0 . 2725 173
C: Content-Type: application/beep+
C
C: facility='24' severity='5'
C: timestamp='Jan 26 15:16:17'
C: hostname='pipework' tag='imxp'>
C: No 27B/6 available C:
S: RPY 1 0 . 1068 45
S: Content-Type: application/beep+
S
S:
S:

Here, the device IP address and FQDN are taken from the "iam
element, if any, or from the underlying connection information

An example where an "entry" element is rejected with an "error
element

C: MSG 1 2 . 2898 223
C: Content-Type: application/beep+
C
C: facility='24' severity='5' timestamp='Jan 02 13:22:15'
C: deviceFQDN='jack.example.net' deviceIP='10.0.0.83'
C: tag='imxpd'>
C: Replacement device found in nostril
C: C:
S: ERR 1 2 . 1113 111
S: Content-Type: application/beep+
S
S: Not allowed to relay
S: jack.example.net S:

Here, the client attempts to relay an entry on behalf
jack.example.com, but the entry is refused by the collector
administrative reasons. This may occur, for example,
lowry.example.com is in a different department than jack.example.com









New & Rose Standards Track [Page 18]

RFC 3195 Reliable Delivery for syslog November 2001


4.4.3 The PATH

The "path" element serves to describe a list of the relays
which that element has passed, along with a set of flags
indicate the properties that all links from the device to the
have shared in common. Each "path" element contains either
"path" element or is empty. An empty "path" element identifies
device, while a "path" element with a nested "path"
identifies a relay. Each "path" element names a FQDN and IP
of the interface that sent the element. Each "path" element
names a FQDN and IP address for the interface that received
element. Each "path" element also carries a "linkprops" attribute
specifying the properties of the link it describes

Each "path" element has a "pathID" attribute which must be unique
all "path" elements sent on this channel since its inception
Syntactically, the "pathID" attribute is a string of digits
Semantically, it serves to identify one "path" element out of many
and it serves to link a "path" element with one or more "entry
elements. Any "pathID" attribute is unrelated to any "pathID
attribute in nested "path" elements or on other channels

Each "path" element has a "fromFQDN" attribute and an "fromIP
attribute. The "fromFQDN" attribute SHOULD be the fully
domain name of the interface over which the "path" element was sent
(The "fromFQDN" can be omitted if that interface has no DNS entry.)
Similarly, the "fromIP" attribute MUST be the IP address of
interface over which the "path" element was sent

Each "path" element has a "toFQDN" attribute and an "toIP" attribute
The "toFQDN" attribute SHOULD be the fully qualified domain name
the interface over which the "path" element was received. (
"toFQDN" can be omitted if that interface has no DNS entry.)
Similarly, the "toIP" attribute MUST be the IP address of
interface over which the "path" element was received

Finally, each "path" element carries a "linkprops" attribute.
is syntactically a string of individual characters, each
one property of the channel over which this "path" element is
carried. Note that outer "path" elements may have
guarantees than inner "path" elements; care should be taken in
interpretation of flags. The semantics of each possible character
this string are as follows








New & Rose Standards Track [Page 19]

RFC 3195 Reliable Delivery for syslog November 2001


o: When present, "o" (lower-case letter "o") indicates that
privacy has been negotiated over this link, weakly protecting
observation the content of entries associated with this "path
element. (Weak privacy is encryption with less than 80 bits
key.)

O: When present, "O" (upper-case letter "O") indicates that
privacy has been negotiated over this link, strongly
from observation the content of entries associated with
"path" element. (Strong privacy is encryption with 80 bits
more of key, or a transfer mechanism that is otherwise
to eavesdrop upon.)

U: When present, "U" indicates that a valid user has
authenticated (via SASL or TLS) and an "iam" element has
accepted

A: When present, "A" indicates that this link has been protected
an authentication layer, authenticating the source of
"entry" associated with this path

R: When present, "R" indicates that this link has been
against message replay

I: When present, "I" indicates that this link has been
against modifications of messages in passing. ("I" stands
message Integrity.)

L: When present, "L" indicates that this link has been
against loss of messages. That is, this is a reliable
link

D: When present, "D" indicates that the "from" side of this link is
device. If this is not present on the innermost "path" element
"entry" elements associated with this path have not been
by the COOKED profile for their entire lifetime

Upon receiving a "path" element, the peer MUST perform the
checks

o The "fromFQDN" and "fromIP" must match the underlying
connection

o The flags in the "linkprops" attribute must match the
of the session

o The "toFQDN" and "toIP" must match the underlying
connection



New & Rose Standards Track [Page 20]

RFC 3195 Reliable Delivery for syslog November 2001


o The "pathID" attribute must be unique with respect to all
"path" elements received on this channel

If all these checks pass, the "path" element is accepted with an "ok
element. Otherwise, an "error" element is generated with
appropriate code. In addition, if any of the nested "path"
refer to the machine receiving the element, it may indicate a
loop in the configuration for the so-identified path, and
measures should be taken

If the peer receiving an "entry" element is receiving it
from a device via either syslog-conn profile, and the device has
generated a "path" element, the receiver may itself generate
appropriate "path" element, either to be recorded in the logs (
this peer is a collector) or passed to the next peer (if this peer
a relay). If a peer receives a syslog message via UDP, it
optionally generate an appropriate "peer" element based on
cryptographic information provided in the message itself

When a peer receives a "path" element, it remembers it for
use. A collector will store it in the log for later reference.
relay will remember it. When an "entry" arrives referencing
received "path" element, and that entry needs to be forwarded
another relay or collector, and no appropriate "path" element
already been generated, an appropriate "path" element is
and sent over the outbound channel before the entry is forwarded.
appropriate "path" element is created by taking the received "path
element, wrapping it in a new "path" element with the
attributes, and assigning it a new "pathID" attribute. When
"entry" elements arrive with the same incoming "pathID" attribute
and they need to be forwarded to a channel over which an
"pathID" attribute has already been sent, only the "pathID"
of the "entry" element needs to be rewritten to refer to the "path
element on the outgoing channel

It should be noted that the majority of the complexity in
"path" elements arises only in relays. In particular, devices
need to generate "path" elements and collectors need only
them, log them, and possibly use them in displays and reports
Collectors do not need to generate "path" elements or rewrite "entry
elements. Hence, only in complex configurations (where they are
useful) do complex "path" configurations occur









New & Rose Standards Track [Page 21]

RFC 3195 Reliable Delivery for syslog November 2001


For example, here is a path element sent
lowry.records.example.com to kurtzman.records.example.com.
indicates that entries from lowry to kurtzman tagged
pathID='173' originated from screen.lowry.records.example.com.
indicates that screen.lowry.records.example.com is believed
lowry.records.example.com to be the originating device, and
entries over this path are delivered without loss and
modification, although messages might be replayed or observed.
link between lowry and kurtzman, however, avoids replay attacks,
messages, and modifications to messages.
screen.lowry.records.example.com has not authenticated itself
lowry.records.example.com, lowry claims to have authenticated
to kurtzman

C: MSG 2 1 . 3121 426
C: Content-type: application/beep+
C
C: C: toFQDN='kurtzman.records.example.com
C: toIP='10.0.0.51'
C: linkprops='ULRI
C: pathID='173'>
C: C: toFQDN='lowry.records.example.com
C: toIP='10.0.0.50'
C: linkprops='DLI
C: pathID='24'>
C: C: C:
S: ERR 2 1 . 1224 114
S: Content-type: application/beep+
S
S: linkprops includes 'U
S: but no 'iam' received S:

However, kurtzman.records.example.com rejects the "path" element
since the "linkprops" attribute claims that lowry has
itself, but kurtzman disagrees, not having received an "iam" element









New & Rose Standards Track [Page 22]

RFC 3195 Reliable Delivery for syslog November 2001


In a second example, this "path" element
collector.example.com that the records department's firewall will
forwarding "entry" elements with a "pathID" attribute whose value
"17". These "entry" elements will be coming in on the "10.0.0.2"
interface of the firewall, to be forwarded out the "134.130.74.56"
interface of the firewall. The final hop has all
guarantees, although the entries transferred within the
department (behind the firewall) may have been observed in passing

C: MSG 2 2 . 3547 813
C: Content-type: application/beep+
C
C: C: toFQDN='collector.example.com
C: toIP='134.130.74.12'
C: linkprops='OUARIL
C: pathID='17'>
C: C: toFQDN='fwall.records.example.com
C: toIP='10.0.0.2'
C: linkprops='ULRI
C: pathID='120'>
C: C: toFQDN='kurtzman.records.example.com
C: toIP='10.0.0.51'
C: linkprops='ULRI
C: pathID='173'>
C: C: toFQDN='lowry.records.example.com
C: toIP='10.0.0.50'
C: linkprops='DLI
C: pathID='24'>
C:
C:
S: RPY 2 2 . 1338 45
S: Content-type: application/beep+
S
S:
S:








New & Rose Standards Track [Page 23]

RFC 3195 Reliable Delivery for syslog November 2001


As a final example, an "entry" element from Lowry's screen arrives
the firewall. The "path" attribute is rewritten, and it is
on to the collector

The entry arrives on the 10.0.0.2 interface

C: MSG 2 3 . 4360 250
C: Content-Type: application/beep+
C
C: facility='24' severity='5'
C: timestamp='Oct 27 13:24:12'
C: deviceFQDN='screen.lowry.records.example.com
C: deviceIP='10.0.0.47'
C: pathID='173'
C: tag='dvd'>
C: Job paused - Boss watching
C: C:
S: RPY 2 3 . 1383 45
S: Content-Type: application/beep+
S
S:
S:

It is forwarded out the 134.130.74.56 interface

C: MSG 7 9 . 9375 276
C: Content-Type: application/beep+
C
C: facility='24' severity='5'
C: timestamp='Oct 27 13:24:12'
C: deviceFQDN='screen.lowry.records.example.com
C: deviceIP='10.0.0.47'
C: pathID='17'
C: tag='dvd'>
C: Job paused - Boss watching
C: C:
S: RPY 7 9 . 338 45
S: Content-Type: application/beep+
S
S:
S:

A discussion of the wisdom of configuring Lowry's machine to
such messages via Kurtzman's machine is beyond the scope of
document




New & Rose Standards Track [Page 24]

RFC 3195 Reliable Delivery for syslog November 2001


5. Additional

In more advanced configurations, syslog devices, relays,
collectors can be configured to support various delivery priorities
Multiple channels running the same profile can be opened between
peers, with higher priority syslog messages routed to a channel
is given more bandwidth. Such provisioning is a local matter

syslog [1] discusses a number of reasons why privacy
authentication of syslog entry messages may be important in
networked computing environment. The nature of BEEP allows
convenient layering of authentication and privacy over any
channel

5.1 Message

Section 6.2 of [1] discusses the dangers of unauthenticated
entries. To prevent inauthentic syslog event messages from
accepted, configure syslog peers to require the use of a
authentication technology for the BEEP session

If provisioned for message authentication, implementations SHOULD
SASL mechanism DIGEST-MD5 [8] to provision this service

5.2 Message

Section 6.3.4 of [1] discusses the dangers of syslog message replay
To prevent syslog event messages from being replayed,
syslog peers to require the use of a strong authentication
for the BEEP session

If provisioned to detect message replay, implementations SHOULD
SASL mechanism DIGEST-MD5 [8] to provision this service

5.3 Message

Section 6.5 of [1] discusses the dangers of syslog event
being maliciously altered by an attacker. To prevent messages
being altered, configure syslog peers to require the use of a
authentication technology for the BEEP session

If provisioned to protect message integrity, implementations
use SASL mechanism DIGEST-MD5 [8] to provision this service








New & Rose Standards Track [Page 25]

RFC 3195 Reliable Delivery for syslog November 2001


5.4 Message

Section 6.6 of [1] discusses the dangers (and benefits) of
messages being visible at intermediate points along the
path between device and collector. To prevent messages from
viewed by an attacker, configure syslog peers to require the use of
transport security profile for the BEEP session. (However,
traffic characteristics, e.g., volume and timing of transmissions
remain observable.)

If provisioned to secure messages against unauthorized observation
implementations SHOULD use the TLS profile [3] to provision
service. The cipher algorithm used SHOULD
TLS_RSA_WITH_3DES_EDE_CBC_SHA

5.5 Summary of Recommended

For the indicated protections, implementations SHOULD be
to use the indicated mechanisms

Desired Protection SHOULD tune
------------------ -----------------
Authentication http://iana.org/beep/SASL/DIGEST-MD
+ Replay http://iana.org/beep/SASL/DIGEST-MD
+ Integrity http://iana.org/beep/SASL/DIGEST-MD
+ Observation http://iana.org/beep/

BEEP peer identities used for authentication SHOULD correspond to
FQDN of the initiating peer. That is, a relay running
relay.example.com should use a "user ID" of "relay.example.com
within the SASL authentication profiles, as well as in the FQDN
the "iam" element



















New & Rose Standards Track [Page 26]

RFC 3195 Reliable Delivery for syslog November 2001


6. Initial

6.1 Registration: The RAW

Profile Identification: http://xml.resource.org/profiles/syslog/

Messages exchanged during Channel Creation:

Messages starting one-to-one exchanges:

Messages in positive replies:

Messages in negative replies:

Messages in one-to-many exchanges:

Message Syntax: See Section 3.3

Message Semantics: See Section 3.4

Contact Information: See the "Authors' Addresses" section of


6.2 Registration: The COOKED

Profile Identification
http://xml.resource.org/profiles/syslog/

Messages exchanged during Channel Creation:

Messages starting one-to-one exchanges: iam, entry,

Messages in positive replies:

Messages in negative replies:

Messages in one-to-many exchanges:

Message Syntax: See Section 4.3

Message Semantics: See Section 4.4

Contact Information: See the "Authors' Addresses" section of








New & Rose Standards Track [Page 27]

RFC 3195 Reliable Delivery for syslog November 2001


7. The syslog

The following is the DTD defining the valid elements for the
over BEEP mapping









"">
%BEEP










New & Rose Standards Track [Page 28]

RFC 3195 Reliable Delivery for syslog November 2001










New & Rose Standards Track [Page 29]

RFC 3195 Reliable Delivery for syslog November 2001




FACILITY "CDATA">

TIMESTAMP "CDATA">






fqdn %FQDN; #
ip %IP; #
type (device|relay|collector) #REQUIRED




xml:lang %LANG; "i-default
facility %FACILITY; #
severity %SEVERITY; #
timestamp %TIMESTAMP; #
tag %ATEXT; #
deviceFQDN %FQDN; #
deviceIP %IP; #
pathID %IDINT; #IMPLIED















New & Rose Standards Track [Page 30]

RFC 3195 Reliable Delivery for syslog November 2001





pathID %IDINT; #
fromFQDN %FQDN; #
fromIP %IP; #
toFQDN %FQDN; #
toIP %IP; #
linkprops %ATEXT; #REQUIRED






































New & Rose Standards Track [Page 31]

RFC 3195 Reliable Delivery for syslog November 2001


8. Reply

The following error codes are used in the protocol

code
==== =======
200

421 service not

451 requested action
(e.g., local error in processing

454 temporary authentication

500 general syntax
(e.g., poorly-formed XML

501 syntax error in
(e.g., non-valid XML

504 parameter not

530 authentication

534 authentication mechanism
(e.g., too weak, sequence exhausted, etc.)

535 authentication

537 action not authorized for

538 authentication mechanism requires

550 requested action not
(e.g., no requested profiles are acceptable

553 parameter

554 transaction
(e.g., policy violation










New & Rose Standards Track [Page 32]

RFC 3195 Reliable Delivery for syslog November 2001


9. IANA

9.1 Registration: BEEP

The IANA registers the profiles specified in Section 6, and
IANA-specific URIs "http://iana.org/beep/SYSLOG/RAW"
"http://iana.org/beep/SYSLOG/COOKED".

9.2 Registration: The System (Well-Known) TCP port number for syslog


A single well-known port (601) is allocated to syslog-conn. In-
negotiation determines whether COOKED or RAW syslog-conn is in use

Protocol Number:

Message Formats, Types, Opcodes, and Sequences: See Section 3.3
Section 4.4.

Functions: See Section 3.4 and Section 4.4.

Use of Broadcast/Multicast:

Proposed Name: Reliable syslog

Short name: syslog-

Contact Information: See the "Authors' Addresses" section of























New & Rose Standards Track [Page 33]

RFC 3195 Reliable Delivery for syslog November 2001


10. Security

Consult Section 6 of [1] for a discussion of security issues for
syslog service. In addition, since the RAW and COOKED profiles
defined using the BEEP framework, consult [3]'s Section 8 for
discussion of BEEP-specific security issues

BEEP is used to provide communication security but not
integrity. In other words, the messages "on the wire" can
protected, but a compromised device may undetectably
incorrect messages, and relays and collectors can modify, insert,
delete messages undetectably. Other techniques must be used
assure that such compromises are detectable

11.

The authors gratefully acknowledge the contributions of
Calabrese, Keith McCloghrie, Balazs Scheidler, and David Waitzman

12.

[1] Lonvick, C., "The BSD Syslog Protocol", RFC 3164, August 2001.

[2] Bradner, S., "Key words for use in RFCs to Indicate
Levels", BCP 14, RFC 2119, March 1997.

[3] Rose, M., "The Blocks Extensible Exchange Protocol Core",
3080, March 2001.

[4] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081,
2001.

[5] Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR
specifying the location of services (DNS SRV)", RFC 2782,
February 2000.

[6] Freed, N. and N. Borenstein, "Multipurpose Internet
Extensions (MIME) Part Two: Media Types", RFC 2046,
1996.

[7] Alvestrand, H., "Tags for the Identification of Languages",
47, RFC 3066, January 2001.

[8] Leach, P. and C. Newman, "Using Digest Authentication as a
Mechanism", RFC 2831, May 2000.






New & Rose Standards Track [Page 34]

RFC 3195 Reliable Delivery for syslog November 2001


Authors'

Darren
5390 Caminito
San Diego, CA 92130


Phone: +1 858 350 9733
EMail: dnew@san.rr.


Marshall T.
Dover Beach Consulting, Inc
POB 255268
Sacramento, CA 95865-5268


Phone: +1 916 483 8878
EMail: mrose@dbc.mtview.ca.
































New & Rose Standards Track [Page 35]

RFC 3195 Reliable Delivery for syslog November 2001


Full Copyright

Copyright (C) The Internet Society (2001). All Rights Reserved

This document and translations of it may be copied and furnished
others, and derivative works that comment on or otherwise explain
or assist in its implementation may be prepared, copied,
and distributed, in whole or in part, without restriction of
kind, provided that the above copyright notice and this paragraph
included on all such copies and derivative works. However,
document itself may not be modified in any way, such as by
the copyright notice or references to the Internet Society or
Internet organizations, except as needed for the purpose
developing Internet standards in which case the procedures
copyrights defined in the Internet Standards process must
followed, or as required to translate it into languages other
English

The limited permissions granted above are perpetual and will not
revoked by the Internet Society or its successors or assigns

This document and the information contained herein is provided on
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE



Funding for the RFC Editor function is currently provided by
Internet Society



















New & Rose Standards Track [Page 36]








if you see any problems within the linking, don't worry be happy,
this is version 0.1 of the Relevance System and you gotta expect some crappy subroutines sometimes,
just be content we did not write this in Java, which would have made this "bigger and better" HAHAHHA.




RFC documents can be found at I.E.T.F.



Relevance System Copyright © 2002 Spectrum WorldResearch
other technical nosh by ServerMasters Corporation
collaboration of BobX







Spectrum