[RP-PPPoE] PADT Flood?

Insane Laughing Clown mike-rppppoe at tiedyenetworks.com
Sun Aug 15 20:45:50 EDT 2010


Christian Costa wrote:
>  Hi there,
>
> We run a PPPoE server that has an average of 800-900 clients connected 
> to it.
> It seems that every so often lots of clients are dropped off and I 
> find the following in the log files:
>
>
>
> Aug 16 08:20:44 apollo pppoe-server[16156]: PADT for session 2935 
> received from 00:25:9C:0D:20:F1; should be from 00:16:B6:8F:34:73
> Aug 16 08:20:44 apollo pppoe-server[16156]: PADT for session 2185 
> received from 00:25:9C:0B:8F:9F; should be from 00:19:CB:F9:7B:7B
> Aug 16 08:20:44 apollo pppoe-server[16156]: PADT for session 221 
> received from 00:25:9C:0D:20:F1; should be from 00:15:6D:DC:27:8D
> ...
>
> By analyzing it further I found out that 8 different devices seem to 
> be causing it. I say causing it because that's where the packets come 
> from. It seems 8 devices are flooding the server with PADT messages 
> for all the other MAC addresses on the network.
> Has anyone one come across something like that before? I did lots of 
> research but couldn't find anything about it other than the same 
> question.
> Any help would be appreciated.


Yep, I hear your pain. I too have experienced this problem and in my 
case what happens is that if some client such as a netgear or linksys 
router is able to hear pppoe frames belonging to someone else, they 
respond this way.  The underlaying reason is that the network has lost 
the path to those mac addresses - for example, the real client 'went 
away' and the bridging tables are cleared of the client's mac address, 
but the pppoe server keeps sending to that mac not knowing the session 
is dead. The rules for switching are that if you don't know what port a 
destination mac address is on, you have to flood, which is the mechanism 
whereby other clients on your network can hear stray pppoe frames 
belonging to others.

What you want of course is for the server to cut any session off that 
really is dead, but the only officially supported way to know is for 
pppd to use lcp-echo requests and after some number of dropped requests 
to simply close the session. This has two edges tho - if you make the 
tolerances too tight (lcp-echo-interval some low number), you're wasting 
bandwidth. If you have lcp-echo-failure some low number like 2 for 
example, you aren't being forgiving enough in light packet loss 
scenarios and creating needless disconnections. You should use something 
and not omit these from your configuration, and it'll help, but it's not 
a complete solution.

Depending on your network (wireless??) you may be able to employ tricks 
like adjusting the mac address table aging timers in your equipment to 
go longer before aging out any mac address. This will reduce the 
mobility of mac addresses in your network but decrease the scope of the 
problem in an outage condition for you.

-ILC


More information about the RP-PPPoE mailing list