MSDP: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Строка 55: Строка 55:
SA сообщения флудятся всем пирам, исключая тот, от которого пришло сообщение. SA сообщения обязательно должны пройти RPF check.
SA сообщения флудятся всем пирам, исключая тот, от которого пришло сообщение. SA сообщения обязательно должны пройти RPF check.


Проверяется то, чтобы originated RP и MSDP peer сидят за одним интерфейсом.
Проверяется то, чтобы originated RP и MSDP peer сидят за одним интерфейсом, и трафик передается только в сторону от originated RP.


'''Правила:'''
'''Правила:'''
Строка 61: Строка 61:
''RPF check проходит, если:''
''RPF check проходит, если:''


- Originating RP = MSDP peer данного маршрутизатора.
*Originating RP = MSDP peer данного маршрутизатора.
 
*SA сообщения получены от non-originating RP:
- SA сообщения получены от non-originating RP:
 
:* сообщение получено от MSDP peer, который является BGP next-hop для originating RP.
:* сообщение получено от MSDP peer, который является BGP next-hop для originating RP.
:* IGP next-hop MSDP peer = next-hop to originating RP.
:* IGP next-hop MSDP peer = next-hop to originating RP.
:* MSDP peer принадлежит последней AS, в AS-path к originating RP.
:* MSDP peer находится в последней AS, в AS-path к originating RP.


''RPF-check проходит всегда, если:''
''RPF-check не делается, если:''


* SA сообщение от MSDP peer из mesh группы.
* SA сообщение от MSDP peer из mesh группы.

Версия 19:40, 19 декабря 2016

Overview

Используется только для IPv4.

Междоменный обмен мультикастом, использующий PIM-SM.

+: Каждый ISP сам решает где расположить RP.

+: Между доменами в качестве маршрутизации используется BGP (делаем RPF check). Если топологии unicast и multicast одинаковые - BGP в inet.0. Если разные - MP-BGP в inet.2.

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

MSDP распространяет информацию от RP из других доменов об источниках (т.к. их меньше в сети, чем получателей), используя Source-active message (SA).

Как это происходит:

  • RP (AS1) знает об источнике
  • RP (AS1) шлет инфу об источнике к RP (AS2), используя SA message.
  • RP (AS2) получает (S,G) и т.о. все получатели смогут соединиться с этим новым источником из другой AS.

Обычно запускается на PIM-SM RP, но можно использовать и на non-RP роутерах.

При сконфигурированном MSDP также строятся shared tree (от RP к получателю), source tree (от RP к источнику). И также как и в PIM-SM при получении первого мультикаст пакета DR роутером, он пытается построить shortest-path tree.

MSPD также устанавливает соседство, используя TCP (639 порт). Как только установилось соседство между MSDP peers => возможен обмен SA message.

В SA-message содержится: originating RP, source, group.

Когда у RP в одной AS появляется получатель и нужная группа находится в другой AS, RP как и в PIM-SM начинает слать PIM-join к источнику (в другую AS).

Процесс установления сессии

  • Роутер с наибольшим ip становится пассивным и слушает TCP 639 от активных роутеров.

Состояния:

  • Disable: MSDP peer не сконфигурирован.
  • Inactive: MSDP peer сконфигурирован, но не слушает или не подключен.
  • Connect: active MSDP peer пытается установить TCP сессию.
  • Listen: passive MSDP peer сконфигурирован и слушает 639 порт.
  • Established: TCP сессия установлена.

Флудинг SA-сообщений (source-active):

  • Исходное SA сообщение отправляется, когда источник в первый раз зарегистрировался на RP.
  • Если источник все еще активен, RP будет отправлять SA сообщения каждые 60 секунд.
  • SA сообщения проходят RPF-check, когда прилетают к MSDP peer.
  • Если сообщение прошло RPF-check, MSDP peer хранит его в своем кэше (inet.4). Также сообщения пересылаются всем MSDP пирам, за исключением пира, от которого пришло SA.
clear msdp cache

Iner-AS MSDP

  • !!!картинку вставить!!! и описать все своими словами!!

?? когда RP (AS14) шлет join (S,G) к source (AS12) - передается ли какое-то время инкапсулированный трафик? и по какому пути построит, если имеет несколько выходов до source.

FPR-check для SA сообщений (Peer RPF-check)

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

Проверяется то, чтобы originated RP и MSDP peer сидят за одним интерфейсом, и трафик передается только в сторону от originated RP.

Правила:

RPF check проходит, если:

  • Originating RP = MSDP peer данного маршрутизатора.
  • SA сообщения получены от non-originating RP:
  • сообщение получено от MSDP peer, который является BGP next-hop для originating RP.
  • IGP next-hop MSDP peer = next-hop to originating RP.
  • MSDP peer находится в последней AS, в AS-path к originating RP.

RPF-check не делается, если:

  • SA сообщение от MSDP peer из mesh группы.
  • SA сообщение от default MSDP peer. (случай с stub доменом, где используется всего один единственный MSDP peer).

Mesh groups

Используют для уменьшения флуда SA сообщений. Обычно используют для intra-domain, потому что SA не проходят RPF-check, а автоматически становятся accept.

Флуд в mesh-groups:

  • SA, полученные от соседей по mesh группы не передаются другим членам. Сообщения принимаются и флудятся другим MSDP peers (не из этой же mesh-group).
  • SA, полученные от пиров, не состоящих в группах - флудятся пирам и подвергаются обычному RPF-check. Если проверка прошла успешно - они флудятся другим пирам и соседями по mesh-group.

Config

set protocols msdp local-address 212.1.254.3
set protocols msdp group anycast-rp mode mesh-group
set protocols msdp group anycast-rp peer 212.1.254.14
set protocols msdp group anycast-rp peer 212.1.254.2
set protocols msdp group customers mode mesh-group
set protocols msdp group customers export export-msdp-nbn-groups
set protocols msdp group customers export export-msdp-nbn-sources
set protocols msdp group customers peer 89.20.131.85 local-address 89.20.131.84
set protocols msdp group customers peer 89.20.131.15 local-address 89.20.131.14
set protocols msdp peer 192.168.2.1 default-peer      || настройка дефолтного пира

Troubleshoting

show msdp
show mspd peer 212.1.254.14 detail
show msdp source-active 
show route table inet.4        || SA cache
show msdp statisctics

Traceoptions

set protocols msdp traceoptions file msdp-log
set protocols msdp traceoptions file size 10m
set protocols msdp traceoptions file files 30
set protocols msdp traceoptions file world-readable
set protocols msdp traceoptions flag state

Anycast RP

Обеспечивает работу нескольких RP для группы.

Принцип: Несколько RP используют 1 ip (anycast). Источники и получатели при этом используют ближайшую по unicast RP.

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

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

  • failover timeout зависит только от сходимости IGP.
  • распределение нагрузки на RP для группы - становится возможным.

MSDP работает только с IPv4. Anycast-PIM поддерживает IPv4, IPv6.

Настройка

  • Создаем уникальный ip на loopback (основной для протоколов маршрутизации) - помечаем его как primary. Также для надежности лучше его прописать как router-id.
  • Создаем неуникальный ip на loopback (для anyacst-RP) - назначаем его как local RP.
  • Non-RP роутеры должны "изучить" anycast-RP, используя любой discovery механизм (обычно все-таки это static RP, так как он самый простой).
  • Включаем MSDP mesh peering с другими anycast-RP роутерами.