Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO

Здесь есть возможность читать онлайн «Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Linux Advanced Routing & Traffic Control HOWTO: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Linux Advanced Routing & Traffic Control HOWTO»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

Linux Advanced Routing & Traffic Control HOWTO — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Linux Advanced Routing & Traffic Control HOWTO», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Мы создали различные классы обработки трафика, но классификация пока отсутствует, поэтому, к настоящему моменту, весь трафик пойдет через класс 1:15 (который назначен классом по умолчанию: tc qdisc add dev eth0 root handle 1: htb default 15). Теперь самое главное — нужно распределить трафик по имеющимся классам.

Устанавим фильтры, которые будут выполнять классификацию пакетов, основываясь на метках iptables. Мне нравятся iptablesза их чрезвычайную гибкость и за возможность подсчитывать количество пакетов, пропущенных тем или иным правилом. Добавим в сценарий следующие строки:

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

tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11

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

tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 4 fw classid 1:13

tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 5 fw classid 1:14

tc filter add dev eth0 parent 1:0 protocol ip prio 6 handle 6 fw classid 1:15

Здесь задаются соответствия между специфическими значениями FWMARK (handle x fw) и классами (classid x:x). Теперь рассмотрим процесс установки меток на пакеты.

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

+------------+ принятие +---------+ +-------------+

Вход ---| PREROUTING |--- решения о --| FORWARD |-------+-------| POSTROUTING |- Выход

+------------+ маршрутизации +---------+ | +-------------+

| |

+-------+ +--------+

| INPUT |-Локальные процессы-| OUTPUT |

+-------+ +--------+

Далее я буду исходить из предположения, что всем таблицам назначена политика по-умолчанию -P ACCEPT. Наша локальная сеть относится к классу b, с адресами 172.17.0.0/16. Реальный IP-адрес — 212.170.21.172

Добавим правило iptables, которое будет выполнять snat, что позволит пользователям локальной сети общаться с внешним миром, и разрешим форвардинг пакетов:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables –t nat –A POSTROUTING –s 172.17.0.0/255.255.0.0 –o eth0 –j SNAT –to-source 212.170.21.172

Проверим, что пакеты уходят через класс 1:15:

tc –s class show dev eth0

Добавим в цепочку PREROUTING, таблицы mangle, правила для установки меток на пакеты:

iptables –t mangle –A PREROUTING –p icmp –j MARK –set-mark 0x1

iptables –t mangle –A PREROUTING –p icmp –j RETURN

Теперь вы должны наблюдать увеличение значения счетчика пакетов в классе 1:10, при попытке ping-ануть из локальной сети какой-нибудь сайт в Интернете.

tc-s класс показывают dev eth0

Действие -j RETURNпредотвращает движение пакетов по всем правилам. Поэтому все ICMP-пакеты будут проходить только это правило. Добавим еще ряд правил, которые будут изменять биты в поле TOS:

iptables –t mangle –A PREROUTING –m tos –tos Minimize-Delay –j MARK –set-mark 0x1

iptables –t mangle –A PREROUTING –m tos –tos Minimize-Delay –j RETURN

iptables –t mangle –A PREROUTING –m tos –tos Minimize-Cost –j MARK –set-mark 0x5

iptables –t mangle –A PREROUTING –m tos –tos Minimize-Cost –j RETURN

iptables –t mangle –A PREROUTING –m tos –tos Maximize-Throughput –j MARK –set-mark 0x6

iptables –t mangle –A PREROUTING –m tos –tos Maximize-Throughput –j RETURN

Поднимем приоритет для ssh-пакетов:

iptables –t mangle –A PREROUTING –p tcp –m tcp –sport 22 –j MARK –set-mark 0x1

iptables –t mangle –A PREROUTING –p tcp –m tcp –sport 22 –j RETURN

а так же для пакетов, с которых начинается TCP-соединение, т.е. SYN-пакетов:

iptables –t mangle –I PREROUTING –p tcp –m tcp –tcp-flags SYN,RST,ACK SYN –j MARK –set-mark 0x1

iptables –t mangle –I PREROUTING –p tcp –m tcp –tcp-flags SYN,RST,ACK SYN –j RETURN

И так далее. После того, как в цепочку PREROUTING, таблицы mangle, будут внесены все необходимые правила, закончим ее правилом:

iptables –t mangle –A PREROUTING –j MARK –set-mark 0x6

Это заключительное правило отправит оставшиеся немаркированные пакеты в класс 1:15. Фактически, это правило можно опустить, так как класс 1:15 был задан по-умолчанию, но тем не менее, я оставляю его, чтобы сохранить единство настроек и кроме того, иногда бывает полезно увидеть счетчик пакетов для этого правила.

Нелишним будет добавить те же правила в цепочку OUTPUT, заменив имя цепочки PREROUTING на OUTPUT (s/PREROUTING/OUTPUT/). Тогда трафик, сгенерированный локальными процессами на маршрутизаторе, также будет классифицирован по категориям. Но, в отличие от вышеприведенных правил, в цепочке OUTPUT, я устанавливаю метку -j MARK –set-mark 0x3, таким образом трафик от маршрутизатора получает более высокий приоритет.

15.10.3. Дополнительная оптимизация

В результате приведенных настроек, мы получили вполне работоспособную конфигурацию. Однако, в каждом конкретном случае, эти настройки всегда можно немного улучшить. Найдите время и проследите – куда идет основной трафик и как лучше им распорядиться. Я потратил огромное количество времени и наконец довел свою конфигурацию до оптимального уровня, практически сведя на нет бесчисленные таймауты.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Linux Advanced Routing & Traffic Control HOWTO» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Linux Advanced Routing & Traffic Control HOWTO»

Обсуждение, отзывы о книге «Linux Advanced Routing & Traffic Control HOWTO» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x