Internet DRAFT - draft-eromenko-ipff-arp

draft-eromenko-ipff-arp



INTERNET-DRAFT
"Internet Protocol Five Fields - Address Resolution Protocol", 
Alexey Eromenko, 2016-09-29, 
<draft-eromenko-ipff-arp-01.txt>
expiration date: 2017-03-29

Intended status: Standards Track

                                                              A.Eromenko
                                                          September 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 99:09:xx:xx:xx:xx (32 bits for nodes),
   for Silent Multicasts and 99:08: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:

   99: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: 2017-03-29