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

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

Жанры

Linux Advanced Routing & Traffic Control HOWTO

Larroy Pedro

Шрифт:

tc class add dev eth0 parent 1:1 classid 1:15 htb rate 30kbit ceil ${CEIL}kbit prio 3

tc qdisc add dev eth0 parent 1:12 handle 120: sfq perturb 10

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

Эти строки создают одноярусное дерево HTB:

+---------+

| root 1: |

+---------+

|

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

| class 1:1 |

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

| | | | | |

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

|1:10| |1:11| |1:12| |1:13| |1:14| |1:15|

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

classid 1:10 htb rate 80kbit ceil 80kbit prio 0

Это

класс с наивысшим приоритетом. Пакеты, попадающие в этот класс, будут иметь самую низкую задержку и получат избыток канала в первую очередь. Сюда будет направляться интерактивный трафик: ssh, telnet, dns, quake3, irc, а так же пакеты с установленным флагом SYN.

classid 1:11 htb rate 80kbit ceil ${CEIL}kbit prio 1

Это первый класс, через который будет проходить довольно объемный трафик. В моем случае – это трафик от локального WEB-сервера и запросы к внешним WEB-серверам, исходящий порт 80 и порт назначения 80, соответственно.

classid 1:12 htb rate 20kbit ceil ${CEIL}kbit prio 2

В этот класс помещаются пакеты, с установленным битом Maximize-Throughput в поле TOS, а так же иной трафик, который генерируется локальными процессами на маршрутизаторе, отправляемый в Интернет. Таким образом, все последующие классы будут иметь дело только с перенаправляемым трафиком.

classid 1:13 htb rate 20kbit ceil ${CEIL}kbit prio 2

Высокоприоритетный класс, обслуживающий объемный трафик, поступающий от компьютеров из локальной сети.

classid 1:14 htb rate 10kbit ceil ${CEIL}kbit prio 3

Этот класс обслуживает почтовый трафик (SMTP, pop3…) и пакеты, с установленным битом Minimize-Cost в поле TOS.

classid 1:15 htb rate 30kbit ceil ${CEIL}kbit prio 3

Последний класс. Он обслуживает прочий трафик, поступающий от компьютеров из локальной сети. Сюда попадает все, что относится к работе в пиринговых сетях, т.е. kazaa, edonkey и пр.

15.10.2. Классификация пакетов.

Мы создали различные

классы обработки трафика, но классификация пока отсутствует, поэтому, к настоящему моменту, весь трафик пойдет через класс 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, правила для установки меток на пакеты:

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

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь