Generic Routing Encapsulation

У Вікіпедії є статті про інші значення цього терміна: GRE (значення).
Модель TCP/IP (RFC 1122)
Прикладний рівень
Транспортний рівень
Мережевий рівень
Канальний рівень
Цей шаблон:
  • переглянути
  • обговорити
  • редагувати
Приклад роботи GRE-тунелю. Між двома маршрутизаторами A і B знаходиться кілька маршрутизаторів, тунель дозволяє забезпечити зв'язок між сегментами мережі 192.168.1.0/24 і 192.168.3.0/24 так, як якщо б маршрутизатори A і B були з'єднані прямим лінком.

GRE (англ. Generic Routing Encapsulation — загальна інкапсуляція маршрутів) — протокол тунелювання мережевих пакетів, розроблений компанією Cisco Systems. Його основне призначення — інкапсуляція пакетів мережевого рівня мережевої моделі OSI в IP пакети. Номер протокола в IP — 47.[1]

Тунелювання являє собою три протоколи:

  • Пасажир — інкапсульований протокол (IP, CLNP, IPX, AppleTalk, DECnet Phase IV, XNS, VINES і Apollo);
  • Протокол інкапсуляції (GRE);
  • Транспортний протокол (IP);

Приклад застосування

  • Використовується в поєднанні з PPTP для створення віртуальних приватних мереж.
  • Застосовується в технології WDS для координації дій точок доступу і контролера WDS.
  • Використовується в технологіях мобільного IP.

Приклад стека протоколів

Рівень моделі OSI Протокол
5. Сеансовий X.225
4. Транспортний UDP
3. Мережевий (GRE-інкапсуляція) IPv6
Інкапсуляція GRE
3. Мережевий IPv4
2. Канальний Ethernet
1. Фізичний Ethernet

Як можна зрозуміти зі схеми, інкапсуляція (не обов'язково GRE) порушує ієрархію в моделі OSI. Це явище можна розглядати як роздільник між двома стеками протоколів, де один виступає «постачальником послуг» для іншого.

Проблема DF-біта

У зв'язку зі службовим заголовком розмір переданих даних усередині IP пакета через GRE-тунель зменшується при збереженні загального розміру пакета. У IP-пакеті передбачено наявність біта DF (do not fragment), що забороняє поділ пакета на кілька при передачі через середовище з меншим розміром MTU. У цьому випадку пакет з розміром корисної області даних (англ. payload), що перевищує MTU IP пакету в GRE-тунелі, відкидається, що призводить до втрат пакетів при істотному навантаженні (проходять пакети малого розміру, такі як SYN пакети TCP, ICMP повідомлення (ping), але губляться пакети з даними в TCP потоці (тобто з'єднання рветься)). Для вирішення цієї проблеми рекомендується використовувати path-mtu-discovery (визначення TCP MSS, тобто максимального розміру IP-пакетів на всьому шляху) при передачі даних через GRE-тунель, щоб уникнути надмірної фрагментації або втрати великих пакетів.[2][3]

Проблема NAT'у

Так як GRE є протоколом мережевого рівня і не використовує порти (як протоколи TCP або UDP), а однією з необхідних умов роботи механізму PAT є наявність «відкритого» порту, то робота протоколу GRE через міжмережевий екран може бути ускладнена.[4]

Окремим випадком вирішення проблеми для протоколу PPTP є технологія PPTP Passthrough, в цьому випадку міжмережевий екран «дозволяє» вихідні (клієнтські) підключення із захищеної мережі.

Див. також

Примітки

  1. Номер протокола 47. [Архівовано 2010-04-20 у Wayback Machine.] (англ.)
  2. Про вирішення проблеми DF-біта і MTU на обладнанні cisco: [1] [Архівовано 29 червня 2013 у Wayback Machine.]
  3. Про проблему фрагментації пакетів у GRE- і IPSEC-тунелях: [2] [Архівовано 26 червня 2013 у Wayback Machine.]
  4. NAT and PPTP. Архів оригіналу за 7 жовтня 2013. Процитовано 11 липня 2013.

Посилання

  • Проблема DF біта і фрагментації в GRE тунелях. [Архівовано 1 травня 2013 у Wayback Machine.] (рос.)
  • Створення VPN GRE тунелю в Linux. [Архівовано 7 жовтня 2013 у Wayback Machine.] (рос.)
  • RFC 1701 — Generic Routing Encapsulation (GRE), жовтень 1994.
  • RFC 1702 — Generic Routing Encapsulation over IPv4 networks, жовтень 1994.
  • RFC 2784 — Generic Routing Encapsulation (GRE), липень 2000.
  • RFC 2890 — Key and Sequence Number Extensions to GRE, вересень 2000.


Інтернет Це незавершена стаття про Інтернет.
Ви можете допомогти проєкту, виправивши або дописавши її.