Тунельний протокол

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Комп'ютерні мережі використовують тунельні протоколи, коли один мережевий протокол (протокол доставки) інкапсулює протокол прийому. Використовуючи тунелювання, можна (наприклад) переносити дані через несумісну мережу, або забезпечує безпечний шлях через недовірену мережу.

Тунелювання зазвичай контрастує з рівневою моделлю протоколу наприклад з OSI або TCP/IP. Протокол доставки зазвичай (але не завжди) діє на вищому рівні в моделі, ніж робить це протокол завантаження, або в тому ж рівні. Інкапсуляція протоколу, яка здійснюється рівневими протоколами, відповідно до моделі OSI або TCP/IP (наприклад: HTTP над TCP над IP над PPP над V. 92 модемом) не використовує тунелювання.

Щоб розуміти модель протоколу, мережеві інженери повинні розуміти як працюють протокол завантаження і протокол доставки. Як приклад мережевого рівня над мережевим рівнем, Generic Routing Encapsulation (GRE), протокол, що працює з IP-адресами (Номер Протоколу IP 47), часто служить для передачі IP пакетів з приватних адрес RFC 1918 через Інтернет використовуючи пакети доставки з публічними адресами IP. В цьому випадку, протоколи постачання і завантаження об'єднуються, але адреси протоколів завантаження і адреси протоколів постачання є різними.

На відміну від цього адреса IP повинна з'єднуватись с рівнем даних для постачання, коли він переноситься в протоколі L2TP, що прокладає тунель до механізму завантаження як протокол канального рівня. L2TP, проте, фактично переноситься через транспортний рівень, використовуючи протокол UDP. IP в транспортному протоколі може переноситись через будь-який протокол з'єднання від IEEE 802.2 і IEEE 802.3 до канального протоколу (PPP) за допомогою з'єднання через модем.

Тунелювання через політику безпеки брандмауера[ред. | ред. код]

Тунельні протоколи можуть використовувати скриптування даних для того, щоб перенести протоколи завантаження через публічні мережі (такі як Інтернет), забезпечуючи VPN з'єднання. IPsec має спеціальний транспортний метод і може керувати перенесенням даних через безпечні мережі.

Користувачі можуть також використовувати тунелювання, щоб «обійти» брандмауер, використовуючи протокол, який брандмауер зазвичай блокував би, але «обгорнувшись» всередині протоколу, який брандмауер не блокує, як наприклад HTTP. Якщо політика брандмауера не виключає цей вид «обгортання», цей прийом може функціонувати щоб наблизитися до призначеної політики брандмауера.

Інший метод на базі HTTP використовує HTTP з'єднання. Клієнт посилає команду з'єднання HTTP до HTTP proxy. Proxy потім виконує TCP з'єднання до специфічного порту сервера, і встановлює зв'язок між даними порту сервера і клієнтським з'єднаянням. Оскільки це створює діру в безпеці, HTTP proxy, які можуть з'єднватись зазвичай обмежують доступ до методу з'єднання. Proxy відкриває доступ тільки до дозволеного списку специфічних авторизованих серверів.

L2TP[ред. | ред. код]

L2TP застосовує в ролі транспорту протокол UDP і використовує однаковий формат повідомлень як для управління тунелем, так і для пересилання даних. L2TP в реалізації Microsoft як контрольні повідомлення використовує пакети UDP, що містять шифровані пакети PPP.

Для безпеки L2TP-пакетів зазвичай використовується протокол IPsec, який надає конфіденційність, аутентифікацію та цілісність. Комбінація цих двох протоколів відома як L2TP/IPsec.

Кінцеві вузли L2TP тунелю називаються LAC (L2TP Access Concentrator) і LNS (L2TP Network Server). LAC є ініціатором тунелю, а LNS — це сервер, який очікує на нові тунелі. Коли тунель встановлено, мережевий трафік між вузлами стає двонаправленим. Потім протоколи вищих рівнів запускаються всередині L2TP тунелю. Для цього L2TP сесія встановлюється всередині тунелю для кожного протоколу вищого рівня (наприклад, для PPP). І LAC, і LNS можуть ініціювати сесії. Трафік для кожної сесії ізолюється за допомогою L2TP, тому можливо налаштувати кілька віртуальних мереж через один тунель

Інкапсуляція

Інкапсуляція пакетів L2TP/IPSec виконується в два етапи.

  • 1. Інкапсуляція L2TP. Кадр PPP (IP-датаграма або IPX-датаграма) вставляється в оболонку з заголовком L2TP і заголовком UDP.
  • 2. Інкапсуляція IPSec. Потім отримане L2TP-повідомлення вставляється в оболонку з заголовком і трейлером IPSec ESP (Encapsulating Security Payload), трейлером перевірки автентичності IPSec, який забезпечує цілісність повідомлення та перевірку достовірності, і заголовком IP. У заголовку IP-адреси джерела і приймача — це адреси відповідно VPN-клієнта і VPN-сервера.
  • 3. На завершення L2TP виконує другу PPP-інкапсуляцію для підготовки даних до перевання.