Документация: ПО Факел — разрабатываемая версия
Протокол IPIP¶
Обзор¶
Протокол туннелирования IPIP работает на сетевом уровне модели OSI и инкапсулирует исходный IPv4- или MPLS-пакет в дополнительный IPv4-заголовок по схемам: IPv4-in-IPv4, MPLS-in-IPv4. В ПО Факел значение ipip соответствует схеме IPv4-in-IPv4.
Примечание
В текущей версии ПО Факел протокол IPIP не реализован: интерфейс туннеля создается в плоскости передачи данных как туннель GRE (сетевой уровень) независимо от значения encapsulation (см. Ограничения).
Структура пакета при инкапсуляции по протоколу IPIP:
При настройке протокола важно обратить внимание на ряд особенностей:
Большинство межсетевых экранов и систем защиты настроены на анализ трафика, который проходит через стандартные транспортные протоколы (TCP или UDP), так как они содержат понятные заголовки (порты, флаги, номера сессий и т.д.). IPIP упаковывает данные прямо в IP-пакет, без использования TCP/UDP. Поэтому некоторые фаерволы могут не знать, как обрабатывать такой трафик и просто блокируют его. При инкапсуляции по протоколу IPIP в поле IP-заголовка добавляется номер протокола — «4»;
Не поддерживает multicast-вещание;
Чувствителен к максимально допустимому размеру передаваемого пакета, поскольку инкапсуляция дополнительного IP-заголовка увеличивает общий размер пакета;
Не шифрует обрабатываемый трафик. Для защиты канала связи используйте протоколы шифрования, например IPsec;
Не способен фрагментировать пакеты, что вместе с неправильно установленным максимально допустимым размером передаваемого пакета может привести к отбрасыванию пакетов.
Более подробная информация содержится в документе RFC 2003.
Важно
При загрузке модуля IPIP или при включении протокола IPIP на интерфейсе туннеля, ядро системы Факел по умолчанию создает интерфейс tun0 с атрибутами local = any и remote = any.
Когда на интерфейс поступают IPIP-пакеты, ядро системы направляет данные на интерфейс, чьи атрибуты local и remote соответствуют IP-адресам отправителя и получателя. Однако если этого не произойдет, то ядро перенаправит входящие IPIP-пакеты на интерфейс tun0, как на устройство по умолчанию.
Пример настройки¶
Предупреждение
В текущей версии ПО Факел протокол IPIP не реализован: значение encapsulation ipip принимается командной строкой, но создается туннель GRE (см. Ограничения). Пример показывает синтаксис команд.
Настройка маршрутизатора «А»:
Шаг |
Команда |
Описание |
|---|---|---|
1 |
set interfaces tunnel |
Включает протокол инкапсуляции IPIP на интерфейсе туннеля |
2 |
set interfaces tunnel |
Задает IP-адрес источника на интерфейсе туннеля |
3 |
set interfaces tunnel |
Задает IP-адрес назначения на интерфейсе туннеля |
4 |
set interfaces tunnel |
Задает локальный IP-адрес на интерфейсе туннеля |
Настройка маршрутизатора «Б»:
Шаг |
Команда |
Описание |
|---|---|---|
1 |
set interfaces tunnel |
Включает протокол инкапсуляции IPIP на интерфейсе туннеля |
2 |
set interfaces tunnel |
Задает IP-адрес источника на интерфейсе туннеля |
3 |
set interfaces tunnel |
Задает IP-адрес назначения на интерфейсе туннеля |
4 |
set interfaces tunnel |
Задает локальный IP-адрес на интерфейсе туннеля |
Список команд¶
Режим «Конфигурирование»¶
interfaces tunnel <interface> encapsulation ipip¶
Синтаксис:
set interfaces tunnel
<interface>encapsulation ipipdelete interfaces tunnel
<interface>encapsulation ipipshow interfaces tunnel
<interface>encapsulation
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции.
Режим: «Конфигурирование».
Примечание
В текущей версии ПО Факел значение ipip принимается командой, но создается туннель GRE (сетевой уровень): протокол IPIP не реализован (см. Ограничения).
interfaces tunnel <interface> address <address>¶
Синтаксис:
set interfaces tunnel
<interface>address<address>delete interfaces tunnel
<interface>address<address>show interfaces tunnel
<interface>address
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— локальный IP-адрес, который администратор вручную назначает интерфейсу туннеля. Формат: IPv4-префикс (x.x.x.x/x) или IPv6-префикс (h:h:h:h:h:h:h:h/x). Можно задать несколько значений.
Режим: «Конфигурирование».
interfaces tunnel <interface> source-address <address>¶
Синтаксис:
set interfaces tunnel
<interface>source-address<address>delete interfaces tunnel
<interface>source-address<address>show interfaces tunnel
<interface>source-address
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— IP-адрес источника. Формат: IPv4-адрес (x.x.x.x).
Режим: «Конфигурирование».
interfaces tunnel <interface> remote <address>¶
Синтаксис:
set interfaces tunnel
<interface>remote<address>delete interfaces tunnel
<interface>remote<address>show interfaces tunnel
<interface>remote
Аргументы:
<interface>— имя интерфейса туннеля. Формат: tunN, где N — число; имя одинаково для всех типов инкапсуляции;<address>— IP-адрес назначения другого интерфейса туннеля. Формат: IPv4-адрес (x.x.x.x).
Режим: «Конфигурирование».
Примечание
Полный список команд для настройки интерфейса туннеля находится в разделе Интерфейс туннеля.