Маршрутизация и коммутации

Протокол OSPF

Разбить на страницы
Показывать лекцию целиком

4.1. Общие сведения о протоколе OSPF

Протокол состояния канала (Link-state) ), снижает нагрузку на сеть.

(рис 4.1) Области функционирования протокола OSPF

Областей (зон) может быть несколько, среди которых ). Далее рассматривается случай единственной области area 0.

Протокол OSPF оперативно реагируют на изменения в сети, обеспечивая быструю сходимость. Он может работать с оборудованием разных фирм производителей, и потому получил широкое распространение. Административное расстояние протокола OSPF равно 110 (см. табл. 1.1).

Протокол OSPF формирует три базы данных, на основе которых создает соответствующие таблицы:

  • База данных смежности (adjacency database) позволяет сформировать таблицу соседних устройств(neighbor table), содержимое которой можно посмотреть по команде show ip ospf neighbor.
  • На основе базы данных о состоянии каналов (Link-State Data Base - LSDB) формируется таблица топологии сети (topology table), проверяемая по команде show ip ospf database. После схождения сети базы данных о состоянии каналов LSDB должны быть одинаковы у всех маршрутизаторов области.
  • На основе базы LSDB и базы данных смежности формируется база пересылки и создается таблица маршрутизации, которую можно посмотреть по команде show ip route.
  • В основе протокола OSPF лежит алгоритм Дийкстра (Dijkstra), обеспечивающий выбор кратчайшего пути (shortest path) к адресату назначения. Протокол OSPF не проводит периодический обмен объемными обновлениями (update) маршрутной информации для снижения нагрузки на сеть, и характеризуется быстрой сходимостью.

    Сходимость или конвергенция (convergence) сети достигается, когда базы данных о состоянии каналов LSDB одинаковы у всех маршрутизаторов области.

    Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:

  • Пакет приветствия Hello.
  • Пакет описания базы данных Data Base Description - DBD.
  • Пакет запроса Link-State Request - LSR.
  • Пакет обновлений Link-State Update - LSU.
  • Пакет подтверждения Link-State Acknowledgment - LSAck.
  • Пакеты Hello маршрутизатор отправляет со всех своих интерфейсов, чтобы обнаружить соседние устройства. В отличие от других, Hello-пакеты рассылаются периодически и довольно часто, чтобы непрерывно отслеживать работоспособность соседних устройств. После обмена Hello-пакетами между соседними устройствами устанавливаются и поддерживаются отношения смежности (adjacency) и формируются таблицы соседних устройств.

    Различают три типа сетей:

  • Широковещательные с множественным доступом (Broadcast multi-access), например Ethernet.
  • Сети типа точка-точка (Point-to-point).
  • Нешироковещательные с множественным доступом (Non broadcast multi-access - NBMA), например, сети Frame Relay, ATM.
  • В сетях первых двух типов период рассылки Hello-пакетов - 10 секунд, а в сетях NBMA - 30 сек. Период простоя (Dead Interval) - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то считается, что устройство прекратило функционирование. Протокол OSPF удалит не отвечающего соседа из базы данных LSDB. При рассылке Hello-пакетов в сетях IPv4 используется адрес 224.0.0.5 многоадресного режима без подтверждения доставки. В сетях IPv6 для рассылки используется адрес FF02::5.

    Пакет DBD содержит сокращенный список базы данных передающего маршрутизатора и используется принимающим маршрутизатором для синхронизации (проверки) своей базы данных. Базы данных должны быть идентичными. Принимающий маршрутизатор может запросить полную информацию о входах базы данных передатчика, используя пакет запроса Link-State Request - LSR.

    Для обмена объявлениями о состоянии канала используется пакет обновлений Link-StateUpdate - LSU. Пакет LSU может содержать различные типы извещений или объявлений (Link-State Advertisements - LSA). Обмен пакетами объявлений LSA производится на начальном этапе формирования сети после установления отношения смежности, а также при возникновении изменений в топологии сети.

    Когда происходят изменения в каком-либо соединении сети, то маршрутизатор, первым заметивший это изменение, создает извещение о состоянии этого соединения LSA, которое передается соседним устройствам. Каждое устройство, получив обновление LSA, транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Такая лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.

    Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-Stat Acknowledgment - LSAck), который рассылается в одноадресном режиме.

    Состояние канала (соединения) - это описание интерфейса, которое включает IP адрес интерфейса, маску подсети, тип сети и другие параметры. Полученные пакеты LSA позволяют протоколу OSPFсформировать на маршрутизаторе базу данных о состоянии каналов LSDB. Зная базу данных, алгоритм Dijkstra (shortest path first algorithm - SPF) вычисляет кратчайшие пути к сетям назначения. При этом строится древовидная топология кратчайших путей SPF ко всем доступным сетям, свободная от маршрутных петель. Корнем в дереве является сам маршрутизатор. Первый вычисленный кратчайший путь записывается в таблицу маршрутизации.

    Пакет OSPF размещается внутри IP-пакета сразу за IP-заголовком (рис 4.2).

    (рис 4.2) Заголовок OSPF

    При передаче сообщения OSPF заголовок кадра включает групповой МАС-адрес назначения (01-00-5Е-00-00-05 или 01-00-5Е-00-00-06) и одноадресный МАС-адрес источника.

    Заголовок IP-пакета содержит групповой адрес назначения (224.0.0.5 или 224.0.0.6) и IP-адрес источника.В поле протокола пакета задается значение 89, что говорит об использовании OSPF.

    Заголовок OSPF содержит:

  • тип пакета;
  • идентификатор маршрутизатора (Router ID);
  • идентификатор области (area 0);
  • другие параметры.
  • Идентификатор устройства (Router ID), по сути, является IP-адресом одного из интерфейсов маршрутизатора.

    Данные пакета OSPF зависят от типа пакета. Так пакет приветствия Hello включает:

  • маску сети или подсети;
  • интервалы времени рассылки пакетов (Hello Interval), интервал простоя (Dead Interval);
  • приоритет маршрутизатора;
  • идентификаторы назначенного (главного, определяющего) маршрутизатора (Designated Router - DR) и запасного назначенного маршрутизатора (Backup Designated Router - BDR) данной области;
  • список соседних устройств, содержащий идентификаторы соседей.
  • Для формирования смежности необходимо, чтобы маршрутизаторы работали в сети одного типа, и у соседних устройств должны быть одинаковы:

  • Период времени обмена Hello-пакетами (Hello Interval).
  • Период времени простоя (Dead Interval), по истечению которого связь считается потерянной, если за это время не было получено ни одного Hello-пакета.
  • Выбор назначенного (главного) маршрутизатора области сети (Designated - DR) и запасного назначенного маршрутизатора сети (BDR), производится в сетях с множественным доступом. В сетях "точка-точка" этот механизм не используется. В сегменте сети с множественным доступом, несколько маршрутизаторов связаны между собой. Поскольку каждый маршрутизатор должен установить полное отношение смежности со всеми соседними маршрутизаторами и обменяться информацией о состоянии связи всех соединений, то, например, при 5 маршрутизаторах необходим обмен десятью состояниями связи. В общем случае для n маршрутизаторов должно быть n*(n-1)/2 обменов, на что должны быть выделены дополнительные ресурсы, прежде всего, полоса пропускания.

    Если в сети выбран назначенный маршрутизатор области (DR), то маршрутизатор, первым обнаруживший изменение в сети, посылает информацию об изменениях только маршрутизатору DR, а тот в свою очередь, рассылает LSAs всем другим OSPF маршрутизаторам области, по адресу 224.0.0.5. Это сокращает количество обменов модификациями в сети. Если маршрутизатор DR выходит из строя, то его функции начинает выполнять запасной назначенный маршрутизатор области сети BDR.

    Выбор DR и BDR происходит на основе сравнения приоритетов маршрутизаторов. По умолчанию приоритет всех маршрутизаторов равен 1. Значение приоритета может быть любым от 0 до 255. Маршрутизатор с приоритетом 0 не может быть избранным DR или BDR. Маршрутизатор с самым высоким OSPF приоритетом будет отобран как DR маршрутизатор. Маршрутизатор со вторым приоритетом будет BDR.

    Когда не задано никаких дополнительных параметров и приоритет одинаков, выбор DR и BDR происходит на основе идентификаторов (ID) маршрутизаторов.

    Идентификатор маршрутизатора (ID) может быть задан администратором по команде:

    Router(config)#router ospf № процесса
    Router(config-router)#router-id ip-адрес
      

    У данной команды наивысший приоритет назначения идентификатора маршрутизатора.

    Если идентификатор не задан администратором, то протокол OSPF автоматически выбирает в качестве ID адрес одного из интерфейсов с наибольшим значением. Маршрутизатор с высшим значением идентификатора ID становится DR. Маршрутизатор со вторым наибольшим значением идентификатора ID становится BDR.

    Поскольку на интерфейсах используются разъемы, то они являются ненадежными элементами сети. Для повышения надежности работы DR на маршрутизаторах формируют виртуальные логические интерфейсы loopback. OSPF использует адрес интерфейса loopback как ID маршрутизатора, независимо от значения адресов других интерфейсов. Маршрутизатор, на котором сформировано несколько интерфейсов loopback, использует самое большое значение адреса интерфейса loopback в качестве ID маршрутизатора. Таким образом, выбор DR и BDR происходит на основе сравнения адресов интерфейсов loopback.

    После выбора, DR и BDR сохраняют свои роли, даже если к сети добавляются маршрутизаторы с более высоким приоритетом до тех пор, пока маршрутизаторы не будут переконфигурированы.

    Создание интерфейса loopback производится по команде interface loopback, например:

    Router(config)#interface loopback 0 
    Router(config-if)#ip address10.1.1.1 255.255.255.255
      

    Интерфейс loopback должен формироваться с маской подсети на 32 бита - 255.255.255.255. Такая маска называется маской узла, потому что маска определяет сеть одного узла.

    Изменение приоритета OSPF может производиться администратором по команде ip ospf priority в режиме конфигурирования интерфейса:

    Router(config-if)#ip ospf priority №
      

    Значение приоритета () интерфейса может изменяться в пределах от 0 до 255. Приоритет можно посмотреть по команде:

    Router#show ip ospf interface тип интерфейса
      

    При подключении маршрутизатора, например В к сети (рис 4.3), протокол OSPF проходит последовательно несколько стадий, чтобы достичь сходимости. На этапе установления отношения смежности происходит переход интерфейса G0/1 маршрутизатора В из выключенного состояния Down в состояние Init, когда интерфейс начинает передавать Hello-пакеты.

    Маршрутизатор В отправляет Hello-пакеты с идентификатором, например 192.168.10.2, из всех своих интерфейсов по групповому адресу 224.0.0.5. Получив Hello-пакет, соседний маршрутизатор А устанавливает отношение смежности с В, добавив полученный идентификатор в свою базу данных смежности и модифицировав таблицу соседних устройств. При этом маршрутизатор А в режиме одноадресной рассылки отправляет Hello-пакет маршрутизатору В. Пакет содержит идентификатор самого устройства А, например 192.168.10.1, и список соседей, подключенных к этому интерфейсу, т.е. идентификатор 192.168.10.2.

    (рис 4.3) Подключение маршрутизатора к сети

    Получив Hello-пакет со своим собственным идентификатором, маршрутизатор В добавляет устройство А в свою базу данных смежности и формирует таблицу соседних устройств. Протокол OSPF переводит маршрутизатор в состояние Two-Way.

    После этого в сетях Ethernet проводятся выборы назначенного (DR) и запасного (BDR). Если маршрутизаторы А и В (рис 4.3) имеют одинаковый приоритет, например 1, то в Ethernet-соединении между устройствами наибольшее значение IP-адреса (192.168.10.2) имеет интерфейс G0/1. Поэтому назначенным (DR) будет маршрутизатор В, резервным (BDR) - станетмаршрутизатор А.

    На следующем этапе синхронизации баз данных в состоянии ExStart устройство с боле высоким значением идентификатора (маршрутизатор В) становится ведущим, которое начинает процесс обмена пакетами DBD с ведомым (состояние Exchange). Получение пакетов DBD подтверждается пакетами LSAck. Если информация в пакетах DBD показывает, что требуются дополнительные данные, то используются пакты LSR и LSU (состояние Loading, работает алгоритм SPF). Достижение маршрутизаторами сходимости характеризуется состоянием Full.

    После синхронизации баз данных пакеты LSU рассылаются только при изменениях топологии сети или каждые 30 минут работы.

    При отладке сети команда show ip protocols отображает номер процесса OSPF, идентификатор маршрутизатора, адреса присоединенных сетей, наличие пассивных интерфейсов, адреса источников, из которых передаются обновления, значение административного расстояния.

    Метрика протокола OSPF

    Протокол маршрутизации OSPF в качестве метрики использует стоимость (cost). Метрика протокола OSPF базируются на пропускной способности соединения bandwidth. Алгоритм протокола рассчитывает суммарное значение стоимости всех соединений через сеть. Меньшее значение указывает лучший маршрут. Для вычисления метрики OSPF используется следующая формула:

    $$Метрика (Cost)= 10^8 /Bandwidth,$$

    где пропускная способность bandwidth задается в бит/c.

    По умолчанию протокол OSPF автоматически устанавливает максимальное значение пропускной способности в 100 Мбит/с. При этом минимальную стоимость 1 будут иметь соединения FastEthernet, GigabitEthernet и 10 GigabitEthernet (табл. 4.1). Соединение Ethernet характеризуется стоимостью 10 единиц, канал ОЦК со скоростью 64 кбит/с - $$1562,5 \approx 1562$$, канал со скоростью 128 кбит/с - 781, канал Т1 - 64, канал Е1 - 48 единиц.

    Стоимость соединений(cost)
    Усл. обозначен. ОЦК - T1 E1 Fast Giga 10G
    Bandwidth,Мбит/с 0,064 0,128 1,544 2,048 100 1000 10000
    100 1562 781 64 48 1 1 1
    1000 15625 7812 647 488 10 1 1
    10000 156250 78125 6477 4882 100 10 1

    Поскольку минимальную стоимость в одну единицу имеют соединения FastEthernet, GigabitEthernet и 10 GigabitEthernet, то при выборе между такими соединениями протокол OSPF не сможет корректно прокладывать маршрут. Поэтому появилась необходимость изменения значений метрики, что реализуется покоманде:

    R1(config-router)#auto-cost reference-bandwidth 1000
        

    В этом случае стоимость в 1 единицу будут иметь соединения GigabitEthernet и 10GigabitEthernet, стоимость соединения FastEthernet будет равна - 10 единицам, другие типы соединений также повысят стоимость в 10 раз. Если ввести команду auto-cost reference-bandwidth 10000, то стоимость в 1 единицу будет иметь соединение 10 GigabitEthernet.

    Команду auto-cost reference-bandwidth необходимо выполнить на всех маршрутизаторах домена, чтобы протокол OSPF мог правильно выбирать кратчайшие пути к сетям назначения.

    Стоимости по умолчанию можно восстановить по команде auto-cost reference-bandwidth 100, когда минимальную стоимость 1 будут иметь соединения со скоростью 100 Мбит/с и выше, т.е. соединения FastEthernet, GigabitEthernet, 10 GigabitEthernet.

    Если маршрут состоит из нескольких соединений, то значения метрик cost складываются. Например, для сети (рис 4.4) стоимость маршрута из маршрутизатора А в локальную Сеть 2 будет складываться из метрики соединения между маршрутизаторами А и В (48), метрики соединения между В и С (1562) и метрики сети назначения Ethernet (10).

    (рис 4.4) Метрика сети OSPF

    Суммарное значение метрики будет равно $$М_{\Sigma} = 48+1562+10 = 1620$$.

    Значение пропускной способности, которое учитывается при вычислении метрики маршрута, может быть изменено по команде bandwidth, где полоса пропускания задается в кбит/c. например:

    Router(config)#interface serial 0/0
    Router(config-if)#bandwidth 64
        

    Значение пропускной способности должно соответствовать реальным линиям связи, что не всегда выполняется. Причем, пропускная способность должна быть задана одинаковой на обеих сторонах соединения.

    Операционная система Cisco IOS позволяет задавать не только пропускную способность bandwidth, но и непосредственно значение cost по команде:

    Router(config-if)#ip ospf cost значение
        

    4.2. Конфигурирование протокола OSPF

    Ниже приведен пример конфигурирования протокола OSPF на маршрутизаторах сети IPv4 (рис 4.5).

    (рис 4.5) Сеть IPv4 с протоколом OSPF

    Из рис 4.5 следует, что Сеть 1 (192.168.10.128/26), Сеть 2 (192.168.10.192/28) и Сеть 4 (192.168.10.16/29) являются подсетями сети 192.168.10.0/24. Причем, Сети 1, 2 и Сеть 4 разделены Сетями 5 и 6.

    При конфигурировании протокола OSPF необходимо задать номер процесса (по умолчанию 1) и адреса непосредственно присоединенных сетей с их шаблонными масками переменной длины (wildcard-mask). При этом для каждой сети указывается номер области (area 0):

    МаршрутизаторR-А:

    R-A(config)#router ospf 1	
    R-A(config-router)#network 192.168.10.128 0.0.0.63 area 0
    R-A(config-router)#network 192.168.10.192 0.0.0.15 area 0
    R-A(config-router)#network 200.5.5.12 0.0.0.3 area 0
      

    МаршрутизаторR-B:

    R-B(config)#router ospf 1	
    R-B(config-router)#network 10.10.20.160 0.0.0.31 area 0
    R-B(config-router)#network 200.5.5.12 0.0.0.3 area 0
    R-B(config-router)#network 200.5.5.16 0.0.0.3 area 0
      

    МаршрутизаторR-С:

    R-C(config)#router ospf 1	
    R-C(config-router)#network 192.168.10.16 0.0.0.7 area 0
    R-C(config-router)#network 200.5.5.16 0.0.0.3 area 0
      

    Ниже приведена таблица маршрутизации R-А:

    R-A#sh ip route
    ...
    Gateway of last resort is not set
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.14, 00:01:09, Serial0/3/0
       192.168.10.0/24 is variably subnetted, 5 subnets, 4 masks
    O   192.168.10.16/29 [110/129] via 200.5.5.14, 00:01:09, Serial0/3/0
    C   192.168.10.128/26 is directly connected, GigabitEthernet0/0
    L   192.168.10.129/32 is directly connected, GigabitEthernet0/0
    C   192.168.10.192/28 is directly connected, GigabitEthernet0/1
    L   192.168.10.193/32 is directly connected, GigabitEthernet0/1
       200.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/0
    L   200.5.5.13/32 is directly connected, Serial0/3/0
    O   200.5.5.16/30 [110/128] via 200.5.5.14, 00:01:09, Serial0/3/0
    R-A#
      

    Маршруты, созданные протоколом OSPF помечены символом О, административное расстояние - 110. Метрика пути к сети 10.10.20.160/27 составляет 65 единиц (64 единицы последовательное соединение "точка-точка" со скоростью 1544 кбит/с и соединение GigabitEthernet с метрикой в 1 единицу). В распечатке таблицы маршрутизации R-А следует обратить внимание на то, что метрика к сети 200.5.5.16/30 составляет 128 единиц (два последовательных соединения "точка-точка"), а к сети 192.168.10.16/29 - на 1 больше (129 единиц), поскольку дополнительно имеется соединение GigabitEthernet с метрикой в 1 единицу (такой же как у соединений FastEthernet).

    Таблица соседних устройств, например маршрутизатора В, отображает следующие параметры:

    R-B>show ip ospf neighbor
    
    Neighbor ID   Pri State    Dead Time  Address     Interface
    200.5.5.18    0   FULL/ -  00:00:39   200.5.5.18  Serial0/3/0
    200.5.5.13    0   FULL/ -  00:00:39   200.5.5.13  Serial0/3/1
      
  • идентификаторы соседних устройств (А - 200.5.5.13, В - 200.5.5.18);
  • приоритет Pri = 0, т.к. в соединениях "точка - точка" не используется;
  • состояние Full, т.е. базы данных соседей одинаковы, сеть характеризуется сходимостью; тире после (Full/ -) означает, что DR в соединении не выбирается;
  • значение интервала простоя (00:00:39);
  • адреса входных интерфейсов соседних устройств (совпадают с ID);
  • тип интерфейсов (Serial0/3/1, Serial0/3/0).
  • Таблица соседних устройств маршрутизатора А аналогична:

    R-A>show ip ospf neighbor
    
    Neighbor ID   Pri  State    Dead Time   Address    Interface
    200.5.5.17     0   FULL/ -  00:00:35    200.5.5.14  Serial0/3/0
      

    При изменении идентификатора маршрутизатора, например А, система требует перезагрузки маршрутизатора или ввода команды clear ip ospf process в привилегированном режиме

    R-A(config)#router ospf 1
    R-A(config-router)#router-id 10.10.10.10
    R-A(config-router)#Reload or use "clear ip ospf process" command, for this to take effect
    
    R-A#clear ip ospf process
    Reset ALL OSPF processes? [no]: y
      

    После этой команды идентификатор маршрутизатора изменяется:

    R-A#show ip protocols
    00:23:58: %OSPF-5-ADJCHG: Process 1, Nbr 200.5.5.17 on Serial0/3/0 from LOADING to FULL, Loading Done
    
    Routing Protocol is "ospf 1"
      Outgoing update filter list for all interfaces is not set 
      Incoming update filter list for all interfaces is not set 
    Router ID 10.10.10.10
    ...
      

    Изменяется также таблица соседних устройств (изменяются идентификаторы соседних устройств: А - 10.10.10.10, В - 200.5.5.18)

    R-B>show ip ospf neighbor
    
    Neighbor ID   Pri State     Dead Time  Address   Interface
    200.5.5.18    0   FULL/ -   00:00:34   200.5.5.18   Serial0/3/0
    10.10.10.10   0   FULL/ -   00:00:35   200.5.5.13   Serial0/3/1
      

    При этом адрес входного интерфейса соседнего маршрутизатора А не совпадает с его ID.

    Конфигурирование пассивного интерфейса

    Маршрутизаторы рассылают объявления OSPF из всех интерфейсов, что перегружает сеть и снижает информационную безопасность. Однако, например, в сети рис 4.5, маршрутизатору А нет смысла рассылать извещения OSPF из интерфейсов G0/0 и1G0/1, поскольку они не подключены к другим маршрутизаторам. Поэтому указанные интерфейсы можно перевести в пассивный режим, когда они будут передавать и принимать данные, но не будут рассылать объявления OSPF. Ниже приведен пример конфигурирования пассивного интерфейса G0/0 по следующей команде:

    R-A(config)#router ospf 1
    R-A(config-router)#passive-interface g0/0
        

    Верификация по команде show ip protocols показывает, что интерфейс G0/0 переведен в пассивный режим:

    R-A#show ip protocols
    Routing Protocol is "ospf 1"
    ...
    Passive Interface(s): 
    GigabitEthernet0/0
        

    Повторное активирование интерфейса производится по команде

    R-A(config-router)#no passive-interface g0/0
        

    Значение стоимости соединений каждого из интерфейсов R-A можно проверить по команде:

    R-A>show ip ospf interface
    GigabitEthernet0/0 is up, line protocol is up
      Internet address is 192.168.10.129/26, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
      Transmit Delay is 1 sec, State DR, Priority 1
    ...
        No Hellos (Passive interface)
    ...
    GigabitEthernet0/1 is up, line protocol is up
      Internet address is 192.168.10.193/28, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
    ...
      Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
        Hello due in 00:00:09
    ...
    Serial0/3/0 is up, line protocol is up
      Internet address is 200.5.5.13/30, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type POINT-TO-POINT, Cost: 64
    ...
    Hello due in 00:00:09
    ...
        

    Значение bandwidth для последовательного интерфейса можно посмотреть по команде show interfaces 0/3/0, которое в нижеприведенном примере составляет 1544 кбит/с:

    R-A#show int s0/3/0
    Serial0/3/0 is up, line protocol is up (connected)
      Hardware is HD64570
      Internet address is 200.5.5.13/30
      MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
         reliability 255/255, txload 1/255, rxload 1/255
    ...
        

    Распечатка команды show ip protocols отображает идентификатор маршрутизатора, адреса присоединенных сетей, административное расстояние и другие параметры:

    R-A>show ip protocols
    
    Routing Protocol is "ospf 1"
    ...
    Router ID 10.10.10.10
      Number of areas in this router is 1. 1 normal 0 stub 0 nssa
      Maximum path: 4
      Routing for Networks:
        192.168.10.128 0.0.0.63 area 0
        192.168.10.192 0.0.0.15 area 0
        200.5.5.12 0.0.0.3 area 0
    Passive Interface(s): 
    GigabitEthernet0/0
      Routing Information Sources:  
        Gateway         Distance      Last Update 
    10.20.10.20          110      00:15:41
        200.5.5.17           110      00:15:41
        200.5.5.18           110      00:00:35
      Distance: (default is 110)
        

    Конфигурирование динамической маршрутизации по умолчанию

    Конфигурирование динамической маршрутизации по умолчанию рассмотрено на примере сети рис 4.6. Для маршрутизатора желательно поддерживать маршруты к каждому возможному адресу назначения. Поэтому на маршрутизаторах формируют маршрут по умолчанию или шлюз последней надежды (Gateway of last resort). Это позволяет маршрутизаторам отправлять пакеты, предназначенные любому узлу Интернета, без необходимости поддерживать в таблице записи (входы) для каждой сети.

    (рис 4.6) Пример сети IPv4

    Например, в сети рис 4.6 маршруты по умолчанию могут быть сконфигурированы, чтобы передавать пакеты с не заданными в таблицах маршрутизации адресами сетей назначения в сеть провайдера ISP.

    Для имитации сети провайдера ISP на маршрутизаторе С сконфигурирован виртуальный интерфейс Loopback1 с адресом 200.7.7.1/30

    R-С(config)#interface loopback 1
    R-С(config-if)#ip address 200.7.7.1 255.255.255.252
        

    Формирование маршрута по умолчанию производится по команде:

    R-С(config)#ip route 0.0.0.0 0.0.0.0loopback 1
        

    После чего в таблице маршрутизации появляется запись о создании шлюза последней надежды (Gateway of last resort is 0.0.0.0 to network 0.0.0.0) и маршрута по умолчанию S* 0.0.0.0/0 is directly connected, Loopback1

    R-C#show ip route
    ...
    Gateway of last resort is 0.0.0.0 to network 0.0.0.0
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.17, 01:08:37, Serial0/3/1
       192.168.10.0/24 is variably subnetted, 4 subnets, 4 masks
    C   192.168.10.16/29 is directly connected, GigabitEthernet0/0
    L   192.168.10.17/32 is directly connected, GigabitEthernet0/0
    O   192.168.10.128/26 [110/129] via 200.5.5.17, 01:08:27, Serial0/3/1
    O   192.168.10.192/28 [110/129] via 200.5.5.17, 01:08:27, Serial0/3/1
       00.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    O   200.5.5.12/30 [110/128] via 200.5.5.17, 01:08:37, Serial0/3/1
    C   200.5.5.16/30 is directly connected, Serial0/3/1
    L   200.5.5.18/32 is directly connected, Serial0/3/1
       200.7.7.0/24 is variably subnetted, 2 subnets, 2 masks
    C   200.7.7.0/30 is directly connected, Loopback1
    L   200.7.7.1/32 is directly connected, Loopback1
    S*  0.0.0.0/0 is directly connected, Loopback1
        

    Однако в таблицах маршрутизации других маршрутизаторов (А и В) подобной информации нет. Для распространения информации о маршруте по умолчанию на другие маршрутизаторы используется следующая команда:

    R-C(config)#router ospf 1
    R-C(config-router)#default-information originate
        

    Это дает возможность протоколу OSPF распространить информацию о маршруте по умолчанию на другие маршрутизаторы, что можно видеть, например, по таблице маршрутизации маршрутизатора В, где появилась строка маршрута O*E2 0.0.0.0/0 [110/1] via 200.5.5.18, 00:00:28, Serial0/3/0, помеченная символом O*:

    R-B>show ip route
    ...
    Gateway of last resort is 200.5.5.18 to network 0.0.0.0
    
       10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
    C   10.10.20.160/27 is directly connected, GigabitEthernet0/0
    L   10.10.20.161/32 is directly connected, GigabitEthernet0/0
       192.168.10.0/24 is variably subnetted, 3 subnets, 3 masks
    O   192.168.10.16/29 [110/65] via 200.5.5.18, 01:27:55, Serial0/3/0
    O   192.168.10.128/26 [110/65] via 200.5.5.13, 01:27:55, Serial0/3/1
    O   192.168.10.192/28 [110/65] via 200.5.5.13, 01:27:55, Serial0/3/1
       200.5.5.0/24 is variably subnetted, 4 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/1
    L   200.5.5.14/32 is directly connected, Serial0/3/1
    C   200.5.5.16/30 is directly connected, Serial0/3/0
    L   200.5.5.17/32 is directly connected, Serial0/3/0
    O*E2  0.0.0.0/0 [110/1] via 200.5.5.18, 00:00:28, Serial0/3/0
        

    В таблице маршрутизатора А сформирована аналогичная строка:

    R-A>show ip route
    ...
    Gateway of last resort is 200.5.5.14 to network 0.0.0.0
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.14, 01:28:31, Serial0/3/0
       192.168.10.0/24 is variably subnetted, 5 subnets, 4 masks
    O   192.168.10.16/29 [110/129] via 200.5.5.14, 01:28:31, Serial0/3/0
    C   192.168.10.128/26 is directly connected, GigabitEthernet0/0
    L   192.168.10.129/32 is directly connected, GigabitEthernet0/0
    C   192.168.10.192/28 is directly connected, GigabitEthernet0/1
    L   192.168.10.193/32 is directly connected, GigabitEthernet0/1
       200.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/0
    L   200.5.5.13/32 is directly connected, Serial0/3/0
    O   200.5.5.16/30 [110/128] via 200.5.5.14, 01:28:31, Serial0/3/0
    O*E2  0.0.0.0/0 [110/1] via 200.5.5.14, 00:01:04, Serial0/3/0
        

    4.3. Особенности конфигурирования протокола OSPF3

    Для работы в сетях IPv6 разработан бесклассовый протокол маршрутизации по состоянию канала OSPF3, большинство параметров которого аналогичны протоколу OSPF2, работающему в сетях IPv4. Оба протокола работают на основе алгоритма SPF. Метрикой обоих протоколов является стоимость ($$cost= 10^8 /Bandwidth$$), где пропускания способность bandwidth задается в бит/c. При обмене маршрутной информацией рассылаются те же типы пакетов, что рассмотрены в разделе 4.1. Рассылка маршрутной информации в OSPF3 производится с использованием группового адреса FF02::5 илиFF02::6 и маршрутизаторов DR и BDR. Кроме того, для рассылки внутри локального канала используются индивидуальные локальные адреса источника и назначения. OSPF3 использует аутентификацию IPv6 по протоколу IPSec.

    В отличие от OSPF2, у которого маршрутизация включается автоматически при конфигурировании протокола, включение маршрутизации OSPF3 производится по специальной команде:

    Router(config)#ipv6 unicast-routing
      

    Особенности конфигурирования OSPF3 рассмотрены на примере сети рис 4.7. Конфигурирование интерфейсов:

    Router(config)#hostname R-A
    R-A(config)#int g0/0
    R-A(config-if)#ipv6 add 2001:DB8:A:1::1/64
    R-A(config-if)#no shutdown
    
    R-A(config-if)#int g0/1
    R-A(config-if)#ipv6 add 2001:DB8:A:2::1/64
    R-A(config-if)#no shutdown
    R-A(config-if)#int s0/3/0
    R-A(config-if)#ipv6 add 2001:DB8:A:5::1/64
    R-A(config-if)#clock rate 64000
    R-A(config-if)#no shutdown
    R-A(config)#ipv6 unicast-routing
      
    (рис 4.7) Сеть с протоколом OSPF3

    Аналогично конфигурируются интерфейсы других маршрутизаторов.

    Проверку сконфигурированных параметров можно произвести по команде:

    R-A#show ipv6 int brief
    GigabitEthernet0/0         [up/up]
        FE80::260:70FF:FEAA:A401
        2001:DB8:A:1::1
    GigabitEthernet0/1         [up/up]
        FE80::260:70FF:FEAA:A402
        2001:DB8:A:2::1
    GigabitEthernet0/2         [administratively down/down]
    Serial0/3/0                [up/up]
        FE80::203:E4FF:FE88:3101
        2001:DB8:A:5::1
    ...
    R-A#
      

    Команда отображает локальные (например, FE80::260:70FF:FEAA:A401) и глобальные адреса (например, 2001:DB8:A:1::1).

    Для работы OSPF3 в сетях IPv6 на маршрутизаторах автоматически или вручную задаются идентификаторы (ID), которые представлены адресами IPv4. Администратор может сконфигурировать идентификаторы следующей последовательностью команд:

    R-A(config)#ipv6 router ospf 1
    R-A(config-rtr)#router-id 1.1.1.1
    
    R-B(config)#ipv6 router ospf 1
    R-B(config-rtr)#router-id 2.2.2.2
    
    R-C(config)#ipv6 router ospf 1
    R-C(config-rtr)#router-id 3.3.3.3
      

    Комплексную проверку проделанной работы реализует команда:

    R-A#show run
    ...
    hostname R-A
    !
    ipv6 unicast-routing
    !
    interface GigabitEthernet0/0
    ipv6 address 2001:DB8:A:1::1/64
    !
    interface GigabitEthernet0/1
    ipv6 address 2001:DB8:A:2::1/64
    ...
    interface Serial0/3/0
    ipv6 address 2001:DB8:A:5::1/64
    clock rate 64000
    !
    ipv6 router ospf 1
    router-id 1.1.1.1
    log-adjacency-changes
    !
    ip classless
    ...
    line con 0
    line aux 0
    line vty 0 4
    login
    end
      

    Из распечатки следует, что на маршрутизаторе А включена маршрутизация (ipv6 unicast-routing), на интерфейсах заданы адреса IPv6, и создан идентификатор (router-id 1.1.1.1).

    При конфигурировании протокола OSPF3 он устанавливается на каждом активном интерфейсе маршрутизатора в отличие от OSPF2, где проводилось описание адресов прямо присоединенных сетей (network) и областей (area). Ниже приведена последовательность команд, которая устанавливает OSPF3 на каждый функционирующий интерфейс

    R-A#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    R-A(config)#int g0/0
    R-A(config-if)#ipv6 ospf 1 area 0
    R-A(config-if)#int g0/1
    R-A(config-if)#ipv6 ospf 1 area 0
    R-A(config-if)#int s0/3/0
    R-A(config-if)#ipv6 ospf 1 area 0
      

    Изменения отображает команда проверки текущей конфигурации:

    R-A#show run
    interface GigabitEthernet0/0
    ipv6 address 2001:DB8:A:1::1/64
    ipv6 ospf 1 area 0
    !
    interface GigabitEthernet0/1
    ipv6 address 2001:DB8:A:2::1/64
    ipv6 ospf 1 area 0
    !
    interface Serial0/3/0
    ipv6 address 2001:DB8:A:5::1/64
    ipv6 ospf 1 area 0
    clock rate 64000
    !
    ipv6 router ospf 1
    router-id 1.1.1.1
    log-adjacency-changes
    !
    Ip classless
    ...
    R-A#
      

    После соответствующего конфигурирования всех маршрутизаторов сети (рис 4.7) протокол OSPF3 создает таблицу соседних устройств, таблицу данных о состоянии каналов и таблицу маршрутизации.

    Таблица маршрутизации А содержит три маршрута к удаленным сетям, путь к которым проходит через выходной интерфейс Serial 0/3/0:

    R-A>show ipv6 route
    IPv6 Routing Table - 10 entries
    ...
    C   2001:DB8:A:1::/64 [0/0]
         via ::, GigabitEthernet0/0
    L   2001:DB8:A:1::1/128 [0/0]
         via ::, GigabitEthernet0/0
    C   2001:DB8:A:2::/64 [0/0]
         via ::, GigabitEthernet0/1
    L   2001:DB8:A:2::1/128 [0/0]
         via ::, GigabitEthernet0/1
    O   2001:DB8:A:3::/64 [110/65]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:4::/64 [110/129]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    C   2001:DB8:A:5::/64 [0/0]
         via ::, Serial0/3/0
    L   2001:DB8:A:5::1/128 [0/0]
         via ::, Serial0/3/0
    O   2001:DB8:A:6::/64 [110/128]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    L   FF00::/8 [0/0]
         via ::, Null0
    R-A>
      

    Когда необходима специфическая информация только о маршрутах, созданных протоколом OSPF3, используют команду:

    R-A>show ipv6 route ospf
    ...
    O   2001:DB8:A:3::/64 [110/65]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:4::/64 [110/129]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:6::/64 [110/128]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    R-A>
      

    Таблицу соседних устройств можно посмотреть по команде show ipv6 ospf neighbor. Например, таблица соседних устройств маршрутизатора А отображает только одно устройство - маршрутизатор В:

    R-A>show ipv6 ospf neighbor
    
    Neighbor ID  Pri  State    Dead Time  Interface ID  Interface
    2.2.2.2      0    FULL/ -  00:00:36   5             Serial0/3/0
      

    Таблица соседних устройств маршрутизатора В отображает два устройства (А и В) с идентификаторами 1.1.1.1 и 3.3.3.3:

    R-B#show ipv6 ospf neighbor
    
    Neighbor ID  Pri State    Dead Time  Interface ID  Interface
    3.3.3.3      0   FULL/ -  00:00:35   5             Serial0/3/0
    1.1.1.1      0   FULL/ -  00:00:38   4             Serial0/3/1
    R-B#
      

    Краткие итоги

  • Протокол состояния канала Open Shortest Path First - OSPF предназначен для работы в больших гибких составных сетях и может работать с оборудованием разных фирм производителей.
  • Административное расстояние протокола OSPF равно 110. Протокол используется внутри определенной области. Нулевая область (area 0) является главной или единственной.
  • Протокол OSPF формирует три базы данных: базу данных смежности; базу данных о состоянии каналов (LSDB); базу пересылки.
  • На основе баз данных формируются: таблица соседних устройств; таблица топологии сети; таблица маршрутизации.
  • Для обмена маршрутной информацией используется 5 типов пакетов: приветствия Hello, описания базы данных DBD, запроса LSR, обновлений LSU (LSА), подтверждения LSAck.
  • Обмен маршрутной информацией производится с использованием адресов 224.0.0.5 или 224.0.0.6 многоадресного режима, чему соответствует групповой МАС-адрес назначения (01-00-5Е-00-00-05 и 01-00-5Е-00-00-06), а также в одноадресном режиме.
  • Протокол OSPF не проводит периодический обмен объемными обновлениями маршрутной информации, характеризуется быстрой сходимостью. Обмен маршрутной информацией (LSU) производится только при возникновении изменений в топологии сети.
  • Hello-пакеты используются, чтобы обнаруживать соседние устройства, устанавливать и поддерживать с ними отношения смежности.
  • В сетях Ethernet период рассылки Hello-пакетов протокола OSPF составляет 10 секунд. Период простоя - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то OSPF удалит не отвечающего соседа из базы данных LSDB.
  • В сошедшейся сети базы данных маршрутизаторов должны быть идентичными.
  • Каждое устройство, получив обновление LSA, транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.
  • Для формирования путей свободных от маршрутных петель строится топологическое дерево с использованием алгоритма Dijkstra выбора первого кратчайшего пути.
  • В сетях с множественным доступом (Ethernet, Frame Relay) выбирается главный назначенный маршрутизатор (DR) и запасной (BDR), что сокращает объем информации обновлений. Выбор DR и BDR происходит на основе идентификаторов маршрутизаторов.
  • Метрика протокола OSPF (стоимость) базируются на пропускной способности. Алгоритм протокола рассчитывает суммарное значение стоимости всех соединений из маршрутизатора до узла назначения.
  • Протокол OSPF поддерживает маски переменной длины, бесклассовую адресацию на основе префикса, обеспечивает маршрутизацию в топологии с разделенными сетями.
  • При конфигурировании протокола OSPF необходимо задать номер процесса (по умолчанию 1) и адреса непосредственно присоединенных сетей с их шаблонными масками переменной длины (wildcard-mask). При этом для каждой сети указывается номер области (area 0).
  • Интерфейсы маршрутизатора можно перевести в пассивный режим, когда они будут передавать и принимать данные, но не будут рассылать объявления OSPF.
  • Распространение информации о маршруте по умолчанию на другие маршрутизаторы реализует команда default-information originate.
  • В сетях IPv6 при конфигурировании протокола OSPF3 включение маршрутизации производится по команде ipv6 unicast-routingв режиме глобального конфигурирования. Маршрутизатору назначают идентификатор, например 1.1.1.1, по командам:
    R-A(config)#ipv6 router ospf 1
    R-A(config-rtr)#router-id 1.1.1.1
       
  • Включение протокола OSPF3 на интерфейсах производится по команде Router(config-if)#ipv6 ospf 1 area 0.
  • Проверка созданных протоколом OSPF3 маршрутов реализуется командой show ipv6 route.
  • Вопросы

  • Почему протокол OSPF используется внутри определенной области (area)?
  • Какие базы данных формирует протокол OSPF? Какие требования предъявляются к базам данных разных маршрутизаторов области?
  • Какие таблицы строятся на основе баз данных топологии?
  • Какие команды используются для просмотра таблиц протокола OSPF?
  • Какие типы пакетов используется для обмена маршрутной информацией?
  • Какие IP-адреса и MAC-адреса использует протокол OSPFдля обмена маршрутной информацией?
  • Для чего нужны и какую информацию содержат Hello-пакеты OSPF? По какой команде можно посмотреть таблицу соседних устройств?
  • Каков период передачи Hello-пакетов протокола OSPF в сетях Ethernet?
  • Что произойдет, если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета?
  • Какую информацию содержит заголовок Hello-пакета?
  • Какую информацию содержит поле данных Hello-пакета?
  • В каких случаях производится обмен пакетами LSU? Что такое LSA?
  • Какие параметры учитывает метрика протокола OSPF?
  • В каких сетях и для чего выбираются назначенный DR и запасной BDR маршрутизатор?
  • Для чего назначается идентификатор маршрутизатора?
  • Какие команды использует администратор при назначении идентификатора маршрутизатора? По какой команде можно проверить идентификатор?
  • Как формируются и используются виртуальные логические интерфейсы loopback при выборе DR иBDR маршрутизаторов?
  • Каков формат команд конфигурирования протокола OSPF?
  • Какие параметры отображает команда show ip protocols?
  • В чем состоит различие технологий аутентификации OSPF2 и OSPF3?
  • Что используется в качестве идентификаторов протокола OSPF3?
  • Какие команды формируют номер процесса OSPF3 и задают идентификатор?
  • Какая команда используется для просмотра таблиц маршрутизации OSPF3?
  • По какой команде протокол OSPF3 устанавливают на интерфейс?
  • В чем особенность команды show ipv6 route ospf?
  • Упражнения

    В нижеприведенной схеме сети сконфигурируйте динамическую маршрутизацию OSPF3. Проведите проверку и отладку с использованием команд show running-config, show ipv6 int brief, show ipv6 route, show ipv6 route ospf, show ipv6 ospf neighbor, ping, traceroute и tracert.

    Проанализируйте таблицы маршрутизации, таблицы соседних устройств маршрутизаторов. Посчитайте метрики маршрутов, сравните с табличными значениями.

    Страницы:

    4.1. Общие сведения о протоколе OSPF

    Протокол состояния канала (Link-state) ), снижает нагрузку на сеть.

    (рис 4.1) Области функционирования протокола OSPF

    Областей (зон) может быть несколько, среди которых ). Далее рассматривается случай единственной области area 0.

    Протокол OSPF оперативно реагируют на изменения в сети, обеспечивая быструю сходимость. Он может работать с оборудованием разных фирм производителей, и потому получил широкое распространение. Административное расстояние протокола OSPF равно 110 (см. табл. 1.1).

    Протокол OSPF формирует три базы данных, на основе которых создает соответствующие таблицы:

  • База данных смежности (adjacency database) позволяет сформировать таблицу соседних устройств(neighbor table), содержимое которой можно посмотреть по команде show ip ospf neighbor.
  • На основе базы данных о состоянии каналов (Link-State Data Base - LSDB) формируется таблица топологии сети (topology table), проверяемая по команде show ip ospf database. После схождения сети базы данных о состоянии каналов LSDB должны быть одинаковы у всех маршрутизаторов области.
  • На основе базы LSDB и базы данных смежности формируется база пересылки и создается таблица маршрутизации, которую можно посмотреть по команде show ip route.
  • В основе протокола OSPF лежит алгоритм Дийкстра (Dijkstra), обеспечивающий выбор кратчайшего пути (shortest path) к адресату назначения. Протокол OSPF не проводит периодический обмен объемными обновлениями (update) маршрутной информации для снижения нагрузки на сеть, и характеризуется быстрой сходимостью.

    Сходимость или конвергенция (convergence) сети достигается, когда базы данных о состоянии каналов LSDB одинаковы у всех маршрутизаторов области.

    Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:

  • Пакет приветствия Hello.
  • Пакет описания базы данных Data Base Description - DBD.
  • Пакет запроса Link-State Request - LSR.
  • Пакет обновлений Link-State Update - LSU.
  • Пакет подтверждения Link-State Acknowledgment - LSAck.
  • Пакеты Hello маршрутизатор отправляет со всех своих интерфейсов, чтобы обнаружить соседние устройства. В отличие от других, Hello-пакеты рассылаются периодически и довольно часто, чтобы непрерывно отслеживать работоспособность соседних устройств. После обмена Hello-пакетами между соседними устройствами устанавливаются и поддерживаются отношения смежности (adjacency) и формируются таблицы соседних устройств.

    Различают три типа сетей:

  • Широковещательные с множественным доступом (Broadcast multi-access), например Ethernet.
  • Сети типа точка-точка (Point-to-point).
  • Нешироковещательные с множественным доступом (Non broadcast multi-access - NBMA), например, сети Frame Relay, ATM.
  • В сетях первых двух типов период рассылки Hello-пакетов - 10 секунд, а в сетях NBMA - 30 сек. Период простоя (Dead Interval) - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то считается, что устройство прекратило функционирование. Протокол OSPF удалит не отвечающего соседа из базы данных LSDB. При рассылке Hello-пакетов в сетях IPv4 используется адрес 224.0.0.5 многоадресного режима без подтверждения доставки. В сетях IPv6 для рассылки используется адрес FF02::5.

    Пакет DBD содержит сокращенный список базы данных передающего маршрутизатора и используется принимающим маршрутизатором для синхронизации (проверки) своей базы данных. Базы данных должны быть идентичными. Принимающий маршрутизатор может запросить полную информацию о входах базы данных передатчика, используя пакет запроса Link-State Request - LSR.

    Для обмена объявлениями о состоянии канала используется пакет обновлений Link-StateUpdate - LSU. Пакет LSU может содержать различные типы извещений или объявлений (Link-State Advertisements - LSA). Обмен пакетами объявлений LSA производится на начальном этапе формирования сети после установления отношения смежности, а также при возникновении изменений в топологии сети.

    Когда происходят изменения в каком-либо соединении сети, то маршрутизатор, первым заметивший это изменение, создает извещение о состоянии этого соединения LSA, которое передается соседним устройствам. Каждое устройство, получив обновление LSA, транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Такая лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.

    Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-Stat Acknowledgment - LSAck), который рассылается в одноадресном режиме.

    Состояние канала (соединения) - это описание интерфейса, которое включает IP адрес интерфейса, маску подсети, тип сети и другие параметры. Полученные пакеты LSA позволяют протоколу OSPFсформировать на маршрутизаторе базу данных о состоянии каналов LSDB. Зная базу данных, алгоритм Dijkstra (shortest path first algorithm - SPF) вычисляет кратчайшие пути к сетям назначения. При этом строится древовидная топология кратчайших путей SPF ко всем доступным сетям, свободная от маршрутных петель. Корнем в дереве является сам маршрутизатор. Первый вычисленный кратчайший путь записывается в таблицу маршрутизации.

    Пакет OSPF размещается внутри IP-пакета сразу за IP-заголовком (рис 4.2).

    (рис 4.2) Заголовок OSPF

    При передаче сообщения OSPF заголовок кадра включает групповой МАС-адрес назначения (01-00-5Е-00-00-05 или 01-00-5Е-00-00-06) и одноадресный МАС-адрес источника.

    Заголовок IP-пакета содержит групповой адрес назначения (224.0.0.5 или 224.0.0.6) и IP-адрес источника.В поле протокола пакета задается значение 89, что говорит об использовании OSPF.

    Заголовок OSPF содержит:

  • тип пакета;
  • идентификатор маршрутизатора (Router ID);
  • идентификатор области (area 0);
  • другие параметры.
  • Идентификатор устройства (Router ID), по сути, является IP-адресом одного из интерфейсов маршрутизатора.

    Данные пакета OSPF зависят от типа пакета. Так пакет приветствия Hello включает:

  • маску сети или подсети;
  • интервалы времени рассылки пакетов (Hello Interval), интервал простоя (Dead Interval);
  • приоритет маршрутизатора;
  • идентификаторы назначенного (главного, определяющего) маршрутизатора (Designated Router - DR) и запасного назначенного маршрутизатора (Backup Designated Router - BDR) данной области;
  • список соседних устройств, содержащий идентификаторы соседей.
  • Для формирования смежности необходимо, чтобы маршрутизаторы работали в сети одного типа, и у соседних устройств должны быть одинаковы:

  • Период времени обмена Hello-пакетами (Hello Interval).
  • Период времени простоя (Dead Interval), по истечению которого связь считается потерянной, если за это время не было получено ни одного Hello-пакета.
  • Выбор назначенного (главного) маршрутизатора области сети (Designated - DR) и запасного назначенного маршрутизатора сети (BDR), производится в сетях с множественным доступом. В сетях "точка-точка" этот механизм не используется. В сегменте сети с множественным доступом, несколько маршрутизаторов связаны между собой. Поскольку каждый маршрутизатор должен установить полное отношение смежности со всеми соседними маршрутизаторами и обменяться информацией о состоянии связи всех соединений, то, например, при 5 маршрутизаторах необходим обмен десятью состояниями связи. В общем случае для n маршрутизаторов должно быть n*(n-1)/2 обменов, на что должны быть выделены дополнительные ресурсы, прежде всего, полоса пропускания.

    Если в сети выбран назначенный маршрутизатор области (DR), то маршрутизатор, первым обнаруживший изменение в сети, посылает информацию об изменениях только маршрутизатору DR, а тот в свою очередь, рассылает LSAs всем другим OSPF маршрутизаторам области, по адресу 224.0.0.5. Это сокращает количество обменов модификациями в сети. Если маршрутизатор DR выходит из строя, то его функции начинает выполнять запасной назначенный маршрутизатор области сети BDR.

    Выбор DR и BDR происходит на основе сравнения приоритетов маршрутизаторов. По умолчанию приоритет всех маршрутизаторов равен 1. Значение приоритета может быть любым от 0 до 255. Маршрутизатор с приоритетом 0 не может быть избранным DR или BDR. Маршрутизатор с самым высоким OSPF приоритетом будет отобран как DR маршрутизатор. Маршрутизатор со вторым приоритетом будет BDR.

    Когда не задано никаких дополнительных параметров и приоритет одинаков, выбор DR и BDR происходит на основе идентификаторов (ID) маршрутизаторов.

    Идентификатор маршрутизатора (ID) может быть задан администратором по команде:

    Router(config)#router ospf № процесса
    Router(config-router)#router-id ip-адрес
      

    У данной команды наивысший приоритет назначения идентификатора маршрутизатора.

    Если идентификатор не задан администратором, то протокол OSPF автоматически выбирает в качестве ID адрес одного из интерфейсов с наибольшим значением. Маршрутизатор с высшим значением идентификатора ID становится DR. Маршрутизатор со вторым наибольшим значением идентификатора ID становится BDR.

    Поскольку на интерфейсах используются разъемы, то они являются ненадежными элементами сети. Для повышения надежности работы DR на маршрутизаторах формируют виртуальные логические интерфейсы loopback. OSPF использует адрес интерфейса loopback как ID маршрутизатора, независимо от значения адресов других интерфейсов. Маршрутизатор, на котором сформировано несколько интерфейсов loopback, использует самое большое значение адреса интерфейса loopback в качестве ID маршрутизатора. Таким образом, выбор DR и BDR происходит на основе сравнения адресов интерфейсов loopback.

    После выбора, DR и BDR сохраняют свои роли, даже если к сети добавляются маршрутизаторы с более высоким приоритетом до тех пор, пока маршрутизаторы не будут переконфигурированы.

    Создание интерфейса loopback производится по команде interface loopback, например:

    Router(config)#interface loopback 0 
    Router(config-if)#ip address10.1.1.1 255.255.255.255
      

    Интерфейс loopback должен формироваться с маской подсети на 32 бита - 255.255.255.255. Такая маска называется маской узла, потому что маска определяет сеть одного узла.

    Изменение приоритета OSPF может производиться администратором по команде ip ospf priority в режиме конфигурирования интерфейса:

    Router(config-if)#ip ospf priority №
      

    Значение приоритета () интерфейса может изменяться в пределах от 0 до 255. Приоритет можно посмотреть по команде:

    Router#show ip ospf interface тип интерфейса
      

    При подключении маршрутизатора, например В к сети (рис 4.3), протокол OSPF проходит последовательно несколько стадий, чтобы достичь сходимости. На этапе установления отношения смежности происходит переход интерфейса G0/1 маршрутизатора В из выключенного состояния Down в состояние Init, когда интерфейс начинает передавать Hello-пакеты.

    Маршрутизатор В отправляет Hello-пакеты с идентификатором, например 192.168.10.2, из всех своих интерфейсов по групповому адресу 224.0.0.5. Получив Hello-пакет, соседний маршрутизатор А устанавливает отношение смежности с В, добавив полученный идентификатор в свою базу данных смежности и модифицировав таблицу соседних устройств. При этом маршрутизатор А в режиме одноадресной рассылки отправляет Hello-пакет маршрутизатору В. Пакет содержит идентификатор самого устройства А, например 192.168.10.1, и список соседей, подключенных к этому интерфейсу, т.е. идентификатор 192.168.10.2.

    (рис 4.3) Подключение маршрутизатора к сети

    Получив Hello-пакет со своим собственным идентификатором, маршрутизатор В добавляет устройство А в свою базу данных смежности и формирует таблицу соседних устройств. Протокол OSPF переводит маршрутизатор в состояние Two-Way.

    После этого в сетях Ethernet проводятся выборы назначенного (DR) и запасного (BDR). Если маршрутизаторы А и В (рис 4.3) имеют одинаковый приоритет, например 1, то в Ethernet-соединении между устройствами наибольшее значение IP-адреса (192.168.10.2) имеет интерфейс G0/1. Поэтому назначенным (DR) будет маршрутизатор В, резервным (BDR) - станетмаршрутизатор А.

    На следующем этапе синхронизации баз данных в состоянии ExStart устройство с боле высоким значением идентификатора (маршрутизатор В) становится ведущим, которое начинает процесс обмена пакетами DBD с ведомым (состояние Exchange). Получение пакетов DBD подтверждается пакетами LSAck. Если информация в пакетах DBD показывает, что требуются дополнительные данные, то используются пакты LSR и LSU (состояние Loading, работает алгоритм SPF). Достижение маршрутизаторами сходимости характеризуется состоянием Full.

    После синхронизации баз данных пакеты LSU рассылаются только при изменениях топологии сети или каждые 30 минут работы.

    При отладке сети команда show ip protocols отображает номер процесса OSPF, идентификатор маршрутизатора, адреса присоединенных сетей, наличие пассивных интерфейсов, адреса источников, из которых передаются обновления, значение административного расстояния.

    Метрика протокола OSPF

    Протокол маршрутизации OSPF в качестве метрики использует стоимость (cost). Метрика протокола OSPF базируются на пропускной способности соединения bandwidth. Алгоритм протокола рассчитывает суммарное значение стоимости всех соединений через сеть. Меньшее значение указывает лучший маршрут. Для вычисления метрики OSPF используется следующая формула:

    $$Метрика (Cost)= 10^8 /Bandwidth,$$

    где пропускная способность bandwidth задается в бит/c.

    По умолчанию протокол OSPF автоматически устанавливает максимальное значение пропускной способности в 100 Мбит/с. При этом минимальную стоимость 1 будут иметь соединения FastEthernet, GigabitEthernet и 10 GigabitEthernet (табл. 4.1). Соединение Ethernet характеризуется стоимостью 10 единиц, канал ОЦК со скоростью 64 кбит/с - $$1562,5 \approx 1562$$, канал со скоростью 128 кбит/с - 781, канал Т1 - 64, канал Е1 - 48 единиц.

    Стоимость соединений(cost)
    Усл. обозначен. ОЦК - T1 E1 Fast Giga 10G
    Bandwidth,Мбит/с 0,064 0,128 1,544 2,048 100 1000 10000
    100 1562 781 64 48 1 1 1
    1000 15625 7812 647 488 10 1 1
    10000 156250 78125 6477 4882 100 10 1

    Поскольку минимальную стоимость в одну единицу имеют соединения FastEthernet, GigabitEthernet и 10 GigabitEthernet, то при выборе между такими соединениями протокол OSPF не сможет корректно прокладывать маршрут. Поэтому появилась необходимость изменения значений метрики, что реализуется покоманде:

    R1(config-router)#auto-cost reference-bandwidth 1000
        

    В этом случае стоимость в 1 единицу будут иметь соединения GigabitEthernet и 10GigabitEthernet, стоимость соединения FastEthernet будет равна - 10 единицам, другие типы соединений также повысят стоимость в 10 раз. Если ввести команду auto-cost reference-bandwidth 10000, то стоимость в 1 единицу будет иметь соединение 10 GigabitEthernet.

    Команду auto-cost reference-bandwidth необходимо выполнить на всех маршрутизаторах домена, чтобы протокол OSPF мог правильно выбирать кратчайшие пути к сетям назначения.

    Стоимости по умолчанию можно восстановить по команде auto-cost reference-bandwidth 100, когда минимальную стоимость 1 будут иметь соединения со скоростью 100 Мбит/с и выше, т.е. соединения FastEthernet, GigabitEthernet, 10 GigabitEthernet.

    Если маршрут состоит из нескольких соединений, то значения метрик cost складываются. Например, для сети (рис 4.4) стоимость маршрута из маршрутизатора А в локальную Сеть 2 будет складываться из метрики соединения между маршрутизаторами А и В (48), метрики соединения между В и С (1562) и метрики сети назначения Ethernet (10).

    (рис 4.4) Метрика сети OSPF

    Суммарное значение метрики будет равно $$М_{\Sigma} = 48+1562+10 = 1620$$.

    Значение пропускной способности, которое учитывается при вычислении метрики маршрута, может быть изменено по команде bandwidth, где полоса пропускания задается в кбит/c. например:

    Router(config)#interface serial 0/0
    Router(config-if)#bandwidth 64
        

    Значение пропускной способности должно соответствовать реальным линиям связи, что не всегда выполняется. Причем, пропускная способность должна быть задана одинаковой на обеих сторонах соединения.

    Операционная система Cisco IOS позволяет задавать не только пропускную способность bandwidth, но и непосредственно значение cost по команде:

    Router(config-if)#ip ospf cost значение
        

    4.2. Конфигурирование протокола OSPF

    Ниже приведен пример конфигурирования протокола OSPF на маршрутизаторах сети IPv4 (рис 4.5).

    (рис 4.5) Сеть IPv4 с протоколом OSPF

    Из рис 4.5 следует, что Сеть 1 (192.168.10.128/26), Сеть 2 (192.168.10.192/28) и Сеть 4 (192.168.10.16/29) являются подсетями сети 192.168.10.0/24. Причем, Сети 1, 2 и Сеть 4 разделены Сетями 5 и 6.

    При конфигурировании протокола OSPF необходимо задать номер процесса (по умолчанию 1) и адреса непосредственно присоединенных сетей с их шаблонными масками переменной длины (wildcard-mask). При этом для каждой сети указывается номер области (area 0):

    МаршрутизаторR-А:

    R-A(config)#router ospf 1	
    R-A(config-router)#network 192.168.10.128 0.0.0.63 area 0
    R-A(config-router)#network 192.168.10.192 0.0.0.15 area 0
    R-A(config-router)#network 200.5.5.12 0.0.0.3 area 0
      

    МаршрутизаторR-B:

    R-B(config)#router ospf 1	
    R-B(config-router)#network 10.10.20.160 0.0.0.31 area 0
    R-B(config-router)#network 200.5.5.12 0.0.0.3 area 0
    R-B(config-router)#network 200.5.5.16 0.0.0.3 area 0
      

    МаршрутизаторR-С:

    R-C(config)#router ospf 1	
    R-C(config-router)#network 192.168.10.16 0.0.0.7 area 0
    R-C(config-router)#network 200.5.5.16 0.0.0.3 area 0
      

    Ниже приведена таблица маршрутизации R-А:

    R-A#sh ip route
    ...
    Gateway of last resort is not set
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.14, 00:01:09, Serial0/3/0
       192.168.10.0/24 is variably subnetted, 5 subnets, 4 masks
    O   192.168.10.16/29 [110/129] via 200.5.5.14, 00:01:09, Serial0/3/0
    C   192.168.10.128/26 is directly connected, GigabitEthernet0/0
    L   192.168.10.129/32 is directly connected, GigabitEthernet0/0
    C   192.168.10.192/28 is directly connected, GigabitEthernet0/1
    L   192.168.10.193/32 is directly connected, GigabitEthernet0/1
       200.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/0
    L   200.5.5.13/32 is directly connected, Serial0/3/0
    O   200.5.5.16/30 [110/128] via 200.5.5.14, 00:01:09, Serial0/3/0
    R-A#
      

    Маршруты, созданные протоколом OSPF помечены символом О, административное расстояние - 110. Метрика пути к сети 10.10.20.160/27 составляет 65 единиц (64 единицы последовательное соединение "точка-точка" со скоростью 1544 кбит/с и соединение GigabitEthernet с метрикой в 1 единицу). В распечатке таблицы маршрутизации R-А следует обратить внимание на то, что метрика к сети 200.5.5.16/30 составляет 128 единиц (два последовательных соединения "точка-точка"), а к сети 192.168.10.16/29 - на 1 больше (129 единиц), поскольку дополнительно имеется соединение GigabitEthernet с метрикой в 1 единицу (такой же как у соединений FastEthernet).

    Таблица соседних устройств, например маршрутизатора В, отображает следующие параметры:

    R-B>show ip ospf neighbor
    
    Neighbor ID   Pri State    Dead Time  Address     Interface
    200.5.5.18    0   FULL/ -  00:00:39   200.5.5.18  Serial0/3/0
    200.5.5.13    0   FULL/ -  00:00:39   200.5.5.13  Serial0/3/1
      
  • идентификаторы соседних устройств (А - 200.5.5.13, В - 200.5.5.18);
  • приоритет Pri = 0, т.к. в соединениях "точка - точка" не используется;
  • состояние Full, т.е. базы данных соседей одинаковы, сеть характеризуется сходимостью; тире после (Full/ -) означает, что DR в соединении не выбирается;
  • значение интервала простоя (00:00:39);
  • адреса входных интерфейсов соседних устройств (совпадают с ID);
  • тип интерфейсов (Serial0/3/1, Serial0/3/0).
  • Таблица соседних устройств маршрутизатора А аналогична:

    R-A>show ip ospf neighbor
    
    Neighbor ID   Pri  State    Dead Time   Address    Interface
    200.5.5.17     0   FULL/ -  00:00:35    200.5.5.14  Serial0/3/0
      

    При изменении идентификатора маршрутизатора, например А, система требует перезагрузки маршрутизатора или ввода команды clear ip ospf process в привилегированном режиме

    R-A(config)#router ospf 1
    R-A(config-router)#router-id 10.10.10.10
    R-A(config-router)#Reload or use "clear ip ospf process" command, for this to take effect
    
    R-A#clear ip ospf process
    Reset ALL OSPF processes? [no]: y
      

    После этой команды идентификатор маршрутизатора изменяется:

    R-A#show ip protocols
    00:23:58: %OSPF-5-ADJCHG: Process 1, Nbr 200.5.5.17 on Serial0/3/0 from LOADING to FULL, Loading Done
    
    Routing Protocol is "ospf 1"
      Outgoing update filter list for all interfaces is not set 
      Incoming update filter list for all interfaces is not set 
    Router ID 10.10.10.10
    ...
      

    Изменяется также таблица соседних устройств (изменяются идентификаторы соседних устройств: А - 10.10.10.10, В - 200.5.5.18)

    R-B>show ip ospf neighbor
    
    Neighbor ID   Pri State     Dead Time  Address   Interface
    200.5.5.18    0   FULL/ -   00:00:34   200.5.5.18   Serial0/3/0
    10.10.10.10   0   FULL/ -   00:00:35   200.5.5.13   Serial0/3/1
      

    При этом адрес входного интерфейса соседнего маршрутизатора А не совпадает с его ID.

    Конфигурирование пассивного интерфейса

    Маршрутизаторы рассылают объявления OSPF из всех интерфейсов, что перегружает сеть и снижает информационную безопасность. Однако, например, в сети рис 4.5, маршрутизатору А нет смысла рассылать извещения OSPF из интерфейсов G0/0 и1G0/1, поскольку они не подключены к другим маршрутизаторам. Поэтому указанные интерфейсы можно перевести в пассивный режим, когда они будут передавать и принимать данные, но не будут рассылать объявления OSPF. Ниже приведен пример конфигурирования пассивного интерфейса G0/0 по следующей команде:

    R-A(config)#router ospf 1
    R-A(config-router)#passive-interface g0/0
        

    Верификация по команде show ip protocols показывает, что интерфейс G0/0 переведен в пассивный режим:

    R-A#show ip protocols
    Routing Protocol is "ospf 1"
    ...
    Passive Interface(s): 
    GigabitEthernet0/0
        

    Повторное активирование интерфейса производится по команде

    R-A(config-router)#no passive-interface g0/0
        

    Значение стоимости соединений каждого из интерфейсов R-A можно проверить по команде:

    R-A>show ip ospf interface
    GigabitEthernet0/0 is up, line protocol is up
      Internet address is 192.168.10.129/26, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
      Transmit Delay is 1 sec, State DR, Priority 1
    ...
        No Hellos (Passive interface)
    ...
    GigabitEthernet0/1 is up, line protocol is up
      Internet address is 192.168.10.193/28, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
    ...
      Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
        Hello due in 00:00:09
    ...
    Serial0/3/0 is up, line protocol is up
      Internet address is 200.5.5.13/30, Area 0
      Process ID 1, Router ID 10.10.10.10, Network Type POINT-TO-POINT, Cost: 64
    ...
    Hello due in 00:00:09
    ...
        

    Значение bandwidth для последовательного интерфейса можно посмотреть по команде show interfaces 0/3/0, которое в нижеприведенном примере составляет 1544 кбит/с:

    R-A#show int s0/3/0
    Serial0/3/0 is up, line protocol is up (connected)
      Hardware is HD64570
      Internet address is 200.5.5.13/30
      MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
         reliability 255/255, txload 1/255, rxload 1/255
    ...
        

    Распечатка команды show ip protocols отображает идентификатор маршрутизатора, адреса присоединенных сетей, административное расстояние и другие параметры:

    R-A>show ip protocols
    
    Routing Protocol is "ospf 1"
    ...
    Router ID 10.10.10.10
      Number of areas in this router is 1. 1 normal 0 stub 0 nssa
      Maximum path: 4
      Routing for Networks:
        192.168.10.128 0.0.0.63 area 0
        192.168.10.192 0.0.0.15 area 0
        200.5.5.12 0.0.0.3 area 0
    Passive Interface(s): 
    GigabitEthernet0/0
      Routing Information Sources:  
        Gateway         Distance      Last Update 
    10.20.10.20          110      00:15:41
        200.5.5.17           110      00:15:41
        200.5.5.18           110      00:00:35
      Distance: (default is 110)
        

    Конфигурирование динамической маршрутизации по умолчанию

    Конфигурирование динамической маршрутизации по умолчанию рассмотрено на примере сети рис 4.6. Для маршрутизатора желательно поддерживать маршруты к каждому возможному адресу назначения. Поэтому на маршрутизаторах формируют маршрут по умолчанию или шлюз последней надежды (Gateway of last resort). Это позволяет маршрутизаторам отправлять пакеты, предназначенные любому узлу Интернета, без необходимости поддерживать в таблице записи (входы) для каждой сети.

    (рис 4.6) Пример сети IPv4

    Например, в сети рис 4.6 маршруты по умолчанию могут быть сконфигурированы, чтобы передавать пакеты с не заданными в таблицах маршрутизации адресами сетей назначения в сеть провайдера ISP.

    Для имитации сети провайдера ISP на маршрутизаторе С сконфигурирован виртуальный интерфейс Loopback1 с адресом 200.7.7.1/30

    R-С(config)#interface loopback 1
    R-С(config-if)#ip address 200.7.7.1 255.255.255.252
        

    Формирование маршрута по умолчанию производится по команде:

    R-С(config)#ip route 0.0.0.0 0.0.0.0loopback 1
        

    После чего в таблице маршрутизации появляется запись о создании шлюза последней надежды (Gateway of last resort is 0.0.0.0 to network 0.0.0.0) и маршрута по умолчанию S* 0.0.0.0/0 is directly connected, Loopback1

    R-C#show ip route
    ...
    Gateway of last resort is 0.0.0.0 to network 0.0.0.0
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.17, 01:08:37, Serial0/3/1
       192.168.10.0/24 is variably subnetted, 4 subnets, 4 masks
    C   192.168.10.16/29 is directly connected, GigabitEthernet0/0
    L   192.168.10.17/32 is directly connected, GigabitEthernet0/0
    O   192.168.10.128/26 [110/129] via 200.5.5.17, 01:08:27, Serial0/3/1
    O   192.168.10.192/28 [110/129] via 200.5.5.17, 01:08:27, Serial0/3/1
       00.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    O   200.5.5.12/30 [110/128] via 200.5.5.17, 01:08:37, Serial0/3/1
    C   200.5.5.16/30 is directly connected, Serial0/3/1
    L   200.5.5.18/32 is directly connected, Serial0/3/1
       200.7.7.0/24 is variably subnetted, 2 subnets, 2 masks
    C   200.7.7.0/30 is directly connected, Loopback1
    L   200.7.7.1/32 is directly connected, Loopback1
    S*  0.0.0.0/0 is directly connected, Loopback1
        

    Однако в таблицах маршрутизации других маршрутизаторов (А и В) подобной информации нет. Для распространения информации о маршруте по умолчанию на другие маршрутизаторы используется следующая команда:

    R-C(config)#router ospf 1
    R-C(config-router)#default-information originate
        

    Это дает возможность протоколу OSPF распространить информацию о маршруте по умолчанию на другие маршрутизаторы, что можно видеть, например, по таблице маршрутизации маршрутизатора В, где появилась строка маршрута O*E2 0.0.0.0/0 [110/1] via 200.5.5.18, 00:00:28, Serial0/3/0, помеченная символом O*:

    R-B>show ip route
    ...
    Gateway of last resort is 200.5.5.18 to network 0.0.0.0
    
       10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
    C   10.10.20.160/27 is directly connected, GigabitEthernet0/0
    L   10.10.20.161/32 is directly connected, GigabitEthernet0/0
       192.168.10.0/24 is variably subnetted, 3 subnets, 3 masks
    O   192.168.10.16/29 [110/65] via 200.5.5.18, 01:27:55, Serial0/3/0
    O   192.168.10.128/26 [110/65] via 200.5.5.13, 01:27:55, Serial0/3/1
    O   192.168.10.192/28 [110/65] via 200.5.5.13, 01:27:55, Serial0/3/1
       200.5.5.0/24 is variably subnetted, 4 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/1
    L   200.5.5.14/32 is directly connected, Serial0/3/1
    C   200.5.5.16/30 is directly connected, Serial0/3/0
    L   200.5.5.17/32 is directly connected, Serial0/3/0
    O*E2  0.0.0.0/0 [110/1] via 200.5.5.18, 00:00:28, Serial0/3/0
        

    В таблице маршрутизатора А сформирована аналогичная строка:

    R-A>show ip route
    ...
    Gateway of last resort is 200.5.5.14 to network 0.0.0.0
    
       10.0.0.0/27 is subnetted, 1 subnets
    O   10.10.20.160/27 [110/65] via 200.5.5.14, 01:28:31, Serial0/3/0
       192.168.10.0/24 is variably subnetted, 5 subnets, 4 masks
    O   192.168.10.16/29 [110/129] via 200.5.5.14, 01:28:31, Serial0/3/0
    C   192.168.10.128/26 is directly connected, GigabitEthernet0/0
    L   192.168.10.129/32 is directly connected, GigabitEthernet0/0
    C   192.168.10.192/28 is directly connected, GigabitEthernet0/1
    L   192.168.10.193/32 is directly connected, GigabitEthernet0/1
       200.5.5.0/24 is variably subnetted, 3 subnets, 2 masks
    C   200.5.5.12/30 is directly connected, Serial0/3/0
    L   200.5.5.13/32 is directly connected, Serial0/3/0
    O   200.5.5.16/30 [110/128] via 200.5.5.14, 01:28:31, Serial0/3/0
    O*E2  0.0.0.0/0 [110/1] via 200.5.5.14, 00:01:04, Serial0/3/0
        

    4.3. Особенности конфигурирования протокола OSPF3

    Для работы в сетях IPv6 разработан бесклассовый протокол маршрутизации по состоянию канала OSPF3, большинство параметров которого аналогичны протоколу OSPF2, работающему в сетях IPv4. Оба протокола работают на основе алгоритма SPF. Метрикой обоих протоколов является стоимость ($$cost= 10^8 /Bandwidth$$), где пропускания способность bandwidth задается в бит/c. При обмене маршрутной информацией рассылаются те же типы пакетов, что рассмотрены в разделе 4.1. Рассылка маршрутной информации в OSPF3 производится с использованием группового адреса FF02::5 илиFF02::6 и маршрутизаторов DR и BDR. Кроме того, для рассылки внутри локального канала используются индивидуальные локальные адреса источника и назначения. OSPF3 использует аутентификацию IPv6 по протоколу IPSec.

    В отличие от OSPF2, у которого маршрутизация включается автоматически при конфигурировании протокола, включение маршрутизации OSPF3 производится по специальной команде:

    Router(config)#ipv6 unicast-routing
      

    Особенности конфигурирования OSPF3 рассмотрены на примере сети рис 4.7. Конфигурирование интерфейсов:

    Router(config)#hostname R-A
    R-A(config)#int g0/0
    R-A(config-if)#ipv6 add 2001:DB8:A:1::1/64
    R-A(config-if)#no shutdown
    
    R-A(config-if)#int g0/1
    R-A(config-if)#ipv6 add 2001:DB8:A:2::1/64
    R-A(config-if)#no shutdown
    R-A(config-if)#int s0/3/0
    R-A(config-if)#ipv6 add 2001:DB8:A:5::1/64
    R-A(config-if)#clock rate 64000
    R-A(config-if)#no shutdown
    R-A(config)#ipv6 unicast-routing
      
    (рис 4.7) Сеть с протоколом OSPF3

    Аналогично конфигурируются интерфейсы других маршрутизаторов.

    Проверку сконфигурированных параметров можно произвести по команде:

    R-A#show ipv6 int brief
    GigabitEthernet0/0         [up/up]
        FE80::260:70FF:FEAA:A401
        2001:DB8:A:1::1
    GigabitEthernet0/1         [up/up]
        FE80::260:70FF:FEAA:A402
        2001:DB8:A:2::1
    GigabitEthernet0/2         [administratively down/down]
    Serial0/3/0                [up/up]
        FE80::203:E4FF:FE88:3101
        2001:DB8:A:5::1
    ...
    R-A#
      

    Команда отображает локальные (например, FE80::260:70FF:FEAA:A401) и глобальные адреса (например, 2001:DB8:A:1::1).

    Для работы OSPF3 в сетях IPv6 на маршрутизаторах автоматически или вручную задаются идентификаторы (ID), которые представлены адресами IPv4. Администратор может сконфигурировать идентификаторы следующей последовательностью команд:

    R-A(config)#ipv6 router ospf 1
    R-A(config-rtr)#router-id 1.1.1.1
    
    R-B(config)#ipv6 router ospf 1
    R-B(config-rtr)#router-id 2.2.2.2
    
    R-C(config)#ipv6 router ospf 1
    R-C(config-rtr)#router-id 3.3.3.3
      

    Комплексную проверку проделанной работы реализует команда:

    R-A#show run
    ...
    hostname R-A
    !
    ipv6 unicast-routing
    !
    interface GigabitEthernet0/0
    ipv6 address 2001:DB8:A:1::1/64
    !
    interface GigabitEthernet0/1
    ipv6 address 2001:DB8:A:2::1/64
    ...
    interface Serial0/3/0
    ipv6 address 2001:DB8:A:5::1/64
    clock rate 64000
    !
    ipv6 router ospf 1
    router-id 1.1.1.1
    log-adjacency-changes
    !
    ip classless
    ...
    line con 0
    line aux 0
    line vty 0 4
    login
    end
      

    Из распечатки следует, что на маршрутизаторе А включена маршрутизация (ipv6 unicast-routing), на интерфейсах заданы адреса IPv6, и создан идентификатор (router-id 1.1.1.1).

    При конфигурировании протокола OSPF3 он устанавливается на каждом активном интерфейсе маршрутизатора в отличие от OSPF2, где проводилось описание адресов прямо присоединенных сетей (network) и областей (area). Ниже приведена последовательность команд, которая устанавливает OSPF3 на каждый функционирующий интерфейс

    R-A#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    R-A(config)#int g0/0
    R-A(config-if)#ipv6 ospf 1 area 0
    R-A(config-if)#int g0/1
    R-A(config-if)#ipv6 ospf 1 area 0
    R-A(config-if)#int s0/3/0
    R-A(config-if)#ipv6 ospf 1 area 0
      

    Изменения отображает команда проверки текущей конфигурации:

    R-A#show run
    interface GigabitEthernet0/0
    ipv6 address 2001:DB8:A:1::1/64
    ipv6 ospf 1 area 0
    !
    interface GigabitEthernet0/1
    ipv6 address 2001:DB8:A:2::1/64
    ipv6 ospf 1 area 0
    !
    interface Serial0/3/0
    ipv6 address 2001:DB8:A:5::1/64
    ipv6 ospf 1 area 0
    clock rate 64000
    !
    ipv6 router ospf 1
    router-id 1.1.1.1
    log-adjacency-changes
    !
    Ip classless
    ...
    R-A#
      

    После соответствующего конфигурирования всех маршрутизаторов сети (рис 4.7) протокол OSPF3 создает таблицу соседних устройств, таблицу данных о состоянии каналов и таблицу маршрутизации.

    Таблица маршрутизации А содержит три маршрута к удаленным сетям, путь к которым проходит через выходной интерфейс Serial 0/3/0:

    R-A>show ipv6 route
    IPv6 Routing Table - 10 entries
    ...
    C   2001:DB8:A:1::/64 [0/0]
         via ::, GigabitEthernet0/0
    L   2001:DB8:A:1::1/128 [0/0]
         via ::, GigabitEthernet0/0
    C   2001:DB8:A:2::/64 [0/0]
         via ::, GigabitEthernet0/1
    L   2001:DB8:A:2::1/128 [0/0]
         via ::, GigabitEthernet0/1
    O   2001:DB8:A:3::/64 [110/65]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:4::/64 [110/129]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    C   2001:DB8:A:5::/64 [0/0]
         via ::, Serial0/3/0
    L   2001:DB8:A:5::1/128 [0/0]
         via ::, Serial0/3/0
    O   2001:DB8:A:6::/64 [110/128]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    L   FF00::/8 [0/0]
         via ::, Null0
    R-A>
      

    Когда необходима специфическая информация только о маршрутах, созданных протоколом OSPF3, используют команду:

    R-A>show ipv6 route ospf
    ...
    O   2001:DB8:A:3::/64 [110/65]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:4::/64 [110/129]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    O   2001:DB8:A:6::/64 [110/128]
         via FE80::20C:85FF:FE10:D402, Serial0/3/0
    R-A>
      

    Таблицу соседних устройств можно посмотреть по команде show ipv6 ospf neighbor. Например, таблица соседних устройств маршрутизатора А отображает только одно устройство - маршрутизатор В:

    R-A>show ipv6 ospf neighbor
    
    Neighbor ID  Pri  State    Dead Time  Interface ID  Interface
    2.2.2.2      0    FULL/ -  00:00:36   5             Serial0/3/0
      

    Таблица соседних устройств маршрутизатора В отображает два устройства (А и В) с идентификаторами 1.1.1.1 и 3.3.3.3:

    R-B#show ipv6 ospf neighbor
    
    Neighbor ID  Pri State    Dead Time  Interface ID  Interface
    3.3.3.3      0   FULL/ -  00:00:35   5             Serial0/3/0
    1.1.1.1      0   FULL/ -  00:00:38   4             Serial0/3/1
    R-B#
      

    Краткие итоги

  • Протокол состояния канала Open Shortest Path First - OSPF предназначен для работы в больших гибких составных сетях и может работать с оборудованием разных фирм производителей.
  • Административное расстояние протокола OSPF равно 110. Протокол используется внутри определенной области. Нулевая область (area 0) является главной или единственной.
  • Протокол OSPF формирует три базы данных: базу данных смежности; базу данных о состоянии каналов (LSDB); базу пересылки.
  • На основе баз данных формируются: таблица соседних устройств; таблица топологии сети; таблица маршрутизации.
  • Для обмена маршрутной информацией используется 5 типов пакетов: приветствия Hello, описания базы данных DBD, запроса LSR, обновлений LSU (LSА), подтверждения LSAck.
  • Обмен маршрутной информацией производится с использованием адресов 224.0.0.5 или 224.0.0.6 многоадресного режима, чему соответствует групповой МАС-адрес назначения (01-00-5Е-00-00-05 и 01-00-5Е-00-00-06), а также в одноадресном режиме.
  • Протокол OSPF не проводит периодический обмен объемными обновлениями маршрутной информации, характеризуется быстрой сходимостью. Обмен маршрутной информацией (LSU) производится только при возникновении изменений в топологии сети.
  • Hello-пакеты используются, чтобы обнаруживать соседние устройства, устанавливать и поддерживать с ними отношения смежности.
  • В сетях Ethernet период рассылки Hello-пакетов протокола OSPF составляет 10 секунд. Период простоя - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то OSPF удалит не отвечающего соседа из базы данных LSDB.
  • В сошедшейся сети базы данных маршрутизаторов должны быть идентичными.
  • Каждое устройство, получив обновление LSA, транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.
  • Для формирования путей свободных от маршрутных петель строится топологическое дерево с использованием алгоритма Dijkstra выбора первого кратчайшего пути.
  • В сетях с множественным доступом (Ethernet, Frame Relay) выбирается главный назначенный маршрутизатор (DR) и запасной (BDR), что сокращает объем информации обновлений. Выбор DR и BDR происходит на основе идентификаторов маршрутизаторов.
  • Метрика протокола OSPF (стоимость) базируются на пропускной способности. Алгоритм протокола рассчитывает суммарное значение стоимости всех соединений из маршрутизатора до узла назначения.
  • Протокол OSPF поддерживает маски переменной длины, бесклассовую адресацию на основе префикса, обеспечивает маршрутизацию в топологии с разделенными сетями.
  • При конфигурировании протокола OSPF необходимо задать номер процесса (по умолчанию 1) и адреса непосредственно присоединенных сетей с их шаблонными масками переменной длины (wildcard-mask). При этом для каждой сети указывается номер области (area 0).
  • Интерфейсы маршрутизатора можно перевести в пассивный режим, когда они будут передавать и принимать данные, но не будут рассылать объявления OSPF.
  • Распространение информации о маршруте по умолчанию на другие маршрутизаторы реализует команда default-information originate.
  • В сетях IPv6 при конфигурировании протокола OSPF3 включение маршрутизации производится по команде ipv6 unicast-routingв режиме глобального конфигурирования. Маршрутизатору назначают идентификатор, например 1.1.1.1, по командам:
    R-A(config)#ipv6 router ospf 1
    R-A(config-rtr)#router-id 1.1.1.1
       
  • Включение протокола OSPF3 на интерфейсах производится по команде Router(config-if)#ipv6 ospf 1 area 0.
  • Проверка созданных протоколом OSPF3 маршрутов реализуется командой show ipv6 route.
  • Вопросы

  • Почему протокол OSPF используется внутри определенной области (area)?
  • Какие базы данных формирует протокол OSPF? Какие требования предъявляются к базам данных разных маршрутизаторов области?
  • Какие таблицы строятся на основе баз данных топологии?
  • Какие команды используются для просмотра таблиц протокола OSPF?
  • Какие типы пакетов используется для обмена маршрутной информацией?
  • Какие IP-адреса и MAC-адреса использует протокол OSPFдля обмена маршрутной информацией?
  • Для чего нужны и какую информацию содержат Hello-пакеты OSPF? По какой команде можно посмотреть таблицу соседних устройств?
  • Каков период передачи Hello-пакетов протокола OSPF в сетях Ethernet?
  • Что произойдет, если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета?
  • Какую информацию содержит заголовок Hello-пакета?
  • Какую информацию содержит поле данных Hello-пакета?
  • В каких случаях производится обмен пакетами LSU? Что такое LSA?
  • Какие параметры учитывает метрика протокола OSPF?
  • В каких сетях и для чего выбираются назначенный DR и запасной BDR маршрутизатор?
  • Для чего назначается идентификатор маршрутизатора?
  • Какие команды использует администратор при назначении идентификатора маршрутизатора? По какой команде можно проверить идентификатор?
  • Как формируются и используются виртуальные логические интерфейсы loopback при выборе DR иBDR маршрутизаторов?
  • Каков формат команд конфигурирования протокола OSPF?
  • Какие параметры отображает команда show ip protocols?
  • В чем состоит различие технологий аутентификации OSPF2 и OSPF3?
  • Что используется в качестве идентификаторов протокола OSPF3?
  • Какие команды формируют номер процесса OSPF3 и задают идентификатор?
  • Какая команда используется для просмотра таблиц маршрутизации OSPF3?
  • По какой команде протокол OSPF3 устанавливают на интерфейс?
  • В чем особенность команды show ipv6 route ospf?
  • Упражнения

    В нижеприведенной схеме сети сконфигурируйте динамическую маршрутизацию OSPF3. Проведите проверку и отладку с использованием команд show running-config, show ipv6 int brief, show ipv6 route, show ipv6 route ospf, show ipv6 ospf neighbor, ping, traceroute и tracert.

    Проанализируйте таблицы маршрутизации, таблицы соседних устройств маршрутизаторов. Посчитайте метрики маршрутов, сравните с табличными значениями.

    Вернуться к учебному плану