Alan Maguire writes:
> > - I strongly agree w/ Jim about the semantic difference between forwarding
> >  and routing: he explained this earlier.  Don't confuse or conjoin them.
> 
> absolutely. now would it be useful to collapse the v4/v6 service distinction 
> here
> also? i.e. we use properties to specify ipv4(6)-enabled, and if enabled the
> appropriate ndd flags are set.

Yes, I think it's useful.

We've suffered in the past from needless distinctions between v4 and
v6 (do I have to bring up the /etc/inet/ipnodes fiasco?) at just about
every level in the system.  If we can manage to avoid those
distinctions where they don't make a difference, I think that'd be a
good thing.

This is a good instance of a distinction without a difference.  From a
high-level view, you can forward or you can run routing protocols, or
both.  The cases in which you want to say things like "I forward, but
only for IPv6" are relatively uncommon and seem to me like properties
rather than individual services.

> > So I'd much prefer to just see network/routing:default (where instance other
> > than :default could be used by someone else to add another routing daemon
> > or protocol that were a useful thing to do), and have it support properties
> > to permit tuning v4/v6 separately if you truly feel that is needed, and also
> > a property group of static routes to add.
> 
> hmm, mixing static/dynamic routing is not something that we've done in the 
> past.
> from an implementation perspective, it's certainly doable (the current 
> persistent storage location of static routes in /etc/inet/static_routes is
> project-private, so moving these to SMF properties would be a fairly
> simple change to "route -B"), but i'd like to see how other people feel about
> this.

This is actually related to one of my concerns about both the older
/etc/defaultrouter and the new static_routes file.  More robust route
computation mechanisms (such as Quagga) use a different mechanism to
handle static routes, and the two aren't neatly tied together.  This
isn't a big deal for the configure-once-and-forget-it sorts of
systems, but if you ever find you need to change from one to the
other, it's an annoyance.

I agree that it'd be nice to have a single service to represent "start
computing routes" and have the detail of whether those routes derive
from static or dynamic sources be just part of the service
configuration.

The only hesitation I have is that network and system administrators
tend to have a very different view of this issue.  They tend to see
static routes as "no-ops" from a security point of view (incorrect,
but understandable) while dynamic routes are an "issue."  Blending
them together makes sense architecturally and from a routing
propeller-head standpoint, but I wonder a bit about what the users
will think.

(As long as they use routeadm, and the right distinctions are made
there, the actual SMF service may matter less, though.)

> if we wish to preserve the static/dynamic distinction, we could go for 
> something 
> along the lines of
> 
> svc:/network/static-routing:default
> svc:/network/dynamic-routing:default

It could still be done with properties, I think -- an enable_static
property and either an enable_dynamic or, perhaps better yet,
enable_{zebra|quagga|...} properties.

> with this setup, we could add a require_any dependency to 
> svc:/network/forwarding such that for forwarding flags to be set, either
> static or dynamic routing need to be enabled. this would also allow
> users to control static and dynamic routing independently via SMF.

The dependency becomes simpler if the static/dynamic issue is a set of
properties.

-- 
James Carlson, KISS Network                    <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to