pppoed problem with reconnections
prt at prt.org
Sat Jan 17 12:28:52 PST 2009
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
allow mode direct
set mru 1462
set mtu 1462
set timeout 0
set dns 192.168.1.1 192.168.1.2
set radius /etc/ppp/radius.conf
set ifaddr 192.168.254.254/32
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 192.168.254.1.
- 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
More information about the freebsd-net