2_traffic_окончательная.ppt
- Количество слайдов: 94
Алгоритмы управления трафиком
План лекции 1. 2. 3. Сеть с поддержкой качества обслуживания Классификация трафика. Ограничение трафика. 1. 2. 4. Алгоритм «дырявое ведро» . Алгоритм «корзина маркеров» . Маршрутизация. 1. 2. Протоколы внутренней маршрутизации (IGP). 1. RIP. 2. OSFP. 3. IGRP. 4. IS-IS. 5. Взаимодействие протоколов маршрутизации IGP. Протокол внешнего шлюза.
1. СЕТЬ С ПОДДЕРЖКОЙ КАЧЕСТВА ОБСЛУЖИВАНИЯ
Управление трафиком Под управлением трафиком обычно подразумевается совокупность алгоритмических средств, направленных на обеспечение функционирования сети с требуемым качеством обслуживания (Qo. S) и эффективным использованием ресурсов. Показатели Qo. S (пропускная способность, задержка пакетов, джиттер, вероянтость потери пакета) потока, проходящего через сеть, зависят от алгоритмов управления трафиком, применяемых на каждом маршрутизаторе, через который проходят пакеты данного потока. Таким образом сеть, поддерживающая Qo. S, должна состоять из маршрутизаторов с одинаково реализоваными алгоритмами управления трафиком. Если в маршруте «из-конца-в-конец» будет содержаться хотя бы один маршрутизатор без реализации поддержки Qo. S, то качество обслуживания для данной услуги не будет поддержано.
Сеть с поддержкой Qo. S
Функции пограничных маршрутизаторов • Классификация трафика. Маршрутизаторы проводят классификацию пакетов с целью отнесения их к тому или иному классу трафика на основании значений одного или нескольких полей в заголовке TCP/IP-пакета (адрес источника, адрес получателя, порт источника, порт получателя и другие). Пакетам каждого класса трафика присваивается соответствующее значение поля IP-приоритета или поля кода дифференцированной услуги (DSCP). • Ограничение трафика. Функция ограничения трафика предполагает соизмерение параметров поступающего в сеть трафика с его профилем. Ограничение трафика достигается либо путем сглаживания, либо профилирования трафика.
2. КЛАССИФИКАЦИЯ ТРАФИКА
Классификация трафика Классификация пакетов представляет средство, позволяющее отнести пакет к тому или иному классу трафика. Существуют различные способы классификации, которые отличаются тем, что: • Распознающая функция зависит от пяти параметров: адрес источника, адрес получателя, порт источника, порт получателя, поля протокола IP. • Распознающая функция зависит от поля IP-приоритета или поля DSCP. • Распознающая функция зависит от других параметров TCP/IP-пакета, таких, как длина пакета. • Распознающая функция зависит от MAC-адреса отправителя и MACадреса получателя. • Распознающая функция зависит от информации о протоколах высокого уровня, которые содержит пакет. Классификация пакетов также может быть основана на внутренних параметрах маршрутизатора (входной интерфейс маршрутизатора).
IP-приоритет Пакету каждого класса обслуживания придается соответствующая метка. Пакеты могут быть маркированы путём установки значения поля IP-приоритета или поля кода дифференцированной услуги (DSCP). Поле IP-приоритета состоит из трёх битов байта типа обслуживания (Type Of Service - To. S) в заголовке IP пакета.
Поле DSCP В соответствии с RFC 2474 байт To. S (Type of Service) в заголовке IP пакета переименован в байт DS (Differentiated Services).
Коды DSCP • Стандартный код DSCP. Определен как 000. • Селектор класса. Эти коды DSCP обладают обратной совместимостью с кодами IPприоритета.
Коды DSCP • Политика немедленной передачи. Этот код DSCP соответствует наиболее высокому уровню обслуживания. Рекомендуемое значение – 101 110. • Политика гарантированной передачи. Эти коды DSCP определяют четыре уровня обслуживания, каждый из которых может быть охарактеризован тремя уровнями приоритета отбрасывания пакетов данных.
3. ОГРАНИЧЕНИЕ ТРАФИКА
Функции ограничения трафика Виды ограничения трафика: • Профилирование трафика (traffic policing). Функция профилирования трафика осуществляет отбрасывание всех пакетов, не удовлетворяющих параметрам заданного профиля. В качестве параметров профиля обычно выбирается средняя пропускная способность, измеренная на не котором интервале времени. Более сложные варианты профилирования учитывают среднюю и пиковую скорость. • Сглаживание (traffic shaping). Функция сглаживания трафика осуществляет задержку пакетов путём их буферизации с целью удовлетворения параметров заданного профиля.
Профилирование трафика
Сглаживание трафика
Алгоритм «Дырявое ведро» (Leaky Bucket) был предложен в 1986 году J. S. Turner. Одной из главных задач алгоритма Leaky Bucket является измерение и соответствующее управление поступающей нагрузкой, для чего применяется счетчик. При поступлении пакета в очередь значение размера счетчика должно быть увеличено на некоторое число, предварительно заданное параметром I, называемым «инкрементом» . Если сумма значений размера счетчика и инкремента не превышают размера буфера, то определяется, что поступивший пакет соответствует профилю (является конформным) и помещается в буфер, если же эта сумма превышает размер буфера, то определяется, что поступивший пакет «вне профиля» (не является конформным) и сбрасывается.
Алгоритм «Дырявое ведро»
Алгоритм «Дырявое ведро»
Алгоритм «Дырявое ведро»
Алгоритм двойное «Дырявое ведро»
Алгоритм «Корзина маркеров» или алгоритм «маркерного ведра» (Token Bucket) появился существенно позже алгоритма Leaky Bucket. Алгоритм Token Bucket позволяет применять какие-либо действия (сброс или маркировка) к пакетам, которые не соответствуют заданному профилю, при этом пакеты, соответствующие профилю, проходят через Token Bucket без какой-либо дополнительной задержки, связанной с ограниченной интенсивностью исходящей нагрузки. В алгоритме Token Bucket применяется два буфера – для пакетов и жетонов (tokens). Жетоны генерируются автоматически программным обеспечением узла с заданной интенсивностью и помещаются в очередь. Если буфер жетонов полон, то новый жетон теряется. В случае отсутствия жетонов пакеты должны сохранятся в буфере.
Алгоритм «Корзина маркеров»
Алгоритм «Корзина маркеров» В алгоритме Token Bucket минимальная интенсивность обработки поступающих пакетов равна интенсивности генерации жетонов. Максимальная интенсивность обслуживания пакетов может иметь место, когда в буфере жетонов накопилось их некоторое количество, т. е. буфер пакетов был пуст, а пакеты стали поступать с максимально возможной интенсивностью, т. е. с минимальным интервалом. Важно отметить, что в случае, когда интенсивность выходящей нагрузки максимальна, на выходе Token Bucket получается пачка пакетов идентичная входной. Алгоритм Token Bucket может работать в двух режимах – «маркировки или сброса» и «сглаживания» . В режиме «сглаживания» пакеты в очереди ожидают появления маркеров для обслуживания и сбрасываются лишь при переполнении очереди пакетов. В режиме «маркировки или сброса» пакеты сбрасываются либо маркируются при отсутствии маркеров.
Алгоритм двойного «маркерного ведра»
Двухскоростной трехуровневый маркировщик Алгоритм «двухскоростной трехуровневый маркировщик» (two-rate three-color marker - tr. TCM) является модификацией двойного Token Bucket (Dual Token Bucket). Алгоритм tr. TCM измеряет нагрузку и маркирует пакеты тремя цветами: зеленый, желтый, красный, и определяется четырьмя контролируемыми параметрами: пиковая скорость (Peak Information Rate - PIR), пиковый размер пачки (Peak Burst Size- PBS), выполнимая скорость (Committed Infornation Rate - CIR), выполнимый размер пачки (Committed Burst Size - CBS). Под выпонимой скоростью подразумевается скорость, поддерживаемая сетью при нормальном функционировании. Поступающий в tr. TCM пакет маркируется красным, если скорость потока в момент поступления превышает параметр PIR, маркируется желтым, если скорость превышает параметр CIR, либо маркируется зеленым, если скорость потока меньше CIR.
Двухскоростной трехуровневый маркировщик
Сглаживания профиля трафика
4. МАРШРУТИЗАЦИЯ
Понятие автономной системы Автономная система (Autonomous System, AS) – это совокупность сетей под единым административным управлением, обеспечивающим общую для всех входящих в автономную систему маршрутизаторов политику маршрутизации. В соответствии с этой концепцией Интернет выглядит как набор взаимосвязанных AS, каждая из которых состоит из взаимосвязанных сетей, соединенными внешними шлюзами. Основная цель деления Интернета на автономные системы — обеспечение многоуровневого подхода к маршрутизации. До введения автономных систем предполагался двухуровневый подход, то есть сначала маршрут определялся как последовательность сетей, а затем вел непосредственно к заданному узлу в конечной сети. С появлением автономных систем появляется третий, верхний, уровень маршрутизации — теперь сначала маршрут определяется как последовательность автономных систем, затем — как последовательность сетей и только потом ведет к конечному узлу.
Понятие автономной системы
Внутренние и внешние протоколы маршрутизации За маршрут внутри автономной системы отвечают внутренние шлюзовые протоколы (Interior Gateway Protocol, IGP). К числу IGP относятся протоколы RIP, OSPF, IGRP и IS-IS. В случае транзитной автономной системы эти протоколы указывают точную последовательность маршрутизаторов от точки входа в автономную систему до точки выхода из нее. Выбор маршрута между автономными системами осуществляют внешние шлюзы, использующие особый тип протокола маршрутизации, так называемый внешний шлюзовой протокол (Exterior Gateway Protocol, EGP). В настоящее время для работы в такой роли сообщество Интернета утвердило стандартный пограничный шлюзовой протокол версии 4 (Border Gateway Protocol, BGPv 4). В качестве адреса следующего маршрутизатора в протоколе BGPv 4 указывается адрес точки входа в соседнюю автономную систему.
Трафик инжиниринг (Traffic Engineering - TE) предоставляет возможность установить явный путь, по которому будут передаваться потоки данных. IP-трафик маршрутизируется по средствам его передачи от одной точки назначения к другой и следует до пункта назначения по пути, имеющем наименьшую суммарную метрику сетевого уровня. Путь, по которому следует трафик, может не быть оптимальным, так как он зависит от информации о статической метрике канала. При выборе пути не учитываются свободные сетевые ресурсы, а также требования к обслуживанию трафика. Целью инжиниринга трафика является максимально и сбалансировано загрузить все ресурсы сети, чтобы сеть при заданном уровне качества обслуживания обладала как можно более высокой суммарной производительностью.
Традиционная маршрутизация Основным принципом работы традиционной маршрутизации в сетях с коммутацией пакетов является выбор маршрута на основе топологии сети без учета информации о её текущей загрузке. Для каждой пары «адрес источника – адрес получателя» такие протоколы выбирают единственный маршрут, не принимая во внимание информационные потоки, протекающие через сеть. В результате все потоки между парами конечных узлов сети идут по кратчайшему (в соответствии с некоторой метрикой) маршруту.
Инжиниринг трафика Исходными данными для методов инжиниринга трафика являются: • характеристики передающей сети – топология и производительность составляющих сеть маршрутизаторов и линий связи; • сведения о предложенной нагрузке сети, то есть о потоках, которые сеть должна передать между своими пограничными маршрутизаторами.
Инжиниринг трафика Решение задачи инжиниринга трафика можно искать по-разному. Можно искать его в фоновом режиме (заблаговременно). В таком случае для исходных данных с помощью некоторого алгоритма находится единственное статическое решение.
Инжиниринг трафика Задачу TE можно решать в оперативном режиме, поручив её самим маршрутизаторам. Для этого используются модификации стандартных протоколов маршрутизации. Модификация протоколов состоит в том, что маршрутизаторы сообщают другу не только топологическую информацию (метрику), но и текущее значение свободной пропускной способности для каждого ресурса. После того как решение найдено, нужно его реализовать, то есть воплотить в таблицах маршрутизации. На этапе установки виртуального соединения работают протоколы резервирования ресурсов (например RSVP). RSVP (Resource Reservation Protocol) – это сигнальный протокол Qo. S, который позволяет конечным приложениям, требующим определенное качество обслуживания, проводить сквозную сигнализацию своих Qo. S-требований.
Протокол RSVP Перед тем как зарезервировать ресурсы, RSVP-демон маршрутизатора соединяется c двумя локальными модулями принятия решения — модулем управления доступом (admission control) и модулем управления политикой (policy control). Модуль управления доступом определяет, имеет ли узел достаточно свободных ресурсов для обеспечения запрошенного уровня Qo. S. Модуль управления политикой определяет, есть ли у пользователя администраторские права, для того чтобы произвести резервирование. Если какая-либо из проверок не прошла, RSVP-демон отправляет сообщение об ошибке процессу приложения, которое создало запрос. Если обе проверки прошли нормально, RSVPдемон устанавливает параметры классификатора пакетов и планировщика пакетов для получения нужного уровня Qo. S. Взвешенный алгоритм равномерного обслуживания очередей WFQ и взвешенный алгоритм произвольного раннего обнаружения RED обеспечивают поддержку Qo. S на требуемом уровне.
Протокол RSVP
Протокол RSVP Во время процесса принятия решения модулем управления доступом резервирование затребованной полосы пропускания производится только в том случае, если для запрашиваемого класса трафика достаточно оставшейся части. В противном случае запрос на доступ отклоняется, но трафик все равно передается с качеством обслуживания, определенным по умолчанию для данного класса трафика. Во многих случаях, даже если запрос на доступ отклонен на одном или нескольких маршрутизаторах, модуль все еще может реализовать приемлемое качество обслуживания, установив резервирование на перегруженных маршрутизаторах. Это возможно из-за того, что другие потоки данных могут не полностью использовать заказанную ими полосу пропускания. Резервирование всегда должно следовать по одному и тому же пути. В случае выхода из строя линии связи маршрутизатор должен сообщить об этом RSVP-демону, чтобы генерируемые им RSVP-сообщения передавались по новому пути.
Процесс установки резервирования можно разбить на пять отдельных шагов: 1. Отправители данных посылают управляющие сообщения RSVP PATH по тому же пути, по которому они отправляют обычный трафик с данными. 2. Каждый RSVP-маршрутизатор перехватывает РАТН-сообщения, сохраняет IP-адрес предыдущей точки назначения, записывает вместо него свой собственный адрес и отправляет обновленное сообщение дальше. 3. Станции-получатели выбирают подмножество сеансов, для которых они получили РАТН-информацию и с помощью RSVP RESV-сообщения запрашивают RSVP-резервирование ресурсов у предыдущего маршрутизатора. RSVP RESV -сообщения идут от получателя к отправителю в противоположном направлении по маршруту, пройденному RSVP РАТН-сообщениями.
Процесс установки резервирования 4. RSVP-маршрутизаторы определяют, могут ли они удовлетворить эти RESV-запросы. Если нет, они отказывают в резервировании. Если да, то они объединяют полученные запросы на резервирование и отсылают запрос предыдущему маршрутизатору. 5. Отправители, получив запросы на резервирование ресурсов от соответствующих маршрутизаторов, считают резервирование ресурсов состоявшимся. То есть реальное резервирование ресурсов осуществляется RESV-сообщениями.
Протоколы динамической маршрутизации • Дистанционно-векторные протоколы (DVP – Distance-Vector Protocol). Функционирование таких протоколов заключается в распространении каждым маршрутизатором среди соседних маршрутизаторов служебной информации о расстояниях до каждой сети, известной ему, т. е. ретранслирует модифицированные (в смысле аддитивного значения метрики) сообщения от своих соседей. • Протоколы состояния канала (LSP – Link-State Protocol). Функционирование таких протоколов базируется на распространении топологической информации о сети, передаваемой в служебных сообщениях «рекламы состояний каналов» (LSA – Link-State Advertisement). Процедура распространения LSA основана на методе flooding [RFC 1479], т. е. при получении LSA-сообщения маршрутизатор передаёт его в неизменном виде всем, кроме того, от которого пришло сообщение.
Протоколы динамической маршрутизации Протоколы класса DVP относительно просты в реализации, однако это неизбежно приводит к тому, что при реальной работе возникают петлеобразные маршруты. Для некоторых протоколов существуют искусственные механизмы борьбы с петлями. Например в протоколе RIP используется метод split horizon [RFC 1058], заключающийся в том, что хранящаяся информация в таблице маршрутизации никогда не передается тому маршрутизатору, от которого она получена. В свою очередь даже простейшие алгоритмы LSP более сложны, чем DVP. Это объясняется тем, что они изначально обеспечивают выполнение двух базовых функций – управление базой данных состояний и поиск оптимального маршрута. В результате каждый маршрутизатор строит сетевой граф, на основе которого маршрутизатор вычисляет оптимальный маршрут до каждой сети. Однако реализация поиска оптимального маршрута позволяет гарантированно избавиться от петлеобразных маршрутов.
Протоколы динамической маршрутизации Недостатком LSP-протоколов можно отнести низкую масштабируемость по причине высокой загрузки сети служебными сообщениями LSA в случае обновления информации о состояниях крупной сети. В реализациях таких протоколов заложены методы борьбы с отмеченным недостатком. Например, в протоколе OSFP для коррекции уже построенных таблиц маршрутизации используются не полные сообщения LSA, а короткие HELLO. Если топология или состояние сети не меняется, то корректировка таблиц маршрутизации не производится. В противном случае маршрутизаторы рассылают своим соседям сообщение HELLO, которое содержит информацию лишь о изменившихся параметрах сети. После получения новой информации заново производится построение графа и расчет оптимальных маршрутов. Одновременно маршрутизатор осуществляет рассылку полученного HELLO сообщения всем соседям, за исключением того, от которого получил информацию.
Протоколы динамической маршрутизации
Протокол RIP Алгоритм маршрутизации RIP (алгоритм Беллмана — Форда) был впервые разработан в 1969 году, как основной для сети ARPANET. Версия RIP, которая поддерживает протокол интернета была включена в пакет BSD операционной системы Unix под названием routed (route daemon), а также многими производителями, реализовавшими свою версию этого протокола. В итоге протокол был унифицирован в документе RFC 1058. В 1994 году был разработан протокол RIP 2 (RFC 2453), который является расширением протокола RIP, обеспечивающим передачу дополнительной маршрутной информации в сообщениях RIP и повышающим уровень безопасности. Для работы в среде IPv 6 была разработана версия RIPng.
Алгоритм Беллмана — Форда Заведём массив расстояний D[0. . n-1], который после отработки алгоритма будет содержать ответ на задачу. В начале работы мы заполняем его следующим образом: D[s]=0, а все остальные элементы равны бесконечности. Сам алгоритм Форда-Беллмана представляет из себя несколько фаз. На каждой фазе просматриваются все рёбра графа, и алгоритм пытается произвести релаксацию (relax, ослабление) вдоль каждого ребра (A, B) стоимости c. Релаксация вдоль ребра — это попытка улучшить значение D[B] значением D[A]+c. Фактически это значит, что мы пытаемся улучшить ответ для вершины B, пользуясь ребром (A, B) и текущим ответом для вершины A. Утверждается, что достаточно фазы алгоритма, чтобы корректно посчитать длины всех кратчайших путей в графе (при отсутствии циклов отрицательного веса). Для недостижимых вершин расстояние останется равным бесконечности.
Алгоритм Беллмана — Форда Длина пути A B C D E 0 0 ∞ ∞ 1 0 1 (A) 4 (A) ∞ ∞ 2 0 1 (A) 3 (B) 4 (B)
Протокол RIP оперирует хопами (ретрансляционными "скачками") в качестве метрики маршрутизации. Максимальное количество хопов, разрешенное в RIP — 15 (метрика 16 означает «бесконечно большую метрику» ). Каждый RIP-маршрутизатор по умолчанию вещает в сеть свою полную таблицу маршрутизации раз в 30 секунд, довольно сильно нагружая низкоскоростные линии связи. RIP работает на прикладном уровне стека TCP/IP, используя UDP порт 520. Протокол RIP достаточно прост в реализации и чаще всего используется в небольших сетях. На сегодняшний день имеются две версии протокола – RIPv 1 и RIPv 2. Вторая версия протокола передаёт информацию о масках сетей, поэтому он в большей степени соответствует требованиям сегодняшнего дня. Модифицированые протоколы допускают различные виды метрик: хопы, значения пропускной способности, вносимые задержки, надежность, а также любые комбинации этих метрик.
Формат пакета RIP 1 2 3 4 0 1 2 3 4 5 6 7 Command (1) Version (1) must be zero (2) RIP entry (20) Сommand - Команда, определяет назначение датаграммы (1 - request; 2 - response). Version - Номер версии, в зависимости от версии, определяется формат пакета. Must be zero - Должно быть нулём (В RIP v 2 здесь находится поле "Routing Domain"). RIP Entry - (RTE) Запись маршрутной информации RIP пакет может содержать от 1 до 25 записей RIP Entry.
Формат RIP Entry для протокола RIP-1 (version=1) 1 2 3 4 0 1 2 3 4 5 6 7 Address family identifier (2) must be zero (2) IPv 4 address (4) must be zero (8) metric (4) Address family identifier - тип адреса, обычно поддерживается только запись AF_INET, которое равно 2 (т. е. используется для протокола IP). Must be zero - должно быть нулём. IPv 4 address - IP адрес места назначения (хост или сеть). Metric - Метрика маршрут.
Формат RIP Entry для протокола RIP-2 (version=2) 1 2 3 4 0 1 2 3 4 5 6 7 Address family identifier (2) Route Tag (2) IPv 4 address (4) Subnet Mask (4) Next Hop (4) metric (4) Route Tag - (RT) Тег маршрута. Предназначен для разделения "внутренних" маршрутов от "внешних". Subnet Mask - маска подсети. Next Hop - Следующий хоп. Содержит IP адрес маршрутизатора к месту назначения. Значение 0. 0 - хопом к месту назначения является отправитель пакета.
Работа протокола RIP Рассмотрим процесс построения таблицы маршрутизации с помощью протокола RIP на примере. Сеть включает в себя восемь IP-сетей, соединенных четырьмя маршрутизаторами R 1, R 2, R 3, R 4.
Работа протокола RIP Этап 1 – создание минимальной таблицы маршрутизации. В исходном состоянии на каждом маршрутизаторе программным обеспечением стека TCP/IP автоматически создаётся таблица маршрутизации, в которой учитываются только непосредственно подсоединенные сети. Минимальная таблица других маршрутизаторов будет выглядеть соответственно.
Работа протокола RIP Этап 2 – рассылка минимальной таблицы маршрутизации соседям. После инициализации каждый маршрутизатор начинает посылать своим соседям сообщения протокола RIP, в которых содержится его минимальная таблица. RIP-сообщения передаются в дейтаграммах UDP и включают два параметра для каждой сети: её IP-адрес и расстояние до неё от передающего маршрутизатора. Соседними считаются маршрутизаторы, которым данный маршрутизатор может передать IP-пакет не пользуясь услугами промежуточных маршрутизаторов. Таким образом маршрутизатор R 1 передаёт маршрутизаторам R 2 и R 3 следующие сообщения: • cеть 201. 36. 14. 0, метрика 1; • сеть 132. 11. 0. 0, метрика 1; • cеть 194. 27. 18. 0, метрика 1.
Работа протокола RIP Этап 3 – получение RIP-сообщений от соседей и обработка полученной информации.
Работа протокола RIP Этап 4 – рассылка полученной таблицы маршрутизации соседям. Каждый маршрутизатор посылает новое RIP-сообщение своим соседям. Этап 5 – получение RIP-сообщений от соседей и обработка полученной информации.
Адаптация протокола RIP К новым маршрутам маршрутизаторы RIP приспасабливаются просто – информация о новых маршрутах рассылается в очередном сообщении. А вот к информации о потере какого-либо маршрута маршрутизаторы RIP адаптируются сложнее, т. к. в формате протокола нет поля, которое бы указывало на то, что путь более не существует. Для уведомления о том, что некоторый маршрут более не существует, используются два механизма: • Истечение времени жизни маршрута. • Маршрут считается недействительным, если за шестикратный период рассылки (30 секунд) не приходит подтверждение о его активности. • Указание специальной бесконечной метрики.
Зацикливания пакетов
Борьба с зацикливанием пакетов Для борьбы с зацикливанием пакетов были предложены некоторые механизмы: • Расщепление горизонта (split horizon). Механизм заключается в том, что маршрутизатор никогда не передаёт маршрутную информацию тому маршрутизатору, от которого она получена. Этот метод надежно защищает сеть от петлей между соседними маршрутизаторами. • Приём триггерных обновлений. Состоит в том, что маршрутизатор, получив данные о изменении метрики передаёт их немендленно, а не ожидает истечения периода передачи таблицы. • Замораживание изменений. Состоит в введении тайм-аута на принятие новых данных о сети, которая только что стала недоступной.
Протокол OSFP (Open Shortest Path First – выбор кратчайшего пути первым) протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути Алгоритм Дейкстры (Dijkstra’s algorithm). Протокол OSPF был разработан IETF в 1988 году. Последняя версия протокола представлена в RFC 2328. Он обладает многими особенностями, ориентированными на применение в больших сетях. OSPF имеет следующие преимущества: • Высокая скорость сходимости по сравнению с дистанционновекторными протоколами маршрутизации; • Поддержка сетевых масок переменной длины (VLSM); • Оптимальное использование пропускной способности (т. к. строится минимальный остовный граф по алгоритму Дейкстры);
Алгоритм Дейкстры Вводим формальные определения • Пусть D(v) равно сумме весов связей для данного пути. • Пусть c(i, j) равно весу связи между узлами с номерами i и j. Далее следует последовательность шагов, реализующих алгоритм. 1. Устанавливаем множество узлов N = {1}. 2. Для каждого узла v не из множества N устанавливаем D(v)= c(1, v). 3. Для каждого шага находим узел w не из множества N, для которого D(w) минимально, и добавляем узел w в множество N. 4. Актуализируем D(v) для всех узлов не из множества N D(v)=min{D(v), D(v)+c(w, v)}. 5. Повторяем шаги 2 -4, пока все узлы не окажутся в множестве N.
Иллюстрация работы алгоритма Дикстры
Реализация алгоритма
Работа протокола OSFP Протокол OSFP разбивает процедуру построения таблицы маршрутизации на два этапа: • построение и поддержание базы данных о состоянии связей сети; • нахождение оптимальных маршрутов и генерация таблицы марщрутизации. Построение и поддержание базы данных о состоянии связей сети Связи сети могут быть представлены в виде графа, в котором вершина графа являются маршрутизаторы и подсети, а ребрами – связи между ними. Каждый маршрутизатор обменивается со своими соседями той информацией о графе сети, которой он располагает на данном этапе. При транзитной передаче LSA (Link-State Advertisement) маршрутизаторы не модифицируют информацию. В итоге все маршрутизаторы сети сохраняют в своей памяти идентичные сведения о текущей конфигурации графа связей сети.
Работа протокола OSFP
Работа протокола OSFP Для контроля состояния связей и соседних маршрутизаторов OSFPмаршрутизаторы передают другу особые сообщения HELLO каждые 10 секунд. Небольшой объем этих сообщений делает возможным частое тестирование состояния соседей и связей с ними. В том случае, когда сообщения HELLO перестают поступать от какого-либо непосредственного соседа, маршрутизатор делает вывод о том, что состояние связи изменилось с работоспособного на неработоспособное и вносит соответствующие коррективы в свою топологическую базу данных. Одновременно он отсылает всем непосредственным соседям объявление LSA об этом изменении, те также вносят исправления в свои базы данных и, в свою очередь, рассылают данное объявление LSA своим непосредственным соседям.
Работа протокола OSFP Нахождение оптимальных маршрутов и генерация таблицы маршрутизации Задача нахождения оптимального пути на графе является достаточно сложной и трудоемкой. В протоколе OSPF для ее решения используется итеративный алгоритм Дийкстры. Каждый маршрутизатор сети, действуя в соответствии с этим алгоритмом, ищет оптимальные маршруты от своих интерфейсов до всех известных ему подсетей. В каждом найденном таким образом маршруте запоминается только один шаг — до следующего маршрутизатора. Данные об этом шаге и попадают в таблицу маршрутизации. Если состояние связей в сети изменилось и произошла корректировка графа сети, каждый маршрутизатор заново ищет оптимальные маршруты и корректирует свою таблицу маршрутизации. Аналогичный процесс происходит и в том случае, когда в сети появляется новая связь или новый сосед, объявляющий о себе с помощью своих сообщений HELLO.
Работа протокола OSFP При работе протокола OSPF конвергенция таблиц маршрутизации к новому согласованному состоянию происходит достаточно быстро, быстрее, чем в сетях, в которых работают дистанционно-векторные протоколы. Это время состоит из времени распространения по сети объявления LSA и времени работы алгоритма Дийкстры, который обладает быстрой сходимостью. Однако вычислительная сложность этого алгоритма предъявляет высокие требования к мощности процессора маршрутизатора. Когда состояние сети не меняется, то объявления о связях не генерируются, топологические базы данных и таблицы маршрутизации не корректируются, что экономит пропускную способность сети и вычислительные ресурсы маршрутизаторов. Каждые 30 минут OSPFмаршрутизаторы обмениваются всеми записями базы данных топологической информации, то есть синхронизируют их для более надежной работы сети.
Метрики протокола OSFP При поиске оптимальных маршрутов протокол OSPF по умолчанию использует метрику, учитывающую пропускную способность каналов связи. Кроме того, допускается применение двух других метрик, учитывающих задержки и надежность передачи пакетов каналами связи. Для каждой из метрик протокол OSPF строит отдельную таблицу маршрутизации. Выбор нужной таблицы происходит в зависимости от значений битов TOS в заголовке пришедшего IP-пакета. Если в пакете бит D (Delay — задержка) установлен в 1, то для этого пакета маршрут должен выбираться из таблицы, в которой содержатся маршруты, минимизирующие задержку. Аналогично, пакет с установленным битом Т (Throughput - пропускная способность) должен маршрутизироваться по таблице, построенной с учетом пропускной способности каналов, а установленный в единицу бит R (Reliability — надежность) указывает на то, что должна использоваться таблица, для построения которой критерием оптимизации служит надежность доставки.
Работа протокола OSFP Протокол OSPF разрешает хранить в таблице маршрутизации несколько маршрутов к одной сети, если они обладают равными метриками. В таких случаях маршрутизатор может работать в режиме баланса загрузки маршрутов, отправляя пакеты попеременно по каждому из маршрутов. Вычислительная сложность протокола OSPF быстро растет с увеличением размера сети. Для преодоления этого недостатка в протоколе OSPF вводится понятие области сети. Маршрутизаторы, принадлежащие некоторой области, строят граф связей только для этой области. Между областями информация о связях не передается, а пограничные для областей маршрутизаторы обмениваются только информацией об адресах сетей, имеющихся в каждой из областей, и расстоянием от пограничного маршрутизатора до каждой сети. При передаче пакетов между областями выбирается один из пограничных маршрутизаторов области, а именно тот, у которого расстояние до нужной сети меньше.
Протокол IGRP (Interior Gateway Routing Protocol) — протокол маршрутизации, разработанный фирмой Cisco, для своих многопротокольных маршрутизаторов в середине 80 -х годов для маршрутизации в пределах AS. Протокол IGRP относится к семейству DVP и является запатентированной собственностью фирмы Cisco. Работы над этим протоколом начались в то время, когда IETF ещё не завершил разработку OSFP, а в сетях применялся протокол RIP. К основным преимуществам IGRP можно отнести: • защита от образования петлевидных маршрутов; • использование композитных метрик; • обеспечение стабильности маршрутов на сетях большой емкости ; • минимальная избыточность ; • обработка маршрутов по умолчанию.
Принцип композитных метрик В качестве базовых метрик, описывающих тот или иной маршрут в протоколе IGRP, используются следующие: • время задержки (delay - D); • пропускная способность (bandwidth, - B); • надежность (reliability, R); • относительная нагрузка (load, L). Кроме того, в сообщениях маршрутизации переносятся сведения о количестве шагов в маршруте и «максимальной длины передаваемого сегмента» (Maximum Transfer Unit - MTU), который может быть передан по этому маршруту.
Принцип композитных метрик Значение единицы задержки равно 10 мкс. Время задержки является суммой задержек в линии между источником и приёмником. Длина поля составляет 24 бита, максимальное значение означает, что пункт назначения недоступен. Значение пропускной способности вычисляется более сложным образом. Сначала определяется её минимальное значение для входящего в маршрут канала «источник-приёмник» , далее осуществляется деление 10 млн. на это минимальное значение, выраженное в Кбит/с, результат деления и есть искомое значение. При помощи этой процедуры мы имеем возможность в 24 -битном поле кодировать значения от 1200 бит/с до 10 Гбит/с. Также время задержки и пропускная способность могут быть вычислены, исходя из типа линии, или заданы администратором сети.
Принцип композитных метрик Надежность и относительная нагрузка являются динамическими параметрами и вычисляются на основе данных, получаемых при мониторинге состояния линии. Надежность является параметром, зависящим от вероятности патери пакета. В сообщении этому параметру отводится поле в 1 октет. Значение 255 определяет маршрут очень высокой надежности. Параметр относительной нагрузки определяет занятость линий в маршруте, и для него также отводится 1 октет. Для определения оптимального, с точки зрения Qo. S, маршрута из нескольких возможных в протоколе IGRP используются композитные метрики. В качестве исходных данных принимаются значения четырех базовых метрик: D, B, R и L.
Принцип композитных метрик В оборудовании Cisco методика расчета композитной метрики протокола IGRP базируется на следующей формуле: Коэффициенты K позволяют администратору сети учитывать те или иные характеристики линий и варьировать степень их влияния на результирующую метрику. По умолчанию принимают следующие значения коэффициентов:
Протокол IGRP Первая версия протокола IGRP увидела свет в 1988 году. Целью создания протокола было устранение основных недостатков протокола RIP. Однако, в связи с тем, что IGRP относится к тому же типу, что и RIP, он не является совершенным. К недостаткам IGRP можно отнести отсутствие поддержки масок. После разработки протокола OSFP фирма Cisco не отказалась от протокола IGRP и начала вести работы по ликвидации недостатков. Причиной этого стала убежденность разработчиков в том, что технология маршрутизации на базе DVP позволяет достигать большей гибкости при меньшей сложности. В результате в 1994 году был выпущен достаточно сложный протокол EIGRP (Enhanced Interior Gateway Routing Protocol). В общем случае протокол OSPF имеет ряд дополнительных возможностей, EIGRP более прост в реализации и менее требователен к вычислительным ресурсам маршрутизатора.
Протокол IS-IS Протокол маршрутизации промежуточных систем (Intermediate System to Intermediate System) — это протокол внутренних шлюзов (IGP), стандартизированный в ISO/IEC 10589 и RFC 1142 и использующийся в основном в крупных сетях провайдеров услуг. IS-IS может также использоваться в корпоративных сетях особо крупного масштаба. IS-IS — это протокол маршрутизации на основе состояния соединений. Он обеспечивает быструю сходимость и отличную масштабируемость. Как и все протоколы на основе состояния соединений, IS-IS очень экономно использует пропускную способность сетей. Протокол IS-IS предоставляет альтернативу протоколу OSPF при использовании в IP-сетях.
Взаимодействие протоколов маршрутизации В одной и той же сети могут одновременно работать несколько разных протоколов маршрутизации. Это означает, что на некоторых (не обязательно всех) маршрутизаторах сети установлено и функционирует несколько протоколов маршрутизации. В маршрутизаторе, который поддерживает одновременно несколько протоколов, каждая запись в таблице является результатом работы одного из этих протоколов. Если информация о некоторой сети появляется от нескольких протоколов, то для однозначности выбора маршрута (а данные разных протоколов могут вести к разным рациональным маршрутам) устанавливаются приоритеты протоколов маршрутизации. Обычно предпочтение отдается протоколам LSA, как располагающим более полной информацией о сети по сравнению с протоколами DVA.
Взаимодействие протоколов маршрутизации
Протокол BGP Пограничный (внешний) шлюзовой протокол (Border Gateway Protocol, BGP) версии 4 является сегодня основным протоколом обмена маршрутной информацией между автономными системами Интернета. Протокол BGP пришел на смену протоколу EGP, использовавшемуся в тот начальный период, когда Интернет имел единственную магистраль. Эта магистраль являлась центральной автономной системой, к которой присоединялись в соответствии с древовидной топологией все остальные автономные системы. Так как между автономными системами при такой структуре петли исключались, протокол EGP не предпринимал никаких мер для того, чтобы исключить зацикливание маршрутов. BGP является протоколом прикладного уровня и функционирует поверх протокола транспортного уровня TCP (порт 179). BGP, наряду с DNS, является одним из главных механизмов, обеспечивающих функционирование Интернета. С 1994 года действует четвёртая версия протокола, все предыдущие версии являются устаревшими.
Протокол BGP
Протокол BGP В каждой из трех автономных систем (AS 1021, AS 363 и AS 520) имеется несколько маршрутизаторов, исполняющих роль внешних шлюзов. На каждом из них работает протокол BGP, с помощью которого они общаются между собой. Маршрутизатор взаимодействует с другими маршрутизаторами по протоколу BGP только в том случае, если администратор явно указывает при конфигурировании, что эти маршрутизаторы являются его соседями. Например, маршрутизатор EG 1 в рассматриваемом примере будет взаимодействовать по протоколу BGP с маршрутизатором EG 2 не потому, что эти маршрутизаторы соединены двухточечным каналом, а потому, что при конфигурировании маршрутизатора EG 1 в качестве соседа ему был указан маршрутизатор EG 2 (с адресом 194. 200. 30. 2). Аналогично, при конфигурировании маршрутизатора EG 2 его соседом был назначен маршрутизатор EG 1 (с адресом 194. 200. 30. 1).
Протокол BGP Основным сообщением протокола BGP является сообщение UPDATE (обновить), с помощью которого маршрутизатор сообщает маршрутизатору соседней автономной системы о достижимости сетей, относящихся к его собственной автономной системе. Само название этого сообщения говорит о том, что это — триггерное объявление, которое посылается соседу только тогда, когда в автономной системе что -нибудь резко меняется: появляются новые сети или новые пути к сетям либо же, напротив, исчезают существовавшие сети или пути. В одном сообщении UPDATE можно объявить об одном новом маршруте или аннулировать несколько маршрутов, переставших существовать. Под маршрутом в BGP понимается последовательность автономных систем, которую нужно пройти на пути к указанной в адресе сети.
Протокол BGP Информация о маршруте (BGP Route) к сети (Network/ Mask. Length) выглядит так: BGP Route = AS_Path; Next. Hop; Network/Mask. Length; Здесь AS_Path — набор номеров автономных систем, Next. Hop — IPадрес маршрутизатора, через который нужно передавать пакеты в сеть Network/Maskjength. Например, если маршрутизатор EG 1 хочет объявить маршрутизатору EG 2 о том, что в AS 1021 появилась новая сеть 202. 100. 5. 0/24, то он формирует такое сообщение: BGP Route = AS 1021; 194. 200. 30. 1; 202. 100. 5. 0/24, после чего передает его маршрутизатору EG 2 автономной системы AS 363 (с которым у него, конечно, должен быть установлен BGP-сеанс).
Протокол BGP
Протокол BGP Маршрутизатор EG 2, получив сообщение UPDATE, запоминает в своей таблице маршрутизации информацию о сети 202. 100. 5. 0/24 вместе с адресом следующего маршрутизатора 194. 200. 30. 1 и отметкой о том, что эта информация была получена по протоколу BGP. Маршрутизатор EG 2 обменивается маршрутной информацией с внутренними шлюзами системы AS 363 по какому-либо протоколу группы IGP, например OSPF. Если у EG 2 установлен режим перераспределения маршрутов BGP в маршруты OSPF, то все внутренние шлюзы AS 363 узнают о существовании сети 202. 100. 5. 0/24 с помощью объявления OSPF, которое будет внешним. В качестве адреса следующего маршрутизатора маршрутизатор EG 2 начнет теперь объявлять адрес собственного внутреннего интерфейса, например 192. 17. 100. 2.
Протокол BGP Однако для распространения сообщения о сети 202. 100. 5. 0/24 в другие автономные системы, например в AS 520, протокол OSPF использоваться не может. Маршрутизатор EG 3, связанный с маршрутизатором EG 4 автономной системы 520, должен пользоваться протоколом BGP, генерируя сообщение UPDATE нужного формата. Для решения этой задачи он не может задействовать информацию о сети 202. 100. 5. 0/24, полученную от протокола OSPF через один из своих внутренних интерфейсов, так как она имеет другой формат и не содержит, например, сведений о номере автономной системы, в которой находится эта сеть. Проблема решается за счет того, что маршрутизаторы EG 2 и EG 3 также устанавливают между собой BGP-сеанс, хотя они и принадлежат одной и той же автономной системе. Такая реализация протокола BGP называется внутренней (Interior BGP, i. BGP), в отличие от основной, внешней (Exterior BGP, e. BGP).
Протокол BGP В результате маршрутизатор EG 3 получает нужную информацию от маршрутизатора EG 2 и передает ее внешнему соседу — маршрутизатору EG 4. При формировании нового сообщения UPDATE маршрутизатор EG 3 трансформирует сообщение, полученное от маршрутизатора EG 2, добавляя в список автономных систем собственную автономную систему AS 520, а полученный адрес следующего маршрутизатора заменяет адресом собственного интерфейса: BGP Route = AS 363, AS 1021; 132. 15. 64. 3; 202. 100. 5. 0/24. Номера автономных систем позволяют исключать зацикливание сообщений UPDATE. Например, когда маршрутизатор EG 5 передаст сообщение о сети 202. 100. 5. 0/24 маршрутизатору EG 6, то последний не будет его использовать, так как оно будет иметь вид: BGP Route = AS 520, AS 363, AS 1021; 201. 14. 110. 3; 202. 100. 5. 0/24. Так как в списке автономных систем уже есть номер собственной автономной системы, очевидно, что сообщение зациклилось.
Протокол BGP
Автономные системы Номера AS выделяются Internet Assigned Numbers Authority, которая также выделяет IP-адреса, региональным интернет-регистраторам (Regional Internet Registry) блоками. Ранее (до 2007 года) использовались только 16 -битные номера AS, что позволяло сделать максимум 65536 присвоений, часть из которых (номера от 64512 до 65534) была зарезервирована как приватные номера AS, которые могут использоваться только локально, по аналогии с частными IP-адресами. Кроме того, номера 0 и 56320— 64511 являются зарезервированными IANA и не могут использоваться для маршрутизации. В связи со скорым исчерпанием доступного диапазона в 2007 -м году был разработан и предложен стандарт на 32 -битные номера AS RFC 4893, что позволило адресовать 232 автономных систем (за вычетом некоторых зарезервированных диапазонов), не теряя совместимости с уже имеющимися 16 -битными ASN.
Типы автономных систем Автономные системы можно сгруппировать в 3 категории, в зависимости от их соединений и режима работы. • Многоинтерфейсная (multihomed) AS — это AS, которая имеет соединения с более чем одним Интернет-провайдером. Этот тип AS не разрешает транзитный трафик от одного Интернет-провайдера к другому. • Ограниченная (stub) AS — это AS, имеющая единственное подключение к одной внешней автономной системе. Это расценивается как бесполезное использование номера AS, так как сеть размещается полностью под одним Интернет-провайдером и, следовательно, не нуждается в уникальной идентификации. • Транзитная (transit) AS — это AS, которая пропускает через себя транзитный трафик сетей, подключенных к ней. Таким образом, сеть A может использовать транзитную AS для связи с сетью B.
Литература • Кучерявый Е. А. - Управление трафиком и качество обслуживания в сети Интернет. - СПб. Наука и Техника, 2004. - 336 с. • Вагешна Ш. - Качество обслуживания в сетях IP. – Пер. с англ. – М. : Издательский дом «Вильямс» , 2003. – 368 с. • Олифер В. Г. , Олифер Н. А. - Компьютерные сети. Принципы, технологии, протоколы (4 -ое изд. ) – СПб. : Питер, 2010. – 944 с.


