» » » 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) для управления трафиком.






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. Дополнительная оптимизация

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

Если вдруг обнаружится, что через некоторые классы проходит подавляющее большинство трафика, то к ним можно прикрепить другую дисциплину организации очереди, чтобы распределить канал более равномерно:

tc qdisc add dev eth0 parent 1:13 handle 130: sfq perturb 10

tc qdisc add dev eth0 parent 1:14 handle 140: sfq perturb 10

tc qdisc add dev eth0 parent 1:15 handle 150: sfq perturb 10

15.10.4. Выполнение настроек во время загрузки системы.

Уверен, что можно найти множество способов, чтобы произвести настройку маршрутизатора во время загрузки. Для себя я создал скрипт /etc/init.d/packetfilter, который принимает команды [start | stop | stop-tables | start-tables | reload-tables]. Он конфигурирует дисциплины (qdiscs) и загружает необходимые модули ядра. Этот же сценарий загружает правила iptables из файла /etc/network/iptables-rules, которые предварительно могут быть сохранены утилитой iptables-save и восстановлены — iptables-restore.

Глава 16. Построение мостов и псевдо-мостов с proxy arp.

Мосты (bridges) — это специальные устройства, которые могут быть установлены в сети и не требуют предварительной настройки. Сетевой коммутатор (switch) — это особый вид многопортового моста. Мост — это чаще всего двухпортовый коммутатор (switch). На базе Linux может быть построен многопортовый (несколько интерфейсов) мост, по сути — настоящий коммутатор (switch).

Мосты часто применяются для объединения фрагментированных стационарных сетей. Поскольку мост — это устройство 2-го уровня (Канальный уровень по классификации OCI), который лежит ниже сетевого уровня, где "заправляют" протоколы IP, то ни серверы, ни маршрутизаторы даже не подозревают о его существовании. Это означает, что вы можете блокировать или изменять некоторые пакеты, а так же формировать трафик по своему усмотрению.

Еще одно замечательное свойство моста — в случае выхода из строя, мост может быть заменен отрезком кабеля или сетевым концентратором (hub — хабом).

Одна из отрицательных сторон — мост может стать причиной большой неразберихи. traceroute его не "видит" и не сможет указать в каком месте теряются пакеты. Так что ничего удивительного, если какая-нибудь организация считает правильным "ничего не менять".

Мосты на базе Linux 2.4/2.5 подробно описаны на сайте http://bridge.sourceforge.net/.

16.1. Бриджинг и iptables.

Что касается Linux 2.4.20, то бриджинг и iptables не "видят" друг друга без установки вспомогательных модулей. Если построен мост между eth0 и eth1, то пакеты, передаваемые по мосту, проходят мимо iptables. Это означает, что ни фильтрация, ни nat, ни возможность внесения изменений в заголовки пакетов (mangling) вам недоступны. Начиная с Linux 2.5.45 это было исправлено.

Хочу упомянуть еще об одном проекте — etables. Он позволяет вытворять такие штуки, как MACNAT и brouting. Это действительно круто!

16.2. Бриджинг и шейпинг.

Принцип работы соответствует заголовку. Вы должны убедиться, что четко представляете — с какой стороны подключен каждый из интерфейсов, иначе может получиться так, что будет производиться попытка формирования экспортируемого трафика на внутреннем интерфейсе. Если необходимо — используйте утилиту tcpdump.

16.3. Псевдо-мосты с проксированием ARP.

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

По-умолчанию, обычный мост просто передает пакеты с одного интерфейса на другой в неизменном виде. Он рассматривает только аппаратный адрес пакета, чтобы определить — в каком направлении нужно передать пакет. Это означает, что Linux может переправлять любой вид трафика, даже тот, который ему не известен, если пакеты имеют аппаратный адрес.

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

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

Настоящий мост в принципе тоже может делать это, но для этого требуется специальное программное обеспечение, например: Ethernet Frame Diverter.

Еще одно преимущество псевдо-моста состоит в том, что он не может передавать пакеты протоколов, которые "не понимает" — что предохраняет сеть от заполнения всяким "мусором". В случае, если вам необходимо переправлять такие пакеты (например, пакеты SAP или Netbeui), то устанавливайте настоящий мост.

16.3.1. ARP и проксирование ARP


На 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", комментарии и мнения людей о произведении.

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