Sua compreensão do processo está correta.
O "encapsulamento" ou "encapsulamento" realmente acontece no nível TCP: o fluxo vindo pela conexão SSH é conectado à conexão do soquete na LAN, e tudo que sai e volta sobre isso também passa por isso.
Estou interessado no mecanismo exato que ocorre quando um túnel SSH é estabelecido.
Supondo que temos 3 computadores: host LOCAL, host INTERMEDIÁRIO e host REMOTE, com esta topologia:
Localhost --- INTERNET --- IntermediateHost --- LAN --- RemoteHost
E queremos colocar um túnel em um servidor da Web em execução no RemoteHost.
Hosts intermediários e remotos aceitam conexões SSH.
Quando executo o seguinte comando na máquina local:
$ ssh -L 2022:remote:80 user@intermediate
Eu estou certo se eu assumir o seguinte?
Então, agora, um navegador da Web em execução no Localhost se conecta ao localhost: 2022 e envia um "GET /" através do soquete. O SO assume o controle e encapsula essa informação dentro de um pacote TCP, com a porta de destino 2022, e esta dentro de um pacote IP, com endereço de destino LOCALHOST, as tabelas de roteamento do sistema operacional determinam que o pacote é destinado à mesma máquina, então ele desembrulha o pacote TCP, lê o destino e o desembrulha, retornando o "GET /" para o serverSocket que o cliente SSH abriu antes (na porta 2022)
Isso está correto? porque, até onde eu sei, um encapsulamento encapsula o pacote TCP / IP através do SSH, mas neste cenário, o cliente SSH não tem acesso ao pacote TCP / IP, ele só obtém as informações de "nível de aplicativo": "GET /".
Obrigado!
Sua compreensão do processo está correta.
O "encapsulamento" ou "encapsulamento" realmente acontece no nível TCP: o fluxo vindo pela conexão SSH é conectado à conexão do soquete na LAN, e tudo que sai e volta sobre isso também passa por isso.