5

Я заинтересован в точном механизме, который происходит, когда SSH туннель установлен.

Предположим, у нас есть 3 компьютера: ЛОКАЛЬНЫЙ хост, ПРОМЕЖУТОЧНЫЙ хост и УДАЛЕННЫЙ хост с этой топологией:

Localhost --- INTERNET --- IntermediateHost --- LAN --- RemoteHost

И мы хотим создать туннель для веб-сервера, работающего на RemoteHost.

Промежуточные и Удаленные хосты принимают соединения SSH.

Когда я выполняю следующую команду на Локальной машине:

$ ssh -L 2022:remote:80 user@intermediate

Я прав, если я предполагаю следующее?

  • SSH- клиент localhost открывает порт 2022 и слушает его (начинает действовать как сервер)
  • В то же время SSH- клиент localhost открывает SSH-соединение с портом по умолчанию (22) на промежуточном хосте.
  • В связи с этим клиент сообщает IntermediateHost, что он хочет открыть туннель (поскольку протокол SSH поддерживает его), поэтому теперь промежуточный SSH-сервер знает, что он должен отправлять трафик, полученный через это соединение, на RemoteHost, порт 80.

Итак, теперь веб-браузер, работающий на Localhost, подключается к localhost:2022 и отправляет «GET /» через сокет. SO берет на себя управление и инкапсулирует эту информацию в пакет TCP с портом назначения 2022, а затем в пакет IP, с адресом назначения LOCALHOST, таблицы маршрутизации операционной системы определяют, что пакет предназначен для той же машины, поэтому он разворачивает пакет TCP, считывает место назначения и разворачивает его, возвращая «GET /» в serverSocket, который ранее был открыт SSH-клиентом (на порту 2022)

Это правильно? потому что, насколько мне известно, туннель оборачивает пакет TCP/IP через SSH, но в этом случае клиент SSH не имеет доступа к пакету TCP/IP, он получает только информацию "уровня приложения": «GET /».

Спасибо!

1 ответ1

2

Ваше понимание процесса правильно.

"Обтекание" или "туннелирование" действительно происходит на уровне TCP: поток, поступающий через соединение SSH, подключен к соединению сокета в локальной сети, и все, что идет вперед и назад по этому, также проходит через это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .