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, . [RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC 2671, DOI 10.17487/RFC2671, August 1999, . 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, . [RFC3007] Wellington, B., "Secure Domain Name System (DNS) Dynamic Update", RFC 3007, DOI 10.17487/RFC3007, November 2000, . [RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762, DOI 10.17487/RFC6762, February 2013, . [RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013, . [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]