Subject: Re: kern/35273 (ex(4) is broken and may cause kernel crash)
To: None <gnats-bugs@NetBSD.org>
From: Denis Lagno <dlagno@rambler.ru>
List: netbsd-bugs
Date: 01/22/2007 14:11:55
* joerg@netbsd.org [Mon, 22 Jan 2007 10:30:26 +0000 (UTC)]:
> About the route behaviour: the documented behaviour for 4.4BSD
> was preference of host over net routes, so it is kind of intended.
> It shouldn't have changed though, I'll take a look at it.

I'll describe how I've noticed it:
I have a script that connects to my provider via pppd and pptp.
For example, 195.14.38.12 is address of pptp-vpn server.
Then after pppd established connection, pppd automatically establishes 
-iface -host route to vpn server via newly created ppp interface:
195.14.38.12           89.178.41.185    UH

(89.178.41.185 is address assigned to ppp interface):
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 89.178.41.185 -> 195.14.38.12 netmask 0xff000000
        inet6 fe80::210:4bff:fe67:8727%ppp0 ->  prefixlen 64 scopeid 0x5

However in case of my provider this route does not work.  Packets for 
195.14.38.12 should be routed instead via interface ex0 and local 
gateway 10.239.0.17:

ex0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 
1500
        capabilities=3f00<IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        enabled=3f00<IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        address: 00:10:4b:67:87:27
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 10.239.17.213 netmask 0xffff0000 broadcast 10.239.255.255
        inet6 fe80::210:4bff:fe67:8727%ex0 prefixlen 64 scopeid 0x1

Previously I solved this by setting following route before executing 
pppd:
195.14.38.12/32    10.239.0.17        UG

This route somehow took preference over -host -iface route created by 
pppd.
However with netbsd-4.99.8 it does not work, and correct solution is to 
delete route created by pppd in /etc/ppp/ip-up

-- denis