Выбрать главу

LVS реализован в виде "заплаты" на ядра версий 2.0 и 2.2. Для серий 2.4/2.5 – в виде модуля к Netfilter, т.е накладывать "заплату" на ядра этих версий уже не требуется!

CBQ.init

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

Например, если необходимо ограничить скорость загрузки, величиной 28 Кбит/сек, для всех компьютеров в локальной сети 192.168.1.0/24 (на 10 Мбитном eth1), поместите эти строки в файл конфигурации CBQ.init:

DEVICE=eth1,10Mbit,1Mbit

RATE=28Kbit

WEIGHT=2Kbit

PRIO=5

RULE=192.168.1.0/24

Мы рекомендуем эту программу тем, кого не интересуют вопросы "как" и "почему". CBQ.init давно используется нами и зарекомендовал себя с самой лучшей стороны. Здесь приведен очень простой пример конфигурирования CBQ.init, на самом деле он может много больше, например выполнять формирование трафика в зависимости от времени. Описание находится внутри сценария, по этой причине вы не найдете файл README.

Набор скриптов управления трафиком Chronox

Стефан Мюллер (Stephan Mueller smueller@chronox.de) написал два сценария limit.conn и shaper , первый из которых позволяет легко ограничить ширину канала для одиночной сессии, например так:

# limit.conn –s SERVERIP –p SERVERPORT –l LIMIT

Работают с ядрами 2.4/2.5.

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

Реализация протокола Virtual Router Redundancy Protocol (ссылка 1, ссылка 2)

FIXME: Эта ссылка "битая". Может кто подскажет — куда переехал проект?

Применяется исключительно для "горячего" резервирования. Две машины, имеющие свои собственные IP и MAC адреса, образуют третий, виртуальный IP и MAC адрес. Изначально этот протокол предназначался для "горячего" резервирования маршрутизаторов, которые требуют наличия постоянного MAC-адреса, но вполне подойдет и для серверов другого типа.

Вся прелесть этой реализации заключается в простоте настройки и отсутствии необходимости пересборки ядра.

Просто, на каждой из машин запускается команда, например такая:

# vrrpd –i eth0 –v 50 10.0.0.22

и все! Теперь адрес 10.0.0.22 обслуживается одним из серверов, вероятнее всего тем, на котором команда vrrpd была запущена первой. Теперь, если этот сервер отключить от сети, то довольно быстро обслуживание виртуальных IP и MAC адресов возьмет на себя один из оставшихся компьютеров.

Я попытался смоделировать эту ситуацию. Правда по необъяснимой причине у меня сбрасывался шлюз по-умолчанию, но флаг –n решил мои проблемы.

Ниже приводится временная диаграмма "сбойной" ситуации:

64 bytes from 10.0.0.22: icmp_seq=3 ttl=255 time=0.2 ms

64 bytes from 10.0.0.22: icmp_seq=4 ttl=255 time=0.2 ms

64 bytes from 10.0.0.22: icmp_seq=5 ttl=255 time=16.8 ms

64 bytes from 10.0.0.22: icmp_seq=6 ttl=255 time=1.8 ms

64 bytes from 10.0.0.22: icmp_seq=7 ttl=255 time=1.7 ms

НИ ОДИН ICMP-пакет не был потерян! После передачи 4-го пакета мой P200 был отключен от сети и обслуживание виртуальных адресов тут же перехватил 486-й, это можно наблюдать по увеличившемуся времени отклика.

tc-config

tc-config — это набор сценариев для конфигурирования подсистемы управления трафиком на Linux 2.4+ для Red Hat. В качестве корневой дисциплины используется CBQ qdisc, в "листьях" — SFQ qdisc.

Включает утилиту snmp_pass, которая получает статистику управления трафиком через snmp. FIXME: Необходимо дополнить.

Глава 19. Рекомендуемая литература.

http://snafu.freedom.org/linux2.2/iproute-notes.html

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

http://www.davin.ottawa.on.ca/ols/

Джамал Хади Салим (Jamal Hadi Salim), один из авторов Linux traffic control.

http://defiant.coinet.com/iproute2/ip-cref/

HTML-версия документа, написанного Алексеем -- очень подробное описание части iproute2.

http://www.aciri.org/floyd/cbq.html

Неплохая страничка Салли Флойд (Sally Floyd), посвященная CBQ, содержит оригинальные документы, написанные ее рукой. Не относится к специфике Linux, но основным предметом дискуссии является теория применения SBQ. Можно рекомендовать тем, кого интересуют сугубо технические сведения.

Differentiated Services on Linux

Этот документ (созданный Вернером Альмсбергером (Werner Almesberger), Джамалом Хади Салимом (Jamal Hadi Salim) и Алексеем Кузнецовым) описывает возможности DiffServ в ядре Linux, в том числе TBF, GRED, DSMARK qdisc и классификатор tcindex.