Маршрутизатор Brocade под управлением NetIron 5.2 и эмуляция Dynamips под управлением IOS 12.4 не могут надежно использовать пути одинаковой стоимости в очень простой конфигурации. Я говорю «надежно», потому что я очень кратко наблюдал ожидаемое поведение от парчи, но это было после долгого периода бездействия и исчезло, как только я нарушил систему.
В случае, если это уместно, я настраиваю произвольное назначение для сетевой службы без сохранения состояния. Это будет специфичная для сайта конфигурация, с небольшим или отсутствием различий в длине сетевого пути, поэтому цель возможности произвольной передачи в основном для резервирования при сбое и частично для распределения нагрузки. Мой вопрос касается функции распределения нагрузки.
Моя сеть-прототип выглядит следующим образом.
R1 <--N1--> Rcore <--N2--> R2
R1
и R2
рекламировать любое место назначения через OSPF. Если Rcore
затраты на интерфейсы N1
и N2
интерфейсы идентичны , а назначение anycast одинаково на каждом из других маршрутизаторов, я бы ожидал найти два пути одинаковой стоимости в Rcore
таблице маршрутизации. Я не, по крайней мере, не всегда, и даже не предсказуемо. Почему нет?
Среди других, потенциально важных деталей, следующие.
Rcore
является соединением ABRN1
иN2
, которые находятся в отдельных областях NSSA, с магистралью (не показана).- Проверка
Rcore
LSDB подтверждает, что ожидаемые LSA отR1
иR2
правильно установлены, и содержат произвольное назначение с правильной метрикой.
Я рассмотрел три возможных объяснения.
- Я не понимаю, как настроить и работать ECMP на этих платформах. Это вероятно, и я надеюсь найти здесь просветление, которое не смог найти в документации продавца.
- Я не понимаю взаимодействия между областями OSPF, ECMP, anycast и т. Д. Я не думаю, что это очень вероятно, но я все равно готов чему-то научиться.
- Эти реализации двух поставщиков страдают от одной и той же ошибки, неправильной работы или чего-то еще. Я полагаю, это могло произойти.
Редактировать Добавлен пример конфигурации и вывода для реализации Dynamips / Dynagen.
Configs
маршрутизатор 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
Ответы:
Моей первой мыслью было бы, что OSPF думает, что это тот же LSA, а не просто тот же префикс. Я не знаю много о парче, но с выходами LSA от Cisco я, вероятно, мог бы рассказать вам больше.
В целом, для Cisco, если маршруты равны в протоколе, они оба будут представлены в таблице маршрутизации. Таблица маршрутизации, по умолчанию, установит оба пути и сделает ECMP. Если метрики или протоколы различаются, они не будут ECMP. Это также относится к различным LSA для одного и того же префикса.
источник
Я рассматриваю, имеет ли ECMP смысл для anycast. Маршрутизация должна направлять anycast в логически ближайший пункт назначения, в котором один хост будет иметь преимущество перед другим. Даже в случае, когда хосты anycast равноудалены, я все равно ожидал бы, что это останется верным. Что касается распределения нагрузки ECMP, я бы подумал, что для / назначения невозможно с / 32. Возможно, есть алгоритмы распределения нагрузки, которые учитывают источник. Для каждого пакета кажется рискованным, даже для DNS. Я полагаю, что большинство готовых решений anycast запускают ospf на хосте.
Потребовалось немного поиска, но следующая выдержка из rfc2178 подтверждает причину.
16.8. Многолучевое распространение с равными затратами
Протокол OSPF поддерживает несколько маршрутов с одинаковой стоимостью для всех пунктов назначения. Это можно увидеть на шагах, использованных выше для расчета таблицы маршрутизации, и в определении структуры таблицы маршрутизации.
Каждый из нескольких маршрутов будет иметь одинаковый тип (внутризоновый, межобластной, тип 1 внешний или тип 2 внешний), стоимость и будет иметь одну и ту же связанную область . Однако каждый маршрут указывает отдельный маршрутизатор следующего перехода и рекламный маршрутизатор.
источник
Я не могу воспроизвести это в своей лаборатории, используя 12.4 (24). Та же топология, петля RCore области 0, R1 с lo0 и интерфейсом в области 1, R2 с lo0 и интерфейсом в области 2 (оба NSSA), перераспределенный маршрут выбирается для ECMP на Rcore:
Возможности, о которых я могу подумать: В зависимости от того, как маршрут входит в OSPF и какой тип маршрута OSPF используется, стоимость маршрутизатора ASBR может / не может учитываться в процессе выбора маршрута (для работы ECMP обе стоимости маршрута). и стоимость в ASBR должна совпадать). Просмотр метрики фактического LSA для обоих может помочь.
Я смог воспроизвести это на IOS, имитируя вашу конфигурацию - помещая anycast в интерфейс и помещая интерфейс в область. Если вам нужен ECMP, рассмотрите возможность перераспределения маршрута в OSPF, поскольку это работает.
источник
В зависимости от того, какое оборудование Brocade вы используете (MLX? CER? XMR?), Вы можете обновить программное обеспечение. Было исправлено несколько ошибок в 5.3 (и 5.4 в зависимости от вашего оборудования) программных деревьев, симптомы которых были связаны с неправильным обновлением стоимости маршрута OSPF. Я не знаю всех критериев для просмотра ошибок, но некоторые из них были следующими: если стоимость была изменена на 1-гигабитном порту или на петлевом интерфейсе на маршрутизаторе с OSPF, изменение не было обработано и стоимость не была обновлена ,
Я понимаю, что вы видите это на платформах двух производителей, так что, скорее всего, это проблема конфигурации. Я также понимаю, что старая техническая поддержка-обновление «обновляет ваше программное обеспечение» часто может стоить не больше, чем просто на глаз. Тем не менее, это может быть что-то иметь в виду.
источник