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

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

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:

 bandwidth 100Mbit rate 100Mbit allot 1514 weight 10Mbit \

prio 8 maxburst 20 avpkt 1000

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

• 

class
. Если в предыдущей команде был задан объект
qdisc
, то здесь присутствует объект
class
, определяющий класс.

• 

parent 10:0
. Этот компонент команды задает корень
дерева. К метке, определенной в предыдущей команде, добавляется значение 0.

• 

classid 10:1
. Данный компонент задает идентификатор конкретного класса.

• 

allot 1514
. С помощью этого параметра указывается значение MTU для сети (оно на несколько байт превышает реальное значение).

• 

weight 1Mbit
. Данный параметр используется для настройки. Возможно, для конкретной сети необходимо специально подобрать его значение.

• 

prio 8
. Этот компонент команды задает приоритет правила. Чем больше значение, тем выше приоритет.

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

# tc class add dev eth1 parent 10:1 classid 10:100 cbq \

 bandwidth 100Mbit rate 50Mbit allot 1514 weight 5Mbit \

 prio 5 maxburst 20 avpkt 1000 bounded

# tc class add dev eth1 parent 10:1 classid 10:200 cbq \

 bandwidth 100Mbit rate 50Mbit allot 1514 weight 5Mbit \

 prio 5 maxburst 20 avpkt 1000 bounded

Эти команды различаются только значением

classid
. Обе ссылаются на корневой класс, и каждая выделяет соответствующей подсети 50 Мбод пропускной способности линии. (Вы можете задать разные значения для каждой подсети, например 60 Мбод и 40 Мбод.) Параметр
bounded
указывает на то, что система не должна выделять классу часть пропускной способности линии, превышающую указанное значение. Часто такое ограничение бывает нежелательным, поскольку если из одной сети данные не передаются, другая сеть не сможет использовать остальную часть пропускной способности линии. Отказавшись от параметра
bounded
, вы обеспечите большую гибкость при работе через линии связи, в частности, предоставите офисам возможность "занимать" друг у друга пропускную способность линии. Если же обоим офисам потребуется передавать данные, этот ресурс будет распределен поровну.

Теперь необходимо связать дисциплину очереди с каждым из двух классов.

# tc qdisc add dev eth1 parent 10:100 sfq quantum 1514b \

 perturb 15

# tc qdisc add dev eth1 parent 10:200 sfq quantum 1514b \

 perturb 15

Данные команды аналогичны рассмотренной ранее команде, определяющей порядок обслуживания очереди. Они сообщают Linux о том, что для планирования трафика внутри подсети каждого офиса должна использоваться дисциплина SFQ (Stochastic Fairness Queueing — стохастическая организация очереди, обеспечивающая равный доступ). Эта дисциплина популярна, так как для ее реализации не требуется много ресурсов процессора. Если понадобится, можете задать другую дисциплину.

Команды, которые мы уже рассмотрели, не предоставляли ядру информацию, позволяющую разделить трафик, соответствующий различным подсетям (192.168.1.0/24 и 192.168.2.0/24). Поэтому необходимо выполнить следующие команды:

# tc filter add dev eth1 parent 10:0 protocol ip prio 100 u32 \

 match ip dst 192.168.1.0/24 flowid 10:100

# tc filter add dev eth1 parent 10:0 protocol ip prio 100 u32 \

 match ip dst 192.168.2.0/24 flowid 10:200

В отличие от предыдущих, в этих командах указан объект

filter
. Данные команды задают правила, которые связывают трафик подсети с соответствующим классом. Обоим правилам назначены одинаковые приоритеты и задан алгоритм
u32
, работающий с блоками IP-адресов.

Созданные правила управляют потоком данных из Internet в локальные

сети. При желании вы можете создать аналогичный набор правил, действующих в противоположном направлении. Эти правила почти совпадают с предыдущими, но вместо внутреннего интерфейса
eth1
они должны ссылаться на внешний интерфейс
eth0
, и в двух последних командах
filter
вместо параметра
dst
должен быть указан параметр
src
.

Использование протоколов маршрутизации

Главная задача маршрутизатора — определить способ передачи пакетов. Предположим, например, что от маршрутизатора к целевому узлу ведут два маршрута. С помощью специальных инструментов, например программы

ip
, входящей в состав пакета
iproute2
, вы можете сообщить маршрутизатору, какой из путей следует выбрать. Маршрутизатор, настроенный подобным образом, будет применять для маршрутизации пакетов одни и те же правила до тех пор, пока вы не измените их с помощью
ip
. Подобное поведение маршрутизатора допустимо лишь в простых статических средах. В реальных условиях сетевое окружение постоянно изменяется: вводятся в строй новые линии связи, а существующие линии внезапно прекращают работу. Подобные изменения могут происходить далеко от вашей сети, и сведения о них не всегда будут поступать к вам. Иногда может возникнуть необходимость сообщить другим маршрутизаторам об изменениях в вашей сети, например, о появлении новой подсети с определенным IP-адресом. Для решения подобных задач предназначены протоколы маршрутизации, рассмотрению которых посвящен данный раздел.

Принцип действия протоколов маршрутизации

Ранее в этой главе был описан процесс настройки маршрутизатора, реализованного в системе Linux, для обработки пакетов в зависимости от адреса назначения, содержимого и других характеристик пакета. Протоколы маршрутизации предоставляют возможность учитывать состояние сетевой среды. Они позволяют получить информацию о том, достижима ли требуемая сеть и какова стоимость передачи пакета в эту сеть. Здесь понятие стоимости не связано с деньгами. Под стоимостью обычно понимают число узлов, которые должен посетить пакет, прежде чем он попадет на целевой узел. В роли стоимости также могут выступать другие характеристики сети, определяющие ее производительность. Стоимость передачи пакета по сети называется метрикой. Если маршрутизатор соединен с другими сетями посредством двух сетевых соединений, стоимость доставки пакета на целевой узел, или метрика пути к целевому узлу, зависит от того, посредством какого соединения будет передан этот пакет. Рассмотрим в качестве примера сетевую среду, условно показанную на рис. 24.1. На этом рисунке изображено пять сетей, принадлежащих пяти факультетам университета. В каждой сети работает свой маршрутизатор, который соединен с двумя другими маршрутизаторами.

Рис. 24.1. Протоколы маршрутизации позволяют маршрутизаторам обмениваться информацией и определять наиболее короткий маршрут для передачи пакета

На заметку

В данном примере описывается несколько сетей, соединенных между собой; такая структура называется internet (со строчной буквы). Аналогичные принципы используются и при выполнении маршрутизации во всей Internet (с прописной буквы).

При неоправданном посещении пакетом очередного узла увеличивается время его доставки в целевую сеть. Например, при передаче из сети филологического факультета в сеть физического факультета пакет посетит как минимум три маршрутизатора. Заметьте, что из сети филологического факультета в сеть физического факультета ведут два маршрута. Один из них проходит через маршрутизатор факультета психологии, а другой — через маршрутизаторы химического и исторического факультетов. Путь в направлении против часовой стрелки оказывается более длинным. Хорошо, если бы маршрутизатор филологического факультета имел информацию об обоих маршрутах. Если маршрутизатор факультета психологии выйдет из строя, пакеты можно будет передавать по альтернативному маршруту.

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

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

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

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

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

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

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

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

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

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

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник