Работает ли, если обе машины за NAT?

Да. Именно для этого случая LRO и сделан. Оба конца — машина, к которой вы тянетесь, и машина, с которой вы это делаете — могут стоять за NAT, на динамических IP, внутри корпоративных сетей, без входящего доступа вообще. Пока каждая может делать обычные исходящие соединения в интернет, туннель работает.

Обе стороны дозваниваются наружу

Агент LRO никогда не ждёт входящее соединение. Он открывает исходящее WebSocket-соединение к публичному ядру LRO и держит его живым keepalive-ами. Исходящее — направление, которое NAT и файрволы и так разрешают по умолчанию (то же, что использует браузер или проверка обновлений), поэтому в обеих сетях настраивать нечего.

Ядро ретранслирует поток

Когда вы открываете туннель между двумя агентами, ядро стоит в середине и передаёт байты от одного к другому в обе стороны. У каждой стороны уже установлен исходящий канал, поэтому ядро может пересылать данные между ними, не принимая ни одного входящего соединения. С точки зрения каждой сети есть только то исходящее соединение, которое она сама разрешила.

Ретрансляция всегда идёт через ядро — нет peer-to-peer hole-punching или STUN-«танца», который может не сработать на строгом или симметричном NAT. Если оба агента достают до ядра — туннель работает, точка.

Что не нужно

А поскольку ретранслируемый поток сквозно зашифрован между агентами, прохождение через общее ядро не раскрывает его содержимое — см. видит ли LRO мой трафик?

Дотянитесь до машины за NAT откуда угодно — без изменений сети с обеих сторон.

Создать аккаунт →