» » » Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO


Авторские права

Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO

Здесь можно скачать бесплатно "Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Linux Advanced Routing & Traffic Control HOWTO
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Linux Advanced Routing & Traffic Control HOWTO"

Описание и краткое содержание "Linux Advanced Routing & Traffic Control HOWTO" читать бесплатно онлайн.



Оригинальную версию документа вы найдете по адресу http://lartc.org/.

Практическое руководство по применению iproute2 (и в меньшей степени netfilter) для управления трафиком.






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

По IP-адресу

По исходящему адресу: match ip src 1.2.3.0/24, по адресу назначения: match ip dst 4.3.2.0/24. Чтобы отобрать пакеты, отправляемые с/на единственный узел сети нужно указать сетевую маску /32 или вообще опустить ее.

По номеру порта

Исходящий порт: match ip sport 80 0xffff, порт назначения: match ip dport 80 0xffff.

По типу протокола, из семейства IP (tcp, udp, icmp, gre, ipsec)

Номера протоколов вы найдете у себя, в файле /etc/protocols . Например, отбор ICMP-пакетов (номер протокола icmp – 1) можно выполнить командой match ip protocol 1 0xff.

По метке пакета

Пакеты могут маркироваться либо средствами ipchains, либо средствами iptables. Это бывает полезно, например, для наложения ограничений на трафик, который следует с интерфейса eth1 на интерфейс eth0:

# tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle 6 fw flowid 1:1

Обратите внимание — этот фильтр не является селектором u32!

Установить метку можно следующим образом:

# iptables –A PREROUTING –t mangle –i eth0 –j MARK -–set-mark 6 В

данном случае число 6 выбрано произвольным образом.

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

По полю TOS

Отбор трафика с минимальной задержкой:

# tc filter add dev ppp0 parent 1:0 protocol ip prio 10 u32 \

 match ip tos 0x10 0xff \

 flowid 1:4

Дополнительные сведения о фильтрации трафика вы найдете в главе Расширенная фильтрация.

9.7. Intermediate queueing device.

Устройство IMQ не является дисциплиной обработки очереди, но тесно с ними связано. В Linux, дисциплины обработки очередей присоединяются к сетевым устройствам и все, что помещается в очередь устройства, попадает сначала в очередь дисциплины обработки очереди. Из-за этого подхода существуют два ограничения:

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

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

Устройство IMQ пытается решить эти проблемы. С помощью подсистемы фильтрации ОС Linux можно определенные пакеты направлять через этот псевдо-интерфейс, к которому подключаются различные дисциплины обработки очередей. Таким образом, можно управлять полосой пропускания, как входящего, так и общего трафика.

9.7.1. Пример конфигурирования.

Первое, что может прийти на ум – попытаться сформировать входящий трафик так, чтобы дать себе наивысший приоритет ;) Конфигурация IMQ очень похожа на конфигурацию любого другого интерфейса:

tc qdisc add dev imq0 root handle 1: htb default 20


tc class add dev imq0 parent 1: classid 1:1 htb rate 2mbit burst 15k


tc class add dev imq0 parent 1:1 classid 1:10 htb rate 1mbit

tc class add dev imq0 parent 1:1 classid 1:20 htb rate 1mbit


tc qdisc add dev imq0 parent 1:10 handle 10: pfifo

tc qdisc add dev imq0 parent 1:20 handle 20: sfq


tc filter add dev imq0 parent 10:0 protocol ip prio 1 u32 match \

 ip dst 10.0.0.230/32 flowid 1:10

В этом примере для классификации пакетов используется селектор u32, однако, при работе с imq, могут использоваться и другие селекторы.

Отбираемый трафик маркируется средствами iptables:

iptables –t mangle –A PREROUTING –i eth0 –j IMQ –todev 0

ip link set imq0 up

Действие IMQ в iptables

допускается использовать только в цепочках PREROUTING и POSTROUTING, таблицы mangle. Его синтаксис:

IMQ [ -–todev n ]

где n – это номер устройства imq.

Это действие существует и в ip6tables.

Обратите внимание: трафик попадает на интерфейс не в тот момент, когда переходит к цели IMQ, а после обработки соответствующей цепочки. Точное место входа на устройство imq зависит от типа трафика (входящий/исходящий).

Для входящего трафика imq регистрируется с приоритетом NF_IP_PRI_MANGLE + 1. Это означает, что пакеты попадают на устройство сразу после прохождения цепочки PREROUTING. Для исходящего трафика, imq использует приоритет NF_IP_PRI_LAST, который гарантирует, что пакеты, уничтоженные пакетным фильтром не будут занимать полосу пропускания устройства.

Дополнительные сведения и "заплаты" вы найдете на сайте http://luxik.cdi.cz/~patrick/imq/

Глава 10. Распределение нагрузки по нескольким интерфейсам.

Существует несколько способов реализации такой схемы. Простейший и непосредственный способ представляет 'TEQL'. Это простейший компенсатор (True/Trivial link Equalizer). Как и большая часть того, что связано с очередями, балансировка нагрузки работает в обе стороны. Для полного эффекта обе стороны соединения должны работать совместно.

Представим ситуацию:

              +-------+   eth1   +-------+

              |       |==========|       |

'сеть 1'  ----|   A   |          |   B   |---- 'сеть 2'

              |       |==========|       |

              +-------+   eth2   +-------+

A и B это маршрутизаторы, и пока мы будем предполагать, что оба работают под управлением Linux. Для передачи данных из сети 1 в сеть 2, маршрутизатору A необходимо распределить пакеты по обоим каналам. Маршрутизатор B должен быть настроен соответствующим образом, чтобы поддерживать это. Тоже самое относится и к передаче данных из сети 2 в сеть 1. Маршрутизатор B должен передавать данные по двум интерфейсам — eth1 и eth2.

Распределение выполняется устройством 'TEQL'. Вот необходимые команды (куда уж проще):

# tc qdisc add dev eth1 root teql0

# tc qdisc add dev eth2 root teql0

# ip link set dev teql0 up

Не забудьте команду ip link set up!

Приведенные команды должны быть выполнены на каждом из маршрутизаторов. Устройство teql0 представляет собой циклический распределитель пакетов по интерфейсам eth1 и eth2. На устройство teql никогда не приходят данные, их получают интерфейсы eth1 и eth2.

Но пока что у нас есть только устройства и нам нужно настроить маршрутизацию. Один из способов сделать это – назначить сеть /31 каждому соединению, в том числе и устройствам teql0:

На маршрутизаторе A:

# ip addr add dev eth1 10.0.0.0/31

# ip addr add dev eth2 10.0.0.2/31

# ip addr add dev teql0 10.0.0.4/31

На маршрутизаторе B:

# ip addr add dev eth1 10.0.0.1/31

# ip addr add dev eth2 10.0.0.3/31

# ip addr add dev teql0 10.0.0.5/31

Теперь маршрутизатор A должен "пинговать" адреса 10.0.0.1, 10.0.0.3 и 10.0.0.5 по двум реальным каналом и одному компенсаторному устройству. Аналогично, маршрутизатор B должен пинговать 10.0.0.0, 10.0.0.2 и 10.0.0.4.

Если все работает, на маршрутизаторе A маршрут к сети 2 должен проходить через 10.0.0.5, а маршрутизатор B должен иметь адрес 10.0.0.4 в качестве маршрута к сети 1. Для отдельного случая, когда сеть 1 это ваша домашняя сеть, а сеть 2 — Internet, маршрутизатор A должен иметь шлюз по умолчанию 10.0.0.5.

10.1. Предостережение.

Не все так просто как кажется. На интерфейсах eth1 и eth2, маршрутизаторов A и B , необходимо отключить фильтрацию по адресу возврата (return path filtering), иначе будут фильтроваться пакеты, предназначеные для другого интерфейса:

# echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

# echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter

Следующая проблема — это порядок пакетов. Допустим нужно передать 6 пакетов от A к B. По интерфейсу eth1 могут пройти пакеты 1, 3 и 5. Соответственно по eth2 пройдут 2, 4 и 6. В идеальном мире, маршрутизатор B получил бы эти пакеты в порядке 1, 2, 3, 4, 5, 6. Но в нашем мире вероятность того, что порядок изменится, очень велика. Например, порядок может быть таким: 2, 1, 4, 3, 6, 5. И это может запутать стек TCP/IP. Хотя эта проблема не так важна, для каналов с большим количеством разных сеансов TCP/IP, тем не менее вы не сможете ощутить значительный прирост скорости при передаче одного файла по ftp, разве только отправляющая или получающая ОС — не Linux, которую весьма не просто шокировать простым изменением порядка пакетов.

Однако, для многих приложений балансировка нагрузки является хорошим решением.

10.2. Другие возможности.

Уильям Стирнс (William Stearns) использовал сложную конфигурацию тоннелей для достижения эффективного использования нескольких несвязанных подключений к сети Internet. Информацию об этом можно найти здесь.

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

Глава 11. netfilter и iproute – маркировка пакетов.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Linux Advanced Routing & Traffic Control HOWTO"

Книги похожие на "Linux Advanced Routing & Traffic Control HOWTO" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Bert Hubert

Bert Hubert - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

Отзывы о "Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO"

Отзывы читателей о книге "Linux Advanced Routing & Traffic Control HOWTO", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.