DHCP module and external DHCP relay

Alan DeKok aland at deployingradius.com
Fri Apr 4 21:07:36 CEST 2014


Eugene Grosbein wrote:
>>   The server IS blocking.  The server IS NOT dropping duplicates.
> 
> Then why I have lots of lines telling be of dropping duplicate requests like I've shown?

  Because the server is blocking.

  OK.  After looking at it a bit more, there are duplicate checks in the
v2 code.

  Here's what's happening:

1) your Perl code is breaking the server.

2) Probably because the database is slow

3) because the DB is slow, all of the threads are blocked

4) because threads are blocked, packets sit in the queue for many seconds

5) because packets sit in the queue for too long, the client doesn't see
a response

6) the client retransmits

7) the server sees that it's a duplicate of a packet waiting in the
queue, and complains about duplicate packet.

  The messages in v2.2.4 are a bit better.  They describe more clearly
what's going on.

  If you're having issues with 2.2.4, PLEASE submit bug reports.  They
won't get fixed otherwise.

  Try using the "mac2ip" module as I suggested.  DON'T use your Perl
script.  You'll see the server doing 10K DHCP packets/s.

  The problem IS your script, or the database.  There is just no other
way that FreeRADIUS sits on packets for many seconds.

> By the way, xid by itself should not be used as "unique" client id
> without additional details like client MAC, option 82 field (if supplied) etc.

  That's what the code does.  It uses XID && MAC to determine unique
packets.

> I'm ready to move to 3.0.2, too.

  Use th v3.0.x branch from git, which has some fixes to the Perl code.

  Alan DeKok/


More information about the Freeradius-Users mailing list