Полный курс лекций 2009-го года (1130357), страница 68
Текст из файла (страница 68)
Алгоритмы маршрутизации, применяемые для маршрутизации междуАС, называются внешними протоколами шлюзов.Изначально в качестве внутреннего протокола шлюзов использовался протокол по векторурасстояния (RIP). Этот протокол работал хорошо, пока автономная система была небольшой. Однако помере роста АС он начинал работать все хуже и хуже.
Проблемы «счетчика до бесконечности» и медленнаясходимость не получили удовлетворительного решения. В 1979 году он был замещен протоколоммаршрутизации по состоянию каналов. В 1988 году инженерный комитет Internet принял решение оразработке нового алгоритма маршрутизации. Этот алгоритм, названный OSPF - Open Shortest Path First,стал стандартом в 1990 году (RFC 1247).5.5.5.1. Требования к протоколуНа основе имеющегося опыта был составлен длинный список требований к протоколу.
Прежде всего,алгоритм должен быть опубликован в открытой литературе (отсюда «open»). Во-вторых, он не долженбыть собственностью какой-либо компании. В-третьих, он должен уметь работать с разными метриками:расстоянием, пропускной способностью, задержкой и т.п. Он должен быть динамическим, т.е. реагироватьна изменении в топологии сети автоматически и быстро.В-четвертых, он должен поддерживать разные виды сервиса, поддерживать маршрутизацию длятрафика в реальном времени одним способом, а для других типов трафика - другим.
В IP-пакете есть полеType of service, которое не использовалось существующими в то время протоколами.В-пятых, он должен обеспечивать балансировку нагрузки и при необходимости разделять потоки поразным каналам. Все предыдущие протоколы использовали только один канал - наилучший.В-шестых, он должен поддерживать иерархию. К 1988 году Интернет стал столь большим, что ниодин маршрутизатор был уже не в состоянии хранить всю топологию. Поэтому новый протокол долженбыть сконструирован так, чтобы по нему мог бы работать не один маршрутизатор.В-седьмых, должна быть усилена безопасность маршрутизаторов для защиты от студентов, которыеразвлекались тем, что подсовывали маршрутизаторам неверную информацию о маршрутах. Наконец, надобыло позаботиться о том, чтобы позволить маршрутизаторам общаться с помощью туннелирования.5.5.5.2.
Виды соединений и сетей в OSPFOSPF поддерживает три вида соединений и сетей:1.Точка-точка между двумя маршрутизаторами2.Сети с множественным доступом и вещанием (большинство ЛВС)3.Сети с множественным доступом без вещания (например, региональные сети с коммутацией пакетов)На рисунке 5-50 (a) показаны все три вида сетей. Отметим, что хосты не играют никакой роли вOSPF. OSPF абстрагируется от конкретных сетей, маршрутизаторов и хостов в форме ориентированногографа, каждая дуга в котором имеет вес, представляющий собой задержку, расстояние и т.п. В этом графенаходится кратчайший путь на основе весов дуг. Последовательный канал между узлами представляют дведуги, которые могут иметь разный вес.
Сеть с множественным доступом представляет узел, соединенный смаршрутизаторами этой сети дугами с весом 0, часто опускаемыми на рисунках. На рисунке 5-50 (b)показан такой граф.Рисунок 5-50. Три вида сетей в OSPF и их представление в виде графаМногие АС сами по себе представляют большие сети. OSPF позволяет разбивать их на области, гдекаждая область - это либо сеть, либо последовательность сетей. Области не пересекаются. Естьмаршрутизаторы, которые не принадлежат никакой области. Область - обобщение понятия подсети. Внеобласти ее топология не видна.Каждая АС имеет остовую область, называемую «областью 0».
Все области АС соединяются состовой, возможно через туннелирование. Поэтому можно из одной области попасть в другую черезостовую область. Туннель представлен в графе дугой с весом. Любой маршрутизатор, соединенный с двумяили более областями, - часть остовой области. Как и в других областях, топология остовой области невидна извне.Внутри области у каждого маршрутизатора одинаковая база данных состояний каналов и одинаковыйалгоритм наикратчайшего пути. Задача маршрутизатора - вычислить наикратчайший путь до другогомаршрутизатора этой области, включая маршрутизатор, соединенный с остовой областью. Маршрутизатор,соединенный с двумя областями, должен иметь две базы данных и выполнять два алгоритманаикратчайшего пути независимо.Чтобы поддерживать разные типы сервисов, OSPF использует несколько графов, один с разметкойотносительно задержки, другой - относительно пропускной способности, третий - относительнонадежности.
Хотя все три требуют соответствующих вычислений, но зато мы получаем три маршрута,оптимизированных по задержке, пропускной способности и надежности.Во время функционирования возникают три вида маршрутов: внутри области, между областями имежду АС. Внутри области вычислить маршрут просто - им будет наикратчайший до маршрутизатораполучателя.
Маршрутизация между областями всегда выполняется в три этапа: от источника до остовойобласти, от остовой до области назначения, внутри области назначения. Этот алгоритм навязываетзвездообразную топологию OSPF: остовая область – центр, ось, остальные области – лучи, спицы. Пакетымаршрутизируются без изменений, как есть, за исключением случая, когда область получателя соединенас остовой областью туннелем. Рисунок 5-51 показывает эти три вида маршрутов.Рисунок 5-51. Связи внутри области, между областями и между разными АС5.5.5.3. Маршрутизаторы в OSPFOSPF различает четыре класса маршрутизаторов:1.Внутренний, целиком внутри одной области2.Пограничный, соединяющий несколько областей3.Остовый, принадлежащий остовой области4.Пограничный, соединенный с маршрутизаторами других АСЭти классы могут пересекаться.
Например, все пограничные маршрутизаторы – остовые;маршрутизатор из остовой области, но не на ее границе - внутренний. Примеры этих классовмаршрутизаторов показаны на рисунке 5–51.Когда маршрутизатор загружается, он рассылает сообщение «Hello» всем своим соседям - на линиях«точка-точка», группам маршрутизаторов в ЛВС с множественным доступом, чтобы получить информациюо своем окружении.В OSPF маршрутизаторы обмениваются данными не со своими соседями, а со смежнымимаршрутизаторами. Это не одно и то же. Маршрутизатор не общается со всеми маршрутизаторами,например, внутри ЛВС, а лишь с тем, который объявлен выделенным маршрутизатором.
Этот выделенныймаршрутизатор смежен всем другим. У выделенного маршрутизатора есть дублер, который имеет ту жеинформацию, что и основной.Периодически в ходе нормальной работы каждый маршрутизатор рассылает всем своим смежныммаршрутизаторам сообщение LINK STATE UPDATE. В этом сообщении он передает информацию о состояниисвоих линий и их стоимости в разных метриках для базы данных топологии соединений. Это сообщение вцелях надежности идет с подтверждением.
Каждое такое сообщение имеет номер, который позволяетопределить, несет ли пришедшее сообщение новую информацию по сравнению с той, что есть в его базе,или старую. Маршрутизаторы рассылают эти сообщения, когда у них появляются новые линии,разрушаются старые или меняется стоимость линии.DATABASE DESCRIPTION – сообщение, содержащее состояние всех каналов в базе данныхотправителя.
Сравнивая свои значения с теми, что у отправителя, получатель может определить, у когонаиболее свежая информация.Используя сообщение LINK STATE REQUEST, маршрутизатор может в любой момент запроситьинформацию о любой линии у другого маршрутизатора. Наиболее свежая информация распространяетсядругим. Все сообщения передаются как IP-пакеты. Все типы сообщений показаны в таблице 5-52.Таблица 5-52. Типы OSPF-сообщенийТип сообщенийОписаниеHello (Приветствую)Используется, чтобы получить информацию ососедях.Link state update (Обновление состояния канала) Предоставляет соседям стоимости отправителя.Link state ack (Подтверждение состояния канала) Подтверждает обновление состояния канала.Database description (Описание базы данных)Объявляет, какие обновления есть у отправителя.Link state request (Запрос о состоянии канала)Запрашивает информацию у партнера.Маршрутизаторы в остовой области делают все, что было описано выше, а также обмениваютсяинформацией с пограничными маршрутизаторами, чтобы уметь вычислять наилучший маршрут от любогомаршрутизатора остовой области до любого другого маршрутизатора.5.5.6.
BGP - внешний протокол маршрутизации шлюзовДля маршрутизации между АС используется BGP - протокол пограничных шлюзов. Егопредшественником был протокол EGP. Однако с ростом Интернета протокол EGP перестал удовлетворятьтребованиям к протоколу внешней маршрутизации. Основное отличие BGP от OSPF проистекает изразличия в целях. При маршрутизации внутри АС основная цель - наикратчайший маршрут. Примаршрутизации между АС надо учитывать также ряд условий, вызванных политикой конкретной АС.Например, какая-то АС может не допускать маршрутизацию через себя ни для какой другой АС (уних нет другого кратчайшего пути - это ваши проблемы); может разрешать лишь определенным.Типичными примерами таких ограничений могут быть:1.Трафик не должен проходить через определенные АС.2.Маршрут, начинающийся в министерстве обороны России, никогда не должен проходить через Чечню.3.Трафик через Украину может проходить, только если нет другого маршрута.4.Трафик из IBM никогда не должен проходить через АС Microsoft.Такие правила вручную вводятся в каждый BGP-маршрутизатор.
С точки зрения BGP-маршрутизаторавесь мир состоит из BGP-маршрутизаторов, соединенных между собой. Два BGP-маршрутизаторасоединены, если у них есть общая сеть. Сети делятся на три категории по степени интереса направлениятрафика через сеть. Первая - тупиковые сети, они никуда не ведут.
У них только одна точка соединения вBGP-графом. Они не могут использоваться для транзита. Сети с множественными соединениями могутиспользоваться для транзита, если допускают его. Транзитные сети предназначены для транзита трафика,возможно с некоторыми ограничениями.Два BGP-маршрутизатора взаимодействуют через TCP-соединение. Это обеспечивает надежностьпередачи информации и скрывает все подробности от сетей, через которые она проходит.BGP - это протокол на основе вектора расстояний.
Однако вместо стоимости для каждого места в сетион хранит конкретный маршрут. Своим соседям он передает не вектор расстояний, а те маршруты, которыеон использует. На рисунке 5-53 показан пример.Рисунок 5-53. (а) Сеть из BGP-маршрутизаторов; (b) Информация, получаемая FBGP-протокол легко решает проблему «счета до бесконечности».
Предположим, что маршрутизатор Gили линия FG отказали. Тогда F получит от своих соседей три оставшихся маршрута до D. Посколькумаршруты IFGCD и EFGCD проходят через F, то он их отбросит и воспользуется FBCD.Определение BGP-протокола дано в RFC 1654 и RFC 1268.5.5.7. Групповая адресация в ИнтернетеОбычно в IP-сетях один отправитель взаимодействует с одним получателем. Однако в рядеприложений бывает полезным одно и то же сообщение передать сразу нескольким получателям. Примеры:поддержка обновления данных в реплицируемых базах данных, передача биржевой информации сразунескольким брокерам, поддержка телеконференций.В IP-сетях групповая адресация поддерживается с помощью адресов класса D, в нем 28 разрядов дляадресации группы, т.е. можно адресовать 250 миллионов групп.