Using FreeBSD as a router
Sten Daniel Soersdal
netslists at gmail.com
Fri Aug 24 14:42:37 PDT 2007
Steffen Schumacher wrote:
> On 22.08.2007 08:32:41 -0500, Josh Paetzel wrote:
>> Steffen Schumacher wrote:
>>> On 22.08.2007 12:30:54 +0100, Tom Judge wrote:
>>>> Steffen Schumacher wrote:
>>>>
> [cut..]
>>> /Steffen
>> "You keep using that word. I do not think it means what you think it
>> means."
>>
>> In FreeBSD the default route is a directly connected host that it can
>> send packets to that it doesn't have a specific route to. It's not
>> going to 'figure out' a default route from a network address.
>>
> Ok, I'll try to elaborate what it is I'd like:
> For each route a 'router' must have some next-hop information, so that
> it knows how to forward traffic for that prefix. Typically the interface,
> and possibly a layer2 address (mac for ethernet) if such exist.
> Normally (virtually all the time) static routes are directed at connected
> hosts, just as you explain. This way it is simple to get the next-hop
> info, because it is the same as for that connected host.
>
> What I would like is for the router to realize the configured next-hop
> isn't a directly connected host, and as a result attempt to lookup that
> host to see if we have a route for the next-hop address. If we do, then
> we use the next-hop information from this second lookup and use the
> next-hop information for the original route.
> This is what I mean with recursive route lookups.
>
> 1. normal lookup
> 0/0 -> x.
> x/30 -> fxp0.
> => 0/0 -> mac of x via fxp0.
>
> 2. recursive lookup
> 0/0 -> y.
> y/16 -> x/30.
> x/30 -> fxp0.
> => 0/0 -> mac of x via fxp0.
>
> Hope this clarifies, but it does seem there is very little support for this.
> Does anyone know the whereabouts of this in the FreeBSD code?
>
I don't think freebsd supports recursive routes but it's been too long
since i tried and that may no longer apply.
I think i read a discussion on one of the lists (possibly -net) that
such functionality should be performed by a routing daemon and not by
the kernel. Maybe you could find the clues in the archives?
--
Sten Daniel Soersdal
More information about the freebsd-isp
mailing list