INTERNET-DRAFT "Internet Protocol Five Fields - Address Resolution Protocol", Alexey Eromenko, 2016-03-02, expiration date: 2016-09-02 Intended status: Standards Track A.Eromenko March 2016 Address Resolution Protocol for Internet Protocol version 5 on Ethernet Networks =================================== (aka ARP-FF for IP "Five Fields") Abstract Address Resolution Protocol in IPv5 is basically the same as in IPv4, and it is intended to resolve Data Link Layer Ethernet addresses to Network Layer IP-FF addresses, in addition to Duplicate Address Detection (DAD), includes optional duplicate MAC address detection. This spec was written for IEEE 802.3 Ethernet links or compatible. Separate specifications may be required for other link types. 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." Copyright Notice Copyright (c) 2016 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 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. ARPv5 header 2. ARP Replies 3. Booting IPFF stack 4. Mapping of Multicast addresses Acknowledgments Authors' Contacts 1. ARPv5 header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4| Hardware Type = 1 (Ethernet) | Protocol Type = 0x9500 (IPFF) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8| H.Len = 6 | P.Len = 14 | Operation | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 12| Sender Hardware Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 16| | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 20| Sender IP-FF Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 24| | | +-+-+ + 28| Sender IP-FF Session ID (62-bit) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 32| Target Hardware Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 36| | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 40| Target IP-FF Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 44| | | +-+-+ + 48| Reserved (62-bit) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (bytes) 16-bit: (ar$hrd) Hardware address space (e.g., Ethernet, Packet Radio Net.) 16-bit: (ar$pro) Protocol address space. For IP-FF over Ethernet hardware, this equals to Ethertype of IP-FF. (0x9500 for experimental IP-FF, TBD later) 8-bit: (ar$hln) Hardware address length, in bytes. = 6 bytes. (for Ethernet MAC) 8-bit: (ar$pln) Protocol address length, in bytes. = 14 bytes. IP-FF address has 50-bits, plus few bytes for IPFF session ID. 16-bit: (ar$op) opcode (ares_op$REQUEST | ares_op$REPLY) nbytes: (ar$sha) Hardware address of sender of this packet, n from the ar$hln field. 50-bit: (ar$spa) Protocol address of sender of this packet, m from the ar$pln field. 62-bit: (ar$spa.ext) IPFF session ID. An additional unique identifier to detect a running IP-FF session. Protocol address and IPFF session ID, together, form a 14-byte (112 bit) ARP SPA field. nbytes: (ar$tha) Hardware address of target of this packet (if known). 50-bit: (ar$tpa) Protocol address of target, post-padded by a 62-bit "reserved" field. "IPFF session ID" -- a new element, not envisioned in the original ARP specification, logically extends the "logical protocol address" field with more bits. It is designed to detect duplicate MAC addresses, which can be a result from careless clone-deployment of virtual machines, along with copied virtual MAC addresses. Randomly generated value during stack init. Does not change until stack reboot. Unique per host/VRF, not per interface. If this field is set to zero, it is ignored, and duplicate MAC address detection is not performed. 2. ARP Replies Reply are recommended to be sent as Broadcast, as it improves DAD ability to detect duplicates, and also allows nodes to learn neighbor's MAC addresses much faster, to get a full mesh, you will have an overhead of (O)*2 instead of (O)^2 when using unicast, at a cost of slightly more processor usage, but less network usage. 3. Booting IPFF stack When booting an IPFF stack, it must be put into "tentative mode", until DAD procedure is complete, via Gratuitous ARP. Additionally, IPFF stack SHOULD Randomly-generate an IPFF Session ID, and "remember" it during an entire session, as well as its "physical MAC address", to answer DAD requests. Changing an IP address, either statically, or dynamically via DHCP, or otherwise requires a new DAD procedure. Changing link up/down state also requires a new DAD procedure. What to do when there is a duplicate address ? If a duplicate address detected during IPFF stack bootup, and address was manually configured, it SHOULD be shutdown, and error MUST reported to the user. (via log, syslog, GUI dialog, console, SNMP, or otherwise) If address was configured via DHCP, a new DHCP request needs to be sent after random delay, asking for the next IP address. If a duplicate address detected after IPFF stack boot completed, it MUST be kept running, and error reported to the user. 4. Mapping of Multicast addresses Silent Multicasts in IPFF begin with 99.9.x.x.x/20 Traditional Multicasts in IPFF begin with 99.8.x.x.x/20 Multicast MAC addresses must have first octet number odd. MAC addresses in IPFF will get 55:59:xx:xx:xx:xx (32 bits for nodes), for Silent Multicasts and 55:58:xx:xx:xx:xx for traditional Multicast addresses. Only 30 least significant bits will be mapped directly, and first 20 bits ignored. This is called a "Link Multicast Group"; LMG for short. Example: 99.9.0.0.4 (DHCP clients; our "Silent Multicast Listeners") -- all will get a "Link Multicast Group" MAC address of: 55:59:00:00:00:04 Because IGMP advertisement is not used for "Silent listeners", smart switches cannot do IGMP snooping, and will have to flood such packets on all ports, like broadcast. But a node's Ethernet controller, in "standard mode", can filter unnecessary traffic, without interrupting the CPU, gaining efficiency. Acknowledgments Based on the hard work of "David C. Plummer", whom wrote the original specification of ARP, as defined in [RFC-826] Authors' Contacts Alexey Eromenko Israel Skype: Fenix_NBK_ EMail: al4321@gmail.com Facebook: https://www.facebook.com/technologov INTERNET-DRAFT Alexey expiration date: 2016-09-02