Возможно вы искали: 'XIII Century: Blood of...'

May 15 2025 19:05:46
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Способы шейпирования трафика. RADIUS-атрибуты для Cisco и внешние скрипты под Linux и FreeBSD (cisco linux freebsd bandwidth limit shaper)

Способы шейпирования трафика. RADIUS-атрибуты для Cisco и внешние скрипты под Linux и FreeBSD (cisco linux freebsd bandwidth limit shaper)

Ключевые слова: cisco, linux, freebsd, bandwidth, limit, shaper, (найти похожие документы)

From: NetUP Team <info@netup.ru.>
Newsgroups: email
Date: Mon, 30 Jun 2009 17:02:14 +0000 (UTC)
Subject: Способы шейпирования трафика. RADIUS-атрибуты для Cisco и внешние скрипты под Linux и FreeBSD

Общие положения

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

статическим (постоянным, т.е. зависящим только от тарифного плана);
динамическим (меняющимся в зависимости от объёмов израсходованного трафика,
а также от времени суток).

Регулировка полосы пропускания фактически происходит на маршрутизаторах
трафика. В качестве таких устройств могут выступать PC-маршрутизаторы,
маршрутизаторы Cisco, управляемые коммутаторы и т.п. Взаимодействие
биллингового ПО с этими устройствами может происходить следующим
образом:

1. Средствами внешних скриптов. По некоторому событию (например, при
расходовании определённого количества трафика) биллинговая система
запускает внешний скрипт управления шейпером, который меняет полосу
пропускания (или, возможно, разрывает соединение). В параметрах скрипту
обычно передаётся IP-адрес пользователя и новое значение установленной
для него полосы пропускания.

Скрипт вызывает внешние утилиты управления трафиком (например, tc из
пакета iproute2 в случае Linux и ipfw в случае FreeBSD со включённой
функциональностью dummynet). Для использования данных утилит может
требоваться предварительная настройка операционной системы или
стороннего ПО.

2. При помощи RADIUS-атрибутов (в случае услуг VPN и Dial-UP). В ответе
на запрос аутентификации RADIUS-сервер может отсылать атрибут или набор
атрибутов, определённый для данного абонента и данного NAS, и содержащий
в себе инструкции по управлению пропускной способностью устанавливаемого
соединения. В данном случае необходима поддержка этой возможности
программным обеспечением со стороны NAS. Такой поддержкой обладают, в
частности, маршрутизаторы Cisco.

При данном способе управления полоса пропускания устанавливается в
момент установления соединения, и её корректировка в зависимости от
израсходованного трафика происходит не мгновенно при достижении
определённого значения, а только при следующем соединении.

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


Реализация в UTM5

Биллинговая система UTM5 предлагает следующий подход к шейпированию:

1. В случае шейпирования с помощью внешних скриптов, передаваемые
скрипту параметры настраиваются на странице Правила firewall (в группе
Настройки). Каждое правило ассоциировано с одним или несколькими
событиями, при наступлении которых выполняется внешний скрипт с
заданными параметрами. Путь к скрипту указывает переменная firewall_path
в конфигурационном файле utm5_rfw.cfg.

Среди параметров скрипта можно указывать переменные, выбирая их из
выпадающего списка. При вызове скрипта вместо переменных подставляются
их значения: IP-адрес пользователя, текущее значение полосы пропускания
и т.д.

Статическое шейпирование можно реализовать с помощью правил,
выполняемых, например, при наступлении события Включение Интернета.

Динамическое шейпирование (возможно при наличии модуля динамического
шейпирования) осуществляется правилами, выполняемыми при наступлении
событий Установление ширины, Изменение ширины и Снятие ограничений
входящего (исходящего) канала. События первых двух типов происходят в
тот момент, когда суммарное количество трафика за отчётный период
переходит через границы, заданные на странице Динамическое шейпирование,
а событие Снятие ограничений - при закрытии отчётного периода или при
удалении сервисной связки. Если настроены разные границы для разных
временных диапазонов, события любого типа могут также происходить при
наступлении времени начала/окончания диапазона.

2. С помощью RADIUS-атрибутов:

Статическое шейпирование настраивается на вкладке RADIUS-параметры на
странице Услуга в группе Тарификация.

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


Примеры

RADIUS-атрибуты

Пример RADIUS-атрибутов для динамического шейпирования в случае маршутизатора Cisco.

ID вендора: 9;
ID атрибута: 1;
Тип атрибута: строка;
Значение:

lcp:interface-config#1=rate-limit input IN_BANDWIDTH_BITS 8000 8000 conform-action transmit exceed-action drop


Перед отправкой данной строки на NAS система подставляет на место
IN_BANDWIDTH_BITS числовое значение полосы пропускания для пользователя
(в бит/сек), зависящее от потреблённого трафика и заданных границ. Два
следующие параметра (в данном примере оба равны 8000) интерпретируются
как burst_size и excess_burst_size.

burst_size - количество байт, пересылаемых за один всплеск (burst), т.е.
за интервал времени, равный отношению burst_size и указанной полосы
пропускания.

excess_burst_size - возможное количество байт сверх burst_size,
пересылаемое за один интервал при кратковременном повышении нагрузки.
Будучи потрачено, восполняется за счёт полосы пропускания в периоды,
когда нагрузка ниже максимально разрешённой.

Последующие инструкции указывают, что трафик в пределах разрешённой
полосы с учётом допустимых превышений пропускается маршрутизатором
(conform-action transmit), а при превышении нагрузки и исчерпании
excess_burst_size приходящие пакеты данных сверх burst_size игнорируются
(exceed-action drop).

Внешние скрипты

Ниже приведены примеры исполняемых файлов. Предполагается, что созданы
правила firewall для событий Установление ширины, Изменение ширины и
Снятие ограничений, и для каждого из них заданы параметры скрипта в
формате:

UID IP UBITS UMASK BANDWIDTH [0|1|2]


Первые пять параметров представляют собой переменные. При вызове скрипта
они будут заменены своими значениями: UID - идентификатор
пользователя

IP - адрес пользователя;
UMASK - маска сети;
UBITS - количество бит в маске сети;
BANDWIDTH - текущая скорость соединения.


В качестве последнего параметра надо указать значение 0, 1 или 2 в
зависимости от типа события:

0 - Снятие ограничений;
1 - Установление ширины;
2 - Изменение ширины.

Пример для программного шейпера iproute2 под ОС GNU/Linux.

Предполагается, что предварительно выполнены следующие команды:

tc qdisc add dev eth0 root handle 1: htb


создана очередь (qdisc, queueing discipline), ассоциированная со
входящим интерфейсом eth0, имеющая идентификатор 1. Для очереди выбран
метод упорядочения htb (Hierarchy Token Bucket), отличающийся простотой
и высоким быстродействием.

tc class add dev eth0 parent 1: classid 1:1 htb rate 50mbit ceil 100mbit burst 200k
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 20k


создан корневой класс очереди (root class) с идентификатором 1:1,
имеющий гарантированную полосу пропускания 50 Мбит/сек (rate 50mbit) с
возможностью повышения до 100 Мбит/сек при наличии незанятой пропускной
способности (ceil 100mbit), пропускаемый всплесками размером по 200 Кб
(burst 200k). Он будет использоваться как родительский для всех
остальных классов и распределять между ними полосу пропускания,
предоставляя им возможность занимать (borrow) друг у друга
неиспользуемую часть. Также создан класс с идентификатором 1:10, имеющий
полосу пропускания 1 Мбит/сек без возможности превышения, и
предназначенный для пропускания трафика неопределённой принадлежности из
очереди.

tc filter add dev eth0 parent 1: protocol ip prio 3 handle 1 fw classid 1:10


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

В дальнейшем при вызове скрипта по событию Установление ширины
происходит следующее:

создаётся правило iptables, помечающее входящие пакеты трафика,
направленные на данный IP-адрес (исходящий трафик при необходимости
шейпируется аналогично, для чего надо создать отдельное правило);

создаётся новый фильтр, отправляющий помеченные таким образом пакеты
в новый класс;

создаётся новый класс с указанной пропускной способностью.

По событию Изменение ширины происходит изменение пропускной способности
класса, а по событию Снятие ограничений - удаление самого класса,
соответствующего фильтра и правила iptables.

Трафик, не подпадающий под фильтры (т.е. принадлежащий пользователям,
для которых шейпирование не настроено), не ставится в очередь, а
пропускается непосредственно.

Содержимое исполняемого файла:

#!/bin/bash
if="eth0"
echo $*
echo "First create: tc qdisc add dev $if root handle 1: htb"
case "$6" in
0)
iptables -t mangle -D FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter del dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class del dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
1)
iptables -t mangle -A FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter add dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class add dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
2)
tc class change dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
*)
echo "Usage: `basename $0` {UID IP UBITS UMASK BANDWIDTH [0|1|2]}" >&2
exit 64
;;
esac


Пример исполняемого файла для программного шейпера dummynet под ОС FreeBSD:

При вызове скрипта по событию Установление ширины создаётся канал (pipe)
с ограниченной пропускной способностью, а также правило, которое
направляет входящий трафик данного пользователя на интерфейсе em0 в
созданный канал. По событию Изменение ширины изменяется пропускная
способность канала, а по событию Снятие ограничений - удаляется канал и
соответствующее правило.

Скрипт работает корректно при многопроходном режиме обработки правил
(команда sysctl net.inet.ip.fw.one_pass должна возвращать значение 0).


#!/bin/sh case "$6" in
0)
/sbin/ipfw delete $1
/sbin/ipfw pipe delete $1
;;
1)
/sbin/ipfw pipe $1 config bw $5Kbit/s
/sbin/ipfw add $1 pipe $1 ip from any to $2/$3 via em0
;;
2)
/sbin/ipfw pipe $1 config bw $5Kbit/s
;;
esac


Источник: http://www.netup.ru/articles.php?n=40
879 Прочтений •  [Способы шейпирования трафика. RADIUS-атрибуты для Cisco и внешние скрипты под Linux и FreeBSD (cisco linux freebsd bandwidth limit shaper)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Способы шейпирования трафика. RADIU... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка