Сайт о телевидении

Сайт о телевидении

» » Динамическая маршрутизация. Настройка статической маршрутизации

Динамическая маршрутизация. Настройка статической маршрутизации

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

Определение

Статический способ — это управляемый сетевым администратором метод сетевой маршрутизации, который заключается в ручной настройке и выборе сетевого маршрута. Используется в сценариях, где сетевые параметры и среда должны оставаться постоянными.

Маршрутизация является одной из наиболее важных процедур передачи данных. Это гарантирует, что данные перемещаются из одной сети в другую с оптимальной скоростью и минимальной задержкой, и что ее целостность сохраняется в этом процессе.

В широком смысле маршрутизация выполняется двумя разными способами:

  • Динамическая — периодически обновляет свою таблицу маршрутизации путями и их стоимостью/метрикой, принимая оптимальные решения на основе изменения сетевых рабочих условий.
  • Статическая — считается простейшей формой этого процесса, выполняет правила маршрутизации с предварительно настроенными путями передачи данных в таблице, которые могут быть изменены вручную только администраторами.

Статические маршруты обычно используются в тех ситуациях, когда выбор ограничен или существует только один доступный по умолчанию путь. Кроме того, статическая методика может использоваться, если есть лишь несколько устройств для настройки маршрута, и в будущем не возникнет необходимость его менять.

Разновидности маршрутизации

Устройство может использовать три пути для изучения маршрутов:

    Статическая маршрутизация — это метод, с помощью которого администратор вручную добавляет пути передачи информации в электронную таблицу/базу данных.

    Маршрутизация по умолчанию — это методика, где все маршрутизаторы настроены на отправку всех пакетов по одному пути. Это очень полезный метод для небольших сетей или для сетей с единой точкой входа и выхода. Он обычно используется в дополнение к статическому и динамическому способам.

    Динамическая методика — это способ, при котором протоколы и алгоритмы используются для автоматического распространения информации о маршрутизации. Это наиболее распространенный и самый сложный метод.

Классификация протоколов

Протоколы маршрутизации классифицируются как протоколы внутренних шлюзов (IGP) или внешние шлюзовые протоколы (EGP). IGP используются для обмена информацией о процессе в межсетевых сетях, которые попадают под единый административный домен (также называемый автономными системами). EGP используются для обмена информацией между различными автономными системами. Обычными примерами IGP являются протокол маршрутизации (RIP), расширенный протокол внутренних шлюзов (EIGRP) и Open Shortest Path First (OSPF).

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

В большинстве (IP) используются следующие протоколы маршрутизации:

    Протокол маршрутизации (RIP) и протокол маршрутизации внутренних шлюзов (IGRP): обеспечивают процесс для внутренних шлюзов через протоколы маршрутных или дистанционных векторов. RIP используется для определения кратчайшего пути от источника к месту назначения. Это позволяет передавать данные на высокой скорости в кратчайшие сроки.

    Open Shortest Path First (OSPF): обеспечивает процесс для внутренних шлюзов через протоколы маршрутизации состояния канала.

  • Протокол пограничного шлюза (BGP) v4: предоставляет общедоступный протокол маршрутизации через внешнее взаимодействие со шлюзом.

Как настроить статическую маршрутизацию Cisco

Чтобы настроить статический маршрут, устройство должно находиться в режиме глобальной конфигурации.

Код для командной строки: ip route prefix mask{адрес|интерфейс}[расстояние]. Разъясним основные составляющие кода:

    сеть — целевая сеть;

    mask — маска подсети для этой сети;

    адрес — IP-адрес маршрутизатора следующего перехода;

    интерфейс — интерфейс оборудования исходящего трафика;

    расстояние — административное расстояние маршрута.

Административное расстояние используется для применения своего рода приоритизации на статических маршрутах, так что разные пути к данному месту назначения будут следовать определенной схеме активации. Административное расстояние представляет собой целое число от 0 до 255, где 0 указывает путь первого приоритета, а 255 означает, что трафик не может проходить через этот маршрут. По умолчанию административное расстояние непосредственно подключенных интерфейсов равно 0, а для статических маршрутов 1.

Пример статической маршрутизации:

ip route 10.0.0.0 255.0.0.0 131.108.3.4 110, где 10.0.0.0 — целевая сеть, 255.0.0.0 — маска подсети, а 131.108.3.4 — следующий скачок для используемого маршрутизатора, 110 — административная дистанция.

Пример создания статического маршрута

В качестве примера того, когда требуется статический маршрут, рассмотрим следующий случай:

    Ваш основной доступ в интернет осуществляется через кабельный модем для интернет-провайдера.

    У вас есть маршрутизатор ISDN в вашей домашней сети для подключения к компании, в которой вы работаете. Адрес этого устройства в вашей локальной сети 192.168.1.100.

    Сетевой адрес вашей компании 134.177.0.0.

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

    Путь передачи данных по умолчанию был создан с вашим провайдером в качестве шлюза, а второй статический маршрут создается в локальной сети для всех адресов 192.168.1.x. В этой конфигурации при попытке доступа к устройству в сети 134.177.0.0 маршрутизатор перенаправляет запрос поставщику услуг интернета.

    В этом случае необходимо определить статический маршрут, указав прибору, что 134.177.0.0 должен быть доступен через маршрутизатор ISDN по адресу 192.168.1.100.

    Статические и динамические маршрутизаторы

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

    Статическая маршрутизация

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

    Хорошим примером статического устройства является многосетевой компьютер под управлением Windows 2000 (компьютер с несколькими сетевыми интерфейсами). Создание статической маршрутизации в Windows 2000 так же просто, как установка нескольких карт сетевого интерфейса, настройка TCP/IP и включение IP-маршрутизации.

    Динамическая маршрутизация

    Прибор с динамически настроенными таблицами известен как динамический. Динамическая маршрутизация состоит из таблиц, которые создаются и поддерживаются автоматически через постоянную связь между устройствами. Это сообщение облегчается протоколом маршрутизации, серией периодических или по требованию сообщений, содержащих информацию, которой обмениваются маршрутизаторы. Динамические устройства, за исключением их первоначальной конфигурации, требуют незначительного постоянного обслуживания и могут масштабироваться до более крупных межсетевых сетей.

    Динамическая маршрутизация является отказоустойчивой. Динамические пути передачи данных, полученные от других устройств, имеют ограниченный срок службы.
    Возможность масштабирования и восстановления от межсетевых ошибок делает этот способ лучшим выбором для средних и больших межсетевых сетей.

    Динамическая методика — это обеспечивающий оптимальную маршрутизацию данных. В отличие от статической, динамическая позволяет маршрутизаторам выбирать пути в соответствии с изменениями логической сети в режиме реального времени. В динамическом процессе протокол, работающий на устройстве, отвечает за создание, обслуживание и обновление электронной таблицы данных. В статической маршрутизации все эти задания выполняются администратором системы вручную.

    Динамическая методика использует множество различных алгоритмов и протоколов. Наиболее популярными являются протокол маршрутизации (RIP) и Open Shortest Path First (OSPF).

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

    Операции протокола динамической маршрутизации можно объяснить следующим образом:

    • Маршрутизатор предоставляет и получает сообщения на интерфейсах устройства.

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

    Маршрутизаторы меняют информацию о маршрутизации для обнаружения данных об удаленных сетях. Всякий раз, когда устройство находит изменение в топологии, протокол маршрутизации вносит изменение топологии на других приборах.

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

    Сравнительный анализ

    Статическая маршрутизация cisco не является протоколом маршрутизации. Это просто процесс ручного ввода маршрутов в электронную таблицу данных устройства через файл конфигурации, который загружается при запуске устройства. В качестве альтернативы эти пути передачи данных могут быть введены администратором сети, который настраивает их вручную. Поскольку эти настроенные вручную маршруты не изменяются после их настройки, они называются статическими.

    Статическая методика — это простейшая форма маршрутизации, но это кропотливый ручной процесс. Используйте данный метод, когда у вас очень мало устройств для настройки (менее 5), и вы уверены, что пути передачи информации, вероятно, никогда не изменятся.

    Статическая маршрутизация cisco packet tracer также не обрабатывает случайные сбои во внешних сетях, потому что любой маршрут, который настроен вручную, должен быть обновлен или перенастроен вручную, чтобы исправить или восстановить потерянные соединения.

    Протоколы динамической маршрутизации поддерживаются программными приложениями, запущенными на принимающем/передающем устройстве (маршрутизаторе).

    Устройство, использующее динамическую методику, распознает маршруты для всех сетей, которые напрямую к нему подключены. Затем маршрутизатор изучает данные других приборов, которые выполняют один и тот же протокол (RIP, RIP2, EIGRP, OSPF, IS-IS, BGP). Затем каждый маршрутизатор сортирует список маршрутов и выбирает один или несколько оптимальных путей для каждого сетевого адресата.

    Затем протоколы динамической маршрутизации распространяют полученные данные на другие устройства, работающие с одним протоколом, тем самым расширяя информацию о том, какие сети существуют и могут быть достигнуты. Это дает динамическим протоколам возможность адаптироваться к изменениям логической топологии сети или сбоям роутера статической маршрутизации.

    Плюсы и минусы

    Статическая маршрутизация имеет следующие преимущества:

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

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

      Дополнительная безопасность обуславливается путем ручного ввода или отклонения путей передачи информации в определенные сети.

      Настройка статической маршрутизации более безопасна.

      Для использования статических маршрутов нет накладных расходов. С динамическими пропускная способность сети используется для связи доступных сетей между маршрутизаторами. При использовании статических маршрутов, поскольку сетевой администратор кодирует данные, устройствам не нужно передавать информацию о маршрутизации.

      Статическую маршрутизацию проще настроить для небольшой сети. Предположим, что у вас есть только два устройства и необходимо настроить сообщение между ними. Для этого потребуется настроить только два оператора маршрута — по одному на каждом маршрутизаторе. С динамическим протоколом, таким как RIP, например, пришлось бы вводить два сетевых оператора на каждом приборе.

      Статические маршруты не требуют каких-либо существенных ресурсов маршрутизатора. Протокол динамической маршрутизации, такой как OSPF, может потребовать значительных ресурсов для расчета кратчайшего пути по сети при наличии большого количества подключенных устройств.

    К недостаткам относятся следующие:

      Сетевые администраторы должны хорошо знать всю чтобы правильно настроить пути передачи данных.

      Изменения топологии требуют ручной настройки статической маршрутизации cisco packet tracer для всех устройств, что очень трудоемко.

      Статические маршруты не масштабируются по мере роста сети. Это связано с тем, что все они настраиваются администратором вручную.

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

    В чем разница между статической и динамической маршрутизацией?

    Статическая IP-маршрутизация — это когда вы статически настраиваете устройство для отправки трафика для определенных пунктов назначения в предварительно сконфигурированных направлениях. Динамический способ — это когда вы используете протокол маршрутизации, такой как OSPF, ISIS, EIGRP и или BGP, чтобы выяснить, какой тип трафика должен пройти. В реальном мире очень мало ситуаций, когда используется только один из двух методов. Типичная сеть будет использовать динамический протокол OSPF для определения оптимальных маршрутов внутри предприятия, BGP — для определения лучших точек выхода для остальной части интернета и статическую маршрутизацию для отправки специфического трафика по выделенным путям.

    IP-адресация и маршрутизация: как это работает?

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

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

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

    Маршрутизация по умолчанию используется только в сетях-заглушках. Stub — это сети, которые имеют только один интерфейс вывода, и все, проходящее через эти сети, должно пересекать единую точку выхода.

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

    Использование административных расстояний

    По умолчанию для статических маршрутов административное расстояние составляет 1. AD используются для определения приоритетов. Для разных маршрутов в конкретной целевой сети могут быть назначены разные веса, так что один из путей передачи данных используется в приоритете. Маршруты с одинаковой весовой нагрузкой разделяют трафик.

Описание из Вики: OSPF(англ. Open Shortest Path First) - протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.

Для чего нужен OSPF и как применять его на сетях, построенных на Mikrotik RouterOS, мы и рассмотрим в этой статье.

Описание работы протокола OSPF

Все, кто работал с сетями, имеющими более одной подсети (провайдеры, компании с филиалами, несколько vlan и т.д.) знают о необходимости существования маршрутов из одной сети в другую. Иначе пакеты в соединении будут просто улетать на шлюз по умолчанию и дропаться где-то в интернете.

Для тех же, кто с этим не знаком, поясню. Представьте, что мы внезапно захотели попасть из Челябинска в Киев, не имя при этом ни карты, ни навигатора. Поедем по указателям — не зря же их ставили.

Таким образом посмотрев на 10-20-100 укзателей мы рано или поздно доберемся до Киева — пакет от отправителя ушел к адресату. Сделали там все свои дела и захотели обратно домой в Челябинск — приложение обработало пакет и отправило ответ инициатору соединения. Но дорогу то мы не помним (в пакете нет никаких данных о прохождении пути. На самом деле есть намеки на это, но с помощью них нельзя восстановить путь пакета). Не беда — поедем по указателям.

Так же как и в первый раз мы каким-то образом вернемся в точку, из которой выехали. Причем, очень важно то, что вернуться мы можем по другим дорогам — на каких то начали укладывать асфальт за время нашего пребывания в Киеве и поставили знаки объезда, где-то просто затор и мы решили объехать по менее нагруженным трассам. Но мы все равно доберемся до места, пусть и затратив большее время.

Итак, мы, инкапсулированные в автомобиль — это данные, инкапсулированные в IP-пакет. Перекрестки на дороге — маршрутизаторы, подключенные к разным сетям (дорогам). А указатели на перекрестках — таблицы маршрутизации отдельных маршрутизаторов, знающие куда повернуть, чтобы попасть в ту или иную точку. И если в одну сторону мы доедем по указателям, а в другую указателей не будет, то пиши пропало — до исходной точки не доберемся. Значит, маршруты до общающихся сетей должны быть прописаны на обеих сторонах. И очень важно понимать, что дорог-маршрутов может быть несколько. И если один перекресток-маршрутизатор в ремонте, то предыдущий может послать нас в объезд, но сначала он должен узнать, что его сосед сломался. И если мы ездим по разным дорогам, значит и время пинга у нас будет разное.

Итак, с маршрутами разобрались. Теперь поговорим о дорожниках, ставящих указатели.

Статические указатели на дорогах — хорошо. Но расстояние между Челябинском и Киевом 2400 км. А значит и указателей должно быть не меньше 24 — по одному на каждые 100 км. И если на одном из перекрестков идет ремонт, необходимо внести изменения на два смежных указателя. А вероятность одновременного ремонта на 24 перекрестах весьма высока. То есть нужна отдельная бригада дорожников, меняющих указатели.

Было бы неплохо соединить все указатели в сеть и позволить им самим оценивать ситуацию на своих участках и передевать эти данные между собой. К сожалению великие и ужасные службы обслуживания дорог об этом ещё не додумались, да и вряд ли это надо — деньги то пилить не получится. А вот айтишники придумали технологии, позволяющие динамически изменять таблицы маршрутизации и обмениваться этой информацией. Эти технологии называются Протоколы Динамической Маршрутизации. И один из них — OSPF, предназначенный для обмена информацией внутри одной автономной системы — AS.

Настрока протокола OSPF на оборудовании Mikrotik

Термины и работа OSPF хорошо описаны в вики микротика. Но я осмелюсь кое-что повторить и перефразировать.
Допустим, есть следующая сеть:

Как видим, к сети 172.16.1.0 можно попасть двумя путями: через R2 и через связку R3+R4. Cost’ы, написанные возле каждого линка задают стоимость линка, своеобразный аналог параметра distance в ip-route. Чем ниже значение cost’а, тем выше вероятность того, что трафик пойдет по этому пути. Но как видно на следующем рисунке суммарная стоимость обоих маршрутов к сети 172.16.1.0 составляет 20. Так по какому же пути пойдет трафик?

В таком случае в таблице маршрутизации увидим примерно такую картину — к одной сети имеем два шлюза. И трафик должен пойти через оба шлюза. В этом случае мы можем управлять тем, куда пойдет трафик. Называется эта технология Policy Based Routing, но тема управления трафиком — это совсем другая история.

Сделать, чтобы OSPF “заработал” в Mikrotik RouterOS очень просто — нужно лишь добавить в backbone на каждом роутере в Routing — OSPF — Networks все ваши сети, между которыми вы хотите динамическую маршрутизацию и “оно заработает”.

Но мы ведь хотим управлять процессом. Тот, кто не хочет управлять дальше может не читать. Остальным — добро пожаловать!

Пример организации протокола OSPF

Рассматривать будем сеть, типичную для организации с несколькими филиалами. Имеем центральный офис (Headquarter на схеме, для краткости будем звать его ЦО) с сетью 192.168.0.0/24 (что я, кстати, не рекомендую при дефолтных настройках OSPF. Почему — скажу ниже). В ЦО расположены все основные элементы инфраструктуры — контроллер домена, сервер удаленного доступа, почтовый сервер и т.д. Все филиалы должны иметь доступ ко всем этим сервисам.

Несколько филиалов (Branche на схеме, для краткости — СП — Структурное Подразделение) с адресами 192.168.X.0/24. Между ЦО и каждым СП шифрованный туннель SSTP (или любой другой VPN) — адреса в туннелях из подсети 192.168.255.0/24 (192.168.255.10 — ЦО, 192.168.255.1 — СП1, 192.168.255.2 — СП2, …). Между филиалами связь не нужна, т.к. все службы в ЦО. Когда филиалов 3, нам легко добавить 3 маршрута на роутер в ЦО и по одному на каждый из роутеров СП. Итого 6 движений мышкой. А что если СП у нас не 3, а 33 и необходимы маршруты от каждого каждому, а ещё есть подрядчики с доступом к нескольким СП? Тут и приходит на помощь OSPF.

Кому надо “быстро и все равно как оно работает”, могут пойти по схеме, предложенной выше — добавить в backbone все свои сети.

Добавление сетей в Backbone

Почему именно backbone? Backbone в переводе с английского — хребет, позвоночник. OSPF оперирует понятиями Area (область), Autonomous System (AS, автономная система). AS — все сети, которые принадлежат вам и между которыми может работать ваш протокол динамической маршрутизации. Area — часть этой сети. На картинке ниже показана одна AS с тремя Area, одна из которых — backbone (Area 0 с ID 0.0.0.0). Каждая Area имеет свой ID, похожий на IP адрес. Backbone всегда имеет ID 0.0.0.0. Все области в OSPF должны иметь линк с backbone. Иначе ничего работать не будет.

В нашем примере мы решили долго не думать и загнать все в backbone. По большому счету это ничем не грозит и работать будет. Но если провайдер отдает одному из ваших филиалов частный адрес из 192.168.0.0/16 (192.168.18.27/29, например), то в вашей таблице маршрутизации появится сеть провайдера. И если кто-то с другой стороны провайдера использует такие же настройки (или просто указал маршрут к вашим сетям), то он сможет беспрепятственно попасть в вашу сеть. А уж случайно это сделали или намеренно — узнаете когда данные из вашей БД всплывут в интернете.

Или указать, что интерфейс, смотрящий к провайдеру будет в пассивном режиме.

Настройка OSPF в ручном режиме

Теперь поговорим о том, как сделать “правильно” — не вещать свои сети куда попало и позволить грамотно траблшутить работу OSPF.
Как мы говорили выше, каждая область имеет свой ID. Также и каждый участник OSPF имеет свой ID. По умолчаню он выставляется автоматически и выбирается из IP адресов, присвоенных интерфейсам роутера. Но нам надо проставить его в ручную, чтобы была какая-то логика в именовании и мы всегда знали откуда пришел запрос. Ставится это в Routing — OSPF — Instances — Router ID.

В нашей схеме имеется несколько областей. Как мы выяснили, основная область, соединяющая все остальные — backbone. Именно в этой области летают пакеты от одного роутера к другому, позволяющие обмениваться маршрутной информацией. Значит, этой областью должны быть туннели, соединяющие СП и ЦО, что видно на рисунке ниже.

Таким образом, нам необходимо выделить на каждом маршрутизаторе по две зоны — backbone и свою локальную сеть. На примере ЦО:
routing ospf area add name=Area0 area-id=192.168.0.0
routing ospf network add area=Area0 network=192.168.0.0/24
routing ospf network add area=backbone network=192.168.255.0/24

И точно так же на остальных маршрутизаторах, только заменив Area-ID, Area name и network на свои.

Теперь на каждом маршрутизаторе можем увидеть маршруты ко всем остальным сетям с буквами D и o в описании, что означает, что эти маршруты D — динамические (прилетели в резудльтате работы протоколов динамической маршрутизации) и o — из протокола OSPF.

Так мы получили простую и надежную настройку протокола динамической маршрутизации. У OSPF ещё имеется куча дополнительных настроек, таких как приоритет роутера, стоимость интерфейса, время определения состояний и многое, многое другое. Это позволяет очень гибко настроить маршрутизацию под свои нужды.







Динамическая маршрутизация. Первое знакомство.


Для понимания предмета разговора сначала стоит почитать тут поблизости статьи про маршрутизаторы и маршрутизацию, а то рискуете не въехать.
Допустим, у нас есть такая вот несложная сетка:

Два маршрутизатора и пять сетей


По умолчанию при данной топологии сети, "левый" маршрутизатор будет иметь в своей таблице маршрутизации записи только для трех непосредственно подключенных к нему сетей: 192.168.1.0/24 , 172.20.0.0/16 и 192.168.100.0/30 . Аналогично "правый" маршрутизатор будет знать только о сетях: 192.168.2.0/24 , 10.0.0.0/8 и 192.168.100.0/30 . И если мы попробуем из сети 172.20.0.0/16 обратится к сети 192.168.2.0/24, то ответа мы с вами не дождемся. Понятное дело, мы можем накидать роутерам статических маршрутов или же стандартных маршрутов (aka маршрутов по умолчанию).
Вроде бы отличный выход, да? Но что будет, если перед нами стоит вот такая сетевая топология:


Более сложная сетевая топология


Если в предыдущим примере можно было одной строчкой добавить маршруты по умолчанию, или же добавить двумя командами два статических маршрута, выполнить это на каждом устройстве и все бы работало, то тут дело обстоит посложнее. Маршруты по умолчанию здесь мало применимы, а если решать проблему маршрутизации при помощи статических маршрутов, то на каждом из устройств понадобиться прописывать уже по шесть статических маршрутов, что не так уж и мало.

А что если у нас будет сеть из нескольких десятков маршрутизаторов, имеющих по десятку сетей каждый? Прописывать кучу статических маршрутов? Конечно же нет. Вот тут как раз необходимо применять протоколы динамической маршрутизации.

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

Кроме того что протоколы динамической маршрутизации освобождают сетевых инженеров от необходимости вручную забивать сотни статических маршрутов, протоколы динамической маршрутизации так же позволяют повысить отказоустойчивость сети за счет наличия резервных маршрутов. Например, если у нас есть сеть, как на рисунке выше. И мы не поленились и добавили по 6 статических маршрутов на каждом из устройств, то все будет работать. Но до первой аварии, если какой либо из линков между маршрутизаторами пропадет, то мы сразу заметим неисправности в работе сети. При использовании динамической маршрутизации такой проблемы не возникнет. При аварии, будут использованы резервные маршруты.

Теперь немного теории. Все протоколы динамической маршрутизации можно разделить на протоколы маршрутизации внешнего (Interior Gateway Protocol , IGP ) и внутреннего шлюза (Exterior Gateway Protocol , EGP ). Протоколы внутреннего шлюза предназначены для маршрутизации внутри автономных систем, протоколы внешнего для осуществления маршрутизации между автономными системами. В данном случае под автономной системой понимается некоторая крупная сеть, по единым управлением. Например, сеть крупного предприятия.


Применение IGP и EGP


Представителями семейства протоколов IGP являются протоколы: RIP-1 , RIP-2 , IGRP , OSPF , EIGRP . К EGP относится один протокол - BGP .

При использовании протоколов динамической маршрутизации, все маршруты помещаемые в таблицу маршрутизации снабжаются дополнительной информацией, называемой метрикой. Метрика позволяет маршрутизаторам высчитывать кратчайший маршрут до требуемой сети. В соответствии с тем как рассчитывается метрика все протоколы динамической маршрутизации можно разделить на дистанционно векторные (Distance vector ), протоколы c учетом состояния каналов (Link-state ) и гибридные.

В дистанционно-векторных проколах маршрутизации в качестве метрики используется количество промежуточных узлов. Чем меньше промежуточных узлов, тем более предпочтительным будет маршрут.


Некоторая сетевая топология


Пусть у нас есть вот такая сетевая топология. Из сети 1 в сеть 2 можно попасть по двум различным маршрутам, красному и зеленому. В случае использования дистанционно-векторного протокола маршрутизации более предпочтительным будет являться маршрут выделенный зеленым цветом, так как он содержит меньшее число промежуточных узлов на пути к сети назначения. Классическими примерами дистанционно векторных протоколов маршрутизации являются протоколы RIP-1 и RIP-2 .

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

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

Маршрутизаторы, зная информацию о пути к некоторым сетям, обмениваются этой информацией с другими устройствами. После таких обновлений все маршрутизаторы будут иметь согласованную информацию о маршрутах к доступным сетям. Процесс обмена обновлениями реализуют протоколы маршрутизации. Таким образом, протоколы маршрутизации разделяют сетевую информацию между маршрутизаторами .

При изменениях в топологии требуется некоторое время (время сходимости или конвергенции ) для согласования информации в таблицах маршрутизации всех маршрутизаторов сети. Время сходимости является важным фактором при выборе протокола маршрутизации.

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

Совокупность сетей, представленных маршрутизаторами под общим административным управлением, образует автономную систему ( рис. 3.1). Примерами автономных систем являются сети отдельных провайдеров ISP . Автономные системы нумеруются (AS1, AS2, …AS107, …) и в некоторых протоколах ( IGRP , EIGRP ) эти номера используются при конфигурировании.


Рис. 3.1.

В настоящем курсе рассматривается маршрутизация только внутри автономной системы, где работают протоколы внутренней маршрутизации (Interior Gateway Protocols - IGP ), к которым относятся RIP , RIPv2, EIGRP , OSPF , IS-IS . Маршрутизацию между автономными системами производят протоколы внешней маршрутизации ( Exterior Gateway Protocols - EGP ). Примером протокола внешней маршрутизации является протокол BGP , который работает на пограничных маршрутизаторах автономных систем ( рис. 3.1).

Совокупность протоколов маршрутизации приведена в табл. 3.1 , из которой следует, что протоколы динамической маршрутизации, работающие внутри автономных систем, в свою очередь , подразделяются на протоколы вектора расстояния (distance-vector) и протоколы состояния канала (link-state) .

Протоколы вектора расстояния определяют расстояние и направление, т.е. вектор соединения в составной сети на пути к адресату. При использовании протокола вектора расстояния маршрутизаторы посылают всю или часть таблицы маршрутизации соседним (смежным) маршрутизаторам. В таких протоколах как RIP и RIP-2 расстояние выражается в количестве переходов (hop count) в соединении на пути от узла источника к адресату назначения. Обмен обновлениями ( update ) или модификациями происходит периодически , даже если в сети нет никаких изменений, на что тратится значительная часть полосы пропускания. Получив обновление маршрутной информации, маршрутизатор может заново вычислить все известные пути и модернизировать таблицу маршрутизации.

Протоколы состояния канала создают полную картину топологии сети и вычисляют кратчайшие пути ко всем сетям назначения. Если путей с одинаковой метрикой несколько, то выбирается первый из вычисленных. Рассылка обновлений маршрутной информации производится только при изменениях топологии сети . Протоколы состояния канала (или соединения) быстрее реагируют на изменения в сети по сравнению с протоколами вектора расстояния, но при этом требуют больших вычислительных ресурсов.

Когда инкапсулированный в кадр пакет прибывает на входной интерфейс , маршрутизатор декапсулирует его, затем использует таблицу маршрутизации, чтобы определить, по какому маршруту направить пакет, т.е. на какой свой выходной интерфейс передать поступивший пакет . Выходной интерфейс связан с наиболее рациональным маршрутом к адресату назначения. Этот процесс называется коммутацией или продвижением пакета. На выходном интерфейсе пакет инкапсулируется в новый кадр , при этом маршрутизатор добавляет информацию для формирования кадра (см. материалы "Принципы и средства межсетевого взаимодействия").

Маршрутизаторы способны одновременно поддерживать несколько независимых протоколов с разными административными расстояниями (AD) , которые показывают степень достоверности источника маршрута. Чем меньше AD , тем выше достоверность (см. табл. 1.1). В таблицу маршрутизации устанавливаются маршруты, созданные протоколами с наименьшим административным расстоянием.

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

Перечисленные протоколы используют разные параметры метрики.

Различные протоколы маршрутизации используют разные алгоритмы при выборе маршрута, т.е. выходного интерфейса и (или) адреса следующего перехода, на который должен быть передан пакет. Алгоритм и метрика определяются целым рядом решаемых задач, таких как простота, устойчивость , гибкость, быстрая сходимость или конвергенция . Сходимость - это процесс согласования между маршрутизаторами сети информации о доступных маршрутах. При изменениях состояния сети необходимо, чтобы обмен модификациями восстановил согласованную сетевую информацию.

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

(Load)
Полоса пропускания (Bandwidth) - способность соединения передавать данные с некоторой скоростью. Например, соединения сети FastEthernet передающие данные со скоростью 100 Мбит/c, предпочтительней каналов Е1 со скоростью 2,048 Мбит/c.
Задержка (Delay) - это длительность времени прохождения пакета от источника до адресата назначения. Задержка зависит от количества промежуточных соединений и их типов, объема буферных устройств маршрутизаторов, сходимости сети и расстояния между узлами.
- определяется количеством информации, загружающей сетевые ресурсы (маршрутизаторы и каналы). Чем больше загрузка, тем больше очереди на обслуживание, тем дольше пакет будет в пути.
Надежность (Reliability) - определяется интенсивностью ошибок на каждом сетевом соединении.
Количество переходов (Hop count) - это количество маршрутизаторов, через которые пакет должен пройти на пути к адресату назначения (число переходов от маршрутизатора к маршрутизатору).
Стоимость (Cost) - обобщенный параметр затрат на передачу пакета к адресату назначения. Иногда стоимость имеет произвольное значение, назначенное администратором.

Наиболее известным в сети Internet протоколом вектора расстояния (distance-vector) является Routing Information Protocol (RIP) , который использует в качестве метрики число переходов ( hop count ) на пути к адресату назначения.

Другим простым протоколом вектора расстояния является Interior Gateway Routing Protocol (IGRP ), который был разработан в корпорации Cisco. Для работы в больших сетях на смену ему пришел протокол Enhanced IGRP (EIGRP) , который включает много особенностей протоколов как типа link-state, так и distance-vector. Поэтому он, по сути, является гибридным протоколом. Однако разработчики фирмы Cisco относят его к протоколам distance-vector.

Протоколы вектора расстояния (RIP, IGRP) периодически рассылают обновления маршрутной информации. У протокола RIP этот период равен 30 сек. При этом обновляются таблицы маршрутизации, которые хранят всю информацию о маршрутах в сети. При изменении в сети маршрутизатор , обнаруживший такое изменение, сразу начинает обмен маршрутной информацией с соседними маршрутизаторами. Этот обмен идет последовательно от маршрутизатора к маршрутизатору с некоторой задержкой, определяемой временем модификации таблиц в каждом маршрутизаторе, а также специальным таймером. Поэтому сходимость (конвергенция) сети, когда все маршрутизаторы будут иметь согласованную информацию о сетевых соединениях, происходит медленно , что является недостатком протоколов вектора расстояния.

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

Протокол вектора расстояния RIP использует счетчик переходов ( hop count ) в качестве метрики, чтобы определить расстояние до определенного соединения в составной сети. Если существует несколько путей, то RIP выберет путь с наименьшим числом маршрутизаторов или переходов к адресату назначения. Однако выбранный маршрут не всегда является лучшим путем к адресату, поскольку выбранный маршрут с наименьшим числом устройств может характеризоваться меньшей скоростью передачи (более узкой полосой пропускания, меньшей пропускной способностью) по сравнению с альтернативными маршрутами, созданными другими протоколами. Кроме того, RIP не может направлять пакеты далее 15 переходов, поэтому он рекомендован для работы в малых и средних сетях. Рассылка обновлений протоколом первой версии RIPv1 производится в широковещательном режиме ( адрес 255.255.255.255 ).

Протокол первой версии RIPv1 требует, чтобы все устройства в подсети использовали одинаковую маску подсети, т.к. RIP не включает информацию о маске подсети в обновления маршрутизации. Такой метод получил название маршрутизации на основе классов (classful routing) , что ограничивает применение протокола RIPv1 в современных сетях.

Протокол вектора расстояния второй версии RIPVersion 2 (RIPv2 ) обеспечивает бесклассовую маршрутизацию CIDR (Classless Interdomain Routing ), поскольку в обновления маршрутизации включена информация о маске подсети (о префиксе). При этом внутри одной сети могут существовать подсети с масками переменной длины (Variable-Length Subnet Mask - VLSM ). В обновления также включена адресная информация о шлюзах по умолчанию. Рассылка обновлений протоколом версии RIPv2 производится в многоадресном режиме (

Сеть “Лифт ми Ап” вместе со своим штатом разрастается вдоль и поперёк. Обслуживание ИТ-инфраструктуры вынесли в отдельную специально созданную организацию “Линк ми Ап”.
Буквально на днях были куплены ещё четыре филиала в различных городах и инвесторы открыли для себя новые измерения движения лифтов. А сеть выросла с четырёх маршрутизаторов сразу до десяти. При этом количество подсетей теперь увеличилось с 9 до 20, не считая линков точка-точка между маршрутизаторами. И тут во весь рост встаёт вопрос управления всем этим хозяйством. Согласитесь, добавлять на каждом из узлов маршруты во все сети вручную - мало удовольствия.
Ситуация усложняется тем, что сеть в Калининграде уже имеет свою адресацию, и на ней запущен протокол динамической маршрутизации EIGRP.
Итак, сегодня:

  • Разбираемся с теорией протоколов динамической маршрутизации.
  • Внедряем в сеть “Лифт ми Ап” протокол OSPF
  • Настраиваем передачу (редистрибуцию) маршрутов между OSPF и EIGRP
  • В этом выпуске мы добавляем раздел “Задачи”. Идентифицировать по ходу статьи их будут такие пиктограммы:
Уровень сложности будет разный. Ко всем задачам будут ответы, которые можно посмотреть на . В некоторых из них вам понадобится подумать, в других почитать документацию, в третьих разобраться в топологии и, может, даже смотреть отладочную информацию. Если задача нереализуема в РТ, мы сделаем специальную пометку об этом.

Теория протоколов динамической маршрутизации

Для начала разберемся с понятием “динамическая маршрутизация”. До сего момента мы использовали так называемую статическую маршрутизацию, то есть прописывали руками таблицу маршрутизации на каждом роутере. Использование протоколов маршрутизации позволяет нам избежать этого нудного однообразного процесса и ошибок, связанных с человеческим фактором. Как понятно из названия, эти протоколы призваны строить таблицы маршрутизации сами, автоматически , исходя из текущей конфигурации сети. В общем, вещь нужная, особенно когда ваша сеть это не 3 роутера, а 30, например.
Помимо удобства есть и другие аспекты. Например, отказоустойчивость . Имея сеть со статической маршрутизацией, вам крайне сложно будет организовать резервные каналы - некому отслеживать доступность того или иного сегмента.

Например, если в такой сети разорвать линк между R2 и R3, то пакеты с R1 будут уходить по прежнему на R2, где будут уничтожены, потому что их некуда отправить.

Протоколы динамической маршрутизации в течение нескольких секунд (а то и миллисекунд) узнают о проблемах на сети и перестраивают свои таблицы маршрутизации, и в вышеописанном случае пакеты будут отправляться уже по актуальному маршруту

Ещё один важный момент - балансировка трафика . Протоколы динамической маршрутизации практически из коробки поддерживают эту фичу и вам не нужно добавлять избыточные маршруты вручную, высчитывая их.

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

Все протоколы маршрутизации можно разделить на две большие группы: внешние (EGP - Exterior Gateway Protocol) и внутренние (IGP - Interior Gateway Protocol). Чтобы объяснить различия между ними, нам потребуется термин “автономная система”. В общем смысле, автономной системой (доменом маршрутизации) называется группа роутеров, находящихся под общим управлением.
В случае нашей обновлённой сети AS будет такой:

Так вот, протоколы внутренней маршрутизации используются внутри автономной системы, а внешние - для соединения автономных систем между собой. В свою очередь, внутренние протоколы маршрутизации подразделяются на Distance-Vector (RIP, EIGRP) и Link State (OSPF, IS-IS). В этой статье мы не будем пинать трупы затрагивать протоколы RIP и IGRP в силу их почтенного возраста, а так же IS-IS в силу его отсутствия в ПТ.

Коренные различия между этими двумя видами состоят в следующем:
1) типе информации, которой обмениваются роутеры: таблицы маршрутизации у Distance-Vector и таблицы топологии у Link State,
2) процессе выбора лучшего маршрута,
3) количестве информации о сети, которое “держит в голове” каждый роутер: Distance-Vector знает только своих соседей, Link State имеет представление обо всей сети.

Как мы видим, количество протоколов маршрутизации невелико, но все же не один-два. А что будет, если на роутере запустить несколько протоколов одновременно? Может оказаться, что у каждого протокола будет свое мнение о том, как лучше добраться до определенной сети. А если у нас еще и статические маршруты настроены? Кому роутер отдаст предпочтение и чей маршрут добавит в таблицу маршрутизации? Ответ на этот вопрос связан с новым термином: административная дистанция (на нащ вкус, довольно посредственная калька с английского Аdministrative distance, но лучше выдумать не смогли). Аdministrative distance это целое число от 0 до 255, выражающее “меру доверия” роутера к данному маршруту. Чем меньше AD, тем больше доверия. Вот табличка такого доверия с точки зрения Cisco:

Протокол Административная дистанция
Connected interface 0
Static route 1
Enhanced Interior Gateway Routing Protocol (EIGRP) summary route 5
External Border Gateway Protocol (BGP) 20
Internal EIGRP 90
IGRP 100
OSPF 110
Intermediate System-to-Intermediate System (IS-IS) 115
Routing Information Protocol (RIP) 120
Exterior Gateway Protocol (EGP) 140
On Demand Routing (ODR) 160
External EIGRP 170
Internal BGP 200
Unknown 255

В сегодняшней статье мы разберём OSPF и EIGRP. Первый вам будет встречаться везде и постоянно, а второй очень хорош в сетях, где присутствует только оборудование Cisco.
У каждого из них есть свои достоинства и недостатки. Можно сказать, что EIGRP выигрывает перед OSPF, но все плюсы нивелируются его проприетарностью. EIGRP - фирменный протокол Cisco и больше никто его не поддерживает.
На самом деле у EIGRP много недостатков, но об этом не особо распространяются в популярных статьях. Вот только одна из проблем: SIA

Итак, приступим.

OSPF

Статей и видео о том, как настроить OSPF горы. Гораздо меньше описаний принципов работы. Вообще, тут такое дело, что OSPF можно просто настроить согласно мануалам, даже не зная про алгоритмы SPF и непонятные LSA. И всё будет работать и даже, скорее всего, прекрасно работать - на то он и рассчитан. То есть тут не как с вланами, где приходилось знать теорию вплоть до формата заголовка.
Но инженера от эникейщика отличает то, что он понимает, почему его сеть функционирует так, а не иначе, и не хуже самогo OSPF знает, какой маршрут будет выбран протоколом.
В рамках статьи, которая уже на этот момент составляет 8 000 символов, мы не сможем погрузиться в глубины теории, но рассмотрим принципиальные моменты.
Очень просто и понятно, кстати, написано про OSPF на xgu.ru или в английской википедии .
Итак, OSPFv2 работает поверх IP, а конкретно, он заточен только под IPv4 (OSPFv3 не зависит от протоколов 3-го уровня и потому может работать с IPv6).

Рассмотрим его работу на примере вот такой упрощённой сети:

Для начала надо сказать, что для того, чтобы между маршрутизаторами завязалась дружба (отношения смежности) должны выполниться следующие условия:

1) в OSPF должны быть настроены одинаковые Hello Interval на тех маршрутизаторах, что подключены друг к другу. По умолчанию это 10 секунд в Broadcast сетях, типа Ethernet. Это своего рода KeepAlive сообщения. То есть каждые 10 секунд каждый маршрутизатор отправляет Hello пакет своему соседу, чтобы сказать: “Хей, я жив”,
2) Одинаковыми должны быть и Dead Interval на них. Обычно это 4 интервала Hello - 40 секунд. Если в течение этого времени от соседа не получено Hello, то он считается недоступным и начинается ПАНИКА процесс перестроения локальной базы данных и рассылка обновлений всем соседям,
3) Интерфейсы, подключенные друг к другу, должны быть в одной подсети ,
4) OSPF позволяет снизить нагрузку на CPU маршрутизаторов, разделив Автономную Систему на зоны. Так вот номера зон тоже должны совпадать,
5) У каждого маршрутизатора, участвующего в процессе OSPF есть свой уникальный индентификатор - Router ID . Если вы о нём не позаботитесь, то маршрутизатор выберет его автоматически на основе информации о подключенных интерфейсах (выбирается высший адрес из интерфейсов, активных на момент запуска процесса OSPF). Но опять же у хорошего инженера всё под контролем, поэтому обычно создаётся Loopback интерфейс, которому присваивается адрес с маской /32 и именно он назначается Router ID. Это бывает удобно при обслуживании и траблшутинге.
6) Должен совпадать размер MTU

1) Штиль. Состояние OSPF - DOWN
В это короткое мгновение в сети ничего не происходит - все молчат.

2) Поднимается ветер: маршрутизатор рассылает Hello-пакеты на мультикастный адрес 224.0.0.5 со всех интерфейсов, где запущен OSPF. TTL таких сообщений равен одному, поэтому их получат только маршрутизаторы, находящиеся в том же сегменте сети. R1 переходит в состояние INIT .

В пакеты вкладывается следующая информация:

  • Router ID
  • Hello Interval
  • Dead Interval
  • Neighbors
  • Subnet mask
  • Area ID
  • Router Priority
  • Адреса DR и BDR маршрутизаторов
  • Пароль аутентификации
Нас интересуют пока первые четыре или точнее вообще только Router ID и Neighbors.
Сообщение Hello от маршрутизатора R1 несёт в себе его Router ID и не содержит Neighbors, потому что у него их пока нет.
После получения этого мультикастного сообщения маршрутизатор R2 добавляет R1 в свою таблицу соседей (если совпали все необходимые параметры).

И отправляет на R1 уже юникастом новое сообщение Hello, где содержится Router ID этого маршрутизатора, а в списке Neigbors перечислены все его соседи. В числе прочих соседей в этом списке есть Router ID R1, то есть R2 уже считает его соседом.

3) Дружба. Когда R1 получает это сообщение Hello от R2, он пролистывает список соседей и находит в нём свой собственный Router ID, он добавляет R2 в свой список соседей.

Теперь R1 и R2 друг у друга во взаимных соседях - это означает, что между ними установлены отношения смежности и маршрутизатор R1 переходит в состояние TWO WAY .

Общий совет по всем задачам:

Даже если Вы сразу не знаете ответа и решения, постарайтесь подумать к чему относится условие задачи:
- К каким особенностям, настройкам протокола?
- Глобальные эти настройки или привязаны к конкретному интерфейсу?
Если Вы не знаете или забыли команду, такие размышления, скорее всего, приведут Вас к правильному контексту, где Вы просто, с помощью подсказки в командной строке, можете догадаться или вспомнить как настроить то, что требуется в задании.
Постарайтесь поразмышлять в таком ключе прежде чем пойдете в гугл или на какой-то сайт в поиске команд.
На реальной сети при выборе диапазона анонсируемых подсетей нужно руководствоваться регламентом и насущными потребностями.

Прежде чем мы перейдём к тестированию резервных линков и скорости, сделаем ещё одну полезную вещь.
Если бы у нас была возможность отловить трафик на интерфейсе FE0/0.2 msk-arbat-gw1, который смотрит в сторону серверов, то мы бы увидели, что каждые 10 секунд в неизвестность улетают сообщения Hello. Ответить на Hello некому, отношения смежности устанавливать не с кем, поэтому и пытаться рассылать отсюда сообщения смысла нет.
Выключается это очень просто:
msk-arbat-gw1(config)#router OSPF 1
msk-arbat-gw1(config-router)#passive-interface fastEthernet 0/0.2

Такую команду нужно дать для всех интерфейсов, на которых точно нет соседей OSPF (в том числе в сторону интернета).
В итоге картина у вас будет такая:


*Не представляю, как вы до сих пор не запутались*

Кроме того, эта команда повышает безопасность - никто из этой сети не прикинется маршрутизатором и не будет пытаться поломать нас полностью.

Теперь займёмся самым интересным - тестированием.
Ничего сложного нет в настройке OSPF на всех маршрутизаторах в Сибирском кольце - сделаете сами.
И после этого картина должна быть следующей:
msk-arbat-gw1#sh ip OSPF neighbor


172.16.255.32 1 FULL/DR 00:00:31 172.16.2.2 FastEthernet0/1.4
172.16.255.48 1 FULL/DR 00:00:31 172.16.2.18 FastEthernet0/1.5
172.16.255.80 1 FULL/BDR 00:00:36 172.16.2.130 FastEthernet0/1.8
172.16.255.112 1 FULL/BDR 00:00:37 172.16.2.197 FastEthernet1/0.911

Питер, Кемерово, Красноярск и Владивосток - непосредственно подключенные.

msk-arbat-gw1#show ip route

172.16.0.0/16 is variably subnetted, 25 subnets, 6 masks



S 172.16.2.4/30 via 172.16.2.2



O 172.16.2.160/30 via 172.16.2.130, 00:05:53, FastEthernet0/1.8
O 172.16.2.192/30 via 172.16.2.197, 00:04:18, FastEthernet1/0.911





S 172.16.16.0/21 via 172.16.2.2
S 172.16.24.0/22 via 172.16.2.18
O 172.16.24.0/24 via 172.16.2.18, 00:24:03, FastEthernet0/1.5
O 172.16.128.0/24 via 172.16.2.130, 00:07:18, FastEthernet0/1.8
O 172.16.129.0/26 via 172.16.2.130, 00:07:18, FastEthernet0/1.8

O 172.16.255.32/32 via 172.16.2.2, 00:24:03, FastEthernet0/1.4
O 172.16.255.48/32 via 172.16.2.18, 00:24:03, FastEthernet0/1.5
O 172.16.255.80/32 via 172.16.2.130, 00:07:18, FastEthernet0/1.8
O 172.16.255.96/32 via 172.16.2.130, 00:04:18, FastEthernet0/1.8
via 172.16.2.197, 00:04:18, FastEthernet1/0.911
O 172.16.255.112/32 via 172.16.2.197, 00:04:28, FastEthernet1/0.911



Все обо всех всё знают.
Каким маршрутом трафик доставляется из Москвы в Красноярск? Из таблицы видно, что krs-stolbi-gw1 подключен напрямую и это же видно из трассировки:


msk-arbat-gw1#traceroute 172.16.128.1

1 172.16.2.130 35 msec 8 msec 5 msec

Теперь рвём интерфейс между Москвой и Красноярском и смотрим, через сколько линк восстановится.
Не проходит и 5 секунд, как все маршрутизаторы узнали о происшествии и пересчитали свои таблицы маршрутизации:
msk-arbat-gw1(config-subif)#do sh ip ro 172.16.128.0

Known via "OSPF 1", distance 110, metric 4, type intra area
Last update from 172.16.2.197 on FastEthernet1/0.911, 00:00:53 ago
Routing Descriptor Blocks:
* 172.16.2.197, from 172.16.255.80, 00:00:53 ago, via FastEthernet1/0.911
Route metric is 4, traffic share count is 1

Vld-gw1#sh ip route 172.16.128.0
Routing entry for 172.16.128.0/24
Known via "OSPF 1", distance 110, metric 3, type intra area
Last update from 172.16.2.193 on FastEthernet1/0, 00:01:57 ago
Routing Descriptor Blocks:
* 172.16.2.193, from 172.16.255.80, 00:01:57 ago, via FastEthernet1/0
Route metric is 3, traffic share count is 1

Msk-arbat-gw1#traceroute 172.16.128.1
Type escape sequence to abort.
Tracing the route to 172.16.128.1

1 172.16.2.197 4 msec 10 msec 10 msec
2 172.16.2.193 8 msec 11 msec 15 msec
3 172.16.2.161 15 msec 13 msec 6 msec

То есть теперь Красноярска трафик достигает таким путём:

Как только вы поднимете линк, маршрутизаторы снова вступают в связь, обмениваются своими базами, пересчитываются кратчайшие пути и заносятся в таблицу маршрутизации.
На видео всё это более наглядно. Рекомендую ознакомиться .

После настройки OSPF на маршрутизаторах в сибирском кольце, все сети, которые находятся за маршрутизатором в центральном офисе в Москве (msk-arbat-gw1), для Хабаровска доступны по двум маршрутам (через Красноярск и через Владивосток). Но, так как канал через Красноярск лучше, то надо изменить настройки по умолчанию таким образом, чтобы Хабаровск использовал канал через Красноярск, когда он доступен. И переключался на Владивосток только если что-то случилось с каналом на Красноярск.

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

EIGRP

Теперь займёмся другим очень важным протоколом

Итак, чем хорош EIGRP?
- прост в конфигурации
- быстрое переключение на заранее просчитанный запасной маршрут
- требует меньше ресурсов роутера (по сравнению с OSPF)
- суммирование маршрутов на любом роутере (в OSPF только на ABR\ASBR)
- балансировка трафика на неравноценных маршрутах (OSPF только на равноценных)

Мы решили перевести одну из записей блога Ивана Пепельняка, в которой разбирается ряд популярных мифов про EIGRP:
- “EIGRP это гибридный протокол маршрутизации”. Если я правильно помню, это началось с первой презентации EIGRP много лет назад и обычно понимается как «EIGRP взял лучшее от link-state и distance-vector протоколов». Это совершенно не так. У EIGRP нет никаких отличительных особенностей link-state. Правильно будет говорить «EIGRP это продвинутый distance-vector- протокол маршрутизации».
- “EIGRP это distance-vector протокол”. Неплохо, но не до конца верно тоже. EIGRP отличается от других DV способом, которым обрабатывает потерянные маршруты (или маршруты с возрастающей метрикой). Все остальные протоколы пассивно ждут обновления информации от соседа (некоторые, например, RIP, даже блокируют маршрут для предотвращения петель маршрутизации), в то время как EIGRP ведет себя активнее и запрашивает информацию сам.
- “EIGRP сложен во внедрении и обслуживании”. Неправда. В свое время, EIGRP в больших сетях с низкоскоростными линками было сложновато правильно внедрить, но ровно до того момента, как были введены stub routers. С ними (а также несколькими исправлениями работы DUAL-алгоритма), он не чуть не хуже, чем OSPF.
- “Как и LS протоколы, EIGRP хранит таблицу топологии маршрутов, которыми обменивается”. Просто удивительно, насколько это неверно. EIGRP не имеет вообще никакого понятия о том, что находится дальше ближайших соседей, в то время как LS протоколы точно знают топологию всей области, к которой они подключены.
- “EIGRP это DV протокол, который действует, как LS”. Неплохая попытка, но по-прежнему, абсолютно неверно. LS протоколы строят таблицу маршрутизации, проходя через следующие шаги:
- каждый маршрутизатор описывает сеть, исходя из информации, доступной ему локально (его линки, подсети, в которых он находится, соседи, которых он видит) посредством пакета (или нескольких), называемого LSA (в OSPF) или LSP (IS-IS)
- LSA распространяются по сети. Каждый маршрутизатор должен получить каждую LSA, созданную в его сети. Информация, полученная из LSA, заносится в таблицу топологии.
- каждый маршрутизатор независимо анализирует свою таблицу топологии и запускает SPF алгоритм для подсчета лучших маршрутов к каждому из других маршрутизаторов
Поведение EIGRP даже близко не напоминает эти шаги, поэтому непонятно, с какой стати он «действует, как LS»

Единственное, что делает EIGRP - это хранит информацию, полученную от соседа (RIP сразу же забывает то, что не может быть использовано в данный момент). В этом смысле, он похож на BGP, который тоже хранит все в таблице BGP и выбирает лучший маршрут оттуда. Таблица топологии (содержащая всю информацию, полученную от соседей), дает EIGRP преимущество перед RIP – она может содержать информацию о запасном (не используемом в данный момент) маршруте.


Теперь чуть ближе к теории работы:

Каждый процесс EIGRP обслуживает 3 таблицы:
- Таблицу соседей (neighbor table), в которой содержится информация о “соседях”, т.е. других маршрутизаторах, непосредственно подключенных к текущему и участвующих в обмене маршрутами. Можно посмотреть с помощью команды show ip eigrp neighbors
- Таблицу топологии сети (topology table), в которой содержится информация о маршрутах, полученная от соседей. Смотрим командой show ip eigrp topology
- Таблицу маршрутизации (routing table), на основе которой роутер принимает решения о перенаправлении пакетов. Просмотр через show ip route

Метрика.
Для оценки качества определенного маршрута, в протоколах маршрутизации используется некое число, отражающее различные его характеристики или совокупность характеристик- метрика. Характеристики, принимаемые в расчет, могут быть разными- начиная от количества роутеров на данном маршруте и заканчивая средним арифметическим загрузки всех интерфейсов по ходу маршрута. Что касается метрики EIGRP, процитируем Jeremy Cioara: “у меня создалось впечатление, что создатели EIGRP, окинув критическим взглядом свое творение, решили, что все слишком просто и хорошо работает. И тогда они придумали формулу метрики, что бы все сказали “ВАУ, это действительно сложно и профессионально выглядит”. Узрите же полную формулу подсчета метрики EIGRP: (K1 * bw + (K2 * bw) / (256 - load) + K3 * delay) * (K5 / (reliability + K4)), в которой:
- bw это не просто пропускная способность, а (10000000/самая маленькая пропускная способность по дороге маршрута в килобитах) * 256
- delay это не просто задержка, а сумма всех задержек по дороге в десятках микросекунд * 256 (delay в командах show interface, show ip eigrp topology и прочих показывается в микросекундах!)
- K1-K5 это коэффициенты, которые служат для того, чтобы в формулу “включился” тот или иной параметр.

Страшно? было бы, если бы все это работало, как написано. На деле же из всех 4 возможных слагаемых формулы, по умолчанию используются только два: bw и delay (коэффициенты K1 и K3=1, остальные нулю), что сильно ее упрощает - мы просто складываем эти два числа (не забывая при этом, что они все равно считаются по своим формулам). Важно помнить следующее: метрика считается по худшему показателю пропускной способности по всей длине маршрута .
Если K5=0, то используется следующая формула: Metric = (K1 * bw + (K2 * bw) / (256 - load) + (K3 * delay)

Интересная штука получилась с MTU: довольно часто можно встретить сведения о том, что MTU имеет отношение к метрике EIGRP. И действительно, значения MTU передаются при обмене маршрутами. Но, как мы можем видеть из полной формулы, никакого упоминания об MTU там нет. Дело в том, что этот показатель принимается в расчет в довольно специфических случаях: например, если роутер должен отбросить один из равнозначных по остальным характеристикам маршрутов, он выберет тот, у которого меньший MTU. Хотя, не все так просто (см. комментарии).

Определимся с терминами, применяемыми внутри EIGRP. Каждый маршрут в EIGRP характеризуется двумя числами: Feasible Distance и Advertised Distance (вместо Advertised Distance иногда можно встретить Reported Distance, это одно и то же). Каждое из этих чисел представляет собой метрику, или стоимость (чем больше-тем хуже) данного маршрута с разных точек измерения: FD это “от меня до места назначения”, а AD- “от соседа, который мне рассказал об этом маршруте, до места назначения”. Ответ на закономерный вопрос “Зачем нам надо знать стоимость от соседа, если она и так включена в FD?”- чуть ниже (пока можете остановиться и поломать голову сами, если хотите).

У каждой подсети, о которой знает EIGRP, на каждом роутере существует Successor- роутер из числа соседей, через который идет лучший (с меньшей метрикой), по мнению протокола, маршрут к этой подсети. Кроме того, у подсети может также существовать один или несколько запасных маршрутов (роутер-сосед, через которого идет такой маршрут, называется Feasible Successor). EIGRP- единственный протокол маршрутизации, запоминающий запасные маршруты (в OSPF они есть, но содержатся, так сказать, в “сыром виде” в таблице топологии- их еще надо обработать алгоритмом SPF), что дает ему плюс в быстродействии: как только протокол определяет, что основной маршрут (через successor) недоступен, он сразу переключается на запасной. Для того, чтобы роутер мог стать feasible successor для маршрута, его AD должно быть меньше FD successor’а этого маршрута (вот зачем нам нужно знать AD). Это правило применяется для того, чтобы избежать колец маршрутизации.

Предыдущий абзац взорвал мозг? Материал трудный, поэтому еще раз на примере. У нас есть вот такая сеть:

С точки зрения R1, R2 является Successor’ом для подсети 192.168.2.0/24. Чтобы стать FS для этой подсети, R4 требуется, чтобы его AD была меньше FD для этого маршрута. FD у нас ((10000000/1544)*256)+(2100*256) =2195456, AD у R4 (с его точки зрения это FD, т.е. сколько ему стоит добраться до этой сети) = ((10000000/100000)*256)+(100*256)=51200. Все сходится, AD у R4 меньше, чем FD маршрута, он становится FS. *тут мозг такой и говорит: “БДЫЩЬ”*. Теперь смотрим на R3- он анонсирует свою сеть 192.168.1.0/24 соседу R1, который, в свою очередь, рассказывает о ней своим соседям R2 и R4. R4 не в курсе, что R2 знает об этой подсети, и решает ему рассказать. R2 передает информацию о том, что он имеет доступ через R4 к подсети 192.168.1.0/24 дальше, на R1. R1 строго смотрит на FD маршрута и AD, которой хвастается R2 (которая, как легко понять по схеме, будет явно больше FD, так как включает и его тоже) и прогоняет его, чтобы не лез со всякими глупостями. Такая ситуация довольно маловероятна, но может иметь место при определенном стечении обстоятельств, например, при отключении механизма “расщепления горизонта” (split-horizon). А теперь к более вероятной ситуации: представим, что R4 подключен к сети 192.168.2.0/24 не через FastEthernet, а через модем на 56k (задержка для dialup составляет 20000 usec), соответственно, добраться ему стоит ((10000000/56)*256)+(2000*256)= 46226176. Это больше, чем FD для этого маршрута, поэтому R4 не станет Feasible Successor’ом. Но это не значит, что EIGRP вообще не будет использовать данный маршрут. Просто переключение на него займет больше времени (подробнее об этом дальше).

Соседство
Роутеры не разговаривают о маршрутах с кем попало - прежде чем начать обмениваться информацией, они должны установить отношения соседства. После включения процесса командой router eigrp с указанием номера автономной системы, мы, командой network говорим, какие интерфейсы будут участвовать и одновременно, информацию о каких сетях мы желаем распространять. Незамедлительно, через эти интерфейсы начинают рассылаться hello-пакеты на мультикаст- адрес 224.0.0.10 (по умолчанию каждые 5 секунд для ethernet). Все маршрутизаторы с включенным EIGRP получают эти пакеты, далее каждый маршрутизатор-получатель делает следующее:
- сверяет адрес отправителя hello-пакета, с адресом интерфейса, из которого получен пакет, и удостоверяется, что они из одной подсети
- сверяет значения полученных из пакета K-коэффициентов (проще говоря, какие переменные используются в подсчете метрики) со своими. Понятно, что если они различаются, то метрики для маршрутов будут считаться по разным правилам, что недопустимо
- проверяет номер автономной системы
- опционально: если настроена аутентификация, проверяет соответствие ее типа и ключей.

Если получателя все устраивает, он добавляет отправителя в список своих соседей, и посылает ему (уже юникастом) update-пакет, в котором содержится список всех известных ему маршрутов (aka full-update). Отправитель, получив такой пакет, в свою очередь, делает то же самое. Для обмена маршрутами EIGRP использует Reliable Transport Protocol (RTP, не путать с Real-time Transport Protocol, который используется в ip-телефонии), который подразумевает подтверждение о доставке, поэтому каждый из роутеров, получив update- пакет, отвечает ack -пакетом (сокращение от acknowledgement- подтверждение). Итак, отношение соседства установлены, роутеры узнали друг у друга исчерпывающую информацию о маршрутах, что дальше? Дальше они будут продолжать посылать мультикаст hello-пакеты в подтверждение того, что они на связи, а в случае изменения топологии- update-пакеты, содержащие сведения только об изменениях (partial update).

Теперь вернемся к предыдущей схеме с модемом.

R2 по каким-то причинам потерял связь с 192.168.2.0/24. До этой подсети у него нет запасных маршрутов (т.е. отсутствует FS). Как всякий ответственный роутер с EIGRP, он хочет восстановить связь. Для этого он начинает рассылать специальные сообщения (query- пакеты) всем своим соседям, которые, в свою очередь, не находя нужного маршрута у себя, расспрашивают всех своих соседей, и так далее. Когда волна запросов докатывается до R4, он говорит “погодите-ка, у меня есть маршрут к этой подсети! Плохонький, но хоть что-то. Все про него забыли, а я-то помню”. Все это он упаковывает в reply-пакет и отправляет соседу, от которого получил запрос (query), и дальше по цепочке. Понятное дело, это все занимает больше времени, чем просто переключение на Feasible Successor, но, в итоге, мы получаем связь с подсетью.

А сейчас опасный момент: может, вы уже обратили внимание и насторожились, прочитав момент про эту веерную рассылку. Падение одного интерфейса вызывает нечто похожее на широковещательный шторм в сети (не в таких масштабах, конечно, но все-таки), причем чем больше в ней роутеров, тем больше ресурсов потратится на все эти запросы-ответы. Но это еще пол-беды. Возможна ситуация и похуже: представим, что роутеры, изображенные на картинке- это только часть большой и распределенной сети, т.е. некоторые могут находится за много тысяч километров от нашего R2, на плохих каналах и прочее. Так вот, беда в том, что, послав query соседу, роутер обязан дождаться от него reply. Неважно, что в ответе- но он должен прийти. Даже если роутер уже получил положительный ответ, как в нашем случае, он не может поставить этот маршрут в работу, пока не дождется ответа на все свои запросы. А запросы-то, может, еще где-нибудь на Аляске бродят. Такое состояние маршрута называется stuck-in-active. Тут нам нужно познакомится с терминами, отражающими состояние маршрута в EIGRP: active\passive route. Обычно они вводят в заблуждение. Здравый смысл подсказывает, что active значит маршрут “активен”, включен, работает. Однако тут все наоборот: passive это “все хорошо”, а состояние active означает, что данная подсеть недоступна, и маршрутизатор находится в активном поиске другого маршрута, рассылая query и ожидая reply. Так вот, состояние stuck-in-active (застрял в активном состоянии) может продолжатся до 3 минут! По истечение этого срока, роутер обрывает отношения соседства с тем соседом, от которого он не может дождаться ответа, и может использовать новый маршрут через R4.

История, леденящая кровь сетевого инженера. 3 минуты даунтайма это не шутки. Как мы можем избежать инфаркта этой ситуации? Выхода два: суммирование маршрутов и так называемая stub-конфигурация.

Вообще говоря, есть еще один выход, и он называется фильтрация маршрутов (route filtering). Но это настолько объемная тема, что впроу отдельную статью под нее писать, а у нас и так уже пол-книги получилось в этот раз. Поэтому на ваше усмотрение.

Как мы уже упоминали, в EIGRP суммирование маршрутов можно проводить на любом роутере. Для иллюстрации, представим, что к нашему многострадальному R2 подключены подсети от 192.168.0.0/24 до 192.168.7.0/24, что очень удобненько суммируется в 192.168.0.0/21 (вспоминаем binary math). Роутер анонсирует этот суммарный маршрут, и все остальные знают: если адрес назначения начинается на 192.168.0-7, то это к нему. Что будет происходить, если одна из подсетей пропадет? Роутер будет рассылать query-пакеты с адресом этой сети (конкретным, например, 192.168.5.0/24), но соседи, вместо того, чтобы уже от своего имени продолжить порочную рассылку, будут сразу в ответ слать отрезвляющие реплаи, мол, это твоя подсеть, ты и разбирайся.

Второй вариант- stub- конфигурация. Образно говоря, stub означает “конец пути”, “тупик” в EIGRP, т.е., чтобы попасть в какую-то подсеть, не подключенную напрямую к такому роутеру, придется идти назад. Роутер, сконфигурированный, как stub, не будет пересылать трафик между подсетями, которые ему стали известны от EIGRP (проще говоря, которые в show ip route помечены буквой D). Кроме того, его соседи не будут отправлять ему query-пакеты. Самый распространенный случай применения- hub-and-spoke топологии, особенно с избыточными линками. Возьмем такую сеть: слева- филиалы, справа- основной сайт, главный офис и т.п. Для отказоустойчивости избыточные линки. Запущен EIGRP с дефолтными настройками.

А теперь “внимание, вопрос”: что будет, если R1 потеряет связь с R4, а R5 потеряет LAN? Трафик из подсети R1 в подсеть главного офиса будет идти по маршруту R1->R5->R2(или R3)->R4. Будет это эффективно? Нет. Будет страдать не только подсеть за R1, но и подсеть за R2 (или R3), из-за увеличения объемов трафика и его последствий. Вот для таких-то ситуаций и придуман stub. За роутерами в филиалах нет других роутеров, которые вели бы в другие подсети, это “конец дороги”, дальше только назад. Поэтому мы с легким сердцем можем сконфигурировать их как stub’ы, что, во-первых, избавит нас от проблемы с “кривым маршрутом”, изложенной чуть выше, а во-вторых, от флуда query-пакетов в случае потери маршрута.

Существуют различные режимы работы stub-роутера, задаются они командой eigrp stub:

R1(config)#router eigrp 1
R1(config-router)#eigrp stub?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
receive-only Set IP-EIGRP as receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes
По умолчанию, если просто дать команду eigrp stub, включаются режимы сonnected и summary. Интерес представляет режим receive-only, в котором роутер не анонсирует никаких сетей, только слушает, что ему говорят соседи (в RIP есть команда passive interface, которая делает то же самое, но в EIGRP она полностью отключает протокол на выбранном интерфейсе, что не позволяет установить соседство).

Важные моменты в теории EIGRP, не попавшие в статью:

  • В EIGRP можно настроить аутентификацию соседей
  • Концепция graceful shutdown
Практика EIGRP
“Лифт ми Ап” купили фабрику в Калининграде. Там производят мозги лифтов: микросхемы, ПО. Фабрика очень крупная - три точки по городу - три маршрутизатора соединены в кольцо.

Но вот незадача - на них уже запущен EIGRP в качестве протокола динамической маршрутизации. Причём адресация конечных узлов совсем из другой подсети - 10.0.0.0/8. Все другие параметры (линковые адреса, адреса лупбэк интерфейсов) мы поменяли, но несколько тысяч адресов локальной сети с серверами, принтерами, точками доступа - работа не на пару часов - отложили на потом, а в IP-плане зарезервировали на будущее для Калининграда подсеть 172.16.32.0/20.

Сейчас у нас используются такие сети:

Как настраивается это чудо? Незамысловато, на первый взгляд:
router eigrp 1
network 172.16.0.0 0.0.255.255
network 10.0.0.0

В EIGRP обратную маску можно задавать, указывая тем самым более узкие рамки, либо не задавать, тогда будет выбрана стандартная маска для этого класса (16 для класса B - 172.16.0.0 и 8 для класса А - 10.0.0.0)

Такие команды даются на всех маршрутизаторах Автономной Системы. АС определяется цифрой в команде router eigrp, то есть в нашем случае имеем АС №1. Эта цифра должна быть одинаковой на всех маршрутизаторах (в отличии от OSPF).

Но есть в EIGRP серьёзный подвох: по умолчанию включено автоматическое суммирование маршрутов в классовом виде (в версиях IOS до 15).
Сравним таблицы маршрутизации на трёх калининградских маршрутизаторах:

Сеть 10.0.0.1/24 подключена у нас к klgr-center-gw1 и он о ней знает:
klgr-center-gw1:
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 10.0.0.0/8 is a summary, 00:35:23, Null0
C 10.0.0.0/24 is directly connected, FastEthernet1/0

Но не знает о 10.0.1.0/24 и 10.0.2.0/24/

Klgr-balt-gw1 знает о своих двух сетях 10.0.1.0/24 и 10.0.2.0/24, но вот сеть 10.0.0.0/24 он куда-то спрятал.
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
D 10.0.0.0/8 is a summary, 00:42:05, Null0
C 10.0.1.0/24 is directly connected, FastEthernet1/1.2
C 10.0.2.0/24 is directly connected, FastEthernet1/1.3

Они оба создали маршрут 10.0.0.0/8 с адресом next hop Null0.

А вот klgr-center-gw2 знает, что подсети 10.0.0.0/8 находятся за обоими его WAN интерфейсами.
D 10.0.0.0/8 via 172.16.2.41, 00:42:49, FastEthernet0/1
via 172.16.2.45, 00:38:05, FastEthernet0/0

Что-то очень странное творится.
Но, если вы проверите конфигурацию этого маршрутизатора, то, вероятно, заметите:
router eigrp 1
network 172.16.0.0
network 10.0.0.0
auto-summary

Во всём виновато автоматическое суммирование. Это самое большое зло EIGRP. Рассмотрим более подробно, что происходит. klgr-center-gw1 и klgr-balt-gw1 имеют подсети из 10.0.0.0/8, они их суммируют по умолчанию, когда передают соседям.
То есть, например, klgr-balt-gw1 передаёт не две сети 10.0.1.0/24 и 10.0.2.0/24, а одну обобщённую: 10.0.0.0/8. То есть его сосед будет думать, что за klgr-balt-gw1 находится вся эта сеть.
Но, что произойдёт, если вдруг на balt-gw1 попадёт пакет с адресатом 10.0.50.243, о котором тот ничего не знает? На этот случай и создаётся так называетмый Blackhole-маршрут:
10.0.0.0/8 is a summary, 00:42:05, Null0
Полученный пакет будет выброшен в эту чёрную дыру. Это делается во избежание петель маршрутизации.
Так вот оба эти маршрутизатора создали свои blackhole-маршруты и игнорируют чужие анонсы. Реально на такой сети эти три девайса друг друга так и не смогут пинговать, пока… пока вы не отключите auto-summary.

Первое, что вы должны сделать при настройке EIGRP:
router eigrp 1
no auto-summary

На всех устройствах. И всем будет хорошо:

Klgr-center-gw1:
C 10.0.0.0 is directly connected, FastEthernet1/0
D 10.0.1.0 via 172.16.2.37, 00:03:11, FastEthernet0/0
D 10.0.2.0 via 172.16.2.37, 00:03:11, FastEthernet0/0

klgr-balt-gw1
10.0.0.0/24 is subnetted, 3 subnets
D 10.0.0.0 via 172.16.2.38, 00:08:16, FastEthernet0/1
C 10.0.1.0 is directly connected, FastEthernet1/1.2
C 10.0.2.0 is directly connected, FastEthernet1/1.3

klgr-center-gw2:
10.0.0.0/24 is subnetted, 3 subnets
D 10.0.0.0 via 172.16.2.45, 00:11:50, FastEthernet0/0
D 10.0.1.0 via 172.16.2.41, 00:11:48, FastEthernet0/1
D 10.0.2.0 via 172.16.2.41, 00:11:48, FastEthernet0/1

Настройка передачи маршрутов между различными протоколами

Наша задача организовать передачу маршрутов между этими протоколами: из OSPF в EIGRP и наоборот, чтобы все знали маршрут до любой подсети.
Это называется редистрибуцией (перераспределением) маршрутов.

Для её осуществления нам нужна хотя бы одна точка стыка, где будут запущены одновременно два протокола. Это может быть msk-arbat-gw1 или klgr-balt-gw1. Выберем второй.

Из в EIGRP d OSPF:
klgr-gw1(config)#router ospf 1
klgr-gw1(config-router)#redistribute eigrp 1 subnets

Смотрим маршруты на msk-arbat-gw1:

msk-arbat-gw1#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route

Gateway of last resort is 198.51.100.1 to network 0.0.0.0

10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O E2 10.0.0.0/8 via 172.16.2.34, 00:25:11, FastEthernet0/1.7
O E2 10.0.1.0/24 via 172.16.2.34, 00:25:11, FastEthernet0/1.7
O E2 10.0.2.0/24 via 172.16.2.34, 00:24:50, FastEthernet0/1.7
172.16.0.0/16 is variably subnetted, 30 subnets, 5 masks
O E2 172.16.0.0/16 via 172.16.2.34, 00:25:11, FastEthernet0/1.7
C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
C 172.16.2.16/30 is directly connected, FastEthernet0/1.5
C 172.16.2.32/30 is directly connected, FastEthernet0/1.7
O E2 172.16.2.36/30 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
O E2 172.16.2.40/30 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
O E2 172.16.2.44/30 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
C 172.16.2.128/30 is directly connected, FastEthernet0/1.8
O 172.16.2.160/30 via 172.16.2.130, 01:00:55, FastEthernet0/1.8
O 172.16.2.192/30 via 172.16.2.197, 00:13:21, FastEthernet1/0.911
C 172.16.2.196/30 is directly connected, FastEthernet1/0.911
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104
O 172.16.24.0/24 via 172.16.2.18, 01:00:55, FastEthernet0/1.5
O 172.16.128.0/24 via 172.16.2.130, 01:00:55, FastEthernet0/1.8
O 172.16.129.0/26 via 172.16.2.130, 01:00:55, FastEthernet0/1.8
O 172.16.144.0/24 via 172.16.2.130, 00:13:21, FastEthernet0/1.8

O 172.16.160.0/24 via 172.16.2.197, 00:13:31, FastEthernet1/0.911
C 172.16.255.1/32 is directly connected, Loopback0
O 172.16.255.48/32 via 172.16.2.18, 01:00:55, FastEthernet0/1.5
O E2 172.16.255.64/32 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
O E2 172.16.255.65/32 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
O E2 172.16.255.66/32 via 172.16.2.34, 01:00:55, FastEthernet0/1.7
O 172.16.255.80/32 via 172.16.2.130, 01:00:55, FastEthernet0/1.8
O 172.16.255.96/32 via 172.16.2.130, 00:13:21, FastEthernet0/1.8
via 172.16.2.197, 00:13:21, FastEthernet1/0.911
O 172.16.255.112/32 via 172.16.2.197, 00:13:31, FastEthernet1/0.911
198.51.100.0/28 is subnetted, 1 subnets
C 198.51.100.0 is directly connected, FastEthernet0/1.6
S* 0.0.0.0/0 via 198.51.100.1


Вот те, что с меткой Е2 - новые импортированные маршруты. Е2 - означает, что это внешние маршруты 2-го типа (External), то есть они были введены в процесс OSPF извне

Теперь из OSPF в EIGRP. Это чуточку сложнее:
klgr-gw1(config)#router eigrp 1
klgr-gw1(config-router)#redistribute ospf 1 metric 100000 20 255 1 1500

Без указания метрики (вот этого длинного набора цифр) команда выполнится, но редистрибуции не произойдёт.

Импортированные маршруты получают метку EX в таблице маршрутизации и административную дистанцию 170, вместо 90 для внутренних:

klgr-gw2#sh ip route

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 30 subnets, 4 masks
D EX 172.16.0.0/24 [170 /33280] via 172.16.2.37, 00:00:07, FastEthernet0/0
D EX 172.16.1.0/24 via 172.16.2.37, 00:00:07, FastEthernet0/0
D EX 172.16.2.0/30 via 172.16.2.37, 00:00:07, FastEthernet0/0
D EX 172.16.2.4/30 via 172.16.2.37, 00:00:07, FastEthernet0/0
D EX 172.16.2.16/30 via 172.16.2.37, 00:00:07, FastEthernet0/0
D 172.16.2.32/30 [90 /30720] via 172.16.2.37, 00:38:59, FastEthernet0/0
C 172.16.2.36/30 is directly connected, FastEthernet0/0
D 172.16.2.40/30 via 172.16.2.37, 00:38:59, FastEthernet0/0
via 172.16.2.46, 00:38:59, FastEthernet0/1
….


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

Маршрут по умолчанию

Теперь самое время проверить доступ в интернет. Из Москвы он прекрасно себе работает, а вот если проверить, например из Петербурга (помним, что мы удалили все статические маршруты):
PC>ping

Pinging 192.0.2.2 with 32 bytes of data:


Reply from 172.16.2.5: Destination host unreachable.
Reply from 172.16.2.5: Destination host unreachable.
Reply from 172.16.2.5: Destination host unreachable.

Ping statistics for 192.0.2.2:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Это связано с тем, что ни spb-ozerki-gw1, ни spb-vsl-gw1, ни кто-либо другой в нашей сети не знает о маршруте по умолчанию, кроме msk-arbat-gw1, на котором он настроен статически.
Чтобы исправить эту ситуацию, нам достаточно дать одну команду в Москве:
msk-arbat-gw1(config)#router ospf 1
msk-arbat-gw1(config-router)#default-information originate

После этого по сети лавинно распространяется информация о том, где находится шлюз последней надежды.

Интернет теперь доступен:
PC>tracert

Tracing route to 192.0.2.2 over a maximum of 30 hops:

1 3 ms 3 ms 3 ms 172.16.17.1
2 4 ms 5 ms 12 ms 172.16.2.5
3 14 ms 20 ms 9 ms 172.16.2.1
4 17 ms 17 ms 19 ms 198.51.100.1
5 22 ms 23 ms 19 ms 192.0.2.2

Полезные команды для траблшутинга

1) Список соседей и состояние связи с ними вызывается командой show ip ospf neighbor
msk-arbat-gw1:

Neighbor ID Pri State Dead Time Address Interface
172.16.255.32 1 FULL/DROTHER 00:00:33 172.16.2.2 FastEthernet0/1.4
172.16.255.48 1 FULL/DR 00:00:34 172.16.2.18 FastEthernet0/1.5
172.16.255.64 1 FULL/DR 00:00:33 172.16.2.34 FastEthernet0/1.7
172.16.255.80 1 FULL/DR 00:00:33 172.16.2.130 FastEthernet0/1.8
172.16.255.112 1 FULL/DR 00:00:33 172.16.2.197 FastEthernet1/0.911

2) Или для EIGRP: show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.2.38 Fa0/1 12 00:04:51 40 1000 0 54
1 172.16.2.42 Fa0/0 13 00:04:51 40 1000 0 58

3) С помощью команды show ip protocols можно посмотреть информацию о запущенных протоколах динамической маршрутизации и их взаимосвязи.

Klgr-balt-gw1:
Routing Protocol is "EIGRP 1 "

Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: EIGRP 1, OSPF 1
Automatic network summarization is in effect
Automatic address summarization:
Maximum path: 4
Routing for Networks:
172.16.0.0

172.16.2.42 90 4
172.16.2.38 90 4
Distance: internal 90 external 170

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 172.16.255.64
It is an autonomous system boundary router
Redistributing External Routes from,
EIGRP 1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
172.16.2.32 0.0.0.3 area 0
Routing Information Sources:
Gateway Distance Last Update
172.16.255.64 110 00:00:23
Distance: (default is 110)

4) Для отладки и понимания работы протоколов будет полезно воспользоваться следующими командами:
debug ip OSPF events
debug ip OSPF adj
debug EIGRP packets

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

Авторы

Марат eucariot
Максим aka gluck

Слова благодарности хочу выразить Дмитрию JDima за правки и бесценные комментарии, неотразимой Наташе Самойленко за предоставленные задачки. Антону Автушко за программирование сайта для блога. И девушке со славным именем Нина за логотип сайта.

P.S.
Нашему будущему подкасту ЛинкМиАп требуется джингл и музыка на фон. Будем рады помощи, а имя композитора будет прославлено в веках.

P.P.S
Возможностей Packet Tracer нам уже не хватает. Следующий шаг - переход на что-то более серьёзное. Есть пожелания? Предлагаю устроить холивар в комментариях на тему IOU vs GNS.