> The self-pointing route 10.0.5.1 should have multiple references set on > it, and that route won't be deleted from the routing table until the > last reference is removed. > > You can verify that by checking the "netstat" output, the "Ref" column > after tun1 has been created.
Unfortunately PPP doesn't increase the reference count: After connecting 1 VPN: Destination Gateway Flags Refs Use Netif Expire 10.0.5.1 link#12 UHS 0 0 lo0 After connecting the second VPN: Destination Gateway Flags Refs Use Netif Expire 10.0.5.1 link#12 UHS 1 0 lo0 When you disconnect the second VPN all the routes pointing to 10.0.5.1 are removed. If I add 10.0.5.1 as an proper alias to an interface (eg loopback) it seems to work as you would expect and disconnecting one VPN doesn't disconnect all the rest. >> I've been working on migrating a PPTP server from FreeBSD 7.1 to FreeBSD >> 8.1. The server is configured using PopTop (from ports) and PPP (/usr/sbin) >> rather than MPD. (Before anybody tells me to use MPD we can't because it >> doesn't inject packets into the kernel in the same way and it's not possible >> to filter on them correctly) >> >> Basic PPTP connection works properly. >> >> The fun happens when I have two simultaneous users. The first one to >> DISCONNECT deletes the routes for both of them and all PPTP traffic ceases. > > Just been working my way through the PPP code - which doesn't actually appear > to have changed. > > However, the netinet/in.c does have some comments in the SVN history about > deleting the loopback address, this appears to have been merged in as part of > the 8 release cycle (r197231 perhaps) (though I'm not an expert at SVN etc) > > What should happen when there are multiple interfaces with the same address. > When I have two tunnels configured they show up as (eg) > > tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1398 > options=80000<LINKSTATE> > inet 10.0.5.1 --> 10.0.0.31 netmask 0xffffffff > Opened by PID 12616 > > tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1398 > options=80000<LINKSTATE> > inet 10.0.5.1 --> 10.0.0.32 netmask 0xffffffff > Opened by PID 12630 > > If the loop back address is 10.0.5.1 and closing one of them deletes the > loopback what should happen? Should it delete all routes that refer to > 10.0.5.1? _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"