Глава 5. MPLS Features: различия между версиями
м |
|||
(не показано 19 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{#description2:Дополнительные функции MPLS. Install option. Forwarding adjacency. Кратко о Traffic engineering. Automatic bandwidth provisioning. MPLS TTL. LSP в качестве next-hop. Информация для подготовки к экзаменам Juniper.}} | |||
{{JNCIS_content}} | |||
= Install option = | = Install option = | ||
Функция нужна для того, чтобы: | |||
при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в LSP, | |||
при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в | но и трафик, предназначенный для самого egress router'а тоже заворачивался в LSP. | ||
но и трафик, предназначенный для egress router'а тоже заворачивался в LSP. | |||
==Поведение без install option== | |||
H0> show configuration protocols mpls | H0> show configuration protocols mpls | ||
label-switched-path h0-h2 { | label-switched-path h0-h2 { | ||
Строка 12: | Строка 15: | ||
primary via_h3 { | primary via_h3 { | ||
standby; | standby; | ||
path via_h3 { | path via_h3 { | ||
3.3.3.3 loose; | 3.3.3.3 loose; | ||
H0> show route 64.25.1.1 extensive | H0> show route 64.25.1.1 extensive | ||
Строка 48: | Строка 49: | ||
2 10.7.5.2 (10.7.5.2) 0.329 ms 0.297 ms 0.280 ms | 2 10.7.5.2 (10.7.5.2) 0.329 ms 0.297 ms 0.280 ms | ||
== | == Добавляем install == | ||
При этом активный маршрут до protocol next-hop идет по ospf, НО также появляется запись о нем в inet.3. | |||
При этом активный маршрут до protocol | |||
H0> show configuration protocols mpls | H0> show configuration protocols mpls | ||
Строка 58: | Строка 58: | ||
primary via_h3 { | primary via_h3 { | ||
standby; | standby; | ||
path via_h3 { | path via_h3 { | ||
3.3.3.3 loose; | 3.3.3.3 loose; | ||
H0> show route 2.2.2.2 | H0> show route 2.2.2.2 | ||
Строка 73: | Строка 71: | ||
> to 10.7.7.3 via em1.0, label-switched-path h0-h2 | > to 10.7.7.3 via em1.0, label-switched-path h0-h2 | ||
== Активируем | == Активируем install == | ||
При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным. | При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным. | ||
Строка 82: | Строка 80: | ||
primary via_h3 { | primary via_h3 { | ||
standby; | standby; | ||
secondary via_h1 { | secondary via_h1 { | ||
standby; | standby; | ||
H0> show route 2.2.2.2 | H0> show route 2.2.2.2 | ||
Строка 108: | Строка 104: | ||
= Forwarding adjacency = | = Forwarding adjacency = | ||
Можно LSP проанонсировать в OSPF как p2p-link. | |||
Эта LSP будет учавствовать в SPF алгоритме выбора лучшего пути. | |||
Через этот LSP будет передаваться только клиентский трафик, но не служебный. | Через этот LSP будет передаваться только клиентский трафик, но не служебный. | ||
Чтобы работало, нужно включить | Чтобы работало, нужно включить RSVP на нужных интерфейсах, создать LSP, добавить LSP в OSPF. | ||
H0> show route | H0> show route | ||
Строка 129: | Строка 127: | ||
interface em3.0 { | interface em3.0 { | ||
passive; | passive; | ||
'''label-switched-path h0-h2 { | '''label-switched-path h0-h2 { | ||
metric 1;''' | metric 1;''' | ||
H0> show route | H0> show route | ||
Строка 192: | Строка 187: | ||
> to 10.7.7.3 via em1.0, label-switched-path h0-h2 | > to 10.7.7.3 via em1.0, label-switched-path h0-h2 | ||
= | = LSP в качестве Next Hop = | ||
Если до префикса есть две LSP с равной стоимостью, то с помощью policy можно назначить конкретную в качестве next-hop. | |||
Если до префикса есть | |||
H0> show configuration policy-options | |||
policy-statement lsp_next-hop { | policy-statement lsp_next-hop { | ||
term loop { | term loop { | ||
from { | from { | ||
route-filter 2.2.2.2/32 exact; | route-filter 2.2.2.2/32 exact; | ||
then { | then { | ||
install-nexthop lsp [ h0-h2 down ]; | install-nexthop lsp [ h0-h2 down ]; | ||
accept; | accept; | ||
H0> show configuration routing-options | |||
forwarding-table { | forwarding-table { | ||
export lsp_next-hop; | export lsp_next-hop; | ||
H0> show route 2.2.2.2 | |||
inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) | inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) | ||
+ = Active Route, - = Last Active, * = Both | + = Active Route, - = Last Active, * = Both | ||
Строка 228: | Строка 217: | ||
> to 10.7.7.3 via em1.0, label-switched-path down | > to 10.7.7.3 via em1.0, label-switched-path down | ||
H0> traceroute 2.2.2.2 | |||
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets | traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets | ||
1 10.7.7.3 (10.7.7.3) 0.341 ms 0.270 ms 0.206 ms | 1 10.7.7.3 (10.7.7.3) 0.341 ms 0.270 ms 0.206 ms | ||
MPLS Label=300176 CoS=0 TTL=1 S=1 | MPLS Label=300176 CoS=0 TTL=1 S=1 | ||
2 2.2.2.2 (2.2.2.2) 0.290 ms 0.291 ms 0.271 ms | 2 2.2.2.2 (2.2.2.2) 0.290 ms 0.291 ms 0.271 ms | ||
= Automatic bandwidth provisioning = | = Automatic bandwidth provisioning = | ||
Позволяет маршрутизатору мониторить актуальный трафик, проходящий по LSP и изменять конфигурацию этого LSP для поддержания нужного кол-ва трафика. | |||
Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту). | Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту). | ||
По истечению данного времени LSP резервирует нужную полосу. | |||
Используется make-before-brake и SE-style. | |||
*По дефолту на каждом хопе (и внутри | = MPLS TTL = | ||
*При этом | '''Default''' | ||
*По дефолту на каждом хопе (и внутри LSP тоже) значение TTL уменьшается на 1. | |||
*При этом на ingress-роутере IP TTL копируется в MPLS TTL, и при прохождении через LSP уменьшается на 1, IP TTL остается неизменным. | |||
На egress-роутере значение TTL копируется обратно из MPLS в IP. | |||
*Только для Juniper | '''no-decrement-ttl''' | ||
* | *Только для Juniper [проприетарная фича] | ||
*Настраивается на ingress-роутере. [но так как должна работать на всей сети, то настраивается на всех роутерах] | |||
*Можно применять в разные иерархии (глобально mpls, lsp, path) | *Можно применять в разные иерархии (глобально mpls, lsp, path) | ||
*IP TTL уменьшается только на egress роутере. | *IP TTL уменьшается только на egress-роутере. | ||
*MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL. | *MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL. | ||
'''no-propogate-ttl''' | |||
*Мультивендорная фича. | *Мультивендорная фича. | ||
*Должна быть сконфигурирована на всех LSR. | *Должна быть сконфигурирована на всех PE (LSR). | ||
*Применяется только глобально в protocol mpls иерархии. | *Применяется только глобально в protocol mpls иерархии. | ||
*Если LSP уже | *Если LSP уже установлена, то после применения команды, к нему не применится команда. | ||
=Дополнительная информация= | |||
*[[Отказоустойчивость и оптимизация в MPLS]] | |||
*[[Traffic engineering]] | |||
*[[Реализация MPLS в ядре сети]] |
Текущая версия на 17:40, 15 июля 2021
JNCIS content Статья покрывает только курс JNCIS. Возможно, тема представлена детальнее в других разделах. А для JNCIS и этого достаточно. ¯\_(ツ)_/¯ |
Install option
Функция нужна для того, чтобы:
при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в LSP, но и трафик, предназначенный для самого egress router'а тоже заворачивался в LSP.
Поведение без install option
H0> show configuration protocols mpls label-switched-path h0-h2 { to 2.2.2.2; primary via_h3 { standby; path via_h3 { 3.3.3.3 loose;
H0> show route 64.25.1.1 extensive inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) 64.25.1.1/32 (1 entry, 1 announced) KRT in-kernel 64.25.1.1/32 -> {indirect(131070)} Nexthop: Self AS path: [500] 200 I Communities: Path 64.25.1.1 from 2.2.2.2 Vector len 4. Val: 0 *BGP Preference: 170/-101 Next hop type: Indirect ... Indirect next hops: 1 Protocol next hop: 2.2.2.2 Metric: 2 2.2.2.2/32 Originating RIB: inet.3 H0> show route 2.2.2.2 inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[OSPF/10] 00:59:11, metric 2 > to 10.7.7.3 via em1.0
H0> traceroute 2.2.2.2 traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.334 ms 0.237 ms 0.192 ms 2 2.2.2.2 (2.2.2.2) 0.313 ms 0.300 ms 0.251 ms
H0> traceroute 64.25.1.1 traceroute to 64.25.1.1 (64.25.1.1), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.332 ms 0.228 ms 0.231 ms MPLS Label=299840 CoS=0 TTL=1 S=1 2 10.7.5.2 (10.7.5.2) 0.329 ms 0.297 ms 0.280 ms
Добавляем install
При этом активный маршрут до protocol next-hop идет по ospf, НО также появляется запись о нем в inet.3.
H0> show configuration protocols mpls label-switched-path h0-h2 { to 2.2.2.2; install 2.2.2.2/32; primary via_h3 { standby; path via_h3 { 3.3.3.3 loose;
H0> show route 2.2.2.2 inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[OSPF/10] 00:59:55, metric 2 > to 10.7.7.3 via em1.0 inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:00:04, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2
Активируем install
При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным.
H0> show configuration protocols mpls label-switched-path h0-h2 to 2.2.2.2; install 2.2.2.2/32 active; primary via_h3 { standby; secondary via_h1 { standby;
H0> show route 2.2.2.2 inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:00:31, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2 to 10.7.7.3 via em1.0, label-switched-path h0-h2 [OSPF/10] 01:02:23, metric 2 > to 10.7.7.3 via em1.0 inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:02:32, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2 to 10.7.7.3 via em1.0, label-switched-path h0-h2
H0> traceroute 2.2.2.2 traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.259 ms 0.215 ms 0.215 ms MPLS Label=299840 CoS=0 TTL=1 S=1 2 2.2.2.2 (2.2.2.2) 0.324 ms 0.283 ms 0.280 ms
Forwarding adjacency
Можно LSP проанонсировать в OSPF как p2p-link.
Эта LSP будет учавствовать в SPF алгоритме выбора лучшего пути.
Через этот LSP будет передаваться только клиентский трафик, но не служебный.
Чтобы работало, нужно включить RSVP на нужных интерфейсах, создать LSP, добавить LSP в OSPF.
H0> show route 2.2.2.2/32 *[OSPF/10] 00:00:03, metric 2 > to 10.7.7.3 via em1.0
H0> traceroute 2.2.2.2 traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.313 ms 0.218 ms 0.178 ms 2 2.2.2.2 (2.2.2.2) 0.286 ms 0.272 ms 0.252 ms
H0> show configuration protocols ospf traffic-engineering; area 0.0.0.0 { interface em1.0; interface em3.0 { passive; label-switched-path h0-h2 { metric 1;
H0> show route 2.2.2.2/32 *[OSPF/10] 00:00:01, metric 1 > to 10.7.7.3 via em1.0, label-switched-path h0-h2 to 10.7.7.3 via em1.0, label-switched-path h0-h2 H0> traceroute 2.2.2.2 traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.275 ms 0.219 ms 0.208 ms MPLS Label=299952 CoS=0 TTL=1 S=1 2 2.2.2.2 (2.2.2.2) 0.286 ms 0.270 ms 0.278 ms
Traffic engineering
При включенном traffic engineering маршруты из inet.3 перемещаются в inet.0
H0> show route inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 1.1.1.1/32 *[OSPF/10] 01:26:59, metric 2 > to 10.7.7.3 via em1.0 2.2.2.2/32 *[OSPF/10] 01:26:59, metric 2 > to 10.7.7.3 via em1.0 3.3.3.3/32 *[OSPF/10] 01:26:59, metric 1 > to 10.7.7.3 via em1.0 4.4.4.4/32 *[OSPF/10] 01:26:59, metric 3 > to 10.7.7.3 via em1.0 10.7.1.0/24 *[OSPF/10] 01:26:59, metric 3 > to 10.7.7.3 via em1.0 inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:27:08, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2 to 10.7.7.3 via em1.0, label-switched-path h0-h2
H0> show configuration protocols mpls traffic-engineering mpls-forwarding; H0> show route inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) @ = Routing Use Only, # = Forwarding Use Only + = Active Route, - = Last Active, * = Both 1.1.1.1/32 *[OSPF/10] 00:00:06, metric 2 > to 10.7.7.3 via em1.0 2.2.2.2/32 @[OSPF/10] 00:00:06, metric 2 > to 10.7.7.3 via em1.0 #[RSVP/7/1] 00:00:02, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2 3.3.3.3/32 *[OSPF/10] 00:00:06, metric 1 > to 10.7.7.3 via em1.0 4.4.4.4/32 *[OSPF/10] 00:00:06, metric 3 > to 10.7.7.3 via em1.0 10.7.1.0/24 *[OSPF/10] 00:00:06, metric 3 > to 10.7.7.3 via em1.0 inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:00:02, metric 2 > to 10.7.7.3 via em1.0, label-switched-path h0-h2
LSP в качестве Next Hop
Если до префикса есть две LSP с равной стоимостью, то с помощью policy можно назначить конкретную в качестве next-hop.
H0> show configuration policy-options policy-statement lsp_next-hop { term loop { from { route-filter 2.2.2.2/32 exact; then { install-nexthop lsp [ h0-h2 down ]; accept;
H0> show configuration routing-options forwarding-table { export lsp_next-hop;
H0> show route 2.2.2.2 inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:01:12, metric 2 to 10.7.7.3 via em1.0, label-switched-path up > to 10.7.7.3 via em1.0, label-switched-path down [OSPF/10] 00:03:36, metric 2 > to 10.7.7.3 via em1.0 inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2.2.2.2/32 *[RSVP/7/1] 00:01:12, metric 2 to 10.7.7.3 via em1.0, label-switched-path up > to 10.7.7.3 via em1.0, label-switched-path down
H0> traceroute 2.2.2.2 traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets 1 10.7.7.3 (10.7.7.3) 0.341 ms 0.270 ms 0.206 ms MPLS Label=300176 CoS=0 TTL=1 S=1 2 2.2.2.2 (2.2.2.2) 0.290 ms 0.291 ms 0.271 ms
Automatic bandwidth provisioning
Позволяет маршрутизатору мониторить актуальный трафик, проходящий по LSP и изменять конфигурацию этого LSP для поддержания нужного кол-ва трафика.
Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту).
По истечению данного времени LSP резервирует нужную полосу.
Используется make-before-brake и SE-style.
MPLS TTL
Default
- По дефолту на каждом хопе (и внутри LSP тоже) значение TTL уменьшается на 1.
- При этом на ingress-роутере IP TTL копируется в MPLS TTL, и при прохождении через LSP уменьшается на 1, IP TTL остается неизменным.
На egress-роутере значение TTL копируется обратно из MPLS в IP.
no-decrement-ttl
- Только для Juniper [проприетарная фича]
- Настраивается на ingress-роутере. [но так как должна работать на всей сети, то настраивается на всех роутерах]
- Можно применять в разные иерархии (глобально mpls, lsp, path)
- IP TTL уменьшается только на egress-роутере.
- MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL.
no-propogate-ttl
- Мультивендорная фича.
- Должна быть сконфигурирована на всех PE (LSR).
- Применяется только глобально в protocol mpls иерархии.
- Если LSP уже установлена, то после применения команды, к нему не применится команда.