Network-Hexagons: H3-LISP Based Mobility Network
draft-barkai-lisp-nexagon-10
The information below is for an old version of the document.
Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
|
|
---|---|---|---|
Authors | Sharon Barkai , Bruno Fernandez-Ruiz , Sharon Barkai , Alberto Rodriguez-Natal , Fabio Maino , Albert Cabellos-Aparicio , Dino Farinacci | ||
Last updated | 2019-09-16 (Latest revision 2019-09-12) | ||
Replaced by | draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon, draft-ietf-lisp-nexagon | ||
RFC stream | (None) | ||
Formats | |||
Additional resources | |||
Stream | Stream state | (No stream defined) | |
Consensus boilerplate | Unknown | ||
RFC Editor Note | (None) | ||
IESG | IESG state | I-D Exists | |
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | (None) |
draft-barkai-lisp-nexagon-10
lt;---------------------------------------| |
| ACA (Interim) | |
Using this network-login / re-login method we ensure that:
- the MobilityClientEIDs serve as credentials with the specific EdgeRTRs
- EdgeRTRs are not tightly coupled to H3.r9 areas for privacy/load-balance
- Mobility Clients do not need to update EdgeRTRs while roaming in a metro
The same EdgeRTR may serve several H3.r9 areas for smooth ride continuity,
and, several EdgeRTRs may load balance a H3.r9 area with high density of
originating MobilityClient rides. When a MobilityClient ClientXTR is homed
to EdgeRTR it is able to communicate with H3ServiceEIDs.
5. Mobility Clients-Network-Services
The mobility network functions as a standard LISP VPN overlay.
The overlay delivers unicast and multicast packets across:
- multiple access-network-providers / radio-access-technologies.
- multiple cloud-edge hosting providers, public, private, hybrid.
We use data-plane XTRs in the stack of each mobility client and server.
ClientXTRs and ServerXTRs are homed to one or more EdgeRTRs at the LISP edge.
This structure allows for MobilityClients to "show-up" at any time,
behind any network-provider in a given mobility network administrative
domain (metro), and for any H3ServiceEID to be instantiated, moved, or
failed-over to - any rack in any cloud-provider. The LISP overlay enables
these roaming mobility network elements to communicate un-interrupted.
This quality is insured by the LISP RFCs. The determinism of identities for
MobilityClients to always refer to the correct H3ServiceEID is insured by H3
geospatial HIDs.
There are two options for how we associate ClientXTRs with LISP EdgeRTRs:
I. Semi-random load-balancing by DNS/AAA
In this option we assume that in a given metro edge a pool of EdgeRTRs can
distribute the Mobility Clients load randomly between them and that EdgeRTRs
are topologically more or less equivalent. Each RTR uses LISP to tunnel
traffic to and from other EdgeRTRs for MobilityClient with H3Service exchanges.
MobilityClients can (multi) home to EdgeRTRsRTRs throughout while moving.
II. Topological by any-cast
In this option we align an EdgeRTR with topological aggregation like in the
Evolved Packet Core (EPC) solution. Mobility Clients currently roaming in an
area home to that RTR and so is the H3 Server. There is only one hop across
the edge overlay between clients and servers and mcast replication is more
focused, but clients need to keep re-homing as they move.
To summarize the H3LISP mobility network layout:
(1) Mobility-Clients traffic is tunneled via data-plane ClientXTRs
ClientXTRs are (multi) homed to EdgeRTR(s)
(2) H3ServiceEID traffic is tunneled via data-plane ServerXTR
ServerXTRs are (multi) homed to EdgeRTR(s)
(3) EdgeRTRs use mapping service to resolve Ucast HIDs to RTR RLOCs
EdgeRTRs also register to (Source, Group) H3ServiceEID multicasts
MobilityClients <> ClientXTR <Access Provider > EdgeRTR v
v
v << Map-Assisted Mobility-Network Overlay << v
v
>> EdgeRTR <Cloud Provider> ServerXTR <> H3ServiceEID
6. Mobility Unicast and Multicast
Which ever way a ClientXTR is homed to an Edge RTR an authenticated
MobilityClient EID can send: [64bitH3.15ID :: 64bitState] annotation to the
H3.r9 H3ServiceEID. The H3.r9 IP HID can be calculated by clients
algorithmically form the H3.15 localized snapped-to-tile annotation.
The ClientXTR encapsulates MobilityClient EID and H3ServiceEID in a packet
sourced from the ClientXTR, destined to the EdgeRTR RLOC IP, Lisp port.
EdgeRTRs then re-encapsulate annotation packets either to remote EdgeRTR
(optionI) or to homed H3ServiceEID ServerXTR (option2).
The remote EdgeRTR aggregating H3ServiceEIDs re-encapsulates MobilityClient
EID to ServerXTR and from there to the H3ServiceEID.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
|Version| Traffic Class | Flow Label | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Payload Length | Next Header | Hop Limit | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | |
+ + |
| | |
+ Source MobilityClientEID + |
| | IPv6
+ + |
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | |
+ + |
| | |
+ Dest H3ServiceEID + |
| | |
+ + |
| | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port = xxxx | Dest Port = xxxx | \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP
| UDP Length | UDP Checksum | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
| Type |gzip | Reserved | Pair Count = X| Nexgon Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit State +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit State +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
To Summarize Unicast:
(1) MobilityClients can send annotation state localized an H3.r15 tile
These annotations are sent to an H3.r9 mobility H3ServiceEIDs
(2) MobilityClient EID and H3ServiceEID HID are encapsulated:
XTR <> RTR <> RTR <> XTR
* RTRs can map-resolve re-tunnel HIDs
(3) RTRs re-encapsulate original source-dest to ServerXTRs
ServerXTRs decapsulate packets to H3ServiceEID
Each H3.r9 Server is used by clients to update H3.r15 tile state is also an IP
Multicast channel Source used to update subscribers on the aggregate state of
the H3.r15 tiles in the H3.r9 Server.
We use rfc8378 signal free multicast to implement mcast channels in the
overlay. The mobility network has many channels and relatively few
subscribers per each. MobilityClients driving through or subscribing to a
a H3.r9 area can explicitly issue an rfc4604 MLDv2 in-order to subscribe, or,
may be subscribed implicitly by the EdgeRTR gleaning to ucast HID dest.
The advantage of explicit client MLDv2 registration trigger to rfc8378 is
that the clients manage their own mobility mcast hand-over according to their
location-direction moment vectors, and that it allows for otherwise silent, or,
non annotating clients. The advantage of EdgeRTR implicit registration is
less signaling required.
MLDv2 signaling messages are encapsulated between the ClientXTR and the LISP
EdgeRTR, therefore there is no requirement for the underlying network to
support native multicast. If native access multicast is supported (for example
native 5G multicast), then MobilityClient registration to H3ServiceEID
safety channels may be integrated to it, in which case the evolved-packet-core
(EPC) element supporting it (eNB) will use this standard to register with the
appropriate H3.r9 channels in its area.
Multicast update packets are of the following structure:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
|Version| Traffic Class | Flow Label | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Payload Length | Next Header | Hop Limit | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | |
+ + |
| | |
+ Source H3-R9 EID Address + |
| | IPv6
+ + |
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | |
+ + |
| | |
+ Group Address + |
| | |
+ + |
| | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port = xxxx | Dest Port = xxxx | \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP
| UDP Length | UDP Checksum | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
| | Nexagons Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /
~ Nexagons Payload ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Outer headers = 40 (IPv6) + 8 (UDP) + 8 (LISP) = 56
Inner headers = 40 (IPv6) + 8 (UDP) + 4 (Nexagon Header) = 52
1500 (MTU) - 56 - 52 = 1392 bytes of effective payload
Type 1:key-value, key-value.. 1392 / (8 + 8) = 87 pairs
Type 2:value, key,key,key.. (1392 - 8) / 8 = 173 H3-R15 IDs
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
| Type = 1 |gzip | Reserved | Pair Count = X| Nexagon Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit State +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit State +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \
| Type = 2 |gzip | Reserved |H3R15 Count = X| Nexagon Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /
| |
+ 64 Bit State +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ 64 Bit H3-R15 ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` The remote EdgeRTRs homing MobilityClients in-turn replicate the packet to the
MobilityClients registered with them.
We expect an average of 600 H3.r15 tiles of the full 7^6 (~100K) possible in
H3.r9 to be part of any road. The H3.r9 server can transmit the status of all
600 or just those with meaningful state based on update SLA and policy.
To Summarize:
(1) H3LISP Clients tune to H3.r9 mobility updates using rfc8378
H3LISP Client issue MLDv2 registration to H3.r9 HIDs
ClientXTRs encapsulate MLDv2 to EdgeRTRs who register (s,g)
(2) ServerXTRs encapsulate updates to EdgeRTRs who map-resolve (s,g) RLOCs
EdgeRTRs replicate mobility update and tunnel to registered EdgeRTRs
Remote EdgeRTRs replicate updates to registered ClientXTRs
7. Security Considerations
The nexagon layer3 v2v/v2i/c&c network is inherently more secure and private
then alternatives because of the indirection. No car or infrastructure element
ever communicates directly with MobilityClients. All information is conveyed
using shared / addressable geo-state. MobilityClients are supposed to receive
information only from the network as a trusted broker without indication as
to the origin of the information. This is an important step towards better
privacy, security, extendability, and interoperability.
In order to be able to use the nexagon mobility network for a given period,
the mobility clients go through a DNS/AAA stage by which they obtain their
clientEID identifiers-credentials and the RLOCs of EdgeRTRs they may use as
gateways to the network. This MobilityClient <> EdgeRTR is the most sensitive
interface in the network as far as privacy-security.
The traffic on the MobilityClient<>EdgeRTR interface is tunneled and its UDP
content may be encrypted, still, the EdgeRTR will know based on the LISP
headers alone the MobilityClient RLOC and H3-R9 (~0.1sqkm) geo-spatial area
a given client publishes in or subscribes to.
For this reason we envision the ability of enterprise or groups of users to
"bring their own" EdgeRTRs. BYO-RTR masks individual clients' IP-RLOC to
H3-R9 association and is pre-provisioned to be able to use the mapping system
and be on a white-list of EdgeRTRs aggregating H3ServiceEIDs.
Beyond this sensitive hop, the mapping system does not hold MobilityClientEIDs
and remote EdgeRTRs are only aware of MobilityClient ephemeral EIDs not their
actual IP RLOC or any other mobile-device identifiers. EdgeRTRs register in the
mapping (s,g) H3-R9 multicast groups, but which clients reside beyond which
EdgeRTR is not in the mapping system. The H3ServiceEIDs them selves of-course
decrypt and parse actual H3-R15 annotations, they also consider during this the
MobilityClientEID credentials to avoid "fake-news", but again these are only
temporary EIDs allocated to clients in-order to be able to use the mobility
network and not for their basic communications.
8. Acknowledgments
This work is partly funded by the ANR LISP-Lab project #ANR-
13-INFR-009 (https://lisplab.lip6.fr).
9. IANA Considerations
I. Formal H3 to IPv6 EID mapping
II. State enum fields of H3 tiles:
Field 0x: Traffic Direction {
0x - null
1x - Lane North
2x - Lane North + 30
3x - Lane North + 60
4x - Lane North + 90
5x - Lane North + 120
6x - Lane North + 150
7x - Lane North + 180
8x - Lane North + 210
9x - Lane North + 240
Ax - Lane North + 270
Bx - Lane North + 300
Cx - Lane North + 330
Dx - junction
Ex - shoulder
Fx - sidewalk
}
field 1x: Persistent or Structural {
0x - null
1x - pothole light
2x - pothole severe
3x - speed-bump low
4x - speed-bump high
5x - icy
6x - flooded
7x - snow-cover
8x - snow-deep
9x - construction cone
Ax - gravel
Bx - choppy
Cx - blind-curve
Dx - steep-slope
Ex - low-bridge
}
field 2x: Transient Condition {
0x - null
1x - pedestrian
2x - bike scooter
3x - stopped car / truck
4x - moving car / truck
5x - first responder vehicle
6x - sudden slowdown
7x - oversized over-height vehicle
8x - red-light-breach
9x - light collision (fender bender)
Ax - hard collision / casualty
Bx - collision course car/structure
Cx - recent collision residues
Dx - hard brake
Ex - sharp cornering
Fx - freeing-parking
}
field 3x: Traffic-light Cycle {
0x - null
1x - 1 seconds to green
2x - 2 seconds to green
3x - 3 seconds to green
4x - 4 seconds to green
5x - 5 seconds to green
6x - 6 seconds to green
7x - 7 seconds to green
8x - 8 seconds to green
9x - 9 seconds to green
Ax - 10 seconds or less
Bx - 20 seconds or less
Cx - 30 seconds or less
Dx - 60 seconds or less
Ex - green now
Fx - red now
}
field 4x: Impacted tile from neighboring {
0x - null
1x - epicenter
2x - light yellow
3x - yellow
4x - light orange
5x - orange
6x - light red
7x - red
8x - light blue
9x - blue
Ax - green
Bx - light green
}
field 5x: Transient, Cycle, Impacted, Valid for Next{
0x - null
1x - 1sec
2x - 5sec
3x - 10sec
4x - 20sec
5x - 40sec
6x - 60sec
7x - 2min
8x - 3min
9x - 4min
Ax - 5min
Bx - 10min
Cx - 15min
Dx - 30min
Ex - 60min
Fx - 24hours
}
field 6x: LaneRightsSigns {
0x - null
1x - yield
2x - speedLimit
3x - straightOnly
4x - noStraight
5x - rightOnly
6x - noRight
7x - rightStraight
8x - leftOnly
9x - leftStraight
Ax - noLeft
Bx - noUTurn
Cx - noLeftU
Dx - bikeLane
Ex - HOVLane
Fx - Stop
}
field 7x: MovementSigns {
0x - null
1x - keepRight
2x - keepLeft
3x - stayInLane
4x - doNotEnter
5x - noTrucks
6x - noBikes
7x - noPeds
8x - oneWay
9x - parking
Ax - noParking
Bx - noStandaing
Cx - noPassing
Dx - loadingZone
Ex - railCross
Fx - schoolZone
}
field 8x: CurvesIntersectSigns {
0x - null
1x - turnsLeft
1x - turnsRight
3x - curvesLeft
4x - curvesRight
5x - reversesLeft
6x - reversesRight
7x - windingRoad
8x - hairPin
9x - pretzelTurn
Ax - crossRoads
Bx - crossT
Cx - crossY
Dx - circle
Ex - laneEnds
Fx - roadNarrows
}
field 9x: Current Tile Speed {
0x - null
1x - < 5kmh
2x - < 10kmh
3x - < 15kmh
4x - < 20kmh
5x - < 30kmh
6x - < 40kmh
7x - < 50kmh
8x - < 60kmh
9x - < 80kmh
Ax - < 100kmh
Bx - < 120kmh
Cx - < 140kmh
Dx - < 160kmh
Ex - > 160kmh
Fx - queuedTraffic
}
field Ax - reserved
filed Bx - reserved
field Cx - reserved
field Dx - reserved
field Ex - reserved
field Fx - reserved
10. Normative References
[I-D.ietf-lisp-rfc6833bis]
Fuller, V., Farinacci, D., and A. Cabellos-Aparicio,
"Locator/ID Separation Protocol (LISP) Control-Plane",
draft-ietf-lisp-rfc6833bis-07 (work in progress), December
2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
Locator/ID Separation Protocol (LISP)", RFC 6830,
DOI 10.17487/RFC6830, January 2013,
<https://www.rfc-editor.org/info/rfc6830>.
[RFC8378] Farinacci, D., Moreno, V., "Signal-Free Locator/ID Separation
Protocol (LISP) Multicast", RFC8378,
DOI 10.17487/RFC8378, May 2018,
<https://www.rfc-editor.org/info/rfc8378>.
Authors' Addresses
Sharon Barkai
Nexar
CA
USA
Email: sbarkai@gmail.com
Bruno Fernandez-Ruiz
Nexar
London
UK
Email: b@getnexar.com
S ZionB
Nexar
Israel
Email: sharon@fermicloud.io
Alberto Rodriguez-Natal
Cisco Systems
170 Tasman Drive
San Jose, CA
USA
Email: natal@cisco.com
Fabio Maino
Cisco Systems
170 Tasman Drive
San Jose, CA
USA
Email: fmaino@cisco.com
Albert Cabellos-Aparicio
Technical University of Catalonia
Barcelona
Spain
Email: acabello@ac.upc.edu
Jordi Paillissé-Vilanova
Technical University of Catalonia
Barcelona
Spain
Email: jordip@ac.upc.edu
Dino Farinacci
lispers.net
San Jose, CA
USA
Email: farinacci@gmail.com