Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Dec 2001 13:02:24 -0800
From:      rick norman <rick.norman@lmco.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: IP aliases & routes
Message-ID:  <3C167460.7D2177B7@lmco.com>
References:  <200112111946.fBBJkvIH021762@bigtex.jrv.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Okay, now I see more clearly your problem.  Unfortunately,
I don't know any way to have alternate defaults.  Default means,
use this when nothing else works.  I would think that you could use
ipfw and write a rule that forwards to a given gateway based on the
src subnet.
Rick

"James R. Van Artsdalen" wrote:

> > Date: Tue, 11 Dec 2001 11:01:00 -0800
> > From: rick norman <rick.norman@lmco.com>
>
> Why is there a requirement that there is but one default?
> The only important thing is that there is no ambiguity over which
> default to use.
>
> In my case there are two subnets on one interface, for example
> 10.1.1/24 and 10.1.2/24.  My server has addresses 10.1.1.2 and
> 10.1.2.2: that's one address on each subnet.
>
> Each subnet has a gateway to the Internet: 10.1.1.1 and 10.1.2.1.
>
> What I want to say is that when my server uses 10.1.1.2 as its address
> then 10.1.1.1 is the default route, but if my server uses 10.1.2.2 as
> its address then 10.1.2.1 is the default route.
>
> It might be tempting to say "just pick one default!" but this doesn't
> work: if I pick 10.1.1.1 as the default, then my server cannot reach
> any Internet address with no known route using the 10.1.2.2 address,
> since packets sent from 10.1.2.2 cannot be seen by 10.1.1.1 (they're
> on different subnets).  It makes a second gateway useless since
> there's no way to send a packet to it.
>
> BSD applications are permitted to decide which source address a packet
> uses by calling bind(2).  The routing code cannot assume that a single
> default route covers all cases since the packet to be routed might not
> be sourced on the same subnet as that default gateway.  The routing
> code should instead allow one default gateway on each attached subnet
> and should check the packet against each default to ensure that the
> packet is sourced on the same subnet as that default gateway.
>
> > A default route is just that, a default, there can't be two.  There can
> > be different gateways for different subnets though.  Your description
> > sounds like a single subnet with two ip addrs on it.  10.1.1/24 is the
> > subnet and .2 and .3 are the addrs.  Why not use 10.1.1/24 and 10.1.2/24
> > ?
> >
> > Rick
> >
> > freebsd-questions@jrv.org wrote:
> >
> > > I have a FreeBSD server on an Ethernet with two gateways to the
> > > outside world.  I would like to use gateway A for upstream HTTP
> > > traffic from squid and gateway B for everything else.  In other words,
> >
> > > the default route should point to B, except for the squid's upstream
> > > socket, which should use A.
> > >
> > > What I did was create a new private subnet (10.1.1/24) that both the
> > > server and gateway A can access via an IP alias.  Squid is told to use
> >
> > > 10.1.1.3 as its upstream address.  Other applications use the normal
> > > IP address.  The idea is that one subnet uses gateway A as the default
> >
> > > gateway and the other subnet uses gateway B and that choosing the
> > > address of outbound socket via bind(2) chooses how that application
> > > reaches the Internet.
> > >
> > > The question is how to tell the FreeBSD (4.4-stable) server that
> > > gateway A can be used as a default route for 10.1.1/24.  There is
> > > already a default route for the normal IP address and I can't seem to
> > > get the route command to let me create a default route for the alias
> > > to use:
> > >
> > >         $ route add default 10.1.1.2
> > >         route: writing to routing socket: File exists
> > >         add net default: gateway 10.1.1.2: File exists.
> > >
> > > How do I add this second default route?  There is no conflict between
> > > the two defaults: every possible local IP address belongs to only of
> > > the two subnets (and can match only one default).
> > >
> > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > with "unsubscribe freebsd-questions" in the body of the message
> >
> >
> >
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body of the message
> >


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C167460.7D2177B7>