Skip to main content

Інструкція користувача

Налаштування тунелів IPIP, GRE та EoIP

Маршрутизатори Keenetic мають можливість створювати тунелі IPIP (IP через IP), GRE (Generic Routing Encapsulation), EoIP (Ethernet через IP) як у чистому вигляді, так і в поєднанні з тунелем IPSec, що дозволяє використовувати стандарти безпеки IPSec VPN для захисту цих тунелів.

Підтримка тунелів IPIP, GRE, EoIP у маршрутизаторах Keenetic дозволяє встановлювати VPN-з'єднання з апаратними шлюзами, маршрутизаторами Linux, комп'ютерами та серверами з ОС UNIX/Linux, а також з іншим мережевим та телекомунікаційним обладнанням, що підтримує ці тунелі.

Для роботи з тунелями необхідно встановити додаткові відповідні компоненти системи KeeneticOS:

  • Тунелі EoIP (дозволяє створювати тунелі Ethernet over IP);

  • Тунелі GRE (дозволяє створювати тунелі GRE);

  • Тунелі IP-IP (дозволяє створювати тунелі IP-over-IP).

Це можна зробити на сторінці «Загальні налаштування» в розділі «Оновлення та компоненти», натиснувши на «Змінити набір компонентів».

ipip-comp-en.png
Короткий опис

Тунелі IPIP та GRE — це тунелі мережевого рівня (L3 моделі OSI), де доступні IP-адреси обох сторін. У системі вони представлені як інтерфейси GreX та IPIPX, і через них можна налаштувати маршрутизацію (включаючи маршрут за замовчуванням) так само, як і через будь-який інший інтерфейс. Також для цих інтерфейсів можна налаштувати рівень безпеки доступу — приватний, захищений або публічний (інформацію про рівні доступу можна знайти в статті «Налаштування правил міжмережевого екрану за допомогою інтерфейсу командного рядка») '.

Тунель IPIP (IP через IP) — один з найпростіших в налаштуванні (інкапсулює лише одноадресний трафік IPv4). Його можна налаштувати в системі UNIX/Linux та на різних маршрутизаторах (наприклад, Cisco).

Тунель GRE (Generic Routing Encapsulation) — один із популярних типів VPN. Тунелі GRE сумісні з апаратними шлюзами безпеки, маршрутизаторами Mikrotik, маршрутизаторами Linux та іншим подібним обладнанням (наприклад, Cisco, Juniper тощо).

Тунель EoIP (Ethernet через IP) — це тунель канального рівня (L2 моделі OSI) поверх мережевого рівня (L3). Дані передаються через цей тунель на рівні кадрів Ethernet. EoIP забезпечує прозоре мережеве середовище, яке емулює пряме з'єднання Ethernet між мережами. Усі MAC-адреси є видимими, і за допомогою цього типу тунелю можна з'єднати дві L2 LAN через Інтернет. EoIP використовує GRE як транспорт. Тунель EoIP може працювати через IPIP, PPTP та будь-яке інше з'єднання, здатне передавати IP-пакети. Через нього можна надсилати будь-який трафік, відмінний від IP, включаючи ARP, DHCP, PPPoE, IPv6 тощо. Сканування підмережі через ARP працюватиме в тунелі за замовчуванням, коли рівень безпеки буде змінено на приватний/захищений. У системі він представлений як інтерфейс EoIPX.

Протокол EoIP розроблений компанією MikroTik, тому існує сумісність з ними та маршрутизаторами Linux, які вміють працювати з EoIP.

Важливо

Тунелі IPIP, GRE, EoIP є тунелями типу «точка-точка». Обидва учасники тунелю повинні мати зовнішні IP-адреси (або перебувати в одній мережі), і між ними не повинно бути трансляції адрес NAT. Це необхідні умови для встановлення тунелю.

Простими словами, для цих тунелів немає механізмів безпеки (немає механізмів шифрування чи автентифікації).

Тунелі IPIP, GRE та EoIP працюють без збереження стану з’єднання, тобто неможливо зрозуміти, чи функціонує тунель. Ми можемо лише налаштувати обидві сторони, а потім перевірити передачу даних.

Ви можете використовувати функцію Ping Check на інтерфейсах тунелів IPIP, GRE та EoIP, щоб перевірити їх доступність.

Тунелі IPIP, GRE та EoIP працюють безпосередньо за протоколом IPv4. IPIP використовує протокол IP номер 4, GRE та EoIP використовують протокол IP номер 47.

Приклади

Важливо

На даний момент налаштування тунелів IPIP, GRE та EoIP реалізовано через інтерфейс командного рядка (CLI) маршрутизатора. Повний синтаксис команд, наведених у цій статті, можна знайти в Довіднику команд Центр завантажень.

У наведених нижче прикладах показано приватні IP-адреси, які можна використовувати лише в локальній мережі. Щоб створювати тунелі через Інтернет, на обох кінцях тунелів мають бути публічні IP-адреси.

Для GRE назва інтерфейсу буде Gre0, для IPIP назва інтерфейсу буде IPIP0.

Налаштування тунелю GRE/IPIP між двома маршрутизаторами Keenetic
  1. Приклад 1. Налаштування однієї сторони тунелю:

    (config)> interface IPIP0
    (config-if)> tunnel destination router1.example.com
    (config-if)> ip address 192.168.100.1 255.255.255.0
    (config-if)> security-level private
    (config-if)> up
    (config-if)> exit
    (config)> system configuration save

    На іншому кінці тунелю встановлюються «дзеркальні» налаштування:

    (config)> interface IPIP0
    (config-if)> tunnel destination 8.6.5.4
    (config-if)> ip address 192.168.100.2 255.255.255.0
    (config-if)> security-level private
    (config-if)> up
    (config-if)> exit
    (config)> system configuration save

    Потім ви можете спробувати пропінгувати адресу віддаленої сторони тунелю з будь-якої сторони, щоб перевірити, чи тунель працює правильно.

    Слід зазначити, що в якості пункту призначення можна вказати або доменне ім’я (Хмарний режим у KeenDNS не працюватиме!) або IP-адресу віддаленої сторони (WAN-інтерфейс пристрою).

  2. Приклад 2. Налаштування однієї сторони тунелю:

    (config)> interface IPIP0
    (config-if)> tunnel destination router1.example.com
    (config-if)> ip address 192.168.100.1 255.255.255.0
    (config-if)> up
    (config-if)> exit
    (config)> no isolate-private
    (config)> ip route 10.10.2.0 255.255.255.0 IPIP0 /*static route to a remote private subnet 10.10.2.0/24 through the tunnel*/
    (config)> system configuration save

    На іншій стороні тунелю:

    (config)> interface IPIP0
    (config-if)> tunnel destination 8.6.5.4
    (config-if)> ip address 192.168.100.2 255.255.255.0
    (config-if)> up
    (config-if)> exit
    (config)> no isolate-private
    (config)> ip route 10.10.1.0 255.255.255.0 IPIP0 /*static route to a remote private subnet 10.10.1.0/24 through the tunnel*/
    (config)> system configuration save
Налаштування тунелю EoIP між двома маршрутизаторами Keenetic

Для EoIP назва інтерфейсу буде EoIP0.

У випадку тунелю EoIP налаштування будуть абсолютно однаковими, за винятком двох речей:

  • можна встановити MAC-адресу інтерфейсу;

  • необхідно встановити ID тунелю EoIP, ідентифікатор тунелю (число в діапазоні від 1 до 65535), і він повинен збігатися на обох кінцях тунелю.

Налаштування одного кінця тунелю:

(config)> interface EoIP0
(config-if)> tunnel destination router1.example.com
(config-if)> tunnel eoip id 1500
(config-if)> ip address 192.168.100.1 255.255.255.0
(config-if)> security-level private
(config-if)> up
(config-if)> exit
(config)> system configuration save

«Дзеркальне» налаштування на іншому кінці тунелю:

(config)> interface EoIP0
(config-if)> tunnel destination 8.6.5.4
(config-if)> tunnel eoip id 1500
(config-if)> ip address 192.168.100.2 255.255.255.0
(config-if)> security-level private
(config-if)> up
(config-if)> exit
(config)> system configuration save

Потім ви можете спробувати пропінгувати адресу віддаленої сторони тунелю з будь-якої сторони, щоб перевірити, чи тунель працює правильно.

Інтерфейс EoIPx можна включити до мосту для об'єднання локальних мереж. Для цього налаштуйте інтерфейс EoIP без IP-адреси з обох сторін, а потім додайте його до мосту Домашня мережа (Home):

(config)> interface Home
(config-if)> include EoIP0
(config-if)> exit
(config)> system configuration save

Важливо

Для інтерфейсів тунелів IPIP, GRE та EoIP значення MTU розраховується автоматично на основі інтерфейсу, через який проходитиме трафік, але його можна встановити вручну за допомогою команди interface ip mtu.

При об'єднанні локальних мереж за допомогою тунелю EoIP ми рекомендуємо використовувати на хостах статичні IP-адреси, що задаються вручну. Якщо клієнти налаштовані на автоматичне отримання IP-адрес від сервера DHCP, після встановлення тунелю можуть виникнути проблеми з розподілом IP-адрес, оскільки запити DHCP будуть надходити в тунель, тобто у віддалену мережу.

Використання тунелів IPIP, GRE та EoIP з IPSec

Якщо встановлено спеціальний системний компонент IPSec VPN, ці тунелі можна захистити за допомогою стандартів безпеки IPSec, як в автоматичному, так і в повністю ручному режимі. Ми не будемо описувати ручний режим, оскільки досвідчені користувачі можуть налаштувати тунель IPSec у правильному режимі, а потім підняти тунель через IPSec. У разі автоматичного налаштування одночасно вирішуються кілька проблем ручного режиму:

  • значення MTU встановлено правильно;

  • з'єднання стає орієнтованим на з'єднання, і ви повинні вибрати, який кінець тунелю є клієнтом, а який — сервером;

  • автоматично вирішує проблему проходження NAT, оскільки використовує IPSec NAT Traversal (NAT-T), який перетворює весь тунельний трафік у потік UDP на порту 500/4500;

  • використовуються шифрування та перевірка цілісності даних.

Компонент IPSec VPN додає до тунелів такі налаштування:

  • interface ipsec preshared-key <key> — PSK для шифрування;

  • interface ipsec encryption-level <level> — рівень шифрування. За замовчуванням він налаштований так, щоб охопити якомога більше пристроїв, і має апаратне прискорення. Немає необхідності змінювати.

Оскільки IPSec розділяє клієнта та сервера, для налаштування клієнта (ініціатора, сторони, яка намагатиметься встановити з’єднання), ви повинні використовувати команду interface tunnel destination, а для ввімкнення режиму сервера (сторони, яка буде відповідати на спроби з’єднання), ви повинні використовувати команду interface tunnel source.

Приклад налаштування тунелю EoIP з IPsec (у нашому прикладі стороною з WAN-адресою 8.6.5.4 є сервер):

Сервер:

(config)> interface EoIP0
(config-if)> tunnel source ISP
(config-if)> tunnel eoip id 1500
(config-if)> ipsec preshared-key mytestingkey
(config-if)> ip address 192.168.100.1 255.255.255.0
(config-if)> ipsec ikev2
(config-if)> security-level private
(config-if)> up
(config-if)> exit
(config)> system configuration save

Клієнт:

(config)> interface EoIP0
(config-if)> tunnel destination 8.6.5.4
(config-if)> tunnel eoip id 1500
(config-if)> ipsec preshared-key mytestingkey
(config-if)> ip address 192.168.100.2 255.255.255.0
(config-if)> ipsec ikev2
(config-if)> security-level private
(config-if)> up
(config-if)> exit
(config)> system configuration save

Важливо

Попередньо встановлений ключ IPSec PSK повинен збігатися на обох кінцях тунелю.

У команді interface tunnel source ви можете вказати як вихідний інтерфейс, так і IP-адресу, де сервер чекатиме з'єднання. Однак перевага надається інтерфейсу, оскільки в цьому випадку вся реконфігурація при зміні адреси та інших подіях відбуватиметься автоматично.

Примітка

Тунелі на основі EoIP/IPSec та GRE/IPSec не сумісні з з’єднаннями PPTP через використання того самого протоколу GRE. У цьому випадку доступний лише один варіант: IPIP/IPsec.

Важливо

Зверніть увагу на опцію isolate-private.

За замовчуванням не дозволяється встановлювати з'єднання між приватними інтерфейсами, але за потреби доступ може бути наданий. Якщо вам потрібно дозволити з’єднання між приватними інтерфейсами (тобто не ізолювати доступ), виконайте команду no isolate-private.

Використовуйте команду system configuration save, щоб зберегти налаштування маршрутизатора.