pppoed problem with reconnections

Paul Thornton prt at prt.org
Sat Jan 17 12:28:52 PST 2009

Hi folks,

I am currently doing some lab testing with 6.3-release and a pppoe setup 
where each user has their own VLAN.  On the termination box have an em 
interface with about 200 VLANs configured on it, and have a ppp.conf 
looking like this:

  set log Chat Command Phase
  enable pap
  enable chap
  allow mode direct
  set mru 1462
  set mtu 1462
  set timeout 0
  enable lqr
  accept dns
  set dns
  set radius /etc/ppp/radius.conf
  set ifaddr

  set device PPPoE:vlan1001:cv1001

  set device PPPoE:vlan1002:cv1002

  set device PPPoE:vlan1003:cv1003

  set device PPPoE:vlan1004:cv1004

(and so on for several pages)

There are multiple pppoed processes running, one for each VLAN (this 
might seem wasteful but there are other reasons for doing it this way).

All user authentication and IP address assignment is handled by the 
radius server, and each user ID has a static IP address.

The problem I'm seeing is as follows:
- PPPoE connection comes in, is authenticated, and a ppp process is 
exec()ed by pppoed.
- This connection has the user's IP address, say
- Everything works as expected.  This is a Good Thing.
- The PPPoE connection is then not disconnected cleanly (say network 
cable pulled out, or machine reboots, etc)
- Back on the termination box, there is still a ppp process running 
using that address.
- When you try and reconnect as the original user, it fails because the 
address cannot be assigned (already in use).  Things then stay like this 
for ever until I kill the ppp process that was connected with the pppoed 
running on that VLAN.

I don't want to set a timeout as I want these sessions to be always on. 
  Is there any way to configure pppoed to kill the old ppp process 
before trying to launch the new one, so the IP address is released?

I guess I'm asking the reverse of the age old "how do I deny multiple 
logins" question - how do I allow it, but have the new one boot the old 
one off?



More information about the freebsd-net mailing list