Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Использование tc

Средства маршрутизации | Политика маршрутизации | Передача пакетов по различным маршрутам | Поддержка группового вещания | Качество сервиса | Использование routed | Использование GateD | Использование Zebra |


Читайте также:
  1. Gt; глава I использование положительного опыта 35
  2. III. Основы педагогики как науки и использование ее результатов в процессе образования учащихся.
  3. Анализ провозной способности с использованием индексного приема сравнения
  4. Взгляды зарубежных и отечественных психологов, педагогов на использование движений в коррекционных целях
  5. Возможности использования флексографской печати. Использование трафаретной печати в рекламе.
  6. Вопрос 11. Влажностный режим, его регулирование и использование при хранении продовольственных товаров.
  7. Вопрос 19. Контроль за использованием и охраной земель.

Утилита tc использует средства ядра, которые активизируются посредством опций меню QoS and/or Fair Queueing. Данная программа управляет исходящим трафиком, в частности, не позволяет одному типу трафика монополизировать пропускную способность линии связи. В качестве примера рассмотрим следующую ситуацию. Предположим, что в организации имеются две подсети; каждая из них обслуживает офис, в котором работают около десяти пользователей. Если пользователи одной подсети запускают программы, генерирующие большой объем исходящих данных, производительность сетевых средств пользователей, работающих в другом офисе, может оказаться недопустимо низкой. Программа tc позволяет распределить ресурсы таким образом, что каждой из подсетей будет гарантированно выделяться часть пропускной способности линии.

Программа tc вызывается следующим образом:

tc [опции ] объект команда

Ниже описаны элементы, передаваемые программе tc.

опции. При вызове tc могут быть заданы опции -statistics (или -s), -details (или -d) и -raw (или -г).

объект. Данный параметр может принимать значение qdisc, class или filter. Значение qdisc определяет порядок обслуживания, или дисциплину очереди, class задает набор пакетов, принадлежащих той или иной категории либо классу (в данном примере признаком принадлежности к классу является принадлежность к одной из подсетей), a filter генерирует правило фильтрации.

команда. Команда — это набор параметров, которые определяют, какие действия программа tc должна выполнить с объектом. Состав команды зависит от объекта. С помощью tc вы можете сгенерировать набор правил, описывающих сети, подключенные к компьютеру, и определяющих принцип выделения пропускной способности линии для каждой из этих сетей. Предположим, что вы хотите распределить пропускную способность линии, равную 100 Мбод, поровну между двумя подсетями, обслуживающими офисы. Предположим также, что ваш компьютер подключен к Internet посредством устройства eth0, а данные в обе подсети передаются через устройство ethl; одна из подсетей имеет IP-адрес 192.168.1.0/24, а другая — 192.168.2.0/24. Процесс настройки следует начать с определения порядка обслуживания очереди для ethl.

t tc qdisc add dev ethl root handle 10:cbq bandwidth lOOMbit \avpkt 1000

Данную команду можно условно разделить на несколько частей.

• add dev ethl. Данный компонент команды сообщает системе о том, что вы добавляете дисциплину очереди для ethl.

• root. В некоторых случаях дисциплины могут составлять деревья. Этот параметр указывает на создание корневого узла нового дерева.

• handle 10. Этот компонент команды определяет метку (handle) для дисциплины.

• cbq. Вам необходимо сообщить системе, какой метод организации очереди должен быть использован. Метод CBQ (Class-Based-Queueing — очередь на базе классов) применяется чаще всего. Данный параметр отражается в имени одной из опций ядра в меню QoS and/or Fair Queueing.

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

• avpkt 1000. По сети могут передаваться пакеты различного размера, но для того, чтобы планировать использование линии, система должна иметь хотя бы приблизительное представление о том, какими могут быть размеры пакетов. Конкретное значение данного параметра может отличаться от указанного здесь.

Теперь надо определить классы для сети и для каждой из подсетей. Для этого используются команды наподобие следующей:

#tc class add dev ethl parent 10:0 classid 10:1 cbq \

bandwidth lOOMbit rate lOOMbit allot 1514 weight lOMbit \

prio 8 maxburst 20 avpkt 1000

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

• class. Если в предыдущей команде был задан объект qdisc, то здесь присутствует объект class, определяющий класс.

• parent 10:0. Этот компонент команды задает корень дерева. К метке, определенной в предыдущей команде, добавляется значение 0.

• classid 10:1. Данный компонент задает идентификатор конкретного класса.

• allot 1514. С помощью этого параметра указывается значение MTU для сети (оно на несколько байт превышает реальное значение).

• weight IMbit. Данный параметр используется для настройки. Возможно, для конкретной сети необходимо специально подобрать его значение.

• prio 8. Этот компонент команды задает приоритет правила. Чем больше значение, тем выше приоритет.

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

#tc class add dev ethl parent 10:1 classid 10:100 cbq \

bandwidth l00Mbit rate SOMbit allot 1514 weight SMbit \

prio 5 maxburst 20 avpkt 1000 bounded

#tc class add dev ethl parent 10:1 classid 10:200 cbq \

bandwidth lOOMbit rate SOMbit allot 1514 weight SMbit \

prio 5 maxburst 20 avpkt 1000 bounded

Эти команды различаются только значением classid. Обе ссылаются на корневой класс, и каждая выделяет соответствующей подсети 50 Мбод пропускной способности линии. (Вы можете задать разные значения для каждой подсети, например 60 Мбод и 40 Мбод.) Параметр bounded указывает на то, что система не должна выделять классу часть пропускной способности линии, превышающую указанное значение. Часто такое ограничение бывает нежелательным, поскольку если из одной сети данные не передаются, другая сеть не сможет использовать остальную часть пропускной способности линии. Отказавшись от параметра bounded, вы обеспечите большую гибкость при работе через линии связи, в частности, предоставите офисам возможность "занимать" друг у друга пропускную способность линии. Если же обоим офисам потребуется передавать данные, этот ресурс будет распределен поровну.

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

#tc qdisc add dev ethl parent 10:100 sfq quantum 1514b \

perturb 15

#tc qdisc add dev ethl parent 10:200 sfq quantum 1514b \

perturb 15

Данные команды аналогичны рассмотренной ранее команде, определяющей порядок обслуживания очереди. Они сообщают Linux о том, что для планирования трафика внутри подсети каждого офиса должна использоваться дисциплина SFQ (Stochastic Fairness Queueing — стохастическая организация очереди, обеспечивающая равный доступ). Эта дисциплина популярна, так как для ее реализации не требуется много ресурсов процессора. Если понадобится, можете задать другую дисциплину.

Команды, которые мы уже рассмотрели, не предоставляли ядру информацию, позволяющую разделить трафик, соответствующий различным подсетям (192.168.1.0/24 и 192.168.2.0/24). Поэтому необходимо выполнить следующие команды:

#tc filter add dev ethl parent 10:0 protocol ip prio 100 u32 \

match ip dst 192.168.1.0/24 flowid 10:100

#tc filter add dev ethl parent 10:0 protocol ip prio 100 u32 \

match ip dst 192.168.2.0/24 flowid 10:200

В отличие от предыдущих, вэтих командах указан объект filter. Данные команды задают правила, которые связывают трафик подсети с соответствующим классом. Обоим правилам назначены одинаковые приоритеты и задан алгоритм u32, работающий с блоками IP-адресов.

Созданные правила управляют потоком данных из Internet в локальные сети. При желании вы можете создать аналогичный набор правил, действующих в противоположном направлении. Эти правила почти совпадают с предыдущими, но вместо внутреннего интерфейса ethl они должны ссылаться на внешний интерфейс eth0, и в двух последних командах filter вместо параметра dst должен быть указан параметр src.


Дата добавления: 2015-07-25; просмотров: 51 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Использование ip| Принцип действия протоколов маршрутизации

mybiblioteka.su - 2015-2024 год. (0.007 сек.)