Протоколы маршрутизации. Протокол OSPF.


Короче грузиться придется конкретно, так что прошу (м)орально подготовиться =).
Спецификация протокола OSPF(Open Shortest Path First) описана в документе RFC 1247. Он ориентирован на применение в больших распределенных сетях. OSPF вычисляет маршруты в сетях IP, работая совместно с другими протоколами обмена маршрутной информацией. Протокол OSPF основан на алгоритме состояния канала. Суть этого алгоритма состоит в том, что он должен вычислить кратчайший путь (информация по этому пути пойдет быстрее, чем по другим). Маршрутизатор, работающий с этим протоколом, отправляет запросы всем соседним маршрутизаторам, находящимся в одном с ним домене маршрутизации, для выявления состояния каналов до них и далее от них. Состояние канала при этом характеризуется несколькими параметрами, которые называются метриками. Метрикой может быть пропускная способность канала, его загрузка на текущий момент, задержка информации при ее прохождению по этому каналу и т.д. Обобщив полученные сведения, этот маршрутизатор сообщает их всем соседям. После этого им строится ориентированный граф, который повторяет топологию домена маршрутизации. Каждому ребру этого графа назначается оценочный параметр (метрика). После построения графа, используется алгоритм Дейкстры, который по двум заданным углам находит набор ребер с наименьшей суммарной стоимостью, т.е., по сути, выбирает оптимальный маршрут. По совокупности инфы (полученной в резалте вычислений ) создается таблица маршрутизации.
Сообщения протокола OSPF передаются в IP-дейтаграммах с полем «Протокол» равным 89.
Протокол OSPF отвечает за IP-маршрутизацию и относится к классу протоколов IGP. Фичи протокола OSPF:
Обладает большой скоростью сходимости, что предотвращает возникновение петель маршрутизации;
При работе протокола не генерируется большой сетевой трафик;
Информация, которой обмениваются маршрутизаторы, проходит процедуру аутентификации. Это позволяет участвовать в процессе маршрутизации только авторизованным маршрутизаторам. Аутентификация устраняет возможность случайного или преднамеренного искажения маршрутной инфы;
Использует групповую передачу вместо широковещательной. Такой подход позволяет исключить передачу маршрутной инфы тем устройствам, которым она не нужна;
Поддерживает распределение нагрузки (load balancing) по маршрутам, имеющим одинаковые стоимости;
Поддерживает маски подсетей переменной длины (VLSM). Данные о масках подсетей передаются в сообщениях LSA (Link-State Advertisement, объявление о состоянии канала), таким образом маршрутизаторы получают эту информацию динамически, что позволяет более гибко использовать выделенное организации адресное пространство;
Поддерживает области маршрутизации. Это позволяет администраторам разделять автономную систему на отдельные части с изоляцией сетевого трафика и маршрутизации;
Поддерживает передачу внешней маршрутной инфы через автономные системы.
OSPF посылает инфу о состоянии каналов каждые 30 мин. При обнаружении изменения сетевой топологии OSPF сразу же посылает небольшие (порядка 75 байт) сообщения.
В начале работы каждый маршрутизатор передает сообщения LSA на все свои порты. Эти сообщения позволяют однозначно идентифицировать передающий маршрутизатор и определить состояние всех его портов: IP-адрес, маску подсети, метрику, присвоенную каналу связи порта, и статус канала связи.
Сообщения LSA передаются во всем домене маршрутизации. Поэтому маршрутизаторы обладают информацией о состоянии каналов других маршрутизаторов в домене. Каждый маршрутизатор на основе сообщений LSA формирует базу данных состояния каналов (Link-State Database). Эта база данных одна и та же на всех маршрутизаторах в одном домене. Алгоритм маршрутизации поддерживает синхронизацию этих баз данных.
После того как все базы данных синхронизированы, каждый маршрутизатор начинает создавать свою таблицу маршрутизации. Эта таблица базируется на информации, содержащейся в базе данных состояния каналов. Сначала создается карта сетевой топологии. Непосредственно связанные маршрутизаторы по терминологии протокола OSPF называются соседями. Каждый маршрутизатор хранит инфу о том, в каком состоянии, по его мнению, находится сосед. Маршрутизатор полагается на соседние маршрутизаторы и передает им дейтаграммы только в том случае, если он уверен, что они полностью работоспособны.
После создания карты сетевой топологии маршрутизатор формирует дерево кратчайших путей ко всем возможным получателям. Это дерево строится таким образом, чтобы путь от корня - маршрутизатора, формирующего дерево, - до конечных объектов - целевых сетей - имел наименьшую стоимость. На рис 1.1 показано множество сетей, для которого формируется дерево кратчайших путей, изображенное на рис 1.2. Считаем, что метрики пути до каждой из сетей равны 10.

Рис 1.1 Множество сетей

JPG[8152 байт]
Рис 1.2 Дерево кратчайших путей
JPG[16 кб]После того как дерево построено, маршрутизаторы формируют локальные таблицы маршрутизации. Дерево путей показывает, что маршрутизатор М1 напрямую подключен к сетям #2 и #3. В таблицу маршрутизации для сетей, подключенных напрямую, в качестве значения метрики заносится 0. В табл. 1.1 показаны данные таблицы маршрутизации для маршрутизатора М1.

Таблица 1.1. Таблица маршрутизации маршрутизатора М1
СетьСледующий маршрутизатор в сетиМетрика маршрутизатора
Сеть #1Маршрутизатор М520
Сеть #2Подключена на прямую0
Сеть #3Подключена на прямую0
Сеть #4Маршрутизатор М520
Сеть #5Маршрутизатор М420

Так как маршрут в сеть #4 состоит из двух путей (от маршрутизатора М1 к М2, а затем от М2 к сети #4), а метрика каждого пути равна 10, то метрика маршрута до сети #4 равна 20. Аналогично вычисляются метрики остальных маршрутов. Следует отметить, что к сети #5 от маршрутизатора М1 имеются два пути - через марш-торы М4 и М2. Путь через марш-тор М4 имеет метрику 20, а путь через М2 - 30. Алгоритм состояния канала будет всегда выбирать кротчайший маршрут в целевую сеть. В результате в таблицу маршрутизации в качестве следующего маршрутизатора в пути будет включен М4.
Если маршрутизатор обнаружит изменения в состоянии одного из подключенных к нему каналов, он должен разослать сообщения LSA всем своим соседям, которые ретранслируют их далее по всему домену маршрутизации. С момента посылки сообщения базы данных маршрутизаторов теряют синхронизацию и, следовательно, должны быть синхронизированы вновь. После выполнения синхронизации каждый маршрутизатор должен заново построить карту сетевой топологии, дерево кратчайших путей и таблицу маршрутизации.
В очень больших сетях время сходимости может значительно возрасти. Частично протокол OSPF решает эту и др. проблемы, вводя понятие области маршрутизации, иначе называемые областями OSPF. Тем самым большая сеть как бы разбивается на несколько областей с независимой маршрутизацией.Марш-торы внутри одной области OSPF не обмениваются инфой с маршрут-ми другой области. Это уменьшает объем служебного трафика между маршрут-ми и сокращает размер их баз данных. Например, в большой распределенной сети, состоящей из 500 маршрут-ов, создание 10 областей, в каждой из которых работает 50 маршрут-ов, означает, что каждому маршрутизатору необходимо поддерживать инфу о состоянии каналов только для 50 маршрут-ов, а не для 500.
Области OSPF связываются между собой с помощью специально выделенных маршрутизаторов, которые должны содержать базу данных с инфой об обеих областях. Эти маршрут-ры называются граничными маршрутизаторами областей (Area Border Routers). Они работают как фильтры для сообщений маршрутизации, не выпуская их из области. Граничные маршрутизаторы взаимодействуют между собой, используя специальные сообщения LSA, которые содержат краткую инфу об IP-адресах, содержащихся в области. Граничные маршрутизаторы сохраняют эти сообщения в специальной базе данных, которая используется для определения маршрута между областями (такой способ взаимодействия называется inter-area). Граничные маршрутизаторы должны быть достаточно мощные.
В протоколе OSPF введено понятие автономных систем маршрутиризации, которые представляют собой домены маршрутизации, находящиеся под общим административным управлением и использующие единый протокол маршрутизации. Маршрутизатор, соединяющий две автономные системы, одна из которых использует протокол маршрутизации, отличный от OSPF, называется пограничным маршрутизатором автономной системы - ASBR (Autonomous System Boundary Router). Внешние маршруты обрабатываются в два этапа. Сначала маршрутизатор выбирает оптимальный внешний маршрут. Если таких маршрутов несколько (то есть метрики этих маршрутов примерно одинаковы), то выбирается маршрут, который имеет наименьшую стоимость внутреннего пути до ASBR.
Протокол OSPF поддерживает настраиваемые метрики, предоставляя администратору возможность присваивать метрику маршрута, основываясь на различных характеристиках, таких как стоимость передачи, надежность, задержка или количество переходов. Число, используемое в качестве метрики пути, может быть заданно произвольным образом. По умолчанию в качестве метрики используется время передачи бита, измеряемое в десятках наносекунд. Так линии Ethernet назначается значение 10, а линии со скоростью 56Кбит/с - 1785. Вычисляемая протоколом OSPF метрика маршрута представляет собой сумму метрик по всему маршруту.
Ну хватит на первый раз. Продолжение следует…