Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Nov 2009 21:58:10 +0100
From:      Thomas Rasmussen <thomas@gibfest.dk>
To:        freebsd-net@freebsd.org
Subject:   "route get" returning error on classful networks
Message-ID:  <4AEF47E2.7010304@gibfest.dk>

next in thread | raw e-mail | index | archive | help
Gentlemen,

While writing a script to do some route table maintenance on a firewall
I stumbled on to something curious (all network numbers are examples):

=====================================================
$ route get 35.0.0.0
route: writing to routing socket: No such process
$ route -n get 35.0.0.1
   route to: 35.0.0.1
destination: default
       mask: default
    gateway: 10.10.0.1
  interface: lagg0
      flags: <UP,GATEWAY,DONE,STATIC>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     
expire
       0         0         0         0         0         0      
1500         0
=====================================================

It seems "route get" returns an error when asked to look up the route to a
network with the network .0 ip as the lookup key. This follows classful
network boundaries, and is somewhat easier to demonstrate than to explain:

=====================================================
class A:
$ route get 9.0.0.0 > /dev/null 2>&1 ; echo $?
1
$ route get 9.1.0.0 > /dev/null 2>&1 ; echo $?
0

class B:
$ route get 130.0.0.0 > /dev/null 2>&1 ; echo $?
1
$ route get 130.1.0.0 > /dev/null 2>&1 ; echo $?
1
$ route get 130.1.1.0 > /dev/null 2>&1 ; echo $?
0

class C:
$ route get 200.0.0.0 > /dev/null 2>&1 ; echo $?
1
$ route get 200.1.0.0 > /dev/null 2>&1 ; echo $?
1
$ route get 200.1.1.0 > /dev/null 2>&1 ; echo $?
1
$ route get 200.1.1.1 > /dev/null 2>&1 ; echo $?
0
=====================================================

This happens on Freebsd 6-7-8 on all machines I have access to.

The error message is confusing and suggests there is a problem writing
to the routing table which is not what I am doing at all.

Is this a bug, or can somebody offer an explanation for this ?

Thank you! :)

Thomas Rasmussen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AEF47E2.7010304>