Возможность многолучевого распространения BGP с различными номерами ASN для производственных сетей?

15

на Cisco (эта команда почему-то скрыта)

#bgp bestpath as-path multipath-relax

Поведение BGP по умолчанию устанавливает только маршруты с точно таким же AS_PATH в RIB. При многолучевом расслаблении AS_PATH должен быть только одинаковой длины.

Какие проблемы это может вызвать? Почему не используется чаще?

Является ли поставщик услуг транзита, усложняет ли эта функция устранение неполадок (я думаю о жалобах конечных пользователей на производительность сети)? Делает ли это более трудным узнать путь, по которому проходил конкретный трафик в данный момент времени? Есть ли что-то еще, что может помочь в устранении неполадок. Я не уверен в масштабируемости и стоимости NetFlow в сети SP.

sdaffa23fdsf
источник
1
Я поручил нескольким клиентам использовать его, я не слышал о каких-либо проблемах. draft-lapukhov-bgp-routing-large-dc-05 в значительной степени опирается на эту функцию
ytti
Я ищу похожую функцию в Juniper JunOS ... Есть ли? networkengineering.stackexchange.com/questions/6735/…
Эвертон
Вам помог какой-нибудь ответ? Если это так, вы должны принять ответ, чтобы вопрос не появлялся вечно, ища ответ. Кроме того, вы можете предоставить свой ответ и принять его.
Рон Мопин

Ответы:

15

bgp bestpath as-path multipath-relaxбыл представлен CSCea19918. Обычно для балансировки нагрузки eBGP требуются пути-кандидаты с равными затратами; т.е. идентичные атрибуты BGP:

  • тот же вес
  • тот же местный преф
  • один и тот же AS-Path (как номера AS, так и длина пути AS)
  • того же происхождения
  • то же самое MED
  • другой следующий прыжок

Как вы упомянули, эта команда ослабляет то же требование AS-Path, поэтому любой возможный AS-Path eBGP с той же длиной AS-пути может использоваться для балансировки нагрузки eBGP (это не будет балансировать нагрузку между путями eBGP и iBGP). Если вы запускаете BGP между несколькими интернет-провайдерами и ищете более эффективную балансировку нагрузки между вашими восходящими соединениями, это может вам помочь.

Какие проблемы это может вызвать?

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

Почему он будет редко использоваться?

Хороший вопрос, это было примерно с 2005 года.

Майк Пеннингтон
источник
1
Не могли бы вы объяснить, как это может вызвать появление циклов с помощью #bgp bestpath as-path multipath-relax (не игнорировать #bgp bestpath as-path)?
sdaffa23fdsf
0
The   basic  issue   is   that  the   BGP   speaker  configured   with
"multipath-relax"   gets  into   a  control   plane  <->   data  plane
inconsistency; i.e.  it advertises  only the  best path,  but installs
multiple paths in the forwarding  that have different ASPATHs than the
best. This breaks the basic tool BGP has to detect loops - ASPATH loop
check.

A (distorted) scenario below. I am sure you can come up with
a better example with a bit more time at hand.

            ...............
            : R4  AS1 (10/8)
           /:..............
     ..../......
     :  R5 AS2
     :....\.....
       /   \  ...............
     /      --:--R1
  R6 AS4      :    \    AS3
     \--------:--- R2
              :    /
              : R3 (10/8)
              :..............

In this example,
- R3 in AS3 and R4 in AS1 announce a prefix 10/8. R5 in AS2 receives
  the prefix from R1(AS3) and R4(AS1).
- AS2 is configured with 'multipath-relax' and chooses both paths
  for multipath forwarding, though it selects AS1's path as best.
- R5 advertises the prefix with AS_PATH "2 1" to R6, and R6 in turn
   to R2.
- Because of some specific policy, it is possible that R2(AS3)
  chooses R6's path as best. If it happens, there is a loop.
  Note that R1-R2-R3 represents the physical connectivity of
  the routers in AS3.
Прадош Мохапатра
источник
Спасибо за пример. Вы имеете в виду, что R3 выбирает R4 как лучший путь для 10/8, R5 пересылает часть трафика на 10/8 обратно в AS3 на R1? Почему это вызвано многолучевым расслаблением? Без многолучевого ослабления цикл R2 - R6 - R5 -R1 все еще может существовать, если нет надлежащей исходящей фильтрации (или простой 10/8 до нуля 0 в исходной AS). Мне кажется, проблема здесь в угоне BGP. Я правильно понимаю?
sdaffa23fdsf
Нет. То, что я имею в виду: (a) R3 имеет свой собственный лучший внешний путь, (b) R1 выбирает R3 как лучший, но из-за физической возможности соединения должен отправлять трафик к R2, чтобы достичь R3, (c) R2 выбирает внешний путь (полученный от R6) как лучший. Это связано с многолучевым ослаблением, поскольку R5 выбирает путь из AS3 для переадресации многолучевого распространения, который он не раскрывает. Таким образом, метод предотвращения петель ASPATH не работает в AS3.
Прадош Мохапатра
Я до сих пор не понимаю, как это можно предотвратить без многолучевого расслабления. R1 отправляет трафик в 10/8 через R2, а R2 выбирает R6 в качестве выхода (вес), R5 может выбрать R1 как лучший для 10/8 даже без многолучевого ослабления и вызвать цикл. Функция предотвращения петель ASPATH не может предотвратить петли, вызванные предпочтением внешней точки выхода для внутренней сети. Если R1 выбирает R5, R2 выбирает R6 как наилучший для 10/8, цикл формируется независимо, нет?
sdaffa23fdsf
Не уверен, как это будет цикл. R1 выбирает R5 как лучший => подразумевает, что R5 выбирает R4 в качестве выхода для трафика (в противном случае цикл AS_PATH был бы обнаружен). Таким образом, пути прохождения трафика будут: R1-> R5-> R4 или R2-> R6-> R5-> R4 или R5-> R4 или R3.
Прадош Мохапатра