Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
radius:rad_fup [2024/02/12 21:49] – system | radius:rad_fup [2024/02/13 15:20] (current) – system | ||
---|---|---|---|
Line 6: | Line 6: | ||
====== Fair Usage Policy (FUP) ====== | ====== Fair Usage Policy (FUP) ====== | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | * From January 2023 RADIUSdesk now also includes a powerful FUP package. | + | * As of January 2023, RADIUSdesk now includes a powerful FUP package. |
- | * We worked | + | * In collaboration |
- | * This document | + | * This document |
- | * It will then go on to do a hands-on | + | * Then we will create |
- | * Finally we will show you where to tweak things | + | * Finally, we will show you where you can tweak things |
- | ===== FUP Implementation | + | ===== FUP implementation |
- | * In South Africa some of the big ISPs implement multiple layers of service for their FUP. | + | * In South Africa some of the major ISPs implement multiple layers of service for their FUP. |
- | | + | |
- | | + | |
- | * Finally when a third milestone is reached | + | * Finally, when a third milestone is reached, bandwidth is throttled to a trickle. |
- | * When the new month starts | + | * When the new month begins, |
- | * Another requirement is the ability to assign an IP Pool to a certain | + | * Another requirement is the ability to assign an IP pool to a specific service |
- | * This is typically with ISPs that use Mikrotik PPPoE servers. | + | * This is typically |
- | * There will for instance be a premium | + | * For example, there is a Premium |
- | * A user will start off on the premium IP Pool up to the point where their specified FUP is triggered. | + | * A user starts in the premium IP pool up to the point where their specified FUP is triggered. |
- | * Thereafter | + | * After that, they are moved to the best-effort IP pool. |
- | * Communities | + | * Communities |
* With these various requirements in mind we formulated the FUP package in RADIUSdesk. | * With these various requirements in mind we formulated the FUP package in RADIUSdesk. | ||
- | ===== Hands-on | + | ===== Practical |
* To configure the FUP part of a profile, go to **RADIUS** -> **Profiles**. | * To configure the FUP part of a profile, go to **RADIUS** -> **Profiles**. | ||
- | * The edit option of a profile | + | * The editing |
+ | <panel type=" | ||
{{: | {{: | ||
+ | </ | ||
* There are two sections for a FUP based profile. | * There are two sections for a FUP based profile. | ||
- | * The first section specifies the basic speed when no limits | + | * The first section specifies the base speed if no restrictions |
- | * The second section contains a list of restriction | + | * The second section contains a list of the FUP restriction |
- | ==== Basic Speed Limit - No limits | + | ==== Base speed limit - No restrictions |
+ | <panel type=" | ||
{{: | {{: | ||
+ | </ | ||
- | ==== FUP Components to apply ==== | + | ==== FUP Components to be applied |
+ | <panel type=" | ||
{{: | {{: | ||
+ | </ | ||
* In the screenshot above we see two stage throttling. | * In the screenshot above we see two stage throttling. | ||
- | * When the user's total usage reached | + | * When the user's total usage reaches |
- | * Then when the user reaches | + | * If the user then reaches |
- | * The FUP component is composed | + | * The FUP component is made up of the following |
* Descriptive name. | * Descriptive name. | ||
* **If condition**. Options include **Time of day**, **Daily usage**, **Weekly usage**, **Monthly usage**. | * **If condition**. Options include **Time of day**, **Daily usage**, **Weekly usage**, **Monthly usage**. | ||
- | * For **Time of day** there will be a start time and end time. | + | * For **Time of day** there is a start time and an end time. |
- | * For **data usage** there will be an amount | + | * For **data usage** there is a data amount. |
- | * **Action**. When the trigger | + | * **Action**. When the trigger |
- | * An optional IP Pool that should | + | * An optional IP pool to be used when the component is triggered. |
- | * You can combine | + | * You can combine |
- | * The logic that applies | + | * The logic it applies |
- | * Blocking traffic | + | * Blocking traffic |
- | * Components that decrease | + | * Components that reduce |
- | * Components that increase the speed will use the slowest (smallest | + | * Components that increase the speed use the slowest (smallest percentage |
- | * This essentially means the strictest | + | * This essentially means that the strictest action |
===== Important points on FUP ===== | ===== Important points on FUP ===== | ||
- | * For FUP to work correct there are two important | + | * For FUP to work correctly, |
==== Timezone setting on RADIUS Client ==== | ==== Timezone setting on RADIUS Client ==== | ||
- | * To determine the exact start of day, week or month the timezone that a RADIUS | + | * To determine the exact start of the day, week or month, the time zone in which a RADIUS |
- | * If this is not set it will fall back to the timezone that the RADIUSdesk installation is set to. | + | * If this is not the case, it will fall back on the time zone to which the RADIUSdesk installation is set. |
==== Ability to disconnect a RADIUS user from RADIUSdesk ==== | ==== Ability to disconnect a RADIUS user from RADIUSdesk ==== | ||
- | * In order for the system to detect | + | * In order for the system to recognize |
- | * The RADIUS | + | * The RADIUS |
===== Nuts and bolts of FUP ===== | ===== Nuts and bolts of FUP ===== | ||
- | * This section | + | * This section |
- | * When you use the FUP editor for a RADIUS | + | * When you use the FUP editor for a RADIUS |
- | * The system creates a Profile Component | + | * The system creates a profile component |
* This Profile Component contains one or more of the following FreeRADIUS custom check attributes. | * This Profile Component contains one or more of the following FreeRADIUS custom check attributes. | ||
<code bash> | <code bash> | ||
Line 81: | Line 87: | ||
ATTRIBUTE Rd-Fup-Ip-Pool | ATTRIBUTE Rd-Fup-Ip-Pool | ||
</ | </ | ||
- | * FreeRADIUS is configured to use a combination of **unlang** and a Perl module to formulate the reply to an Access Request | + | * FreeRADIUS is configured to use a combination of unlang and a Perl module to formulate the response |
- | * The Perl module | + | * The Perl module |
- | * It will then try and determine which restriction | + | * It then attempts to determine which restriction, |
* The Perl module can be found in /// | * The Perl module can be found in /// | ||
- | * It connects | + | * It establishes a connection |
- | * Should | + | * If there is an FBD component |
- | * We then run a cron script | + | * We then run a cron **script |
- | * If they are different we send a disconnect request to all the RADIUS | + | * If they are different, we send a disconnect request to all RADIUS |
- | * This should initiate a re-authentication | + | * This should initiate a re-authentication |