Глава 1. Основы MPLS и VPN

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску

Причины появления и плюсы использования MPLS

  • Уменьшилось время route lookup, за счет использования меток для передачи трафика.
  • Улучшилась масштабируемость сети.
  • Использование traffic engineering (TE) дает дополнительную возможность управлять трафиком.
  • На одном и том же оборудовании можно обеспечить работу разных технологий: Ethernet, ATM, Frame Relay, IPSec.

Метки, LSP

LSP - однонаправленные.

Для LSP требуется, чтобы MPLS был включен на каждом роутере, через который проходит LSP. MPLS позволяет роутеру завести локальную DB, в которой будут метки с назначением и другими метками, обмен метками с соседними роутерами и отправка и получение пакетов, отмеченных метками.

LSP обеспечивает маршрут через сеть для пакета с меткой. В отличие от маршрутизации по dest IP, пакет с меткой маршрутизируется по сети основываясь на значении метки.

Заголовок MPLS - 32 bit (8bytes). Добавляется сразу после L2 заголовка.

Заголовок содержит: label 20 bit, CoS+Stack bit (если больше 1 метки) = 4 bit, TTL 8 bit (обычно копируется из TTL ip заголовка).

Метки MPLS уникальны в рамках роутера. На каждом роутере в MPLS домене, через который проходит LSP, метка обязательно будет меняться.

  • 0 - Explicit null (IPv4) - снятие метки на последнем роутере
  • 1 - Router alter label (IP router alert)
  • 2 - Explicit null (IPv6)
  • 3 - Implicit null - снятие метки на предпоследнем роутере - default behavior.
  • 4-15 - for future use

Таблица mps.0 - для хранения информации о метках. Для транзитных роутеров, для принятия решений - куда передавать трафик. При включении MPLS, в ней сразу появляется информаци о 0,1,2 метках.

LSP - unidirectional!

Static LSP - labels value 1,000,000 through 1,048,575

[edit protocols mpls] 
static-label-switched-path R1-to-R2 {

(ingress|egress|transit) { next-hop 192.168.86.5 (push|pop|swap) 1000001

Терминология

LSP label switched path - однонаправленный поток трафика.

LSR label switching router = роутер, использующий MPLS, который участвует в построении LSP.

Бывает нескольких типов:

  • Ingress
- Пакеты входят в LSP на ingress роутере
- Делает push метки
- Для отдельной LSP может быть только 1 ingress роутер
- Upstream для остальных роутеров в рамках LSP
  • Transit
- Для LSP может быть 0 или более transit роутеров
- Делает swap метки
- Передает трафик следующему хопу LSP
  • Penultimate
- Предпоследний для LSP роутер
- По дефолту делает pop метки и пакет без метки отправляет последнему egress роутеру.
  • Egress
- Пакеты выходят из LSP на egress роутере
- Передает пакет дальше, основываясь на IP
- Downstream для других роутеров в рамках LSP

PHP, UHP

PHP - penultimate hop popping - снятие метки на предпоследнем роутере. В таком случае egress роутер будет освобожден от этой функции и будет делает стандартный lookup по адресу назначения в таблице inet.0. Для реализации этой процедуры egress при установлении LSP отправляет предпоследнему роутеру метку 3.

UHP - ultimate hop popping - предпоследний роутер передает последнему пакет с меткой. Метка снимается на последнем роутере. Такое поведение требуется, например, для корректной работы CoS. Для реализации такого поведения нужно включить:

set protocols mpls explicit-null

При этом egress роутер при создании LPS будет отправлять предпоследнему роутеру метку 0.

inet.3

Маршруты вставляются в таблицу inet.3, в которую залезает BGP, перед тем как отрезолвить next-hop для префикса. Если удалось найти next-hop в inet.3, то BGP вставляет LSP в inet.0 в качестве физического next-hop. Если не удалось, то BGP идет в inet.0 и пытается отрезолвить там.

Если мы резолвим next-hop для Lo интерфейса удаленного маршрутизатора, что в inet.0 он будет виден как доступный через IGP протокол и трафик будет передаваться в соответствие с IGP, то есть в p2p интерфейс с соседним маршрутизатором.

Если же мы будем резолвить next-hop для префикса, находящегося за пределами IGP домена (клиентский), который будет известен по BGP (а такое будет обязательно, т.к. обычно для распространения подобных маршрутов используется next-hop self, подставляется Lo удалённого маршрутизатора), то BGP залезет в inet.3, увидит в качестве next-hop LSP до Lo удалённого маршрутизатора и подставит эту запись в inet.0!! Вот и вся магия.

То есть вся разница в том, что транзитный трафик, через роутер, участвующий в LSP, будет идти через LSP. А трафик направленный к самому роутеру (Lo интерфейсу), будут опираться на IGP.

inet.3 строится только на ingress роутерах. На транзитных - только mpls.0.