Coda File System

Re: Coda server trouble with multiple NIC's

From: Greg Troxel <gdt_at_ir.bbn.com>
Date: 03 Jun 2003 09:47:20 -0400
  The only solution right now is to bind the server explicitly to a single
  ip-address on your multi-homed machine. There should be a server_ip
  options in server.conf for that.

This would be a good thing to add.

  In the long term, we might be able to decouple the existing 1:1
  relationship between a server and it's ip-address. This way a client
  should be less surprised about receiving the response from 10.0.0.9 as
  long as gethostbyaddr returned that as one of the usable addresses for
  our peer.

This seems like not a good idea, since it relies on dns to bind
together multiple addresses into an entity.  We should either use (and
_authenticate_) some higher-level address or name, or just say a
server has a single address.

Thinking ahead, one of Coda's current glaring deficiencies is that
lack of IPv6 support.  One should be able to talk to a server over v4
or v6, changing as one's connectivity changes.  For this, we need some
'server identifier' which is stable.  Perhaps this should be the realm
name and a server index or something like that.  Even with that, it
probably makes sense to have the server always reply over the same
address that the rpc was sent to.  This is the practice with NTP, and
probably a good idea.

  To get this kind of multi-homing setup working entirely correctly
  requires opening a separate socket for each interface and doing some
  of the routing in RPC2. It also becomes increasingly more difficult when
  you consider network topology changes, interfaces disappearing and
  re-appearing or simply route changes which typically happen when mobile
  clients are moving around.

This is less worrisome on clients.  For callbacks/probes to
invalidate/check leases, the server has to know it is the same client.
But the penalty for becoming a different client is probably just
breaking all the leases.

So, I think making per-addr sockets for rpc2 in servers would be a
good step, after making bind_to statements to specify a fixed IP
address.  Servers usually don't change addresses so often.
It would be nice if server_ip had the property that one could specify
address family, and give it multiple times to specify multiple RPC2
sockets.
Perhaps

server_ipv4 192.168.0.1
server_ipv6 3ffe:39:0:1::1


        Greg Troxel <gdt_at_ir.bbn.com>
Received on 2003-06-03 09:50:29