Глава 5. MPLS Features: различия между версиями
(Новая страница: «= Install option = Функция нужна для того, чтобы например: при построении LSP, не только трафик для…») |
|||
| Строка 2: | Строка 2: | ||
Функция нужна для того, чтобы например: | Функция нужна для того, чтобы например: | ||
при построении LSP, не только трафик для которого egress router является next-hop заворачивался в lsp, | при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в lsp, | ||
но и трафик предназначенный для egress router а тоже заворачивался в | но и трафик, предназначенный для egress router'а тоже заворачивался в LSP. | ||
== Поведение по умолчанию == | == Поведение по умолчанию == | ||
| Строка 17: | Строка 17: | ||
} | } | ||
H0> show route 64.25.1.1 extensive | |||
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) | inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) | ||
64.25.1.1/32 (1 entry, 1 announced) | 64.25.1.1/32 (1 entry, 1 announced) | ||
| Строка 31: | Строка 31: | ||
'''Protocol next hop: 2.2.2.2 Metric: 2''' | '''Protocol next hop: 2.2.2.2 Metric: 2''' | ||
'''2.2.2.2/32 Originating RIB: inet.3''' | '''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) | inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) | ||
+ = Active Route, - = Last Active, * = Both | + = Active Route, - = Last Active, * = Both | ||
| Строка 37: | Строка 37: | ||
> to 10.7.7.3 via em1.0 | > 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 | 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 | 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 | 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 | 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 | 1 10.7.7.3 (10.7.7.3) 0.332 ms 0.228 ms 0.231 ms | ||
| Строка 63: | Строка 63: | ||
} | } | ||
H0> show route 2.2.2.2 | |||
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) | inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) | ||
+ = Active Route, - = Last Active, * = Both | + = Active Route, - = Last Active, * = Both | ||
| Строка 77: | Строка 77: | ||
При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным. | При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным. | ||
H0> show configuration protocols mpls label-switched-path h0-h2 | |||
to 2.2.2.2; | to 2.2.2.2; | ||
install 2.2.2.2/32 '''active'''; | install 2.2.2.2/32 '''active'''; | ||
| Строка 87: | Строка 87: | ||
} | } | ||
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 | ||
| Строка 101: | Строка 101: | ||
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 | 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 | 1 10.7.7.3 (10.7.7.3) 0.259 ms 0.215 ms 0.215 ms | ||
Версия 14:58, 15 октября 2016
Install option
Функция нужна для того, чтобы например: при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в lsp, но и трафик, предназначенный для egress router'а тоже заворачивался в LSP.
Поведение по умолчанию
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 nexp-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
Активируем
При этом маршрут до 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 как p-to-p link. Этот LSP будет учавствовать в SFP алгоритме выбора лучшего пути. Через этот LSP будет передаваться только клиентский трафик, но не служебный.
Чтобы работало, нужно включить rsvp на нужных интерфейсах, прокинуть лсп, добавить лсп в оспф.
bob@H0> show route
2.2.2.2/32 *[OSPF/10] 00:00:03, metric 2
> to 10.7.7.3 via em1.0
bob@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
bob@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;
}
}
bob@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
bob@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
vlad@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
vlad@H0> show configuration protocols mpls
traffic-engineering mpls-forwarding;
vlad@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
Selecting an LSP Next Hop
Если до префикса есть 2 LSP в равной стоимостью, то с помощью полиси можно назначить конкретный в кач-ве некст-хопа.
bob@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;
}
}
}
bob@H0> show configuration routing-options
forwarding-table {
export lsp_next-hop;
}
bob@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
bob@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.
TTL
Default
- По дефолту на каждом хопе (и внутри lsp тоже) значение ttl -1.
- При этом не ingerss роутере 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
- Мультивендорная фича.
- Должна быть сконфигурирована на всех LSR.
- Применяется только глобально в protocol mpls иерархии.
- Если LSP уже установлен, то после применения команды, то к нему не применится команда.