Subject: SOLVED: How to route to a default gateway that is not on my subnet?
To: None <netbsd-help@netbsd.org>
From: Brian de Alwis <bsd@cs.ubc.ca>
List: netbsd-help
Date: 12/15/2006 16:28:55
Thanks to Greg Oster and other NetBSD developers, we have a solution:

    $ route add -host <<CCAip>> -link ath0 -iface
    $ route add default -ifa <<ath0ip>> <<CCAip>>

where <<CCAip>> is the IP address of the CCA server, and <<ath0ip>>
is the IP address of my ath0 wireless.

Thanks Greg and the other NetBSD devs!

Brian.

On 2006.12.13 15:22:54 -0600, Brian de Alwis wrote:
> Hi everybody.  I'm encountering some difficulties configuring my
> laptop to work on the wireless network setup at the University of
> Saskatchewan.  They use a Cisco Clean Access (CCA) system which
> blocks all network traffic until you have authenticated yourself
> to a CCA server.  This CCA server is supposed to be your gateway.
> 
> They have a somewhat strange setup where the gateway is actually
> outside of the subnet configuration provided to the clients through
> DHCP.  This setup works fine under Windows XP (and MacOS, though
> I haven't seen that for myself). 
> 
> We've been able to figure out a recipe for route(8) to route packets
> to the CCA server so I can authenticate myself, but we can't route
> packets to any other machines.
> 
> I get the following information from DHCP:
> 
>     lease {
>       interface "ath0";
>       fixed-address 172.17.245.122;
>       option subnet-mask 255.255.255.224;
>       option routers 128.233.122.254;
>       option dhcp-lease-time 1148;
>       option dhcp-message-type 5;
>       option domain-name-servers 128.233.3.1,128.233.150.126,128.233.119.73;
>       option dhcp-server-identifier 128.233.150.112;
>       option broadcast-address 255.255.255.255;
>       option ntp-servers 128.233.154.245,128.233.150.93;
>       option host-name "monolith";
>       option netbios-name-servers 128.233.3.16,128.233.22.25;
>       option domain-name "usask.ca";
>       option netbios-node-type 8;
>       renew 3 2006/12/13 20:46:39;
>       rebind 3 2006/12/13 20:54:27;
>       expire 3 2006/12/13 20:56:51;
>     }
> 
> The router 128.233.122.254 is the CCA server.  Trying to add the
> provided router as the default gateway fails:
> 
>     # route flush
>     # route add default 128.233.122.254
>     route: writing to routing socket: Network is unreachable
>     add net default: gateway 128.233.122.254: Network is unreachable
> 
> Which makes sens as it's not on the subnet.
> 
> From talking to our ITS department, the CCA server 128.233.122.254
> actually receives all traffic actually sent on ath0 -- the subnet
> is a virtual subnet rather than an actual subnet (I'm sure I'm
> butchering terms here, but I'm not a networking expert).  Apparently
> Windows is configured to simply forward all traffic onto the
> interface and the right thing is done (and is done on this laptop
> if I'm in WinXP).
> 
> The following route(8) command actually allows pinging and
> communicating with the CCA server:
> 
>     # route add -ifp ath0 -iface default 128.233.122.254
> 
> But we can't access any other machines -- from tcpdump, this route
> command causes NetBSD to think that everything is on the local
> interface and so it's doing ARPs to resolve the addresses.
> 
> ath0 isn't a point to point, so the following fails too:
> 
>     # ifconfig ath0 inet 172.17.245.122 128.233.122.254
>     ifconfig: can't set destination address on non-point-to-point link
> 
> What I think I really want is something like the following, though
> they don't work.
> 
>     # route add -iface 128.233.122.254 -ifp ath0
> 	# meaning: route packets to 128.233.122.254 directly to ath0
>     # route add default 128.233.122.254
> 	# and make 128.233.122.254 the default gateway
> 
> Any ideas?
> 
> Thanks.
> 
> Brian.

-- 
  Brian de Alwis | Software Practices Lab | UBC | http://www.cs.ubc.ca/~bsd/
      "Amusement to an observing mind is study." - Benjamin Disraeli