Глава 1. Основы MPLS и VPN: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Строка 86: Строка 86:
Для конкретной LSP inet.3 используется только на ingress роутерах. На транзитных будем использовать только mpls.0.
Для конкретной LSP inet.3 используется только на ingress роутерах. На транзитных будем использовать только mpls.0.


Для LSP в inet.3 будет маршрут до Lo egress роутера, который скорей всего также будет известен по какому-нибудь IGP протоколу. Но по сравнению со всеми IGP, у MPLS преферанс меньше ( =0 ), поэтому всегда будет выбираться он - копироваться в inet.0, как forwarding next-hop.
Для LSP в inet.3 будет маршрут до Lo egress роутера, который скорей всего также будет известен по какому-нибудь IGP протоколу. Но по сравнению со всеми IGP (OSPF/ISIS), у MPLS (RSVP/LDP) преферанс меньше (10/15 vs 7/9), поэтому всегда будет выбираться он - копироваться в inet.0, как forwarding next-hop.

Версия 17:41, 26 февраля 2017

Причины появления и плюсы использования 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

Использование implicit null может немного подкосить ваш QoS дизайн, поэтому для QoS лучше использовать explicit-null:

[edit protocols mpls]
explicit-null
[edit protocols ldp]
explicit-null

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

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
		to 10.200.86.1 -только для ingress
		(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 - MPLS routing table

Маршруты вставляются в таблицу 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.

Для конкретной LSP inet.3 используется только на ingress роутерах. На транзитных будем использовать только mpls.0.

Для LSP в inet.3 будет маршрут до Lo egress роутера, который скорей всего также будет известен по какому-нибудь IGP протоколу. Но по сравнению со всеми IGP (OSPF/ISIS), у MPLS (RSVP/LDP) преферанс меньше (10/15 vs 7/9), поэтому всегда будет выбираться он - копироваться в inet.0, как forwarding next-hop.