Network2: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 7: Line 7:
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.
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 ==
== Client IPv6 ==


Your job is to be an [http://tools.ietf.org/html/rfc2460 IPv6] node.
Your job is to be an [http://tools.ietf.org/html/rfc2460 IPv6] node. Consequently, when you bring up your interfaces,


# Bring up your interfaces and perform [http://tools.ietf.org/html/rfc2461 IPv6 Neighbor Discovery] over [http://tools.ietf.org/html/rfc2463 ICMPv6] looking for routers. (See <tt>sysctl net.ipv6.conf.all.accept_ra</tt> and related variables.)
# You might [http://tools.ietf.org/html/rfc2461 discover] an IPv6 router [http://tools.ietf.org/html/rfc2463 advertising] on one of your links.
#* (See <tt>sysctl net.ipv6.conf.all.accept_ra</tt> and related variables.)
# If you don't find any and you can join a VPN ([http://openvpn.net/ openvpn], IPsec+L2TP), do so.
# You might try out [https://fedorahosted.org/dhcpv6/ dhcp6c].
# If you want to, bring up [http://tools.ietf.org/html/rfc4380 Teredo] ([http://www.remlab.net/miredo/ miredo]).
# You might have some kind of IPv4 connectivity. If so, [http://www.sixxs.net/faq/connectivity/?faq=comparison connect] to the Internet or to other internetworks ([http://openvpn.net/ openvpn], ...) of your choice.
# Use [[dnshash]] to add guessable link-local addresses to all your links.


== Server Design ==
== Server IPv6 ==


Your job is to be an IPv6 router and a DNS server. One of several situations might obtain:
Your job is to be an IPv6 router and a [http://tools.ietf.org/html/rfc1034 DNS] [http://tools.ietf.org/html/rfc1035 server]. One of several situations might obtain:


# You might discover an IPv6 router advertising one or more IPv6 prefixes on your outbound link(s).
# You might discover an IPv6 router advertising one or more IPv6 prefixes on your outbound link(s).
# You might have some kind of IPv4 connectivity. If so, [http://www.sixxs.net/faq/connectivity/?faq=comparison connect] to the Internet or to a internetwork (VPN) of your choice.
# You might have some kind of IPv4 connectivity. If so, [http://www.sixxs.net/faq/connectivity/?faq=comparison connect] to the Internet or to other internetworks ([http://openvpn.net/ openvpn], ...) of your choice.
# You might be under a tree. If so, generate a [http://tools.ietf.org/html/rfc4193 Unique Local Address] prefix.
# (Use [[dnshash]] to add guessable link-local addresses to all your links?)

When done, use [http://www.litech.org/radvd/ radvd] or [https://fedorahosted.org/dhcpv6/ dhcp6d] to share addresses.

== Server DNS ==

One of the server's most important jobs is to get itself on the Internet or on other well-known internetworks so that it can dynamically map clients' stable (DNS) names to their unstable names [IPv6 addresses].
( and try to offer your resources to your clients, if you can recognize them.

Revision as of 00:49, 15 July 2009

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 IPv6

Your job is to be an IPv6 node. Consequently, when you bring up your interfaces,

  1. You might discover an IPv6 router advertising on one of your links.
    • (See sysctl net.ipv6.conf.all.accept_ra and related variables.)
  2. You might try out dhcp6c.
  3. You might have some kind of IPv4 connectivity. If so, connect to the Internet or to other internetworks (openvpn, ...) of your choice.
  4. Use dnshash to add guessable link-local addresses to all your links.

Server IPv6

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 other internetworks (openvpn, ...) of your choice.
  3. You might be under a tree. If so, generate a Unique Local Address prefix.
  4. (Use dnshash to add guessable link-local addresses to all your links?)

When done, use radvd or dhcp6d to share addresses.

Server DNS

One of the server's most important jobs is to get itself on the Internet or on other well-known internetworks so that it can dynamically map clients' stable (DNS) names to their unstable names [IPv6 addresses]. ( and try to offer your resources to your clients, if you can recognize them.