Протокол распространения меток (LDP) в MPLS


9

Недавно я проходил через технологию MPLS. У меня возникли сомнения после прочтения некоторых функций MPLS.

A---B---c
    |    |
    D----E

Допустим, маршрутизаторы A, E - это LER, а B, C, D - это LSR, мы хотим отправлять трафик из A-> E. Я узнал, что только LSR может изначально назначать метки, и в LDP нижестоящие маршрутизаторы инициируют распределение меток и привязку метки / FEC.

Can someone please explain me
1.)how A(LER) can transmit the packets to B(LSR).
2.)how can B know which label and port to forward,if it receives the distribution from C(Where C and D are downstream routers)

Спасибо.

Ответы:


12

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

Обычная метка связана с информацией о перезаписи выхода, то есть поиск по метке вернет выходной интерфейс (со всей необходимой информацией, такой как MAC-адрес, VLAN и т. Д.)

Предположим, что все ссылки являются IGP метрикой 1, за исключением того, что BC является метрикой 2.

Для A для отправки в E loopback (192.0.2.5) произойдет следующее

  1. E выделит явное (0) или неявное (по умолчанию) для 192.0.2.5/32
  2. E распространит префикс + метка (FEC) на C и D, используя LDP
  3. C выделит для этого локальную метку, скажем, 100 (может быть что угодно)
    1. C запрограммирует запись FIB, так что метка 100 указывает на интерфейс к E, и операции над меткой MPLS «SWAP 0», если явный ноль, или «POP», если неявный ноль
    2. C запрограммирует запись FIB, так что префикс 192.0.2.5/32 указывает на интерфейс к E, и операция метки MPLS «PUSH 0», если явный ноль
  4. D выделит для этого локальную метку, скажем, 200 (может быть что угодно, даже 100, 300, 400)
    1. D запрограммирует запись FIB, так что метка 200 будет указывать на интерфейс к E, и операция метки MPLS «SWAP 0», если явный ноль, или «POP», если неявный ноль
    2. D запрограммирует запись FIB так, чтобы префикс 192.0.2.5/32 указывал на интерфейс к E, и операция метки MPLS «PUSH 0», если явный ноль
  5. D и C распространят префикс + метку на B, используя LDP
  6. B выделит для этого локальный ярлык, скажем, 300 (может быть что угодно)
    1. B запрограммирует запись FIB, так что метка 300 будет указывать на интерфейс к D (из-за метрики IGP!), А операция метки MPLS «SWAP 200»
    2. B запрограммирует запись FIB, так что префикс 192.0.2.5/32 указывает на интерфейс к D, а операция надписи MPLS «PUSH 200»
  7. B распространит префикс + метку к A, используя LDP
  8. A выделит для этого локальный ярлык, скажем 400 (может быть что угодно)
    1. A запрограммирует запись FIB, так что метка 400 указывает на интерфейс в направлении B, а операция метки MPLS «SWAP 300»
    2. A запрограммирует запись FIB, так что префикс 192.0.2.5/32 указывает на интерфейс к B, и операция надписи MPLS «PUSH 300»

Теперь, что происходит в плоскости пересылки, когда A отправляет на 192.0.2.5/32

  1. А НАЖМИТ (наложит) метку 300 и пошлет к Б
  2. B свяжется с FIB для 300, который является интерфейсом D и SWAP 200
  3. D свяжется с FIB для 200, который является Интерфейсом E и POP (или SWAP 0)
  4. E получит кадр

1
Спасибо, приятель. Что произойдет, если БК также будет метрической 1?
starkk92

2
Если показатель BC также равен 1, а балансировка нагрузки отключена, существует некоторый прерыватель связей, например, идентификатор маршрутизатора. Если балансировка нагрузки включена, вы будете использовать ECMP (Equal Cost Multi Path). MPLS никоим образом не меняет нормальное поведение IPv4 / IPv6 в случае балансировки нагрузки, поэтому, если вы понимаете, как работает IPv4 в этом случае, это точно так же, только с метками, добавленными к фреймам. Таким образом, в шагах 6.1 и 6.2 вы добавите ДВЕ записи FIB, и трафик будет выполнять HASH (ключи) -> [12], чтобы решить, какой из них использовать.
ytti
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.