Лекции 2010-го года (1130544), страница 69
Текст из файла (страница 69)
Этот алгоритм, названный OSPF - Open Shortest Path First, сталстандартом в 1990 году (RFC 1247).5.5.5.1. Требования к протоколуНа основе имеющегося опыта был составлен длинный список требований к протоколу.Прежде всего, алгоритм должен быть опубликован в открытой литературе (отсюда«open»).
Во-вторых, он не должен быть собственностью какой-либо компании. В-третьих,он должен уметь работать с разными метриками: расстоянием, пропускной способностью,задержкой и т.п. Он должен быть динамическим, т.е. реагировать на изменении втопологии сети автоматически и быстро.В-четвертых, он должен поддерживать разные виды сервиса, поддерживатьмаршрутизацию для трафика в реальном времени одним способом, а для других типовтрафика - другим. В IP-пакете есть поле Type of service, которое не использовалосьсуществующими в то время протоколами.В-пятых, он должен обеспечивать балансировку нагрузки и при необходимости разделятьпотоки по разным каналам.
Все предыдущие протоколы использовали только один канал наилучший.В-шестых, он должен поддерживать иерархию. К 1988 году Интернет стал столь большим,что ни один маршрутизатор был уже не в состоянии хранить всю топологию. Поэтомуновый протокол должен быть сконструирован так, чтобы по нему мог бы работать не одинмаршрутизатор.В-седьмых, должна быть усилена безопасность маршрутизаторов для защиты отстудентов, которые развлекались тем, что подсовывали маршрутизаторам невернуюинформацию о маршрутах.
Наконец, надо было позаботиться о том, чтобы позволитьмаршрутизаторам общаться с помощью туннелирования.5.5.5.2. Виды соединений и сетей в OSPFOSPF поддерживает три вида соединений и сетей:1.Точка-точка между двумя маршрутизаторами552.3.Сети с множественным доступом и вещанием (большинство ЛВС)Сети с множественным доступом без вещания (например, региональные сети скоммутацией пакетов)На рисунке 5-50 (a) показаны все три вида сетей. Отметим, что хосты не играют никакойроли в OSPF.
OSPF абстрагируется от конкретных сетей, маршрутизаторов и хостов вформе ориентированного графа, каждая дуга в котором имеет вес, представляющий собойзадержку, расстояние и т.п. В этом графе находится кратчайший путь на основе весов дуг.Последовательный канал между узлами представляют две дуги, которые могут иметьразный вес. Сеть с множественным доступом представляет узел, соединенный смаршрутизаторами этой сети дугами с весом 0, часто опускаемыми на рисунках. Нарисунке 5-50 (b) показан такой граф.Рисунок 5-50. Три вида сетей в OSPF и их представление в виде графаМногие АС сами по себе представляют большие сети.
OSPF позволяет разбивать их наобласти, где каждая область - это либо сеть, либо последовательность сетей. Области непересекаются. Есть маршрутизаторы, которые не принадлежат никакой области. Область обобщение понятия подсети. Вне области ее топология не видна.Каждая АС имеет остовую область, называемую «областью 0». Все области АСсоединяются с остовой, возможно через туннелирование. Поэтому можно из однойобласти попасть в другую через остовую область.
Туннель представлен в графе дугой свесом. Любой маршрутизатор, соединенный с двумя или более областями, - часть остовойобласти. Как и в других областях, топология остовой области не видна извне.56Внутри области у каждого маршрутизатора одинаковая база данных состояний каналов иодинаковый алгоритм наикратчайшего пути. Задача маршрутизатора - вычислитьнаикратчайший путь до другого маршрутизатора этой области, включая маршрутизатор,соединенный с остовой областью.
Маршрутизатор, соединенный с двумя областями,должен иметь две базы данных и выполнять два алгоритма наикратчайшего путинезависимо.Чтобы поддерживать разные типы сервисов, OSPF использует несколько графов, один сразметкой относительно задержки, другой - относительно пропускной способности,третий - относительно надежности. Хотя все три требуют соответствующих вычислений,но зато мы получаем три маршрута, оптимизированных по задержке, пропускнойспособности и надежности.Во время функционирования возникают три вида маршрутов: внутри области, междуобластями и между АС. Внутри области вычислить маршрут просто - им будетнаикратчайший до маршрутизатора получателя.
Маршрутизация между областями всегдавыполняется в три этапа: от источника до остовой области, от остовой до областиназначения, внутри области назначения. Этот алгоритм навязывает звездообразнуютопологию OSPF: остовая область – центр, ось, остальные области – лучи, спицы. Пакетымаршрутизируются без изменений, как есть, за исключением случая, когда областьполучателя соединена с остовой областью туннелем.
Рисунок 5-51 показывает эти тривида маршрутов.Рисунок 5-51. Связи внутри области, между областями и между разными АС5.5.5.3. Маршрутизаторы в OSPFOSPF различает четыре класса маршрутизаторов:571.Внутренний, целиком внутри одной области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 (Запрос о состоянии канала)Запрашивает информацию у партнера.Маршрутизаторы в остовой области делают все, что было описано выше, а такжеобмениваются информацией с пограничными маршрутизаторами, чтобы уметь вычислять58наилучший маршрут от любого маршрутизатора остовой области до любого другогомаршрутизатора.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) Информация, получаемая F59BGP-протокол легко решает проблему «счета до бесконечности». Предположим, чтомаршрутизатор G или линия FG отказали. Тогда F получит от своих соседей триоставшихся маршрута до D. Поскольку маршруты IFGCD и EFGCD проходят через F, тоон их отбросит и воспользуется FBCD.Определение BGP-протокола дано в RFC 1654 и RFC 1268.5.5.7. Групповая адресация в ИнтернетеОбычно в IP-сетях один отправитель взаимодействует с одним получателем.