Тема 4. MPLS Traffic Engineering (TE) Постановка задачи Поиск пути с помощью протоколов класса Constraint- based 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
Предложенная нагрузка
Распределение нагрузки по сети – выбор путей следования трафика R R2R2 R3R3 R4R4 R5R5 R6R6 R7R7 R8R8 R9R9 R10 R11
Критерий оптимального распределения нагрузки 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 RtrA RtrB RtrC RtrE RtrD RtrF RtrG
Что видит протокол класса DV NodeNext-HopCost BB10 CC DC20 EB FB30 GB RtrA не видит все связи RtrA знает только об одном кратчайшем пути RtrA RtrB RtrC RtrE RtrD RtrF RtrG
Что видит протокол состояния связей NodeNext-HopCost BB10 CC DC20 EB FB30 GB RtrA видит все связи RtrA вычисляет кратчайший путь Таблица маршрутизации получается та же! RtrA RtrB RtrC RtrE RtrD RtrF RtrG
Проблема кратчайшего пути NodeNext-HopCost BB10 CC DC20 EB FB30 GB Некоторые связи DS3, а некоторые - OC3 RtrA RtrB RtrC RtrE RtrD RtrF RtrG OC3 DS3 OC3 RtrA передает 40Mb для RtrF, 40Mb - для RtrG Огромные (44%) потери пакетов на связи RtrB- >RtrE! Изменение пути на A->C->D->E не помогает
Решение с помощью MPLS TE NodeNext-HopCost BB10 CC DC20 EB FTunnel030 GTunnel130 RtrA RtrB RtrC RtrE RtrD RtrF RtrG OC3 DS3 OC3 RtrA видит все связи RtrA вычисляет кратчайший путь на основе других критериев, отличных от просто крачайшего пути Заторов нет!
Что такое туннель TE? R1 R2R2 R3R3 R4R4 R5R5 R6R6 R7R7 R8R8 R9R9 R11 R10 Туннель – это путь между двумя LSR сети, заданный: точно (strict) вручную (R3-R10-R11-R6) свободно (loose) – (R3-R6) Резервирует определенную пропускную способность для трафика (bandwidth)
Что такое туннель TE? R1 R2R2 R3R3 R4R4 R5R5 R6R6 R7R7 R8R8 R9R9 R11 R10 Свободное задание туннеля (dynamic у Cisco) – это автоматический способ определения точного пути между двумя LSR сети, как правило являющимися конечными точками приложения нагрузки
Конфигурирование туннеля 1. Статическое (точное) задание interface Tunnel158 ip unnumbered Loopback0 tunnel destination 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 next-address next-address next-address
Конфигурирование туннеля 2. Динамическое (свободное) задание interface Tunnel1 ip unnumbered Loopback0 tunnel destination 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 находит кратчайший путь по всем связям сети RtrA RtrB RtrC RtrE RtrD RtrF RtrG каковы кратчайшие пути ко всем маршрутизаторам? Вычисление пути
Решение – дерево кратчайших путей RtrA RtrB RtrC RtrE RtrD RtrF RtrG каковы кратчайшие пути ко всем маршрутизаторам? Вычисление пути Обычный SPF
Constrained SPF – найти кратчайший путь к специфическому узлу Принять во внимание ограничения! RtrA RtrB RtrC RtrE RtrD RtrF RtrG каков кратчайший путь к маршрутизатору F, на котором имеется 40 Мб полосы пропускания? OC3 DS3 OC3 Вычисление пути - CSPF
Решение Совпало с решением обычного OSPF – в чем разница? RtrA RtrB RtrC RtrE RtrD RtrF RtrG каков кратчайший путь к маршрутизатору F, на котором имеется 40 Мб полосы пропускания? OC3 DS3 OC3 Вычисление пути - CSPF
Разница – при прокладке следующего пути 40 Мб Изменилась доступная полоса RtrA RtrB RtrC RtrE RtrD RtrF RtrG каков кратчайший путь к маршрутизатору F, на котором имеется 40 Мб полосы пропускания? OC3 DS3 OC3 Вычисление пути - CSPF 5
NodeNext-HopCost BB10 CC DC20 EB FTunnel030 GTunnel130 RtrA RtrB RtrC RtrE RtrD RtrF RtrG OC3 DS3 OC3 Конечный результат : -Пропускная способность сети используется эффективно! Вычисление пути - CSPF
А если имеется более чем один путь, удовлетворяющий условиям условиям требуемой пропускной способности? Алгоритм PCALC Алгоритм PCALC: 1.Найти все пути, удовлетворяющие ограничению bandwidth, с минимальной метрикой IGP (Дийкстра) 2.Выбрать путь с наибольшей минимальной полосой вдоль пути 3.Если он не один, то выбрать путь с наименьшим количеством хопов 4.Если он не один, то выбрать один случайным образом Вычисление пути - CSPF
Алгоритм PCALC Все связи {10,100M} Все связи {5,50M} {cost, BW} RtrA RtrZ {8,90M} {4,90M} {10,100M} {8,80M} Каков наилучший путь от A до Z с BW 20M? Путь имеет стоимость 25, не минимальную!
Алгоритм PCALC Все связи {10,100M} Все связи {5,50M} {cost, BW} RtrA RtrZ {8,90M} {4,90M} {8,80M} Каков наилучший путь от A до Z с BW 20M? Минимальная BW меньше, чем у других путей!
Алгоритм PCALC Все связи {10,100M} Все связи {5,50M} {cost, BW} RtrA RtrZ {8,90M} {4,90M} Каков наилучший путь от A до Z с BW 20M? Число хопов 5, а у других путей 4!
Алгоритм PCALC Все связи {10,100M} Все связи {5,50M} {cost, BW} RtrA RtrZ {8,90M} Каков наилучший путь от A до Z с BW 20M? Выбираем случайным образом
Алгоритм PCALC Все связи {10,100M} Все связи {5,50M} {cost, BW} RtrA RtrZ {8,90M} Каков наилучший путь от A до Z с BW 20M?
Установление пути Протоколы RSVP или CR-LDP Cisco и Juniper поддерживают только RSVP RFC draft-ietf-mpls-rsvp-lsp-tunnel
После выбора пути результат передается RSVP RSVP использует сообщения PATH (downstream) и RESV (upstream) для расстановки меток и резервирования пропускной способности для туннеля Установление пути
PATH : Можно зарезервировать 40Mb вдоль данного пути? RESV: Да, и вот метка для этого пути В каждом LSR формируется таблица продвижения NHLFE RtrA RtrB RtrC RtrE RtrD RtrF RtrG = PATH messages = RESV messages Установление пути
Направление трафика в туннель Три способа направления трафика (Cisco) Autoroute Static routes Policy routing
Autoroute Autoroute - это использование туннеля как одного из следующих хопов в обычной таблице маршрутизации NodeNext-HopCost BB10 CC DC20 EB FTunnel030 GTunnel130
Autoroute RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH Физическая топология сети RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrI
Autoroute Логическая топология сети в маршрутизаторе RtrA Остальные маршрутизаторы туннеля не видят! RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH Tunnel1 RtrI
Autoroute RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH Tunnel1 NodeNext-HopCost BB10 CC DC20 EB FB30 GTunnel130 HTunnel140 ITunnel140 Таблица маршрутизации RtrA, сформированная после применения команд autoroute. Все сети, находящиеся за туннелем, достигаются через туннель RtrI
Статические маршруты RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrA(config)#ip route H.H.H.H Tunnel1 RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrI Tunnel1
RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrI NodeNext-HopCost BB10 CC DC20 EB FB30 GB HTunnel140 IB Маршрут к RtrH известен через туннель Маршруты к RtrG не используют туннель, хотя он и является конечной точкой туннеля! Tunnel1 Статические маршруты
Policy routing (PBR) RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrI Tunnel1 RtrA(config-if)#ip policy route-map set-tunnel RtrA(config)#route-map set-tunnel RtrA(config-route-map)#match ip address RtrA(config-route-map)#set interface Tunnel1
Policy routing NodeNext-HopCost BB10 CC DC20 EB FB30 GB HB40 IB Таблица маршрутизации остается неизменной – сведений о туннелях в ней нет Требуется IOS 12.0(16)ST or 12.2T или выше для поддержки командыset int Tunnel RtrA RtrB RtrC RtrE RtrD RtrF RtrG RtrH RtrI Tunnel1
Рекомендации по применению методов направления трафика в туннель (Cisco) Можно использовать любую комбинацию методов of autoroute, static routes или PBR. Проще всего использовать autoroute, а для задания BGP Next-hop – статические записи