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