Jump to content
Калькуляторы

ipt-ratelimit трафик полисинг в iptables

Автору этого чудного модуля - Многая лета!

+1

 

Выяснилась причина падения серверов, с ядрами > 3.2 и accel-ppp. Причина в accel-ppp или нелюбви новых ядер к accel-ppp.

Это уже все знают. А вот что у них не дружит, вот это бы узать))))

Share this post


Link to post
Share on other sites

telecom

Без PPP они дружат замечательно, аццель в IPOE у нас на 3.18 работает уже год наверное.

Share this post


Link to post
Share on other sites

Скачал debian 8 поставил - запускаю.

root@wed:/home/wed/ipt-ratelimit-master# iptables -m ratelimit --help
iptables v1.4.21
...
ratelimit match options:
 --ratelimit-set <name>    Name of the ratelimit set to be used.
                           DEFAULT will be used if none given.
 --ratelimit-mode <mode>   Address match: src or dst.
xt_ratelimit by: ABC <abc@telekom.ru>.


root@wed:/home/wed/ipt-ratelimit-master# modinfo xt_ratelimit.ko
filename:       /home/wed/ipt-ratelimit-master/xt_ratelimit.ko
alias:          ipt_ratelimit
version:        0.1
license:        GPL
description:    iptables ratelimit policer mt module
author:         <abc@telekom.ru>
srcversion:     E057A6E1DF92696D4514F88
depends:        x_tables
vermagic:       3.16.0-4-amd64 SMP mod_unload modversions 
parm:           hashsize:default size of hash table used to look up IPs (uint)


root@wed:/home/wed/ipt-ratelimit-master# iptables --ratelimit-set name0 --ratelimit-mode src -j DROP
iptables v1.4.21: unknown option "--ratelimit-set"
Try `iptables -h' or 'iptables --help' for more information.

Пишет unknown option "--ratelimit-set"

Что может быть? куда копнуть дальше?

Share this post


Link to post
Share on other sites

Скачал debian 8 поставил - запускаю.

root@wed:/home/wed/ipt-ratelimit-master# iptables --ratelimit-set name0 --ratelimit-mode src -j DROP
iptables v1.4.21: unknown option "--ratelimit-set"
Try `iptables -h' or 'iptables --help' for more information.

Пишет unknown option "--ratelimit-set"

Что может быть? куда копнуть дальше?

Может так ?

iptables -A FORWARD --ratelimit-set name0 --ratelimit-mode src -j DROP

Share this post


Link to post
Share on other sites

Нет не помогло

root@wed:/home/wed/ipt-ratelimit-master# iptables -A FORWARD --ratelimit-set name0 --ratelimit-mode src -j DROP
iptables v1.4.21: unknown option "--ratelimit-set"
Try `iptables -h' or 'iptables --help' for more information.

Share this post


Link to post
Share on other sites

В каком плане?

iptables -m ratelimit --ratelimit-set name0 --ratelimit-mode src -j DROP
iptables v1.4.21: no command specified
Try `iptables -h' or 'iptables --help' for more information.

 

 iptables -m ratelimit 
iptables v1.4.21: ratelimit: option "--ratelimit-set" must be specified

Try `iptables -h' or 'iptables --help' for more information.

 

Надо писать все команды с добавлением -m ratelimit?

 

Заработало

iptables -A FORWARD -m ratelimit --ratelimit-set name0 --ratelimit-mode src -j DROP

Share this post


Link to post
Share on other sites

wed

Перед --ratelimit* опциями напишите -m ratelimit, как в примерах в README.

Share this post


Link to post
Share on other sites

скажите, а такую конструкцию

 

 

echo +10.0.0.0,10.0.0.1,10.0.0.2,10.0.0.3,10.0.0.4,10.0.0.5,10.0.0.6,10.0.0.7,10.0.0.8,10.0.0.9,10.0.0.10,10.0.0.11,10.0.0.12,10.0.0.13,10.0.0.14,10.0.0.15,10.0.0.16,10.0.0.17,10.0.0.18,10.0.0.19,10.0.0.20,10.0.0.21,10.0.0.22,10.0.0.23,10.0.0.24,10.0.0.25,10.0.0.26,10.0.0.27,10.0.0.28,10.0.0.29,10.0.0.30,10.0.0.31,10.0.0.32,10.0.0.33,10.0.0.34,10.0.0.35,10.0.0.36,10.0.0.37,10.0.0.38,10.0.0.39,10.0.0.40,10.0.0.41,10.0.0.42,10.0.0.43,10.0.0.44,10.0.0.45,10.0.0.46,10.0.0.47,10.0.0.48,10.0.0.49,10.0.0.50,10.0.0.51,10.0.0.52,10.0.0.53,10.0.0.54,10.0.0.55,10.0.0.56,10.0.0.57,10.0.0.58,10.0.0.59,10.0.0.60,10.0.0.61,10.0.0.62,10.0.0.63,10.0.0.64,10.0.0.65,10.0.0.66,10.0.0.67,10.0.0.68,10.0.0.69,10.0.0.70,10.0.0.71,10.0.0.72,10.0.0.73,10.0.0.74,10.0.0.75,10.0.0.76,10.0.0.77,10.0.0.78,10.0.0.79,10.0.0.80,10.0.0.81,10.0.0.82,10.0.0.83,10.0.0.84,10.0.0.85,10.0.0.86,10.0.0.87,10.0.0.88,10.0.0.89,10.0.0.90,10.0.0.91,10.0.0.92,10.0.0.93,10.0.0.94,10.0.0.95,10.0.0.96,10.0.0.97,10.0.0.98,10.0.0.99,10.0.0.100,10.0.0.101,10.0.0.102,10.0.0.103,10.0.0.104,10.0.0.105,10.0.0.106,10.0.0.107,10.0.0.108,10.0.0.109,10.0.0.110,10.0.0.111,10.0.0.112,10.0.0.113,10.0.0.114,10.0.0.115,10.0.0.116,10.0.0.117,10.0.0.118,10.0.0.119,10.0.0.120,10.0.0.121,10.0.0.122,10.0.0.123,10.0.0.124,10.0.0.125,10.0.0.126,10.0.0.127,10.0.0.128,10.0.0.129,10.0.0.130,10.0.0.131,10.0.0.132,10.0.0.133,10.0.0.134,10.0.0.135,10.0.0.136,10.0.0.137,10.0.0.138,10.0.0.139,10.0.0.140,10.0.0.141,10.0.0.142,10.0.0.143,10.0.0.144,10.0.0.145,10.0.0.146,10.0.0.147,10.0.0.148,10.0.0.149,10.0.0.150,10.0.0.151,10.0.0.152,10.0.0.153,10.0.0.154,10.0.0.155,10.0.0.156,10.0.0.157,10.0.0.158,10.0.0.159,10.0.0.160,10.0.0.161,10.0.0.162,10.0.0.163,10.0.0.164,10.0.0.165,10.0.0.166,10.0.0.167,10.0.0.168,10.0.0.169,10.0.0.170,10.0.0.171,10.0.0.172,10.0.0.173,10.0.0.174,10.0.0.175,10.0.0.176,10.0.0.177,10.0.0.178,10.0.0.179,10.0.0.180,10.0.0.181,10.0.0.182,10.0.0.183,10.0.0.184,10.0.0.185,10.0.0.186,10.0.0.187,10.0.0.188,10.0.0.189,10.0.0.190,10.0.0.191,10.0.0.192,10.0.0.193,10.0.0.194,10.0.0.195,10.0.0.196,10.0.0.197,10.0.0.198,10.0.0.199,10.0.0.200,10.0.0.201,10.0.0.202,10.0.0.203,10.0.0.204,10.0.0.205,10.0.0.206,10.0.0.207,10.0.0.208,10.0.0.209,10.0.0.210,10.0.0.211,10.0.0.212,10.0.0.213,10.0.0.214,10.0.0.215,10.0.0.216,10.0.0.217,10.0.0.218,10.0.0.219,10.0.0.220,10.0.0.221,10.0.0.222,10.0.0.223,10.0.0.224,10.0.0.225,10.0.0.226,10.0.0.227,10.0.0.228,10.0.0.229,10.0.0.230,10.0.0.231,10.0.0.232,10.0.0.233,10.0.0.234,10.0.0.235,10.0.0.236,10.0.0.237,10.0.0.238,10.0.0.239,10.0.0.240,10.0.0.241,10.0.0.242,10.0.0.243,10.0.0.244,10.0.0.245,10.0.0.246,10.0.0.247,10.0.0.248,10.0.0.249,10.0.0.250,10.0.0.251,10.0.0.252,10.0.0.253,10.0.0.254,10.0.0.255 10000000 > /proc/net/ipt_ratelimit/name0

 

модуль прожует? и сильно ли это скажется на производительности?

 

это 10.0.0.0/24 =)

Share this post


Link to post
Share on other sites

boco

256 адресов в 1 строку для модуля, по производительности, то же самое, что и 256 строк. Там используется хэш таблица, размер таблицы по умолчанию 10000 (можно менять параметром hashsize), т.е. 256 значений, это будет ерунда.

 

Единственное, сейчас есть ограничение на длинну строки 4000 байт, у вас вышло 2716, так что всё нормально.

Share this post


Link to post
Share on other sites

сейчас есть ограничение на длинну строки 4000 байт, у вас вышло 2716, так что всё нормально.

спасибо! а могу я увеличить в исходнике proc_buf и не будет ли от этого вреда?

Share this post


Link to post
Share on other sites

Как там перспективы на полисинг с маской? У нас по /29 на пользователя выдаётся, например, хочется попробовать.

Share this post


Link to post
Share on other sites

Dyr

Пока были неясности с тем что за паника у sanyasi я решил не усложнять код. Как выяснилось, проблемы были из-за accel-ppp. Так что скоро сделаю префиксы.

Share this post


Link to post
Share on other sites

OK, буду ждать!

 

Спасибо за модуль(-и). :)

 

 

Share this post


Link to post
Share on other sites

Пока были неясности с тем что за паника у sanyasi я решил не усложнять код. Как выяснилось, проблемы были из-за accel-ppp. Так что скоро сделаю префиксы.

А по поддержке ipv6 какие перспективы?

Share this post


Link to post
Share on other sites

taf_321

Пока не планировал, сначала с префиксами разберемся.

Share this post


Link to post
Share on other sites

 

Цитата

А возможно сделать чтоб добавлять IP к уже работающему тарифу, без удаления ?

 

Зачем? Разве не просто сделать -+?

тоже хотелось бы чтобы правило нарезки имел свой classID для управления что повлечёт за собой создание иерархии в виде дерева HTB

 

и ещё если я правильно понял conf 0/0 ---0--- bps это битрейт, но почему-то он не всегда правильно отображает иногда режет в половину

Edited by SiXeD

Share this post


Link to post
Share on other sites

[...] bps это битрейт, но почему-то он не всегда правильно отображает иногда режет в половину

 

Как вы это поняли?

Share this post


Link to post
Share on other sites

[...] bps это битрейт, но почему-то он не всегда правильно отображает иногда режет в половину

 

Как вы это поняли?

я прогнал тестом с 128 кбит и дальше на каждом шаге умножая на 2 и получил вот что.

На первый взгляд работает верно.

Сохранил картинку только для малых скоростей правда ограничив по вертикальной оси - иначе тяжело что то понять было.

rate_limit.png

Share this post


Link to post
Share on other sites

Как вы это поняли?

 

хотя скорость нарезает правильно+ %10 11.15 Mb/s

cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 7.87615 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.100 7.95314 1;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.02012 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.05435 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.77058 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.82375 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.82043 0;
cat  /proc/net/ipt_ratelimit/test_out | awk '{print $1, $16/1024/1024/8, $13}'
10.10.0.100 8.81012 0;

 

 

нужно время для отображения или я что-то не понимаю

Edited by SiXeD

Share this post


Link to post
Share on other sites

SiXeD

Это значение bps не используется для ограничения скорости, это скорее значение для тестирования. Рассчитывается как кол-во байт между первым и последним пакетом деленное на время. Т.е. это усреднение за весь интервал.

Share this post


Link to post
Share on other sites

есть возможность вывести реальный битрейт для отслеживания онлайн

Share this post


Link to post
Share on other sites

[...] bps это битрейт, но почему-то он не всегда правильно отображает иногда режет в половину

 

Как вы это поняли?

я прогнал тестом с 128 кбит и дальше на каждом шаге умножая на 2 и получил вот что.

На первый взгляд работает верно.

Сохранил картинку только для малых скоростей правда ограничив по вертикальной оси - иначе тяжело что то понять было.

Тест единственной сессией TCP? Возможно похоже на "биение" скорости, типично если нет PID алгоритма(или его аналога) в TCP congestion control на передающем устройстве и в шейпере.

Share this post


Link to post
Share on other sites

есть возможность вывести реальный битрейт для отслеживания онлайн

 

Есть, но это увеличит нагрузку, что не целесообразно. Просто знайте, что bps это средняя скорость за весь период. В крайнем случае, можно это убрать из статистики раз это вводит в заблуждение.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now