Работает ли, если обе машины за NAT?
Да. Именно для этого случая LRO и сделан. Оба конца — машина, к которой вы тянетесь, и машина, с которой вы это делаете — могут стоять за NAT, на динамических IP, внутри корпоративных сетей, без входящего доступа вообще. Пока каждая может делать обычные исходящие соединения в интернет, туннель работает.
Обе стороны дозваниваются наружу
Агент LRO никогда не ждёт входящее соединение. Он открывает исходящее WebSocket-соединение к публичному ядру LRO и держит его живым keepalive-ами. Исходящее — направление, которое NAT и файрволы и так разрешают по умолчанию (то же, что использует браузер или проверка обновлений), поэтому в обеих сетях настраивать нечего.
Ядро ретранслирует поток
Когда вы открываете туннель между двумя агентами, ядро стоит в середине и передаёт байты от одного к другому в обе стороны. У каждой стороны уже установлен исходящий канал, поэтому ядро может пересылать данные между ними, не принимая ни одного входящего соединения. С точки зрения каждой сети есть только то исходящее соединение, которое она сама разрешила.
Что не нужно
- Ни публичного IP ни на одной машине.
- Ни проброса портов, ни входящих правил файрвола.
- Ни статического адреса, ни обходов через dynamic-DNS.
- Ни VPN-концентратора, ни изменений на роутере.
А поскольку ретранслируемый поток сквозно зашифрован между агентами, прохождение через общее ядро не раскрывает его содержимое — см. видит ли LRO мой трафик?
Дотянитесь до машины за NAT откуда угодно — без изменений сети с обеих сторон.
Создать аккаунт →