Network2

From OLPC
Revision as of 00:30, 15 July 2009 by Mstone (talk | contribs)
Jump to navigation Jump to search

This page proposes a fresh design for network configuration in a highly collaborative world, based on Scott's Network Principles in general and on these micro-principles in particular:

  1. Ease of debugging is paramount.
  2. Orthogonal pieces.
  3. Self-test functionality.

However, unlike the Network Principles situation, we also describe how to integrate several kinds of NAT-traversal technology, primarily to support dog-fooding and diagnosis by remote developers.

Client Design

Your job is to be an IPv6 node.

  1. Bring up your interfaces and perform IPv6 Neighbor Discovery over ICMPv6 looking for routers. (See sysctl net.ipv6.conf.all.accept_ra and related variables.)
  2. If you don't find any and you can join a VPN (openvpn, IPsec+L2TP), do so.
  3. If you want to, bring up Teredo (miredo).

Server Design

Your job is to be an IPv6 router and a DNS server. One of several situations might obtain:

  1. You might discover an IPv6 router advertising one or more IPv6 prefixes on your outbound link(s).
  2. You might have some kind of IPv4 connectivity. If so, connect to the Internet or to a internetwork (VPN) of your choice.