Изначально в качестве протокола внутридоменной маршрутизации использовалась схема маршрутизации по вектору расстояний, основанная на распределенном алгоритме Беллмана—Форда (Bellman—Ford) и унаследованная из ARPANET. В первую очередь это RIP (Routing Information Protocol — протокол маршрутной информации), использующийся до сих пор. Он хорошо работал в небольших системах, но по мере увеличения автономных систем стали проявляться его недостатки, такие как проблема счета до бесконечности и медленная сходимость, поэтому в мае 1979 года он был заменен протоколом состояния каналов. В 1988 году проблемная группа проектирования Интернета (IETF, Internet Engineering Task Force) начала работу над протоколом, учитывающим состояние линий, для внутридоменной маршрутизации. Этот протокол под названием OSPF( Open Shortest Path First— открытый алгоритм предпочтительного выбора кратчайшего маршрута) был признан стандартом в 1990 году. Идея была заимствована из протокола IS-IS (Intermediate System to Intermediate System — связь между промежуточными системами), ставшего стандартом ISO. Эти два протокола скорее похожи, чем различны. Более подробное описание см. в RFC 2328. Они являются основными протоколами внутридоменной маршрутизации и в настоящее время поддерживаются многочисленными производителями маршрутизаторов. OSPF чаще используется в корпоративных сетях, IS-IS — в сетях интернет-провайдеров. Ниже будет дано краткое описание работы протокола OSPF.
Учитывая большой опыт работы с различными алгоритмами, группа разработчиков согласовывала свои действия с длинным списком требований, которые необходимо было удовлетворить. Во-первых, этот алгоритм должен публиковаться в открытой литературе, откуда буква «О» (Open — открытый) в OSPF. Из этого следовало, что патентованный алгоритм, принадлежащий одной компании, не годится. Во-вторых, новый протокол должен был уметь учитывать широкий спектр различных параметров, включая физическое расстояние, задержку и т. д. В-третьих, этот алгоритм должен был быть динамическим, а также автоматически и быстро адаптирующимся к изменениям топологии.
В-четвертых (это требование впервые было предъявлено именно к OSPF), он должен был поддерживать выбор маршрутов, основываясь на типе сервиса. Новый протокол должен был уметь по-разному выбирать маршрут для трафика реального времени и для других видов трафика. В то время IP-пакет содержал поле Тип сервиса, но ни один из имевшихся протоколов маршрутизации не использовал его. Это поле было и в OSPF, но и здесь никто его не использовал. Поэтому в результате его убрали. Возможно, это требование опередило свое время, так как было выдвинуто до появления дифференцированного обслуживания, вернувшего к жизни классы обслуживания.
В-пятых, новый протокол должен был уметь распределять нагрузку на линии. Это связано с предыдущим пунктом. Большинство протоколов посылало все пакеты по одному лучшему маршруту, даже если таких маршрутов два. Следующий по оптимальности маршрут не использовался совсем. Между тем, во многих случаях распределение нагрузки по нескольким линиям дает лучшую производительность.
В-шестых, необходима поддержка иерархических систем. К 1988 году Интернет вырос настолько, что ни один маршрутизатор не мог вместить сведения о его полной топологии. Таким образом, требовалась разработка нового протокола.
В-седьмых, требовался необходимый минимум безопасности, защищающий маршрутизаторы от обманывающих их студентов-шутников, присылающих неверную информацию о маршруте. Наконец, требовалась поддержка для маршрутизаторов, соединенных с Интернетом по туннелю. Предыдущие протоколы справлялись с этим неудовлетворительно.
Протокол OSPF поддерживает двухточечные линии (например, SONET) и широковещательные сети (большинство ЛВС). Он также поддерживает сети с множественными маршрутизаторами, каждый из которых может напрямую соединяться с любым другим (сети множественного доступа — multi-access networks), даже если в них невозможно широковещание. Предыдущие протоколы не так хорошо справлялись с этой проблемой.
На рис. 5.55, а показан пример автономной системы. Здесь не указаны хосты, так как обычно они не играют большой роли в OSPF; маршрутизаторы и сети (которые могут содержать хосты) гораздо более важны. Большинство маршрутизаторов соединено с другими маршрутизаторами двухточечными линиями, а также с сетями, к хостам которых им необходим доступ. Но R3, R4 и R5 соединены широковещательной ЛВС, например коммутируемой сетью Ethernet.
Читать дальше
Конец ознакомительного отрывка
Купить книгу