Subject: Re: route(4) interface
To: None <tech-net@netbsd.org>
From: Mihai CHELARU <kefren@netbsd.ro>
List: tech-net
Date: 02/26/2006 19:20:50
joerg@britannica.bec.de wrote:
> On Sun, Feb 26, 2006 at 12:03:51AM +0200, Mihai CHELARU wrote:
>> 1) I'm trying to capture all routing changes that appear in a system.
>> Right now I'm selecting a PF_ROUTE socket and get data from there. But I
>> observed that directly connected routes changes are not reported via
>> this interface. How can I see these changes ?
>
> What do you mean with "directly connected route"? ARP packets? I don't
> think they trigger routing messages and I wouldn't like them to trigger
> them either.
>
I mean routes that are added when you do 'ifconfig tap0 inet
10.0.0.1/8'. In that moment 10.0.0.0/24 is added as connected to
interface tap0. I was mistaking when I said those changes are not
reported but as far as I see they are reported without netmask and
that's totally useless to me. I could walk interfaces again everytime a
route without gateway and prefix = 0.0.0.0 is added or deleted with
getifaddrs() or if_nameindex() but that's like stupid and I'd like to
avoid it.
>> 3) I need a portable (POSIX ?) interface to dump all the routing table.
>> I saw that route(8) does that by triggering a sysctl but I don't think
>> that's very portable. Any other methods ?
>
> The only semi-portable interfaces I can think of are "netstat -rn",
> "route -n show" and SNMP :-)
>
I don't think you're suggesting doing system() with stdout redirected,
right ? :)
--
Mihai