MPLS в UDP: ентропія для нижнього рівня, правила для домену
UDP-обгортка дає нижньому рівню IP матеріал для хешування, не втрачаючи мітку сервісу. RFC 7510 також обмежує її взаємодійними керованими доменами.
Два провайдери описують ту саму мітку сервісу, і лише один із них згадує заголовок UDP. Різниця не косметична: розміщення MPLS усередині UDP змінює те, що може бачити зовнішня мережа IP, а отже, і те, що вона може хешувати паралельними каналами. Це також змінює, кому дозволено це розгортати.
Рівні достатньо короткі, щоб запам'ятати: зовнішній IP, потім UDP, потім стек міток MPLS, потім корисне навантаження сервісу. Стек міток не зникає; він і далі визначає пересилання в кінцевій точці, яка відновлює комутацію міток.
Що додає обгортка UDP
RFC 7510 визначає цю інкапсуляцію з портом призначення UDP 6635 і використовує поле порту джерела для перенесення ентропії потоку. Пристрій, що інкапсулює, вирішує, що вважати потоком і як виводити значення; стандарт навмисно не приписує один конкретний хеш. Це залишає простір для поведінки постачальника і означає, що дві реалізації можуть давати різні розподіли для тієї самої суміші трафіку. Читайте значення як підказку, запропоновану нижньому рівню, а не як рішення про маршрутизацію, ухвалене стандартом.
Вигода непряма. Транзитна мережа, що балансує навантаження за зовнішньою п'ятіркою, тепер має що хешувати, тоді як голий пакет MPLS, можливо, пропонував лише верхню мітку. Чи це допоможе, залежить від платформи, що виконує балансування, і від того, які поля вона справді враховує.
Ентропія — не пропускна здатність
Рівномірніший розподіл потоків доступними каналами — не те саме, що об'єднання їх в один швидший шлях. Один потік застосунку й далі йде одним шляхом, і балансування за потоками не може перевищити ємність каналу, на який він потрапляє. Механізм також не гарантує рівномірного розподілу; він лише дає хеш-функції кращі вхідні дані.
Тримайте обгортку стабільною для даного потоку, якщо тільки перевпорядкування не є прийнятним. Якщо порт джерела змінюється з кожним пакетом, нижній рівень охоче рознесе одну розмову кількома шляхами, і повторне складання стане проблемою застосунку. Мета — узгоджена ентропія на потік, а не постійна новизна.
Межа розгортання — частина специфікації
RFC 7510 обмежує розгортання мережею одного оператора або сусіднім набором операторів, що взаємодіють, причому трафік керується так, щоб уникати перевантаження. Він також вимагає фільтрації, яка не дає інкапсульованому трафіку вийти з цього домену. Це не декоративні умови; вони випливають із того, що інкапсуляція не додає власної безпеки. Розглядайте їх як передумови законного розгортання, а не як пропозиції в проєктній записці.
Ніщо в заголовку UDP не автентифікує відправника, і ніщо в ньому не забезпечує конфіденційності чи цілісності корисного навантаження. Якщо трафіку потрібен захист, він надходить із окремого механізму з власним керуванням ключами. Вибір MPLS-in-UDP не підвищує модель довіри.
Стежте за тим, що захист робить із потрібним вам хешуванням
Додайте IPsec або іншу захисну інкапсуляцію, і зовнішній заголовок, який хешують транзитні пристрої, може повністю змінити форму. Режим тунелю може приховати внутрішній порт джерела UDP за новим зовнішнім заголовком, а отже, ретельно надана ентропія може бути не видною там, де відбувається балансування. Спочатку шифрування, потім інкапсуляція — це інший дизайн, ніж зворотний порядок, і різниця проявляється як канал, що несе значно більше трафіку, ніж сусідні.
Оцінюйте повний пакет таким, яким він з'являється на дроті, а не лише рівень, описаний стандартом. Це також момент переглянути MTU і ємність кінцевої точки, адже заголовок UDP плюс будь-які накладні витрати безпеки зменшують корисне навантаження, що вміщується.
Вирішуйте, бачачи весь шлях
Порівняйте MPLS-in-UDP з альтернативами на кшталт GRE за критеріями, важливими для вашої мережі: за якими полями балансує нижній рівень, які накладні витрати ви можете собі дозволити, яка захисна обгортка потрібна і чи можна забезпечити межу домену. Приписувати йому безумовну перевагу в продуктивності над GRE — висновок, якого стандарти не підтримують.
Потім перевірте на реальних сумішах трафіку і подивіться використання кожного каналу-члена, адже хеш, що добре виглядає в лабораторії, може звалитися на один канал, коли всі потоки поділяють один і той самий кортеж. Чесний підсумок: інкапсуляція розкриває інформацію, яку нижній рівень може використати, усередині домену, що погодився нею керувати.