User Tools

Site Tools


technical:nextgen

The GeoNet

Why a Geo network

Because if you are planning to federate a group of disparate networks into a single underlying abstraction, creating a baseline geo network is an amazing way to create global network that is incredibly easy to reason about. It's easy to collect data from, visualize in a meaningful way, and improve. On top of which other (eg. SDN based) approaches could be utilized.

What is a geonetwork

A geonetwork is an IPv6 network where the hosts on that network have their locations encoded inside a geohash + an identifier that's been converted into an IPv6 address. Because 128 bits (IPv6) is a sufficient size to encode a latitude, longitude, altitude and still have more than >32 bits (larger than the size of the entire current internet) reserved to differentiate between devices that are very close to each other in physical proximity.

What is the advantage

Because routing become really really easy. It can basically be described as 'as the crow flies+tweaks'. To create really good routing decisions, a node only needs to know about the traffic conditions in it's general vicinity.

What about location privacy

It's not really an issue. First, most endpoint IPv4 addresses are already geolocatable to a resolution of the network level. Second, nothing stops other abstractions, eg. proxys and mixnetworks (eg. Tor) from being layered on top of such a network. These services are already necessary for anyone that needs to do private transactions on the internet anyway.

Why IPv6

Because it won't happen otherwise. Incumbents will stick with dynamic IPs and NAT as long as they can. In the long term, IPv6 will become a destabilizing technology that is going to erode the conventional ISP pay-to-play economic model. As other organic local networks arise, a geonetwork will provide a 'fallback' solution for these smaller players, most of whom won't have the clout to negotiate peering arrangements directly.

What should the enduser experience be

$ yum install or apt-get geonet
$ geo-config my-little-net
….Key Generation Complete
….Checking username (my-little-net)
….Registered at my-little-net.diyisp.org!
$ start-geoserver
….Welcome to the geonet

How to achieve this using existing tools (and minimize server traffic!)

  1. Setup a dyndns server. There are a few of these on github and elsewhere. Let people register via the command line.
  2. Download tinc
  3. Setup a cron job on network hosts to rsync the relevent tinc config from a central server.
  4. If a new network arises in close physical proximity to another network, the central server could alert both parties, and they could peer directly, instead of over the IPv4 internet. That would require other software.

Questions to: eric at uplink dot aero

technical/nextgen.txt · Last modified: 2014-01-20 03:25 by cagedwisdom