Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf [2020/02/05 17:31] – ↷ Page moved from en:dpi:dpi_options:base_functionality:opt_bandwidth_mgmt:bandwidth_conf to en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf lexx26 | en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf [2024/09/26 15:29] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Configuration ====== | ====== Configuration ====== | ||
+ | {{indexmenu_n> | ||
+ | Policing has two connection options: | ||
+ | - Individual profile: connects without specifying a profile, an individual profile is created for each subscriber. | ||
+ | - Named profile: connects with the profile name. | ||
+ | <note important> | ||
+ | |||
+ | ===== Individual Profile ===== | ||
+ | |||
+ | An individual configuration file is used to define each bandwidth control policy. This file specifies bandwidth limits for protocol classes (groups). The method is similar to [[en: | ||
+ | |||
+ | [[en: | ||
+ | |||
+ | The format of the instruction: | ||
+ | < | ||
+ | fdpi_ctrl command --policing policing_description_file [IP_list] | ||
+ | </ | ||
+ | Instructions' | ||
+ | |||
+ | <note tip>Note the use of [[en: | ||
+ | The tariff plan can be set in [[en: | ||
+ | |||
+ | ==== Example 1: torrent limiting ==== | ||
+ | |||
+ | <note tip>For advanced users: We recommend that you read [[dpi: | ||
+ | |||
+ | We intend to offer our subscribers the plan for 10 Mb/s with torrent bandwidth limit of 3 Mb/s. | ||
+ | |||
+ | To accomplish the goal we create a class for torrents as described in [[en: | ||
+ | < | ||
+ | bittorrent | ||
+ | default | ||
+ | </ | ||
+ | We're splitting the traffic into 2 classes for this example: | ||
+ | |||
+ | * cs0 - corresponds to DSCP=0 QOS(IPP)=0 Best Effort | ||
+ | * cs1 - corresponds to DSCP=8 QOS(IPP)=1 Priority | ||
+ | |||
+ | We're creating the configuration file rateplan_1.cfg. It specifies bandwidth limits for each of 8 protocol classes (groups). We use HTB (the method of borrowing available bandwidth) and specify the bandwidth limit for torrents 3 Mb, but not smaller than 1 Mb. Unlike torrents, other traffic may take the whole available bandwidth. | ||
+ | |||
+ | <code bash> | ||
+ | htb_inbound_root=rate 10mbit | ||
+ | htb_inbound_class0=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class1=rate 1mbit ceil 3mbit | ||
+ | htb_inbound_class2=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class3=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class4=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class5=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class6=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class7=rate 8bit ceil 10mbit | ||
+ | htb_root=rate 10mbit | ||
+ | htb_class0=rate 8bit ceil 10mbit | ||
+ | htb_class1=rate 1mbit ceil 3mbit | ||
+ | htb_class2=rate 8bit ceil 10mbit | ||
+ | htb_class3=rate 8bit ceil 10mbit | ||
+ | htb_class4=rate 8bit ceil 10mbit | ||
+ | htb_class5=rate 8bit ceil 10mbit | ||
+ | htb_class6=rate 8bit ceil 10mbit | ||
+ | htb_class7=rate 8bit ceil 10mbit | ||
+ | </ | ||
+ | |||
+ | * htp_inbound_root, | ||
+ | * rate - is the minimal bandwidth | ||
+ | * ceil - is the maximum bandwidth that can be borrowed from the root class if available | ||
+ | * class2-7 would not be used as we configure two classes only: 0 and 1. | ||
+ | |||
+ | Here we assign the configured policy to subscribers that use this plan: | ||
+ | < | ||
+ | fdpi_ctrl load --policing rateplan_1.cfg --file subscribers_with_rateplan_1.txt | ||
+ | </ | ||
+ | |||
+ | ==== Example 2: maximum speed for peering==== | ||
+ | |||
+ | Bandwidth allocation for several classes (for example containing peer-to-peer traffic) can be deduced from the HTB (Hierarchical Token Bucket) hierarchy. It can be done by specifying the keyword **static** in the description. In this case, the restriction for this class will be applied independently regardless to htb_root. | ||
+ | For example under the conditions noted above, we separately limit the class 6 to 100 Mbps. | ||
+ | <code bash> | ||
+ | htb_inbound_root=rate 10mbit | ||
+ | htb_inbound_class0=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class1=rate 1mbit ceil 3mbit | ||
+ | htb_inbound_class2=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class3=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class4=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class5=rate 8bit ceil 10mbit | ||
+ | htb_inbound_class6=rate 100mbit static | ||
+ | htb_inbound_class7=rate 8bit ceil 10mbit | ||
+ | htb_root=rate 10mbit | ||
+ | htb_class0=rate 8bit ceil 10mbit | ||
+ | htb_class1=rate 1mbit ceil 3mbit | ||
+ | htb_class2=rate 8bit ceil 10mbit | ||
+ | htb_class3=rate 8bit ceil 10mbit | ||
+ | htb_class4=rate 8bit ceil 10mbit | ||
+ | htb_class5=rate 8bit ceil 10mbit | ||
+ | htb_class6=rate 100mbit static | ||
+ | htb_class7=rate 8bit ceil 10mbit | ||
+ | </ | ||
+ | |||
+ | ==== Example 3: assigning policing for multisubscribers ==== | ||
+ | |||
+ | Let's assign the plan from the previous example to a subscriber with several IPs. | ||
+ | |||
+ | Check that database support is enabled in DPI **/// | ||
+ | < | ||
+ | udr=1 | ||
+ | </ | ||
+ | If it is not enabled: we enable it and restart DPI: service fastdpi restart | ||
+ | |||
+ | Reserve for corporative subscriber all his IPs: | ||
+ | < | ||
+ | fdpi_ctrl load --bind_multi --user OOO_PizzaJohnes: | ||
+ | </ | ||
+ | The subscriber' | ||
+ | |||
+ | Let's assign the bandwidth limits according to the plan: | ||
+ | < | ||
+ | fdpi_ctrl load --policing rateplan_1.cfg --login PizzaJohnes_LLC | ||
+ | </ | ||
+ | |||
+ | <note tip> |