Почему этот маршрутизатор не может использовать несколько маршрутов равной стоимости из OSPF?

Маршрутизатор Brocade, работающий под управлением NetIron 5.2, и эмуляция Dynamips, работающая под управлением IOS 12.4, не могут надежно использовать одинаковые пути затрат в том, что кажется очень простой конфигурацией. Я говорю «нагло», потому что я очень кратко наблюдал ожидаемое поведение Brocade, но это было после длительного периода бездействия и исчезло, как только я нарушил систему.

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

Моя прототипная сеть выглядит так.

  R1 <- N1 -> Rcore <-N2-> R2
 

R1 и R2 рекламировать назначение anycast через OSPF. Если Rcore имеет одинаковую стоимость на своих N1 и N2 интерфейсах, а назначение anycast имеет одинаковую стоимость на каждом из других маршрутизаторов, я бы ожидайте найти два пути равной стоимости в таблице маршрутизации Rcore . Я не, по крайней мере, не всегда, и даже не предсказуем. Почему бы и нет?

Кроме того, потенциально важными являются следующие.

  • Rcore - это ABR, соединяющий N1 и N2 , которые находятся в отдельных областях NSSA, на магистраль (не показана).
  • Проверка LSDB Rcore подтверждает, что ожидаемые LSA из R1 и R2 установлены правильно и содержат назначение anycast с правильным метрики.

Я рассмотрел три возможных объяснения.

  1. Я не понимаю, как настроить и использовать ECMP на этих платформах. Скорее всего, я надеюсь найти здесь просвещение, которое я не смог найти в документах поставщиков.
  2. Я не понимаю взаимодействия между областями OSPF, ECMP, anycast и т. д. Я не думаю, что это очень вероятно, но я все равно готов чему-то научиться.
  3. Эти два варианта реализации вендоров страдают от одной и той же ошибки или неправильной функции или чего-то еще. Полагаю, это может произойти.

Изменить Добавлен пример конфигурации и вывода для реализации Dynamips /Dynagen.

Configs

Маршрутизатор R1

 !
версия 12.4
!
имя хоста R1
!
интерфейс Loopback0
 ip address 1.1.1.1 255.255.255.255
 Стоимость ip ospf 1
!
интерфейс FastEthernet0 /0
 ip-адрес 10.1.0.2 255.255.255.252
 стоимость ip ospf 2
!
маршрутизатор ospf 1
 router-id 10.1.0.2
 срубы смежности изменения
 область 0.0.0.1 nssa no-summary
 пассивный интерфейс Loopback0
 сеть 1.1.1.1 0.0.0.0 область 0.0.0.1
 сеть 10.1.0.0 0.0.0.3 область 0.0.0.1
!
линейная консоль 0
 exec-timeout 0 0
!
конец
 

Маршрутизатор R2

 !
версия 12.4
!
имя хоста R2
!
интерфейс Loopback0
 ip address 1.1.1.1 255.255.255.255
 Стоимость ip ospf 1
!
интерфейс FastEthernet0 /0
 ip-адрес 10.2.0.2 255.255.255.252
 стоимость ip ospf 2
!
маршрутизатор ospf 1
 router-id 10.2.0.2
 срубы смежности изменения
 область 0.0.0.2 nssa no-summary
 пассивный интерфейс Loopback0
 сеть 1.1.1.1 0.0.0.0 область 0.0.0.2
 сеть 10.2.0.0 0.0.0.3 область 0.0.0.2
!
линейная консоль 0
 exec-timeout 0 0
!
конец
 

Маршрутизатор Rcore

 !
версия 12.4
!
имя хоста Rcore
!
интерфейс Loopback0
 ip-адрес 10.0.0.1 255.255.255.255
 Стоимость ip ospf 4
!
интерфейс FastEthernet0 /0
 ip-адрес 10.1.0.1 255.255.255.252
 стоимость ip ospf 2
!
интерфейс FastEthernet0 /1
 ip-адрес 10.2.0.1 255.255.255.252
 стоимость ip ospf 2
!
маршрутизатор ospf 1
 срубы смежности изменения
 область 0.0.0.1 nssa no-summary
 область 0.0.0.2 nssa no-summary
 пассивный интерфейс Loopback0
 сеть 10.0.0.1 0.0.0.0 область 0.0.0.0
 сеть 10.1.0.0 0.0.0.3 область 0.0.0.1
 сеть 10.2.0.0 0.0.0.3 область 0.0.0.2
!
линейная консоль 0
 exec-timeout 0 0
!
конец
 

Выход

Маршрутизатор Rcore

Маршрутизатор LSA из <кода> R1

  Rcore # sh ip ospf database router 10.1.0.2

            Маршрутизатор OSPF с идентификатором (10.0.0.1) (идентификатор процесса 1)

        Соединения маршрутизатора (область 0.0.0.1)

  LS возраст: 1618
  Опции: (Нет TOS-возможности, DC)
  LS Тип: Router Links
  Идентификатор состояния ссылки: 10.1.0.2
  Рекламный маршрутизатор: 10.1.0.2
  Номер LS Seq: 80000002
  Контрольная сумма: 0x726F
  Длина: 48
  Количество ссылок: 2

    Ссылка, связанная с: Сетей-заглушкой
     (Идентификатор ссылки) Номер сети /подсети: 1.1.1.1
     (Link Data) Сетевая маска: 255.255.255.255
      Количество показателей TOS: 0
       TOS 0 Метрики: 1

    Ссылка, связанная с: Транзитной сетью
     (Link ID) Адрес назначенного маршрутизатора: 10.1.0.2
     (Link Data) Интерфейс маршрутизатора: 10.1.0.2
      Количество показателей TOS: 0
       TOS 0 Метрики: 2
 

Маршрутизатор LSA из <кода> R2

  Rcore # sh ip ospf database router 10.2.0.2

            Маршрутизатор OSPF с идентификатором (10.0.0.1) (идентификатор процесса 1)

        Соединения маршрутизатора (область 0.0.0.2)

  LS возраст: 1766Опции: (Нет TOS-возможности, DC)
  LS Тип: Router Links
  Идентификатор состояния ссылки: 10.2.0.2
  Рекламный маршрутизатор: 10.2.0.2
  Номер LS Seq: 80000002
  Контрольная сумма: 0x8A53
  Длина: 48
  Количество ссылок: 2

    Ссылка, связанная с: Сетей-заглушкой
     (Идентификатор ссылки) Номер сети /подсети: 1.1.1.1
     (Link Data) Сетевая маска: 255.255.255.255
      Количество показателей TOS: 0
       TOS 0 Метрики: 1

    Ссылка, связанная с: Транзитной сетью
     (Link ID) Адрес назначенного маршрутизатора: 10.2.0.2
     (Данные соединения) Адрес интерфейса маршрутизатора: 10.2.0.2
      Количество показателей TOS: 0
       TOS 0 Метрики: 2
 

Отрывок таблицы маршрутизации

  Rcore # sh ip route 1.1.1.1
Запись маршрутизации для 1.1.1.1/32
  Известен через «ospf 1», расстояние 110, метрика 3, тип внутри области
  Последнее обновление от 10.1.0.2 на FastEthernet0 /0, 00:30:54 назад
  Маршрутизация дескрипторов:
  * 10.1.0.2, от 10.1.0.2, 00:30:54 назад, через FastEthernet0 /0
      Маршрутная метрика - 3, количество трафика - 1
 
16 голосов | спросил neirbowj 8 Maypm13 2013, 23:18:15

4 ответа


6

Моя первая мысль заключалась в том, что OSPF думает, что это тот же LSA, а не просто тот же префикс. Я мало знаю о парчи, но с выходами LSA из ящика Cisco я, вероятно, мог бы рассказать вам больше.

В общем, для Cisco, если маршруты равны в протоколе, они оба будут представлены в таблице маршрутизации. Таблица маршрутизации, по умолчанию, устанавливает оба пути и делает ECMP. Если показатели или протоколы отличаются, они не будут ECMP. Это также относится к различным LSA для одного и того же префикса.

ответил Pete Lumbis 9 Mayam13 2013, 02:12:55
5

Я рассматриваю вопрос о том, имеет ли ECMP смысл для anycast. Маршрутизация должна направлять anycast в логически ближайший пункт назначения, в котором один хост будет предпочтительнее другого. Даже в том случае, когда хосты anycast равноудалены, я все равно ожидаю, что это останется верным. Что касается обмена нагрузками на ECMP, я бы подумал, что для пункта назначения невозможно с помощью /32. Возможно, есть алгоритмы разделения нагрузки, которые рассматривают источник. Per-пакет кажется рискованным даже для DNS. Я считаю, что большинство готовых решений anycast запускают ospf на хосте.

Взял немного поиска, но следующая выдержка из rfc2178 подтверждает причину.

16.8. Равноценное многолучевое распространение

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

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

ответил Dennis Olvany 10 Mayam13 2013, 06:59:40
4

Я не могу воспроизвести это в своей лаборатории, используя 12.4 (24). То же топология, петля RCore area 0, R1 с lo0 и интерфейс в области 1, R2 с lo0 и интерфейс в области 2 (оба NSSA), перераспределенный маршрут подбирается для ECMP на Rcore:

  Запись маршрутизации для 10.20.0.0/16
  Известный через «ospf 1», расстояние 110, метрика 20, тип NSSA экстерн 2, передняя метрика 6477
  Последнее обновление от 2.2.2.6 на Serial1 /1, 00:02:23
  Маршрутизация дескрипторов:
    2.2.2.6, начиная с 2.2.2.21, 00:02:23, через Serial1 /1
      Маршрутная метрика - 20, количество трафика - 1
  * 1.1.2.1, от 1.1.1.1, 00:06:31, через Serial1 /0
      Маршрутная метрика - 20, количество трафика - 1
 

Возможности, о которых я могу думать: В зависимости от того, как маршрут превращается в OSPF и какой тип маршрута OSPF используется, стоимость маршрутизатора ASBR может /не может быть учтена в процессе выбора маршрута (для работы ECMP, как стоимость маршрута, так и стоимость ASBR для соответствия). Увидеть метрику о фактическом LSA для обоих может помочь.

Я смог воспроизвести это на IOS, подражая вашей конфигурации - помещая anycast на интерфейс и помещая интерфейс в область. Если вам нужен ECMP, подумайте о перераспределении маршрута в OSPF, поскольку он действительно работает.

ответил nicotine 8 Maypm13 2013, 23:57:20
2

В зависимости от того, какое оборудование Brocade вы используете (MLX? CER? XMR?), вы можете обновить программное обеспечение. Было исправлено несколько ошибок через 5,3 (и 5.4 в зависимости от вашего оборудования) деревья программного обеспечения, симптомы которых были связаны с расходами маршрута OSPF, которые не обновляются должным образом. Я не знаю всех критериев для просмотра ошибок, но несколько из них: если стоимость была изменена на 1gig-порт или интерфейс loopback на маршрутизаторе, работающем с OSPF, это изменение не было обработано и стоимость не была обновлена .

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

ответил GoatAtWork 9 Mayam13 2013, 02:32:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132