Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:freebsd_dummynet [2011/09/15 11:21] asmodeus [Пример правил перенаправления в Pipe] |
abills:docs:manual:freebsd_dummynet [2018/03/09 15:26] (текущий) anton [Отслеживание проблем] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
=====FreeBSD Dummynet/table шейпер===== | =====FreeBSD Dummynet/table шейпер===== | ||
+ | |||
+ | Данная схема шейпера работает следующим образом\\ | ||
+ | При старте системы инициализируются правила обрезки скорости для каждого тарифного плана два правила на каждый класс трафика. | ||
+ | При подключении абонента его ип вносится в IPFW таблицу 10 и 11 (входной и исходящий трафик) с аргументом номер тарифного плана | ||
+ | |||
+ | |||
====Опции ядра==== | ====Опции ядра==== | ||
Строка 9: | Строка 15: | ||
**Таблицы сетей. Данные о сетях** | **Таблицы сетей. Данные о сетях** | ||
- | ^table 1 | Всегда глобальная таблица. Значение по умолчанию 0.0.0.0/0 | | + | ^table 1 | Всегда глобальная таблица. Значение по умолчанию 0.0.0.0/0 | |
- | ^table 2 | Таблица с пиринговыми сетями | | + | ^table 2 | Таблица с пиринговыми сетями | |
В таблицу пиринговых сетей данные заносятся следующим образом | В таблицу пиринговых сетей данные заносятся следующим образом | ||
Строка 18: | Строка 24: | ||
Таблицы клиентов. В них сохраняются данные по клиентам. | Таблицы клиентов. В них сохраняются данные по клиентам. | ||
+ | ^table 9 |Добавляются абоненты у которых нет ограничения по глобальному трафику | | ||
^table 10 | Таблица клиентов для входящего трафика | | ^table 10 | Таблица клиентов для входящего трафика | | ||
^table 11 | Таблица клиентов для исходящего трафика | | ^table 11 | Таблица клиентов для исходящего трафика | | ||
- | ^table 12 | Таблица клиентов для входящего пирингового трафика | | + | ^table 12 | Таблица клиентов для входящего пирингового трафика класс 2 | |
- | ^table 13 | Таблица клиентов для исходящего пирингового трафика | | + | ^table 13 | Таблица клиентов для исходящего пирингового трафика класс 2 | |
+ | ^table 14 | Таблица клиентов для входящего пирингового трафика класс 3 | | ||
+ | ^table 15 | Таблица клиентов для исходящего пирингового трафика класс 3 | | ||
В таблицы заносятся следующие данные | В таблицы заносятся следующие данные | ||
Строка 37: | Строка 46: | ||
Для поднятий правил шейпирования при старте системы используется программа | Для поднятий правил шейпирования при старте системы используется программа | ||
- | # cp /usr/abills/misc/ipfw/shaper_start.sh shaper_start.sh | + | |
+ | # cp /usr/abills/misc/freebsd/shaper_start.sh /usr/local/etc/rc.d/shaper_start.sh | ||
**/etc/rc.conf** | **/etc/rc.conf** | ||
abills_shaper_enable="YES" | abills_shaper_enable="YES" | ||
Строка 44: | Строка 55: | ||
- | ====Пример правил перенаправления в Pipe==== | ||
- | 08000 0 0 pipe tablearg ip from table(14) to table(2,2) out xmit ng* | ||
- | 08010 0 0 pipe tablearg ip from table(2,2) to table(15) in recv ng* | ||
- | 09000 0 0 pipe tablearg ip from table(12) to table(2,1) out xmit ng* | ||
- | 09010 0 0 pipe tablearg ip from table(2,1) to table(13) in recv ng* | ||
- | 10000 0 0 pipe tablearg ip from table(10) to any out xmit ng* | ||
- | 10010 0 0 pipe tablearg ip from any to table(11) in recv ng* | ||
- | 10020 0 0 allow ip from table(9) to any out xmit ng* | ||
- | 10025 0 0 allow ip from any to table(9) in recv ng* | ||
** При установке скорости в аккаунте пользователя если она еще не указывалась другим пользователям нужно переинициализировать шейпер ** | ** При установке скорости в аккаунте пользователя если она еще не указывалась другим пользователям нужно переинициализировать шейпер ** | ||
Строка 71: | Строка 73: | ||
+ | ====Проверка работоспособности==== | ||
+ | |||
+ | **правил перенаправления в Pipe** | ||
+ | |||
+ | # ipfw show | ||
+ | |||
+ | 08000 0 0 pipe tablearg ip from table(14) to table(2,2) out xmit ng* | ||
+ | 08010 0 0 pipe tablearg ip from table(2,2) to table(15) in recv ng* | ||
+ | 09000 0 0 pipe tablearg ip from table(12) to table(2,1) out xmit ng* | ||
+ | 09010 0 0 pipe tablearg ip from table(2,1) to table(13) in recv ng* | ||
+ | 10000 0 0 pipe tablearg ip from table(10) to any out xmit ng* | ||
+ | 10010 0 0 pipe tablearg ip from any to table(11) in recv ng* | ||
+ | 10020 0 0 allow ip from table(9) to any out xmit ng* | ||
+ | 10025 0 0 allow ip from any to table(9) in recv ng* | ||
+ | |||
+ | **Занесённые адреса в таблицы 10,11 (глобальный шейпер)** | ||
+ | # ipfw table 10 list | ||
+ | |||
+ | 10.11.1.1/32 5145 | ||
+ | |||
+ | # ipfw table 11 list | ||
+ | |||
+ | 10.11.1.1/32 6145 | ||
+ | |||
+ | **Поднятые пайпы (правила нарезки скорости)** | ||
+ | # ipfw pipe show 5145 6145 | ||
+ | | ||
+ | 5145: 2.028 Mbit/s 0 ms burst 0 | ||
+ | q136217 202 KB 0 flows (1 buckets) sched 70681 weight 0 lmax 0 pri 0 droptail | ||
+ | sched 70681 type FIFO flags 0x1 64 buckets 0 active | ||
+ | mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000 | ||
+ | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp | ||
+ | | ||
+ | 06145: 1.024 Mbit/s 0 ms burst 0 | ||
+ | q137217 102 KB 0 flows (1 buckets) sched 71681 weight 0 lmax 0 pri 0 droptail | ||
+ | sched 71681 type FIFO flags 0x1 64 buckets 0 active | ||
+ | mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000 | ||
+ | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp | ||
====Оптимизации==== | ====Оптимизации==== | ||
**/etc/sysctl.conf** | **/etc/sysctl.conf** | ||
Строка 98: | Строка 138: | ||
| | ||
net.inet.flowtable.enable=0 | net.inet.flowtable.enable=0 | ||
- | | + | |
+ | =====Отслеживание проблем====== | ||
+ | |||
+ | при подключении абонента должен попасть в 10 и 11 таблицу | ||
+ | |||
+ | |||
+ | ipfw table 10 list | grep [IP клиента] | ||
+ | ipfw table 11 list | grep [IP клиента] | ||
+ | |||
+ | результат | ||
+ | |||
+ | <code> | ||
+ | ipfw table 10 list | grep 10.0.0.1 | ||
+ | --- table(10), set(0) --- | ||
+ | 10.0.0.1/32 5024 | ||
+ | </code> | ||
+ | |||
+ | Если результат пустой значит не срабатывает linkupdown | ||
+ | |||
+ | 5024 - номер Pipe канала для шейпера | ||
+ | |||
+ | ipfw pipe 5024 list | ||
+ | |||
+ | отображение правил шейпера | ||
+ | |||
+ | |||
+ | проверка включен ли редирект траффика на шейпер | ||
+ | |||
+ | ipfw show | ||
+ | |||
+ | <code> | ||
+ | 10000 0 0 pipe tablearg ip from table(10) to any out xmit ng* | ||
+ | 10010 0 0 pipe tablearg ip from any to table(11) in recv ng* | ||
+ | </code> | ||
+ | |||
+ | если вторая и третья колонка нули значит трафик не попадает |