Для перемещения по дереву справки используйте строки заголовка.

Справка по NSG Linux 2.1.3
Дерево команд: tunnel.uitcp.…далее…

Что это такое?

Это Un-Intrerruptible TCP (uiTCP) — фирменная технология VPN компании NSG.

Зачем это нужно?

Для подключения банкоматов по неустойчивым сетям связи и других задач, требующих поддержания бесперебойной работы прикладного ПО при переходе с основного канала связи на резервные и обратно. По существу, это большинство Web-систем, требующих аутентификации и авторизации пользователя.

Технология бесперебойных соединений uiTCP

Особенности туннеля uiTCP и требования для его создания:

ПРИМЕЧАНИЕ. Существующая реализация uiTCP не предназначена для работы в обстановке, когда состояние, характеристики и доступность каналов связи динамично изменяются со временем — в частности, на подвижных объектах.

Чем uiTCP лучше стандартных типов VPN?

Основная суть uiTCP — это универсальный механизм поддержания бесперебойных сеансов работы прикладного ПО и гарантированной доставки данных. Поверх этого механизма могут работать любые приложения, в т.ч. и те, которые изначально предназначены только для работы по абсолютно надёжной локальной сети. Потребность в разработке и применении uiTCP вызвана следующими причинами:

  1. При потере связи и переключении на другого оператора происходит не только потеря части данных. Это ещё можно было бы исправить средствами прикладного программного обеспечения. Но в сети нового оператора (и при переподключении к тому же самому — обычно тоже) клиент получает другой IP-адрес и, следовательно, с точки зрения сервера, становится уже другим клиентом. С ним надо начинать сеанс работы заново, по полной программе (аутентификация и т.п.), а старую закрывать по неактивности. В частности, для некоторых типов ПО банкоматов это может означать полную инициализацию всего устройства, и если она выполняется часто, то в сумме это может занимать недопустимо большую часть времени.
  2. Стандартные технологии VPN не предусматривают бесперебойной работы приложений при переходе на другой канал связи, переподключении и в других ситуациях, приводящих к изменению IP-адреса клиента. Для них это заканчивается переустановлением туннеля так же, как и описано выше. Как следствие, аварийно завершаются установленные сеансы всех вышележащих уровней (разрываются TCP-соединения, удаляются маршруты и т.п.). Таким образом, стандартные типы туннелей не решают проблему — такая задача перед ними и не ставилась; все они исходят из предположения, что прикладное ПО должно самостоятельно обнаруживать потерю связи и корректно обрабатывать её.
  3. Вертикальная интеграция. В стандартных технологиях почти каждая из аппаратных и программных компонент разрабатывалась и функционирует независимо от остальных, на одном определённом уровне протокольного стека: модем, модемная "звонилка", стек TCP/IP, туннели, прикладное ПО. Такой подход — единственно оправданный при разработке абсолютно универсальных технологий Интернет. Но в результате, за отдельными исключениями, они не имеют механизмов для взаимодействия. Когда нижележащая компонента (например, модем) "зависла", они не могут ни обнаружить немедленно сей прискорбный факт, ни рестартовать её, ни просигнализировать вышестоящей компоненте (туннелю, прикладному ПО) о необходимости рестарта. Но жизнь требует этого, так или иначе — и в результате решение обрастает, на практике, разнообразными кустарными скриптами, пинговалками, прерывателями питания и т.п. При этом каждый пользователь вынужден изобретать этот велосипед самостоятельно, не будучи специалистом в этой части и повторяя большинство ошибок своих коллег.
    uiTCP — это не просто очередной тип туннелей, функционирующий на том или ином уровне сетевого стека. Это готовая цельная система, охватывающая все уровни ниже прикладного ПО. Она контролирует работоспособность каналов связи, рестартует их при необходимости, переписывает маршруты с учётом работающих каналов связи на данный момент, контролирует доставку данных.
  4. Оперативность реагирования. Каждая из компонент протокольного стека должна самостоятельно установить, что нижележащая часть системы не работает (или работает не так, как раньше), и рестартовать свой сеанс. Сделать это, в отсутствие единых механизмов сигнализации, можно единственным способом: по факту того, что данные или контрольные пакеты (ping, keepalive, dead peer detection и т.п.) не проходят в течение какого-то времени. Причём время срабатывания должно быть разным у разных компонент, чтобы они не дёргались вразнобой. Практическое инженерное правило — на каждом следующем уровне его рекомендуется устанавливать примерно в 3 раза больше, чем на нижележащем. В результате время восстановления работы прикладного ПО может оказаться недопустимо большим.
    uiTCP, в отличие от фрагментарных стандартных решений, контролирует весь программно-аппаратный стек и при необходимости рестартует или переконфигурирует все необходимые компоненты последовательно, снизу доверху: модем, протокол канального уровня, IP-маршрутизацию, сам туннель. В результате время переключения составляет минимально возможное для данной аппаратной конфигурации. В самом сложном случае — при единственном сотовом модеме — оно гарантированно не превышает 60–75 сек.

Как это настроить?

Включить. Далее см. справку по узлу configure и теоретические пояснения по отдельным вопросам:

Принципы и режимы работы uiTCP
Механизм обеспечения бесперебойности
Симметрия и асимметрия в uiTCP
Многотуннельные и многоканальные режимы
Массовая конфигурация клиентов
Маршрутизация на серверной стороне при наличии нескольких серверов
Особенности настройки соединений LTE/3G с 2 SIM-картами
Централизованное управление сертификатами в системе
Централизованная замена сертификатов на клиентских устройствах
Мониторинг uiTCP
Часто задаваемые вопросы

Что делать, если это не работает?

  1. Смотреть журнал uiTCP на обеих сторонах.
  2. Убедиться, что используемые каналы связи функционируют нормально.
  3. Убедиться, что сервер uiTCP доступен по сети, используемый порт TCP не запрещён фильтрами, не перехватывается NAT, не занят другими приложениями и т.п.
  4. Попытаться зайти с клиента на сервер по Telnet на заданный номер порта. Нормальная ситуация — соединение устанавливается, но дальше остаётся пустой экран (сервер молчит и ждёт приветствия от клиента согласно протоколу). В этом случае отлаживать последующие компоненты туннеля: SSL, передачу полезного трафика на обеих сторонах. Ненормальная ситуация — Telnet-соединение не устанавливается с диагностикой "No reply from server..." или аналогичной. В этом случае см. выше.
  5. Убедиться, что на обеих сторонах корректно установлено системное время и сертификаты корректно сгенерированы для этого времени.
  6. Попытаться установить простейший туннель с минимумом функций, в т.ч. с отключённым TLS/SSL.
  7. Смотреть страницу Web-мониторинга для данного клиента, в т.ч. развернуть список соединений внутри туннеля, по которым передаётся полезная нагрузка (или show.connections).

© Network Systems Group 2015–2024 Отдел документации