Модель TCP/IP (RFC 1122) |
---|
Прикладний рівень |
Транспортний рівень |
Мережевий рівень |
Канальний рівень |
Протоколи безпеки Інтернет |
---|
Керування ключами |
Рівень застосувань |
Система доменних імен |
Рівень Інтернет |
L2TP (англ. Layer 2 Tunneling Protocol — протокол тунелювання другого рівня) — в комп'ютерних мережах тунельний протокол, використовується для підтримки віртуальних приватних мереж. L2TP не забезпечує шифрування та конфіденційність сам по собі, він спирається на інкапсульований протокол для забезпечення конфіденційності.
Попри те, що L2TP діє подібно протоколу Канального рівня моделі OSI, в дійсності він є протоколом Сеансового рівня і використовує зареєстрований UDP-порт 1701.
1996-1997 - конкуренція між протоколами L2F (Cisco) і PPTP (Microsoft) 1997 - угода між розробниками про спільну розробку протоколу L2TP 1999 - опублікований стандарт RFC 2661, що описує протокол L2TP Вважається, що протокол L2TP увібрав у себе найкращі риси PPTP і L2F. Опублікований у 1999 році як пропонований стандарт RFC 2661, L2TP базувався головним чином на двох більш ранніх тунельних протоколах для PPP: протоколі естафетної передачі на другому рівні (L2F) від Cisco та тунельному протоколі точка-точка (PPTP) від Microsoft. По загальній думці, протокол L2TP увібрав в себе всі переваги PPTP і L2F. Нова версія цього протоколу, L2TPv3, була опублікована як запропонований у 2005 році стандарт RFC 3931. Головною перевагою L2TP є те, що цей протокол дозволяє створювати тунель не лише в мережах IP, але і в таких, як ATM, X.25 та frame relay.
Дистанційна система ініціює PPP-з'єднання з LAC через телефонну мережу PSTN. LAC потім прокладає тунель для PPP-з'єднання через Інтернет, Frame Relay або ATM до LNS, і таким чином здійснюється доступ до початкової LAN. Адреси віддаленій системі надаються вихідною LAN через узгодження з PPP NCP. Аутентифікація, авторизація та аккаунтинг можуть бути надані областю управління LAN, як якщо б користувач був безпосередньо з'єднаний з сервером мережевого доступу NAS. LAC-клієнт (ЕОМ, яка виконує програму L2TP) може також брати участь в тунелюванні до вихідної LAN без використання окремого LAC, якщо ЕОМ, що містить програму LAC-клієнта, вже має з'єднання з Інтернет. Створюється "віртуальне" PPP-з'єднання, і локальна програма L2TP LAC формує тунель до LNS. Як і у вищеописаному випадку, адресація, аутентифікація, авторизація та аккаунтинг будуть забезпечені областю управління вихідної LAN.
L2TP використовує два види пакетів: керуючі та інформаційні повідомлення. Керуючі повідомлення використовуються при встановленні, підтримці та анулювання тунелів і викликів. Інформаційні повідомлення використовуються для інкапсуляції PPP-кадрів, що пересилаються по тунелю. Керуючі повідомлення використовують надійний контрольний канал в межах L2TP, щоб гарантувати доставку. Інформаційні повідомлення при втраті не пересилаються повторно.
Структура протоколу:
PPP кадри | |
L2TP інформаційні повідомлення | L2TP управляючі повідомлення |
L2TP інформаційний канал (ненадійний) | L2TP канал управління (надійний) |
Транспортування пакетів (UDP, FR, ATM тощо) |
Керуюче повідомлення має порядковий номер, який використовується в керуючому каналі для забезпечення надійної доставки. Інформаційні повідомлення можуть використовувати порядкові номери, щоб відновити порядок пакетів і детектувати втрату кадрів. Всі коди надсилаються в порядку, прийнятому для мереж.
L2TP застосовує як транспортний протокол UDP і використовує однаковий формат повідомлень як для управління тунелем, так і для пересилання даних. L2TP в реалізації Microsoft використовує як контрольних повідомлень пакети UDP, що містять шифровані пакети PPP.
L2TP часто використовують для створення тунелю через VPN.
Для забезпечення безпеки L2TP-пакетів зазвичай використовують протокол IPsec, який надає конфіденційність, аутентифікацію та цілісність. Комбінація цих двох протоколів відома як L2TP/IPsec.
Кінцеві вузли L2TP тунелю називаються LAC (L2TP концентратора доступу) і LNS (L2TP Server Network). LAC є ініціатором тунелю, тоді LNS - сервер, який очікує нових тунелів. Коли тунель встановлено, мережевий трафік між вузлами є двонаправленим. Потім, протоколи більш високих рівнів запускаються всередині тунелю L2TP. Для цього, L2TP сесія встановлюється всередині тунелю для кожного протоколу вищого рівня (наприклад, для ПКС). Як ЛАК, так і LNS можуть ініціювати сесії. Трафік для кожної сесії ізолюється за допомогою L2TP, тому можливо налаштувати кілька віртуальних мереж через один тунель.
Пакети L2TP для контрольного та інформаційного каналів використовують один і той же формат заголовка:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 31 | |||||
T | L | x | x | S | x | O | P | x | x | x | x | Версія | Довжина(опц) | |||||||||
ID тунелю | ID сесії | |||||||||||||||||||||
Ns (опц) | Nr (опц) | |||||||||||||||||||||
Offset Size (опц) | Offset Pad (опц)...... | |||||||||||||||||||||
Payload data |
Він встановлюється рівним 0 для інформаційних повідомлень і 1 - для управляючих.
Для керуючих повідомлень цей біт повинен бути рівний 1.
Всі зарезервовані біти повинні бути встановлені рівними 0 для вихідних повідомлень і ігноруватися для вхідних.
Біт S для керуючих повідомлень повинен бути рівний 1.
Біт O для керуючих повідомлень повинен бути рівний 0.
Значення 1 зарезервовано для детектування пакетів L2F в умовах, коли вони приходять упереміш з L2TP-пакетами. Пакети, отримані з невідомим значенням поля Ver, відкидаються.
Тип повідомлення AVP визначає специфічний тип керуюючого повідомлення, що відправляється.
Управління контрольним з'єднанням
Управління викликами (Call Management)
Повідомлення про помилки
Управління сесією PPP
Необхідна процедура встановлення PPP-сесії тунелювання L2TP включає в себе два етапи:
Тунель і відповідний керуючий канал повинні бути сформовані до ініціалізації вхідного або вихідного виклику. L2TP-сесія повинна бути реалізована до того, як L2TP зможе передавати PPP-кадри через тунель. В одному тунелі можуть існувати кілька сесій між одними і тими ж LAC і LNS.
Є первинним, яке має бути реалізовано між LAC і LNS перед запуском сесії. Встановлення керуючого з'єднання включає в себе безпечну ідентифікацію партнера, а також визначення версії L2TP, можливостей каналу, кадрового обміну і т.д.
L2TP включає в себе просту, опціонну, CHAP-подібну систему аутентифікації тунелю в процесі встановлення керуючого з'єднання.
Після успішного встановлення керуючого з'єднання можуть формуватися індивідуальні сесії. Кожна сесія відповідає одному PPP інформаційного потоку між LAC і LNS. На відміну від встановлення керуючого з'єднання, встановлення сесії є асиметричним щодо LAC і LNS. LAC запитує LNS доступ до сесії для вхідних запитів, а LNS запитує LAC запустити сесію для роботи з вихідними запитами.
Коли тунель сформований, PPP-кадри від віддаленої системи, одержувані LAC, звільняються від CRC, канальних заголовків і т. ін., інкапсульованих в L2TP, і переадресовуються через відповідний тунель. LNS отримує L2TP-пакет і обробляє інкапсульований PPP-кадр, як якщо б він був отриманий через локальний інтерфейс PPP.
Відправник повідомлення, асоційований з певною сесією і тунелем, поміщає ID сесії і тунелю (специфіковані партнером) у відповідні поля заголовка всіх вихідних повідомлень.
Порядкові номери, визначені в заголовку L2TP, використовуються для організації надійного транспортування керуючих повідомлень. Кожен партнер підтримує окрему нумерацію для керуючого з'єднання і для кожної інформаційної сесії в межах тунелю.
На відміну від каналу управління L2TP, інформаційний канал L2TP використовує нумерацію повідомлень не для повторної пересилки, а для детектування втрат пакетів і / або відновлення вихідної послідовності пакетів, перемішаних при транспортуванні.
LNS може ініціювати заборону нумерації повідомлень в будь-який час в ході сесії (включаючи перше інформаційне повідомлення).
Механізм keepalive використовується L2TP для того, щоб розрізняти простої тунелю і тривалі періоди відсутності керування або інформаційної активності в тунелі. Це робиться за допомогою керуючих повідомлень Hello після заданого періоду часу, який минув з моменту останнього одержання керуючого повідомлення через тунель. При недоставленні повідомлення Hello тунель оголошується неробочим, і система повертається в початковий стан. Механізм переведення транспортної середовища в початковий стан шляхом введення повідомлень Hello гарантує, що розрив з'єднання між LNS і LAC буде детектувати на обох кінцях тунелю.
Переривання сесії може бути ініційовано LAC або LNS і виконується шляхом посилки керуючого повідомлення CDN. Після того як остання сесія перервана, керуюче з'єднання може бути також розірвано.
Розрив контрольного з'єднання може бути ініційований LAC або LNS і виконується шляхом посилки одного керуючого повідомлення StopCCN.
Інкапсуляція пакетів L2TP/IPSec виконується в два етапи.
На завершення L2TP виконує другий PPP-інкапсуляцію для підготовки даних до передачі.
L2TP пакет складається з :
Біти 0-15 | Біти 16-31 |
---|---|
Flags and Version Info | Length (опціонально) |
Tunnel ID | Session ID |
Ns (опціонально) | Nr (опціонально) |
Offset Size (опціонально) | Offset Pad (опціонально)…… |
Payload data |
Значення полів:
Протокол L2TP є самодокументованим, що працюють поверх рівня, який служить для транспортування. Однак, необхідні деякі деталі підключення до середовища, для того щоб забезпечити сумісність різних реалізацій.
Протокол L2TP стикається при своїй роботі з кількома проблемами безпеки. Нижче розглянуті деякі підходи для вирішення цих проблем.
Кінці тунелю можуть опційно виконувати процедуру аутентифікації один одного при встановленні тунелю. Ця аутентифікація має ті ж атрибути безпеки, що і CHAP, і володіє розумним захистом проти атак відтворення і спотворення в процесі встановлення тунелю. Для реалізації аутентифікації LAC і LNS повинні використовувати загальний секретний ключ.
Забезпечення безпеки L2TP вимагає, щоб транспортна середу могла забезпечити шифрування переданих даних, цілісність повідомлень і аутентифікацію послуг для всього L2TP-трафіку. Сам же L2TP відповідальний за конфіденційність, цілісність і аутентифікованість L2TP-пакетів всередині тунелю.
При роботі поверх IP, IPsec (безпечний IP) надає безпеку на пакетному рівні. Всі керуючі та інформаційні пакети L2TP в конкретному тунелі виглядають для системи IPsec, як звичайні інформаційні UDP / IP-пакети. Крім транспортної безпеки IP, IPsec визначає режим роботи, який дозволяє тунелювати IP-пакети, а так само засоби контролю доступу, які необхідні для додатків, що підтримують IPsec. Ці засоби дозволяють фільтрувати пакети на основі характеристик мережевого і транспортного рівнів. У моделі L2TP-тунелю аналогічна фільтрація виконується на PPP-рівні або мережевому рівні поверх L2TP.
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. (січень 2016) |
Це незавершена стаття про комп'ютерні мережі. Ви можете допомогти проєкту, виправивши або дописавши її. |