Тема 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 – статические записи