Створення тунелів за допомогою gre протоколу

GRE - Мережевий протокол від компанії CISCO Systems для тунелювання з'єднань, шляхом інкапсуляції пакетів мережевого рівня в IP пакети. За допомогою протоколу GRE створюється безперервне з'єднання між двома вузлами (маршрутизаторами), через загальнодоступну мережу. Протокол GRE може бути використаний для створення простої приватної мережі (VPN), між користувачами, підключеними через мережу провайдера, або між прикордонними маршрутизаторами з середовищі провайдера, для обміну оновленнями таблиць маршрутизації.

Майте на увазі, що даний протокол не підтримує шифрування даних на маршруті, якщо для вас це критично і основний пріоритет безпеку, краще його не використовувати.

Операційна система FreeBSD. повністю підтримує створення і управління тунелями, протоколу GRE.

Підтримка GRE, здійснюється на рівні ядра, відповідну опцію можна включити в конфігурації ядра на стадії конфігурування і подальшої компіляції, якщо-ж з яких-небудь причин це не зроблено, при спробі активувати GRE пристрій, в ядро ​​динамічно буде завантажений необхідний модуль (if_gre. ko).

Найпростіший спосіб створити GRE інтерфейс, використовувати програму ifconfig. наприклад командою:

буде створено інтерфейс з ім'ям gre0. якщо при створенні інтерфейсу, не вказувати номер пристрою, буде призначений перший вільний, наприклад, gre0 у нас вже є, тепер, командою:

буде створено інтерфейс з ім'ям gre1. як бачите команда ifconfig призначила перший вільний номер.

За допомогою тієї-ж команди ifconfig. можна видалити що не використовується інтерфейс:

Тепер, коли інтерфейс GRE створений, потрібно налаштувати всіх учасників з'єднання, робиться це за допомогою все той-же команди ifconfig. Припустимо, нам потрібно налаштувати тунель між хостами А і Б. схема виглядає наступним чином:

Створення тунелів за допомогою gre протоколу

Для початку створюємо інтерфейс gre0 на хості А і призначаємо кінцеві точки тунелю:

Подивимося настройки тунелю на хості А:

Значення MTU, буде вирахувано і призначено автоматично з урахуванням GRE протоколу.

Отже, ми досить швидко підняли тунель, за допомогою протоколу GRE, між хостом А і Б. Теж саме можна зробити і на маршрутизаторах (CISCO або Juniper). В даному прикладі ми створювали тунель вручну, цього цілком достатньо що-б «потренуватися на кішках», але що-б з'єднання було постійним, тобто, після перезавантаження регулювали автоматично, потрібно дописати в стартовий скрипт /etc/rc.d наступні рядки:

cloned_interfaces = "gre0"
ifconfig_gre0 = "inet inet 192.168.10.1 192.168.10.2 netmask 255.255.255.0 tunnel 10.0.2.1 10.0.1.1"

Таким чином, за допомогою змінної cloned_interfaces можна призначити стільки тунелів, скільки вам потрібно, і зверніть увагу, у другому рядку ми об'єднали 2 команди в одну, то-ж саме можна зробити і через командний рядок.

Схожі статті