Network Working Group S. Cheshire
Internet-Draft M. Krochmal
Intended status: Standards Track Apple Inc.
Expires: January 3, 2018 July 2, 2017
EDNS0 OWNER Option
draft-cheshire-edns0-owner-option-01.txt
Abstract
The DNS-SD Sleep Proxy Service uses a message format identical to
that used by standard DNS Update, with two additional pieces of
information: the identity of the sleeping server to which the records
belong, and the Wake-on-LAN Magic Packet bit pattern which should be
used to wake the sleeping server. This document specifies the EDNS0
option used to carry that additional information.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 3, 2018.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
Cheshire & Krochmal Expires January 3, 2018 [Page 1]
Internet-Draft EDNS0 OWNER Option July 2017
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
1. Introduction
The EDNS0 'Owner' Option is used by the DNS-SD Sleep Proxy Service.
The DNS-SD Sleep Proxy Service [RFC6762] [RFC6763] uses a message
format identical to that used by standard DNS Update [RFC2136]
[RFC3007], with two additional pieces of information: the identity of
the sleeping server to which the records belong, and the Wake-on-LAN
Magic Packet [WoL] bit pattern which should be used to wake the
sleeping server. This document specifies the EDNS0 option [RFC2671]
used to carry that additional information.
The EDNS0 'Owner' Option is specified here with reference to the
DNS-SD Sleep Proxy Service, but could also be used for other purposes
not related to the Sleep Proxy Service.
2. Conventions and Terminology Used in this Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
"Key words for use in RFCs to Indicate Requirement Levels" [RFC2119].
3. EDNS0 'Owner' Option
When a server that supports the DNS-SD Sleep Proxy protocol goes to
sleep, it communicates relevant DNS records, which describe its role
on the network, to the Sleep Proxy, in one or more DNS Update
messages [RFC2136] [RFC3007]. Typically these record registrations
with the Sleep Proxy do not last forever; they have a finite
lifetime, communicated using EDNS0 option 2 "DNS Update Lease"
[DNS-UL].
When the Sleep Proxy observes traffic on the network which warrants
waking the sleeping server, it does so by sending a Wake-on-LAN
"Magic Packet" [WoL].
A Wake-on-LAN "Magic Packet" consists of the following bit-pattern:
o Sync sequence: 48 binary 1s (i.e. 6 bytes of 0xFF)
o Sixteen repetitions of the 48-bit MAC address of the sleeping
server's network interface
o Optional 32-bit or 48-bit 'password'
Cheshire & Krochmal Expires January 3, 2018 [Page 2]
Internet-Draft EDNS0 OWNER Option July 2017
When the Sleep Proxy determines that the sleeping server has awoken,
it can cease proxying for that server.
The Sleep Proxy needs to know the 48-bit MAC address (and possibly
32-bit or 48-bit 'password') to use to wake the sleeping server.
It also needs a way to determine when the sleeping server has awoken.
Because, when a sleeping server wakes it may be attached to the
network via a different interface (e.g. 802.11 wireless instead of
Ethernet), merely observing the source MAC address in the packets it
sends may not be sufficient to identify that this server on wireless
is the same server that moments earlier went to sleep while attached
via Ethernet. Also, merely observing packets apparently originating
from the sleeping server may not be sufficient to conclude reliably
that it has woken -- since these could be old packets, from before it
slept, that were delayed in transit.
The necessary information is communicated in the EDNS0 'Owner'
option:
o The 48-bit MAC address of the sleeping server's network interface
o Optional 32-bit or 48-bit 'password'
o A 48-bit value that uniquely identifies this machine regardless of
which interface it is using. Typically the MAC address of the
machine's 'primary' interface is used for this purpose.
o A sleep/wake sequence number. Each time the server wakes and
begins a new period of wakefulness, this sequence number is
incremented. If the Sleep Proxy observes the server send a packet
with the same sleep/wake sequence number as it saw in the proxy
registration, this is an old packet delayed in the network and
does not constitute evidence that the server has awoken. If the
Sleep Proxy observes the server send a packet with a different
sleep/wake sequence number then the Sleep Proxy can conclude that
the server has awoken and the proxy need not continue answering
for it.
Cheshire & Krochmal Expires January 3, 2018 [Page 3]
Internet-Draft EDNS0 OWNER Option July 2017
3.1. EDNS0 'Owner' Option Format
A full EDNS0 'Owner' option has the following format:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Opt|Len|V|S|Primary MAC|Wakeup MAC |Password |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The two-byte EDNS0 Option code 'Opt' for the 'Owner' option is 4.
The two-byte length field 'Len' for this option is 24 in the full-
length case, or less when using the "compact" variants described
below.
The one-byte version field 'V' is currently zero. In the current
version of the protocol, senders MUST set this field to zero on
transmission, and receivers receiving an EDNS0 option 4 where the
version field is not zero MUST ignore the entire option.
The one-byte sequence number field 'S' is set to zero the first time
this option is used after boot, and then after that incremented each
time the machine awakens from sleep.
The six-byte Primary MAC field identifies the machine. Typically,
the MAC address of the machine's 'primary' interface is used for this
purpose.
The six-byte pattern to be repeated 16 times in the wakeup packet.
This SHOULD be the MAC address of the interface through which the
packet containing this 'Owner' option is being sent.
The six-byte 'password' to be appended after the sixteen repetitions
of the MAC address.
Cheshire & Krochmal Expires January 3, 2018 [Page 4]
Internet-Draft EDNS0 OWNER Option July 2017
3.2. Compact EDNS0 'Owner' Option Formats
Where the 'password' is only four bytes, a shorter format is used,
identified by the length field 'Len' having the value 22:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Opt|Len|V|S|Primary MAC|Wakeup MAC |Passwd | (Len = 22)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
When the 'password' is not required, it can be omitted entirely,
identified by the length field 'Len' having the value 18:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Opt|Len|V|S|Primary MAC|Wakeup MAC | (Len = 18)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In the common case where the 'password' is not required and the
Primary MAC and Wakeup MAC are the same, both Wakeup MAC and password
may be omitted, identified by the length field 'Len' having the value
12:
+-+-+-+-+-+-+-+-+-+-+-+-+
|Opt|Len|V|S|Primary MAC| (Len = 12)
+-+-+-+-+-+-+-+-+-+-+-+-+
Cheshire & Krochmal Expires January 3, 2018 [Page 5]
Internet-Draft EDNS0 OWNER Option July 2017
4. Acknowledgements
Thanks to Rory McGuire for his work Bonjour Sleep Proxy and
contributions to this document.
5. Security Considerations
When a Wake-on-LAN Magic Packet is sent to wake a machine up, it is
sent in the clear, making it vulnerable to eavesdropping.
6. IANA Considerations
The EDNS0 OPTION CODE 4 has been assigned for this DNS extension.
No additional IANA services are required by this document.
Cheshire & Krochmal Expires January 3, 2018 [Page 6]
Internet-Draft EDNS0 OWNER Option July 2017
7. References
7.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>.
[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)",
RFC 2671, DOI 10.17487/RFC2671, August 1999,
<http://www.rfc-editor.org/info/rfc2671>.
7.2. Informative References
[DNS-UL] Sekar, K., "Dynamic DNS Update Leases", draft-sekar-dns-
ul-01 (work in progress), August 2006.
[RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound,
"Dynamic Updates in the Domain Name System (DNS UPDATE)",
RFC 2136, DOI 10.17487/RFC2136, April 1997,
<http://www.rfc-editor.org/info/rfc2136>.
[RFC3007] Wellington, B., "Secure Domain Name System (DNS) Dynamic
Update", RFC 3007, DOI 10.17487/RFC3007, November 2000,
<http://www.rfc-editor.org/info/rfc3007>.
[RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
DOI 10.17487/RFC6762, February 2013,
<http://www.rfc-editor.org/info/rfc6762>.
[RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service
Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
<http://www.rfc-editor.org/info/rfc6763>.
[WoL] "Wake-on-LAN Magic Packet",
http://en.wikipedia.org/wiki/Wake-on-LAN, April 1997.
Authors' Addresses
Stuart Cheshire
Apple Inc.
1 Infinite Loop
Cupertino, California 95014
USA
Phone: +1 408 974 3207
Email: cheshire@apple.com
Cheshire & Krochmal Expires January 3, 2018 [Page 7]
Internet-Draft EDNS0 OWNER Option July 2017
Marc Krochmal
Apple Inc.
1 Infinite Loop
Cupertino, California 95014
USA
Phone: +1 408 974 4368
Email: marc@apple.com
Cheshire & Krochmal Expires January 3, 2018 [Page 8]