Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf:start [2020/02/05 17:31] – ↷ Page moved from en:dpi:dpi_options:base_functionality:opt_bandwidth_mgmt:bandwidth_conf:start to en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf:start lexx26 | en:dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf:start [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 2 Configuration ====== | ||
- | {{indexmenu_n> | ||
- | 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 ===== | ||
- | |||
- | 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 split 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 create 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. | ||
- | |||
- | <note warning> | ||
- | |||
- | 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 '' | ||
- | 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 us 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' | ||
- | |||
- | Assign the bandwidth limits according to the plan: | ||
- | < | ||
- | fdpi_ctrl load --policing rateplan_1.cfg --login PizzaJohnes_LLC | ||
- | </ | ||
- | |||
- | <note tip>For advanced users: We advise to learn how to [[bandwidth_incoming|control outbound traffic via feedback loop]].</ |