Estou tentando compactar a carga IP com ip xfrm
entre dois computadores. O computador 1 tem o endereço IP 192.168.0.1
e o computador 2 tem 192.168.0.2
. Eu estabeleci com sucesso um link IPSec entre as duas máquinas seguindo esta essência . Eu tentei adaptá-lo para a compressão. Eu corri o seguinte comando:
Computador 1
sudo ip xfrm state add src 192.168.0.1 dst 192.168.0.2 proto comp comp deflate
sudo ip xfrm policy add src 192.168.0.1 dst 192.168.0.2 dir out tmpl proto comp
Computador 2
sudo ip xfrm state add src 192.168.0.1 dst 192.168.0.2 proto comp comp deflate
sudo ip xfrm policy add src 192.168.0.1 dst 192.168.0.2 dir in tmpl proto comp
Primeiro eu testei pingando C2 com C1 e estou capturando o tráfego entre o wireshark. O ping está funcionando de uma única forma: apenas a requisição é enviada ( no respond found
exibido no C2 e nenhuma resposta enviada) e no wireshark eu não vejo nenhuma compressão em nenhuma direção. Eu interpretei isso como a carga útil é muito pequena, então xfrm
não comprime o pacote.
Então tentei estabelecer uma conexão ssh
de C1 para C2. ssh
está funcionando bem sem a compactação ativada. Quando eu habilito a compressão, o wireshark mostra pacotes compactados, mas o cliente ssh está esperando indefinidamente (mesmo motivo do ping) e acaba com um connection timed out
. Eu acho que isso é porque o M2 não descomprime os pacotes ip, os pacotes não podem ser lidos e são descartados.
Eu sei que essas regras não são bidirecionais e são apenas para uma direção de "upload". Então eu também tentei completar com as regras para download: switching ips e dir
policy. Isso acaba com os mesmos resultados.
Minhas perguntas são: Onde estou errado? Qual é a boa maneira de usar xfrm
para ter compressão e começar a trabalhar no link 'download'?
Ps: Sou bastante novo e a falta de explicação tornou xfrm
bastante difícil de entender como usá-lo corretamente e como ele está funcionando. Então, minha interpretação anterior, esteja errada.
Tags networking compression ip linux