Чтение онлайн

на главную - закладки

Жанры

Linux Advanced Routing & Traffic Control HOWTO

Larroy Pedro

Шрифт:

# tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 800:: \

 match ip src 1.2.0.0/16 \

 hashkey mask 0x000000ff at 12 \

 link 2:

А теперь поясним некоторые моменты. Заданной по-умолчанию хеш-таблице присвоен идентификатор 800:: и вся фильтрация начинается отсюда. Затем выбирается IP-адрес отправителя, который находится в 12, 13, 14 и 15 байтах в IP-заголовке и указывается, что нас интересует только последний байт. После чего трафик передается

в хеш-таблицу 2:, которая была создана ранее.

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

12.5. Фильтрация трафика IPv6.

12.5.1. Почему не работают tc-фильтры в IPv6?

Дело в том, что в ядре Linux, модель маршрутизации и адресации IPv4 (замечательные особенности которой описывает этот HOWTO) строилась на основе Базы Политик Маршрутизации (RPDB — Routing Policy Database). К сожалению, модель IPv6 в Linux была реализована совершенно иным образом. Хотя они используют совместно некоторые средства, но основа основ — RPDB, не принимает участия в адресации и маршрутизации IPv6.

Надеюсь, что такое положение дел наверняка изменится, надо только подождать.

FIXME: : Ждем ваших замечаний и предложений по этому поводу, может кто-то работает над этим?

12.5.2. Маркировка пакетов IPv6 средствами ip6tables.

ip6tables имеет возможность пометить пакеты:

# ip6tables –A PREROUTING –i eth0 –t mangle –p tcp –j MARK –mark 1

Но тем не менее, это крайне слабое утешение, поскольку пакет пройдет мимо RPDB.

12.5.3. Использование селектора u32 для пакетов IPv6.

Для передачи по сетям IPv4, трафик IPv6 обычно инкапсулируется в SIT–туннель. За дополнительной информацией по созданию такого рода туннелей, обращайтесь к разделу Тоннелирование IPv6. Это позволяет выполнять фильтрацию IPv4-пакетов, которые, в качестве полезной нагрузки, несут пакеты IPv6.

Следующий фильтр отберет все пакеты IPv6, инкапсулированные в IPv4:

# tc filter add dev $DEV parent 10:0 protocol ip prio 10 u32 \

 match ip protocol 41 0xff flowid 42:42

Продолжим в том же духе. Предположим, что пакеты IPv6 передаются по сети IPv4, и не имеют набора опций. Тогда, для обнаружения пакетов ICMPv6 можно использовать следующий фильтр. 0x3a (58) — Next-Header для ICMPv6.

# tc filter add dev $DEV parent 10:0 protocol ip prio 10 u32 \

 match ip protocol 41 0xff \

 match u8 0x05 0x0f at 0 \

 match u8 0x3a 0xff at 26 \

 flowid 42:42

Фильтрация по адресу получателя потребует от нас дополнительных усилий. Например, следующий

фильтр отбирает пакеты с адресом получателя 3ffe:202c:ffff:32:230:4fff:fe08:358d:

# tc filter add dev $DEV parent 10:0 protocol ip prio 10 u32 \

 match ip protocol 41 0xff \

 match u8 0x05 0x0f at 0 \

 match u8 0x3f 0xff at 44 \

 match u8 0xfe 0xff at 45 \

 match u8 0x20 0xff at 46 \

 match u8 0x2c 0xff at 47 \

 match u8 0xff 0xff at 48 \

 match u8 0xff 0xff at 49 \

 match u8 0x00 0xff at 50 \

 match u8 0x32 0xff at 51 \

 match u8 0x02 0xff at 52 \

 match u8 0x30 0xff at 53 \

 match u8 0x4f 0xff at 54 \

 match u8 0xff 0xff at 55 \

 match u8 0xfe 0xff at 56 \

 match u8 0x08 0xff at 57 \

 match u8 0x35 0xff at 58 \

 match u8 0x8d 0xff at 59 \

 flowid 10:13

Эту же методику можно использовать для отбора по адресу подсети, например 2001:

# tc filter add dev $DEV parent 10:0 protocol ip prio 10 u32 \

 match ip protocol 41 0xff \

 match u8 0x05 0x0f at 0 \

 match u8 0x20 0xff at 28 \

 match u8 0x01 0xff at 29 \

 flowid 10:13

Глава 13. Параметры настройки сети в ядре.

В ядре имеется масса параметров, которые могут быть изменены под различные нужды. Хотя, заданные по-умолчанию параметры удовлетворяют потребности в 99% случаев, но не зря же мы назвали это руководство Advanced HOWTO!

Очень интересные настройки вы найдете в /proc/sys/net , загляните туда. Конечно же, изначально не все тонкости будут описаны здесь, но мы работаем над этим.

Между прочим, значительная часть настроек описана в файле Documentation/filesystems/proc.txt, в дереве каталогов с исходными текстами ядра.

13.1. Reverse Path Filtering.

Reverse Path Filtering — Проверка Обратного Адреса, хотя это слишком вольный перевод термина, но мне он кажется наиболее близким по смыслу. прим. перев.

По-умолчанию, маршрутизаторы перенаправляют все подряд, даже пакеты, которые не принадлежат вашей сети. В качестве примера можно привести утечку локального трафика в Интернет. Если у вас имеется интерфейс с маршрутом к нему 195.96.96.0/24, то вы наверняка не ожидаете получить на него пакеты от 212.64.94.1.

Поделиться:
Популярные книги

Воронцов. Перезагрузка. Книга 5

Тарасов Ник
5. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 5

Наследник в Зеркальной Маске

Тарс Элиан
8. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник в Зеркальной Маске

Император Пограничья 5

Астахов Евгений Евгеньевич
5. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 5

Седина в бороду, Босс… вразнос!

Трофимова Любовь
Юмор:
юмористическая проза
5.00
рейтинг книги
Седина в бороду, Босс… вразнос!

Помещик

Беличенко Константин
1. Помещик
Фантастика:
боевая фантастика
попаданцы
5.56
рейтинг книги
Помещик

Двойник Короля 4

Скабер Артемий
4. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 4

Телохранитель Генсека. Том 3

Алмазный Петр
3. Медведев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 3

Инженер против

Красногоров Яр
1. Сила Сопротивления
Фантастика:
боевая фантастика
постапокалипсис
рпг
фэнтези
5.00
рейтинг книги
Инженер против

Медиум

Злобин Михаил
1. О чем молчат могилы
Фантастика:
фэнтези
7.90
рейтинг книги
Медиум

Рассвет русского царства

Грехов Тимофей
1. Новая Русь
Документальная литература:
историческая литература
5.00
рейтинг книги
Рассвет русского царства

Чужак из ниоткуда 3

Евтушенко Алексей Анатольевич
3. Чужак из ниоткуда
Фантастика:
космическая фантастика
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда 3

Запрети любить

Джейн Анна
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Запрети любить

На границе империй. Том 2

INDIGO
2. Фортуна дама переменчивая
Фантастика:
космическая фантастика
7.35
рейтинг книги
На границе империй. Том 2

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2