Перейти до

Организация отдельных шейперов на мир и на украину


Рекомендованные сообщения

Доброго всем времени суток!

Есть необходимость реализовать отдельные шейпера на мир и на украину, но недостаточно теоретических и практических познаний. :lol:

Для начала вкратце обрисую текущую схему работы.

Есть сервер на линуксе, на нём крутится ВПН-сервер, в него же включен инет-канал, на этом же сервере осуществляется НАТ. Абоненты подключаются по ВПН к этому серверу, НАТятся и уходят к аплинку. В данный момент нет разделения на мир и украину - всё идёт одной трубой к аплинку. Есть также абоненты, которым выдаются в ВПН-туннеле реальные адреса (на их конце трубы) - такие просто форвардятся этим сервером в аплинк.

Нарезка скоростей осуществляется с помощью IMQ и tc - трафик каждого поднятого ВПН абонента маркируется в iptables и режется согласно тарифу.

 

Теперь об изменениях которые будут производится.

Куплены AS+PI, готовится к запуску линукс сервер, на котором будет поднята BGP сессия с аплинком, который начнет подавать отдельно мир и украину.

 

Что получим в конечном итоге - отделение украинского трафика от мирового и разбрасывания автоматом по нужным аплинк каналам.

 

Но теперь осталась нерешенной задача шейпинга абонентского канала. Есть необходимость делать разные шейпера на мир и на украину. Т.е. к примеру тариф "1мбит мира анлим + 5мбит украины анлим".

Кто может проконсультировать по технической реализации подобного механизма отдельных шейперов?... :)

 

P.S. Предложения по смене биллинга на какой-то, который уже это умеет, не подходят. Разве что раскопать как именно этот биллинг это делает и реализовать аналог самостоятельно :)

Ссылка на сообщение
Поделиться на других сайтах

Сам парюсь с этим вопросом, то до чего допарился пока это вот

1 создаём цепочку в ipset

2 добавляем туда сети Украины

3 маркируем пакеты

iptables -F -t mangle
iptables -t mangle -A PREROUTING -j MARK --set-mark 3
ipset -X UKRAINE
ipset -N UKRAINE nethash
ipset -A UKRAINE 62.64.64.0/18 #UA-IX
ipset -A UKRAINE 62.64.88.0/21 #UA-IX
ipset -A UKRAINE 62.64.96.0/21 #UA-IX
....
ipset -A UKRAINE 217.199.236.0/23 #UA-IX
iptables -t mangle -A PREROUTING -m set --set UKRAINE src,dst -j MARK --set-mark 2

дальше при поднятии интерфейса выставляем шейпер на ppp интерфейс

/sbin/tc qdisc del dev $peer handle ffff: ingress
/sbin/tc qdisc add dev $peer handle ffff: ingress
/sbin/tc filter add dev $peer parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate скорость_InetKbit burst 24k drop flowid :1
/sbin/tc qdisc del dev $peer root
/sbin/tc qdisc add dev $peer root handle $uId:0 htb default 99 r2q 10
/sbin/tc class add dev $peer parent $uId: classid $uId:1 htb rate скорость_Inet+скорость_UkraineMbit quantum 1500
## Ua-IX Speed
/sbin/tc class add dev $peer parent $uId:1 classid $uId:20 htb rate скорость_UkraineMbit burst 24k
## Inet Speed
/sbin/tc class add dev $peer parent $uId:1 classid $uId:30 htb rate скорость_InetKbit burst 24k prio 0
## Ua-IX prio
/sbin/tc filter add dev $peer parent $uId:0 protocol ip prio 3 handle 0x2 fw classid $uId:20
## Inet prio
/sbin/tc filter add dev $peer parent $uId:0 protocol ip prio 2 handle 0x3 fw classid $uId:30
/sbin/tc qdisc add dev $peer parent $uId:20 handle 2: sfq perturb 10 # UA-IX
/sbin/tc qdisc add dev $peer parent $uId:30 handle 3: sfq perturb 10 # Inet

$peer - pppN

$uId - классы под юзеров с разным номером

получается как-то так, если есть претензии по шейперу:lol: что я где-то набокапорил, пишите:)

 

ну и регулярно запускается скриптик который из bgp дергает набор правил Украины, и перебивает их в ipset

Ссылка на сообщение
Поделиться на других сайтах

Ага :lol:

Вот похоже ipset - это и есть мой пробел в теоретических познаниях :)

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

И как оно со скоростью обработки?

Ссылка на сообщение
Поделиться на других сайтах

Ага :lol:

Вот похоже ipset - это и есть мой пробел в теоретических познаниях :)

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

И как оно со скоростью обработки?

ничего не могу сказать про скорость, второй день как пересел на ipset, нагрузка на систему упала однозначно, до этого была прямая маркировка пакетов через iptables.

да, все украинские пакеты у меня идут с одной меткой.

Ссылка на сообщение
Поделиться на других сайтах

Ещё не совсем понял один момент - шейпера навешиваются на ппп?

И что, в обе стороны шейпит?

Я для организации шейпинга в обе стороны использую сейчас 2 IMQ интерфейса - один для трафика с мира в ппп, другой с ппп в мир.

И уже в них шейпится всё.

Ссылка на сообщение
Поделиться на других сайтах

А у меня глупый вопрос - вы это шейпите для кого ? Для юзера ? Помоему он - юзер этого просто не оценит . Ну понятное дело у прова можно прикупить по разной цене украину и мир и этим себе экономить предварительно так нехило проанализировав эти потоки . Но все же это ведь кусок хлеба для вас , а не для юзера . Для примера в европе тоже существует местный траф и зарубежный , но тамошние провы его продают по одной цене . Так стоит ли заморачиваться , ведь реально вы будете лопатить этот траф своим железом , ресурсов которого станет просто недостаточно за копейки Васи или Пети .

Ссылка на сообщение
Поделиться на других сайтах

А у меня глупый вопрос - вы это шейпите для кого ? Для юзера ? Помоему он - юзер этого просто не оценит . Ну понятное дело у прова можно прикупить по разной цене украину и мир и этим себе экономить предварительно так нехило проанализировав эти потоки . Но все же это ведь кусок хлеба для вас , а не для юзера . Для примера в европе тоже существует местный траф и зарубежный , но тамошние провы его продают по одной цене . Так стоит ли заморачиваться , ведь реально вы будете лопатить этот траф своим железом , ресурсов которого станет просто недостаточно за копейки Васи или Пети .

 

Это всё понятно и очевидно :lol:

И уже тут не раз обсуждался наш украинский менталитет приведший в итоге к тому, что украинский трафик вместо облегчения жизни провам стал просто одним из средств маркетинговой и конкурентной борьбы :)

Тобишь в моей ситуации описанная задача вызвана как раз конкурентной ситуацией - конкуренты наливают украину абонентам даром в нагрузку к мировому анлиму.

Но пока наливать без шейперов нет возможности (как впрочем и необходимости).

Посему имеем задачу описанную в первом посте :lol:

Ссылка на сообщение
Поделиться на других сайтах

2Pretender:

 

Ещё попутно пара вопросов нарисовалась :lol:

1. Не вижу в приведенном коде как шейпера на ппп цепляются к общему шейперу канала - он вообще есть?

2. Как будет делиться полоса в такой ситуации: общий канал в мир - 2мбита, подключено 3 ппп с лимитом на 1мбит каждый... и все тянут вовсю :)

Принимаем тот факт что все тянут по хттп и гарантированно с мира (чтобы откинуть варианты "ухода" трафика на украинскую полосу)

Ссылка на сообщение
Поделиться на других сайтах

2Pretender:

 

Ещё попутно пара вопросов нарисовалась :)

1. Не вижу в приведенном коде как шейпера на ппп цепляются к общему шейперу канала - он вообще есть?

2. Как будет делиться полоса в такой ситуации: общий канал в мир - 2мбита, подключено 3 ппп с лимитом на 1мбит каждый... и все тянут вовсю :)

Принимаем тот факт что все тянут по хттп и гарантированно с мира (чтобы откинуть варианты "ухода" трафика на украинскую полосу)

1. нету, была идея, пока было мало конкурентов так сделать, сейчас это себе дороже.

2. кто как отхватит...

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

 

to 911: у вас во фре свои крокодилы:lol:

Ссылка на сообщение
Поделиться на других сайтах

911:

Я рад за фрюшу, но всё же в данный момент вопрос стоит именно о линухах.

 

Pretender:

 

Так я так и не услышал ответа - шейпера на оба направления работают? и вход и исход режет?

Ссылка на сообщение
Поделиться на других сайтах

911:

Я рад за фрюшу, но всё же в данный момент вопрос стоит именно о линухах.

 

Pretender:

 

Так я так и не услышал ответа - шейпера на оба направления работают? и вход и исход режет?

строчки с ingress ограничивает "исходящий траффик" интерфейса, к сожалению, там режется просто скорость, маски там не доступны, поэтому я исходящую скорость интерфейса режу по скорости инета, купленного абонентом.

Ссылка на сообщение
Поделиться на других сайтах

во FreeBSD это делается вообще элементарно :)

Якщо не складно можна детально розписати що і як

запросто :rolleyes:

 

ipfw add 100 pipe tablearg ip from 'table(4)' to 'table(2)' in # ua-ix client out
ipfw add 110 pipe tablearg ip from 'table(5)' to any in # inet client out
ipfw add 200 pipe tablearg ip from 'table(2)' to 'table(6)' out # ua-ix client in
ipfw add 210 pipe tablearg ip from any to 'table(7)' out # inet client in

как-то так :)

в таблицу №2 складываем список префиксов уа-аикс

Ссылка на сообщение
Поделиться на других сайтах

А кто может подсказать откуда кроме bgp можно брать актуальный список украинских сетей?

Видел например вот тут - http://www.colocall.net/ua/prefixes.txt.

Может ли кто-то сказать насколько оперативно этот список обновляется?

Т.е. если предположить что какая то сетка выпала из UA-IX'а, то через какое время она пропадёт из этого колокольного файлика?

Ссылка на сообщение
Поделиться на других сайтах

лучше писать два источка, т.к. один из .. бывает недоступен

 

URL="http://www.colocall.net/ua/prefixes.txt"

URL_BACKUP="http://noc.ix.net.ua/ua-list.txt"

 

и списки обновляем каждые 10 минут ...

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...