[Goat] routing

ww at parc.styx.org ww at parc.styx.org
Sam 24 Avr 20:42:39 EDT 2004


some ideas re: dynamic routing in the mesh.

 1. globally unique addresses are desireable.
   a. RFC1918 addresses don't fit the bill 'cause
      people are already using them. addressing
      conflicts are a pain.
   b. using an unallocated block (or defunct 
      allocation) is better, but these addresses
      may be used in the future. it is also at
      odds with the policies of the RIRs and 
      traditional best practices.
   c. it is possible to be allocated ipv4 blocks
      in the usual way.
      i. this brings the burden of either getting
         someone to announce these addresses on
         behalf of the mesh or also obtaining an
         ASN and making peering arrangements if
         direct connectivity to the Internet is
         desired.
      ii. these addresses are scarce and expensive
         to obtain.
   d. ipv6 addresses are plentiful and readily
      available. 
      i. using RFC3056 (stf or 6to4 addresses),
         a single ipv4 address maps into 65536
         subnets of stadard /64 size.
      ii. it has been pointed out that ipv6 is
         percieved as "hard" for end-users.
         perhaps a hybrid approach is in order?
 2. hybrid addressing.
   a. obtain one static ipv4 address that is not
      likely to change at any point in the forseeable
      future (since renumbering is a pain no matter
      what the addressing scheme).
   b. build the backbone of the mesh using these 
      numbers.
   c. at each node that provides service to end users,
      RFC1918 addresses that need not be unique are
      used.
      i. the node will run a caching nameserver,
         BIND9, that listens on its ipv4 address and
         forwards queries over ipv6 to authoritative
         nameservers and external gateways.
      ii. the node will run squid, or a similar proxy,
         likewise listening on the ipv4 address and
         forwarding requests over ipv6.
      iii. using a similar strategy, for other tcp
         services, application layer proxying can be
         configured.
   d. of course the end users are also allocated an
      ipv6 address. these addresses are routed natively
      and so have no need for proxies.
   e. so done this way the mesh is a native ipv6 
      network providing limited but functional support
      for legacy devices that only speak ipv4.
 3. routing protocols.
   a. all of the routing protocols mentioned on the
      wiki page have three inter-related drawbacks.
      i. support for operating systems other than linux
         is very limited.
      ii. support for what would be called "areas" with
         ospf is very limited.
      iii. support for interaction in a predictable way
         with other protocols (i.e. rip, ospf, bgp) is
         limited -- i.e. there is no support for these
         in zebra/quagga or gated.
   b. what do these specialized routing protocols give us
      that say, ospf with equal-cost or weighted-cost 
      multipath routing does not?
      i. support for equal-cost multipath exists in
         linux and (limitedly) in netbsd as well as
         ios and junos.
      ii. zebra/quagga supports equal-cost multipath.
      iii. an implementation of weighted-cost multipath
         would not be too hard but would require some
         kernel hacking as well as modification of 
         zebra/quagga.
 4. hypothetical software inventory for a mesh node
    using this configuration
    a. operating system (NetBSD or Linux according to
       taste, if NetBSD require snapkit from KAME).
    b. quagga
    c. bind9
    d. squid (optional)
    e. 6tunnel (application-layer proxy for legacy hosts)

thoughts?

-- 
The "cutting edge" is getting rather dull.
                -- Andy Purshottam

_______________________________________________
Goat mailing list
Goat at isf.waglo.com
http://isf.waglo.com/mailman/listinfo/goat_isf.waglo.com



More information about the Mesh mailing list