Чому цей маршрутизатор не вдається використовувати декілька маршрутів із рівними витратами від OSPF?


16

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

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

Моя прототипна мережа виглядає приблизно так.

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

R1та R2рекламувати будь-яке місце призначення через OSPF. Якщо Rcoreна його інтерфейсах N1і N2інтерфейсах є однакові витрати , а місце призначення anycast має однакову вартість на кожному з інших маршрутизаторів, я б розраховував знайти два рівні шляху в Rcoreтаблиці маршрутизації. Я цього, принаймні, не завжди, і навіть не передбачувано. Чому ні?

Серед інших потенційно релевантних деталей є наступні.

  • Rcoreє ABR з'єднання N1і N2, які знаходяться в окремих областях NSSA, до магістралі (не показано).
  • Інспекція RcoreLSDB підтверджує, що очікувані LSA з R1та R2правильно встановлені, і містять будь-яке місце призначення з правильним показником.

Я розглянув три можливі пояснення.

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

Редагувати Доданий приклад конфігурації та виводу для реалізації Dynamips / Dynagen.

Налаштування

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

!
version 12.4
!
hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf cost 1
!
interface FastEthernet0/0
 ip address 10.1.0.2 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 router-id 10.1.0.2
 log-adjacency-changes
 area 0.0.0.1 nssa no-summary
 passive-interface Loopback0
 network 1.1.1.1 0.0.0.0 area 0.0.0.1
 network 10.1.0.0 0.0.0.3 area 0.0.0.1
!
line console 0
 exec-timeout 0 0
!
end

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

!
version 12.4
!
hostname R2
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf cost 1
!
interface FastEthernet0/0
 ip address 10.2.0.2 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 router-id 10.2.0.2
 log-adjacency-changes
 area 0.0.0.2 nssa no-summary
 passive-interface Loopback0
 network 1.1.1.1 0.0.0.0 area 0.0.0.2
 network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
 exec-timeout 0 0
!
end

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

!
version 12.4
!
hostname Rcore
!
interface Loopback0
 ip address 10.0.0.1 255.255.255.255
 ip ospf cost 4
!
interface FastEthernet0/0
 ip address 10.1.0.1 255.255.255.252
 ip ospf cost 2
!
interface FastEthernet0/1
 ip address 10.2.0.1 255.255.255.252
 ip ospf cost 2
!
router ospf 1
 log-adjacency-changes
 area 0.0.0.1 nssa no-summary
 area 0.0.0.2 nssa no-summary
 passive-interface Loopback0
 network 10.0.0.1 0.0.0.0 area 0.0.0.0
 network 10.1.0.0 0.0.0.3 area 0.0.0.1
 network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
 exec-timeout 0 0
!
end

Вихідні дані

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

Маршрутизатор LSA від R1

Rcore#sh ip ospf database router 10.1.0.2

            OSPF Router with ID (10.0.0.1) (Process ID 1)

        Router Link States (Area 0.0.0.1)

  LS age: 1618
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.1.0.2
  Advertising Router: 10.1.0.2
  LS Seq Number: 80000002
  Checksum: 0x726F
  Length: 48
  Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.1.0.2
     (Link Data) Router Interface address: 10.1.0.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 2

Маршрутизатор LSA від R2

Rcore#sh ip ospf database router 10.2.0.2

            OSPF Router with ID (10.0.0.1) (Process ID 1)

        Router Link States (Area 0.0.0.2)

  LS age: 1766
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.2.0.2
  Advertising Router: 10.2.0.2
  LS Seq Number: 80000002
  Checksum: 0x8A53
  Length: 48
  Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.0.2
     (Link Data) Router Interface address: 10.2.0.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 2

Уривок таблиці маршрутизації

Rcore#sh ip route 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 10.1.0.2 on FastEthernet0/0, 00:30:54 ago
  Routing Descriptor Blocks:
  * 10.1.0.2, from 10.1.0.2, 00:30:54 ago, via FastEthernet0/0
      Route metric is 3, traffic share count is 1

Який тип маршруту є allcast?
нікотин

@nicotine: адреса anycast є вторинною адресою в інтерфейсі зворотного зв'язку. В останній перестановці цієї конфігурації він закінчується як заглушка мережі в маршрутизаторі LSA. Налаштувати фрагменти та термінальні захоплення, які слід виконати.
neirbowj

Я спробував зняти конфігурацію і вивести якомога більше, але не занадто багато. Пропозиції щодо підвищення густини інформації вітаються.
neirbowj

Це має спрацювати. Чи можете ви розміщувати вихід із наступних команд: показати протоколи ip, показати ip ospf rib debug ip маршрутизація Спробуйте ці команди на Rcore. Це повинно дати нам декілька підказок щодо того, чому подвійні маршрути не встановлені. Ваш вихід з OSPF DB мені добре виглядає.
Даніель Діб

Якщо ви відмовтеся від активного посилання, все-таки він віддає перевагу вихідному маршруту? Наприклад: у висновку CLI він показує активний маршрут, що вказує на 10.1.0.2. Якщо ви замикаєте інтерфейс на 10.1.0.2 досить довго, щоб сусідство OSPF розірвалося, то повертайте його назад в Інтернет, чи буде перевстановлений початковий маршрут до 10.1.0.2?
bigmstone

Відповіді:


7

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

Загалом, для Cisco, якщо маршрути в протоколі рівні, вони обидва будуть представлені до таблиці маршрутів. Таблиця маршрутизації за замовчуванням встановить обидва контури та зробить ECMP. Якщо показники або протоколи відрізняються, вони не будуть ECMP. Це також стосується різних LSA для одного і того ж префікса.


Так - записи в базі даних повинні нам говорити - чи мають вони однаковий адрес для переадресації та рекламний маршрутизатор?
нікотин

Я працюю над тим, щоб отримати вибірковий вибір сьогодні вдень.
neirbowj

6

Я розглядаю, чи має сенс ECMP для anycast. Маршрут повинен спрямовувати anycast до логічно найближчого пункту призначення, в якому один хост буде віддавати перевагу іншому. Навіть у випадку, коли хости будь-якого каналу є рівновіддаленими, я все одно очікую, що це залишиться правдою. Що стосується розподілу навантажень ECMP, я думаю, що за адресою / 32 неможливе призначення. Можливо, є алгоритми розподілу навантаження, які враховують джерело. Пакет видається ризикованим навіть для DNS. Я вважаю, що більшість нестандартних рішень anycast запускають ospf на хості.

Трохи пошукав , але наступний уривок із rfc2178 підтверджує причину.

16.8. Багаторівнева дорога з рівними витратами

Протокол OSPF підтримує безліч рівних маршрутів до всіх напрямків. Це можна побачити на етапах, що використовуються вище для обчислення таблиці маршрутів, та у визначенні структури таблиці маршрутизації.

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


1
Гм, я лабораторував одну зону, і ECMP присутній в основі. Хоча я все-таки заперечую, що з / 32 це марно. Можливо, актуальне наступне: morse.colorado.edu/~tlen5710/12s/OSPF.pdf
Денніс Олвані

Це говорить про те, що площа є одним із критеріїв для ECMP. Схоже, що різні області можуть бути порушником.
Денніс Олвані

OSPF на хості - так, це і є мета. / 32, призначений як вторинна адреса при зворотному звороті. Я також розглядаю конфігурацію розподілу навантаження, але це залежить в першу чергу від ECMP.
neirbowj

5

Я не можу відтворити це у своїй лабораторії, використовуючи 12.4 (24). Ця ж топологія, область RCore 0 з циклом зворотного зв'язку, R1 з lo0 та інтерфейсом в області 1, R2 з lo0 та інтерфейс в області 2 (обидва NSSA), перерозподілений маршрут отримують для ECMP на Rcore:

Routing entry for 10.20.0.0/16
  Known via "ospf 1", distance 110, metric 20, type NSSA extern 2, forward metric 6477
  Last update from 2.2.2.6 on Serial1/1, 00:02:23 ago
  Routing Descriptor Blocks:
    2.2.2.6, from 2.2.2.21, 00:02:23 ago, via Serial1/1
      Route metric is 20, traffic share count is 1
  * 1.1.2.1, from 1.1.1.1, 00:06:31 ago, via Serial1/0
      Route metric is 20, traffic share count is 1

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

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


FWIW, зображення в моєму екземплярі Dynamips становить 12,4 (25d) на 7200. Ваші результати показують "Відоме через ... NSSA extern 2", але моє шоу "Внутрішня область". Це гарна підказка.
neirbowj

Перерозподіл з'єднаних даних призведе до того, що замість використання мережевої команди або ip ospf в інтерфейсі.
Даніель Діб

@DanielDib Я перебуваю в процесі виснажливих перестановок нормальних / стуб / nssa, внутрішньообласних / зовнішніх, і принаймні Cisco + Dynamips / Brocade. Я спробую також ялівець, якщо встигну.
neirbowj

3

Залежно від того, яке обладнання Brocade ви використовуєте (MLX? CER? XMR?), Ви можете оновити програмне забезпечення. Через програмні дерева 5.3 (і 5.4, залежно від обладнання) було виправлено декілька помилок, симптоми яких пов’язані з неправильним оновленням маршруту витрат OSPF. Я не знаю всіх критеріїв для перегляду помилок, але пара з них була такою: Якщо вартість була змінена на порт 1gig або інтерфейс зворотного зв'язку на маршрутизаторі під керуванням OSPF, зміна не оброблялася і вартість не оновлювалася .

Я усвідомлюю, що ви бачите це на платформах двох виробників, тому це швидше буде проблемою конфігурації. Я також усвідомлюю, що стара технічна підтримка-пунт "оновити своє програмне забезпечення" часто не може коштувати більше ніж оком. Однак це може мати на увазі щось.


Я буду мати це на увазі. Однак R1 / R2 встановлює вартість, Rcore бачить вартість, а Rcore виявляє симптоми ECMP.
neirbowj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.