Инжениринг трафика в сетях MPLS. Часть I

advertisement
Тема 4. MPLS Traffic
Engineering (TE)
•Постановка задачи
•Поиск пути с помощью протоколов класса Constraintbased Routing - OSPF и IS-IS с расширениями
•Сигнализация с помощью RSVP ext и CR-LDP
•Примеры конфигурирования туннелей MPLS TE
Постановка задачи TE
Две группы целей Traffic Engineering:
1. Ориентированные на улучшение характеристик
трафика:
 Минимизации процента потерь пакетов
 Минимизации задержек в очередях
 Максимизации передаваемых всплесков
трафика
Рассматриваются относительно всего набора потоков
трафика, например: min (max Pi), где Pi – потери i-го
потока
2. Ориентированные на улучшение коэффициента
использования ресурсов:
•
максимизация загрузки каждого устройства
и канала
•
максимизация общей производительности
сети (пакеты в сек)
Обе группы целей достигаются при снижении уровня
заторов (congestion) в сети
Затор – появление большой очереди пакетов в
определенной точке сети (порт, внутренний буфер
устройства), приводит к длительному ожиданию пакетов
и потерям при превышении очереди емкости буфера
Влияние заторов
Заторы приводят к:
•Снижение качественных характеристик
передаваемого трафика – большие задержки,
высокий процент потерь при постоянных заторах в
какой-либо части сети (если средняя интенсивность
трафика постоянно превышает среднюю пропускную
способность канала или устройства)
•Неэффективному использованию ресурсов –
остальные (кроме перегруженных) ресурсы
недоиспользуются, так как к ним поступает меньше
пакетов (из-за потерь)
Причины появления заторов
1. Сетевых ресурсов недостаточно для
обслуживания предложенной нагрузки (offered
load)
2. Потоки трафика неэффективно распределены по
инфраструктуре сети
Устранение заторов
1. Недостаток ресурсов устраняется:
Увеличением емкости ресурсов – замена каналов и
устройств на более производительные
Применением классической техники борьбы с
заторами:
 ограничение интенсивности входных потоков
(rate limit)
 управление очередями для перераспределения
ресурса в пользу привилегированного трафика
(приоритеты)
Устранение заторов (2)
2. Неэффективность распределения потоков трафика
устраняется методами Traffic Engineering – предложенная
нагрузка более сбалансировано заполняет имеющиеся
каналы и устройства.
Пути следования трафика по сети
выбираются в общем случае отличными от
путей, выбираемых IGP
Предложенная нагрузка
25
13
12
50
8
30
Распределение нагрузки по сети –
выбор путей следования трафика
R3
R2
50
8
R1
50
25
40
R7
100
R8
50
50
12
13
20
100
R11
R9
30
R10
100
25
155
75
R6
R4
10
R5
Критерий оптимального
распределения нагрузки
Min (max Ki),
где Ki – коэффициент использования i-го ресурса
Ресурс – входной и выходной интерфейсы каждого
маршрутизатора
Какой коэффициент использования входного интерфейса
маршрутизатора R1?
Какой интерфейс в сети имеет максимальный
коэффициент использования?
Как лучше проложить путь для нового потока R2-R6 с
интенсивностью 10?
Распространение
топологической информации
Необходим протокол маршрутизации
состояния связей
IS-IS or OSPF
Это требование должно соблюдаться
только для задач MPLS-TE!
Не для VPN или IGP
Почему протокол состояния
связей
Пример сети:
- все связи имеют стоимость 10
- путь от RtrA до RtrE: A->B->E, стоимость 20
- весь трафик от A к {E,F,G} идет по пути A->B->E
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Что видит протокол класса DV
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
B
30
RtrA не видит все связи
RtrA знает только об
одном кратчайшем пути
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Что видит протокол состояния связей
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
B
30
RtrA видит все связи
RtrA вычисляет
кратчайший путь
Таблица маршрутизации
получается та же!
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Проблема кратчайшего пути
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
B
30
Некоторые связи DS3, а некоторые
- OC3
• RtrA передает 40Mb для
RtrF, 40Mb - для RtrG
• Огромные (44%) потери
пакетов на связи RtrB>RtrE!
• Изменение пути на A->C->D->E
не помогает
RtrB
RtrA
RtrF
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Решение с помощью MPLS TE
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
Tunnel0
30
G
Tunnel1
30
RtrA видит все связи
RtrA вычисляет
кратчайший путь на
основе других
критериев, отличных от
просто крачайшего пути
Заторов нет!
RtrB
RtrA
RtrF
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Что такое туннель TE?
R3
R2
R4
R7
R1
R9
R8
R10
R11
R5
R6
Туннель – это путь между двумя LSR сети, заданный:
точно (strict) вручную (R3-R10-R11-R6)
свободно (loose) – (R3-R6)
Резервирует определенную пропускную способность
для трафика (bandwidth)
Что такое туннель TE?
R3
R2
R4
R7
R1
R8
R9
R11
R10
R5
R6
Свободное задание туннеля (dynamic у Cisco) – это
автоматический способ определения точного пути между
двумя LSR сети, как правило являющимися конечными
точками приложения нагрузки
Конфигурирование туннеля
1. Статическое (точное) задание
interface Tunnel158
ip unnumbered Loopback0
tunnel destination 10.10.10.4
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 2 2
tunnel mpls traffic-eng bandwidth 158
tunnel mpls traffic-eng path-option 1 explicit name aabbcc
ip explicit-path name aabbcc enable
next-address 10.1.1.21
next-address 10.1.1.10
next-address 10.1.1.1
next-address 10.1.1.14
Конфигурирование туннеля
2. Динамическое (свободное) задание
interface Tunnel1
ip unnumbered Loopback0
tunnel destination 10.10.10.6
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 5 5
tunnel mpls traffic-eng bandwidth 25
tunnel mpls traffic-eng path-option 2 dynamic
Точный путь будет вычисляться
автоматически
Как работает MPLS-TE
-Information Distribution
-Path Calculation
-Path Setup
-Forwarding Traffic Down A Tunnel
Расширения протокола OSPF
Новый тип LSA (Link State Attribute) TLV:
1 - Link type (1 octet)
2 - Link ID (4 octets)
3 - Local interface IP address (4 octets)
4 - Remote interface IP address (4 octets)
Расширения протокола OSPF
(продолжение)
Новый тип LSA (Link State Attribute) TLV:
5 - Traffic engineering metric (4 octets)
Может отличаться от метрики IGP:
6 - Maximum bandwidth (4 octets)
7 - Maximum reservable bandwidth (4 octets)
8 - Unreserved bandwidth (32 octets)
- для каждого из 8 классов COS
9 - Resource class/color (4 octets)
Вычисление пути
Модифицированный алгоритм Дийкстры в
первом LSR туннеля
Носит также название Constrained SPF, CSPF
Находит маршрут с минимальной метрикой,
удовлетворяющий ограничению bandwidth для
туннеля
Или алгоритм PCALC (path calculation)
Вычисление пути
Обычный SPF находит
кратчайший путь по
всем связям сети
“каковы кратчайшие
пути ко всем
маршрутизаторам?”
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Вычисление пути
Обычный SPF
Решение – дерево
кратчайших путей
“каковы кратчайшие
пути ко всем
маршрутизаторам?”
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Вычисление пути - CSPF
Constrained SPF – найти
кратчайший путь к
специфическому узлу
Принять во внимание
ограничения!
“каков кратчайший
путь к
маршрутизатору F, на
котором имеется 40
Мб полосы
пропускания?”
RtrB
RtrA
RtrF
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Вычисление пути - CSPF
Решение
Совпало с решением
обычного OSPF – в
чем разница?
“каков кратчайший
путь к
маршрутизатору F, на
котором имеется 40
Мб полосы
пропускания?”
RtrB
RtrA
RtrF
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Вычисление пути - CSPF
Разница – при прокладке
следующего пути 40 Мб
Изменилась доступная
полоса
“каков кратчайший
путь к
маршрутизатору F, на
котором имеется 40
Мб полосы
пропускания?”
RtrB
RtrF
5
RtrA
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Вычисление пути - CSPF
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
Tunnel0
30
G
Tunnel1
30
Конечный результат :
- Пропускная способность
сети используется
эффективно!
RtrB
RtrA
RtrF
OC3
RtrE OC3
DS3
RtrG
OC3
DS3
RtrC
DS3
RtrD
OC3
Вычисление пути - CSPF
А если имеется более чем один путь,
удовлетворяющий условиям условиям
требуемой пропускной способности?
Алгоритм PCALC:
1.
2.
3.
4.
Найти все пути, удовлетворяющие ограничению
bandwidth, с минимальной метрикой IGP
(Дийкстра)
Выбрать путь с наибольшей минимальной
полосой вдоль пути
Если он не один, то выбрать путь с наименьшим
количеством хопов
Если он не один, то выбрать один случайным
образом
Алгоритм PCALC
Каков наилучший
путь от A до Z
с BW 20M?
{cost, BW}
Путь имеет
стоимость 25, не
минимальную!
{10,100M}
{8,80M}
RtrA
RtrZ
{4,90M}
{8,90M}
Все связи {10,100M}
{8,90M}
Все связи {5,50M}
Алгоритм PCALC
Каков наилучший
путь от A до Z
с BW 20M?
{cost, BW}
Минимальная
BW меньше,
чем у других
путей!
{8,80M}
RtrA
RtrZ
{4,90M}
{8,90M}
Все связи {10,100M}
{8,90M}
Все связи {5,50M}
Алгоритм PCALC
Каков наилучший
путь от A до Z
с BW 20M?
{cost, BW}
Число хопов 5,
а у других
путей 4!
RtrA
RtrZ
{4,90M}
{8,90M}
Все связи {10,100M}
{8,90M}
Все связи {5,50M}
Алгоритм PCALC
Каков наилучший
путь от A до Z
с BW 20M?
{cost, BW}
Выбираем
случайным
образом
RtrA
RtrZ
{8,90M}
Все связи {10,100M}
{8,90M}
Все связи {5,50M}
Алгоритм PCALC
Каков наилучший
путь от A до Z
с BW 20M?
{cost, BW}
RtrA
RtrZ
Все связи {10,100M}
{8,90M}
Все связи {5,50M}
Установление пути
Протоколы RSVP или CR-LDP
Cisco и Juniper поддерживают только
RSVP
RFC2205 + draft-ietf-mpls-rsvp-lsp-tunnel
Установление пути
После выбора пути результат передается
RSVP
RSVP использует сообщения PATH
(downstream) и RESV (upstream) для
расстановки меток и резервирования
пропускной способности для туннеля
Установление пути
PATH : “Можно зарезервировать 40Mb вдоль данного
пути?”
RESV: “Да, и вот метка для этого пути”
В каждом LSR формируется таблица продвижения
NHLFE
= PATH messages
= RESV messages
RtrB
RtrF
RtrA
RtrE
RtrG
RtrC
RtrD
Направление трафика в
туннель
Три способа направления трафика (Cisco)
Autoroute
Static routes
Policy routing
Autoroute
Autoroute - это использование туннеля как
одного из следующих хопов в обычной
таблице маршрутизации
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
Tunnel0
30
G
Tunnel1
30
Autoroute
Физическая топология сети
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
RtrI
RtrC
RtrD
Autoroute
Логическая топология сети в
маршрутизаторе RtrA
Остальные маршрутизаторы туннеля не
видят!
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Autoroute
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
Tunnel1
30
H
Tunnel1
40
I
Tunnel1
40
Таблица маршрутизации
RtrA, сформированная
после применения
команд autoroute.
Все сети, находящиеся
за туннелем,
достигаются через
туннель
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Статические маршруты
RtrA(config)#ip route H.H.H.H
255.255.255.255 Tunnel1
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Статические маршруты
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
B
30
H
Tunnel1
40
I
B
40
Маршрут к RtrH известен
через туннель
Маршруты к RtrG не
используют туннель,
хотя он и является
конечной точкой
туннеля!
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Policy routing (PBR)
RtrA(config-if)#ip policy route-map set-tunnel
RtrA(config)#route-map set-tunnel
RtrA(config-route-map)#match ip address 101.0.0.0
RtrA(config-route-map)#set interface Tunnel1
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Policy routing
Node
Next-Hop
Cost
B
B
10
C
C
10
D
C
20
E
B
20
F
B
30
G
B
30
H
B
40
I
B
40
Таблица маршрутизации
остается неизменной –
сведений о туннелях в
ней нет
Требуется IOS 12.0(16)ST
or 12.2T или выше для
поддержки
команды‘set int Tunnel’
RtrB
RtrF
RtrA
RtrH
RtrE
RtrG
Tunnel1
RtrI
RtrC
RtrD
Рекомендации по применению
методов направления трафика в
туннель (Cisco)
Можно использовать любую комбинацию
методов of autoroute, static routes или
PBR.
Проще всего использовать autoroute, а
для задания BGP Next-hop – статические
записи
Download