How to bind a route to a network adapter and not IP

Ian Lepore freebsd at damnhippie.dyndns.org
Mon Jun 25 22:44:43 UTC 2012


On Mon, 2012-06-18 at 23:07 +0200, Hans Petter Selasky wrote:
> On Monday 18 June 2012 23:03:34 H wrote:
> > On Monday 18 June 2012 12:54 Hans Petter Selasky wrote:
> > > On Monday 18 June 2012 00:00:51 H wrote:
> > > > sthaug at nethelp.no wrote:
> > > > >>> I loose packets because I use a WLAN adapter. Sometimes the link is
> > > > >>> down for various reasons, and then the routes start changing for
> > > > >>> manually created routes, and I want to prevent that.
> > > > >> 
> > > > >> well that is certainly not a reason for changing routes
> > > > >> 
> > > > >> I have the feeling you are not explaining good enough what really is
> > > > >> going on and it may help sending your configurations and an example
> > > > >> of routes and IP addresses before and after this route change
> > > > > 
> > > > > Why is this so hard to understand? "Link down" leads to "static route
> > > > > is deleted". This is standard FreeBSD behavior, and has been this way
> > > > > for as long as I can remember (btw, I believe this behavior is from
> > > > > the original BSD, not FreeBSD specific).
> > > > > 
> > > > > You can show this by having a static default route pointing to an
> > > > > address on an Ethernet interface which has link. And then pulling the
> > > > > TP cable from the Ethernet interface. Observe that the default route
> > > > > is automatically removed.
> > > > 
> > > > may be you have not understood your own problem yet
> > > > 
> > > > because so far is nothing to be understood because none of your
> > > > statements is correct, it is also not FreeBSD's standard behavior and
> > > > never has been
> > > > 
> > > > as long as there is the valid IP address on the related interface, no
> > > > static route will be deleted, you can even boot without cable and the
> > > > [default] static route is there
> > > > 
> > > > so you need to explain better your problem in order to understand it
> > > > 
> > > > probably you have some other stuff running, thirdparty network manager
> > > > or something, incorrect or incomplete ppoe or dhc configuration or
> > > > whatever leads to the problem
> > > > 
> > > > FYI static routes usually are the manually configured routes, so what
> > > > you say is redundant and not correct, I guess you're loosing some kind
> > > > of dynamic route
> > > > 
> > > > since WL networks usually do not run RIP/OSPF/BGP I guess the route you
> > > > apparently loose is coming from some dhcp server and may be your
> > > > dhclient configuration is incomplete or none existent, but here now it
> > > > would be useful to see your config
> > > 
> > > Hi,
> > > 
> > > I think we need to distinguish between two matters. One is where the
> > > route is directly reachable on the local-net of the network adapter, and
> > > ARP is valid/responding. The second case is when the route is not
> > > directly reachable. The second case is where the problem happens, like
> > > Stian kindly explained.
> > > 
> > > # For example:
> > > 
> > > ifconfig wlan0 10.0.0.2 255.255.255.0 up
> > > 
> > > # Assume the router is at 10.0.0.1
> > > # And we want to reach a certain destination through 10.0.0.1
> > > # Then we do:
> > > 
> > > route add 10.22.1.1 10.0.0.1
> > 
> > no no no my friend, wrong again
> > 
> > that is a static route and it goes away same way it was created, manually
> > or by deleting the IP address 10.0.0.2 from the related interface
> > 
> > wether there is or not an active link on that interface does not matter
> > 
> 
> Hi,
> 
> Can it be that dhclient which I'm running on this interface with manual routes 
> disrupts stuff then ??
> 
> --HPS

I think you can get the effect you want with dhclient.conf.  I just
experimented a bit and it works for me, installing the static route when
it gets an address (and it gets removed if I manually configure the
interface back to 0.0.0.0), using this dhclient.conf:

interface "re0" {
    supersede static-routes 10.1.1.1 172.22.42.240;
}

It works with either the 'prepend' or 'supersede' verb, depending on
your needs.  You can also specify multiple static routes, see
dhcp-options(5).

-- Ian




More information about the freebsd-stable mailing list