справедливо разделить канал безлимитчиков

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Oleg_Rus
рядовой
Сообщения: 32
Зарегистрирован: 2008-09-19 8:17:41

справедливо разделить канал безлимитчиков

Непрочитанное сообщение Oleg_Rus » 2008-10-01 14:07:34

Здравствуйте, все!
Картина такая --
есть 2 канала связи - лимит и безлимит. С лимитом все в полном порядке, а вот с безлимитом - полный бардак...* :-\
Упущу подробное описание сети - перейду к делу

За всей сетью "следит" самописный биллинг, который при переключении режима тарификации управляет "списком безлимитчиков".
Сеть разделена на 4 подсети --

Код: Выделить всё

10.52.0.1/24
10.52.2.1/24
10.52.4.1/24
10.52.6.1/24
Все локальные хосты на одном интерфейсе роутера - eth2
На eth0 висит лимитный канал
На eth1 - "служебная" связть роутера и сервера (для биллинга)
eth3 - резервный интерфейс
eth4 - безлимитный канал

Т.е. пользователь, зайдя в личный кабинет выбирает себе тарифный план - Базовый (Лимитный) или Безлимит на n-дней.
На сервере создан каталог, который при загруске всей системы монтируется на роутер (nfs) и исходя из "данных" этого каталога работает с клиентами.
Там же есть файл - tclist* (сделано на будующее и знал, что это надо будет делать), в который заносятся данные о пользователе и его выбранной скорости.
Данные храняться в таком виде --
Код:

Код: Выделить всё

# tail -10 /remote/tclist
10.52.4.18:256
10.52.4.2:256
10.52.4.3:256
10.52.4.6:256
10.52.4.9:256
10.52.6.2:256
10.52.6.3:256
10.52.6.4:256
10.52.6.5:256
Т.е. первое - это адрес локального (конечного) хоста, через ":" - скорость в Кбитах
В данном примере скорость приведена, как пример, т.к. в данное время я еще не "обучил" свой роутер работать с этими данными. В моем случае скорость пока упущена.


Так же есть такое дело --

Код: Выделить всё

# cat /remote/tclist.filter
10.52.0.17:unlimited_256_30
10.52.0.18:unlimited_256_60
10.52.0.20:unlimited_256_60
10.52.0.22:unlimited_256_30
10.52.0.24:unlimited_256_30
10.52.0.26:unlimited_256_30
10.52.0.27:unlimited_256_30
.............
10.52.4.18:unlimited_256_15
10.52.4.2:unlimited_256_60
10.52.4.3:unlimited_256_30
10.52.4.6:unlimited_256_30
10.52.4.9:unlimited_256_60
10.52.6.2:unlimited_256_30
10.52.6.3:unlimited_256_60
10.52.6.4:unlimited_256_30
10.52.6.5:unlimited_256_30
10.52.6.6:unlimited_256_60
Исходя из поля после ":" сервер устанавливает и следит за безлимитом n-дней, указанных в tclist.filter
По окончанию периода - переводит безлимитчика на лимит. Но все это - лирика

На роутере, соответсвенно, поднят NAT
Роутер работает по следующей цепочке --
-- хост просит запрос в "Мир" -- роутер проверяет, нет ли информации об этом хосте в tclist -- если его нет, пропускает через лимитный канал;
-- хост просит запрос в "Мир" -- роутер проверяет, нет ли информации об этом хосте в tclist -- если он находит о нем информацию -- ставит метку на трафик этого хоста и пропускает его через iptables по следующему правилу --

Код: Выделить всё

GW_UNLIM=***.***.132.162

iptables -t mangle -N unlimit
for x in $MYNETS
do
* iptables -t mangle -A unlimit -d $x -j RETURN
done
iptables -t mangle -A unlimit -j MARK --set-mark 0x48

ip rule ls | sed -n -e 's/all/0\/0/' -e 's/^48:/ip rule del/p' | sh
ip route del table 48
ip rule add fwmark 0x48 pref 48 table 48
ip route add table 48 default via $GW_UNLIM

TCLIST="/remote/tclist"
if [ -f $TCLIST ]; then
* * for x in `cat $TCLIST`; do
* * * * IPADDR=`echo $x|cut -d: -f1`
* * * * iptables -t mangle -I PREROUTING -s $IPADDR -j unlimit
* * done
fi

true
Воспрос: как можно "привязать" гарантируемую скорость к адресам, которые роутер находит в tclist? Или, хотябы "зарезать" максимальную скорость, но не всей трубы, а именно адресов, указанных в tclist

И при этом учесть, что в локальной сети стоит web-сервер, почтовик, dns, рассположенный на eth1, к которому ограничение скорости никак не должно относиться, хотя - это можно пока упустить. Важнее - решить проблему скорости

ЗЫ: сейчас безлимитный канал работает так - кто первый встал, того и тапки :-o

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Oleg_Rus
рядовой
Сообщения: 32
Зарегистрирован: 2008-09-19 8:17:41

Re: справедливо разделить канал безлимитчиков

Непрочитанное сообщение Oleg_Rus » 2008-10-03 9:16:38

извините, но мне очень нужно решить этот вопрос.
Тема UP

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: справедливо разделить канал безлимитчиков

Непрочитанное сообщение zingel » 2008-10-03 9:28:32

это - называется QoS, если я всё верно понял, то вот неплохой линк

http://support.imagestream.com/QOS_with ... SSIFY.html
Z301171463546 - можно пожертвовать мне денег