Qual é o gargalo do IPsec no Linux?

19

Estou tentando comparar o desempenho de vários protocolos de segurança de rede entre dois hosts conectados em Gigabit Ethernet.

Meu objetivo aqui é ver se consigo saturar minha largura de banda e, se não, qual é o fator limitante.

  • com SSL, posso atingir 981 MBit / s, portanto, o link Ethernet é obviamente o fator limitante;
  • com SSH, posso alcançar apenas 750 MBit / s, mas um dos meus núcleos está em 100% de uso. Como o SSH é single-threaded, a CPU é o fator limitante;
  • com o IPsec, eu li cerca de 500 MBit / s, mas nenhum dos meus núcleos está em 100% (eles estão abaixo de 50%).

Então, minha pergunta é: por que o IPsec não consegue atingir uma largura de banda maior?

Os dois hosts estão executando o Debian Wheezy e o Strongswan para IPsec.

    
por user50228 25.03.2015 / 11:25

3 respostas

1

Existem muuuitos fatores que contribuem para isso. A NIC atinge mais partes do tabuleiro do que você imagina. Qualquer conjunto se as instruções puderem passar pelo fio e bater em uma parte do sistema do motorista e engarrafá-lo no pescoço. Você pode ter um único núcleo de 1200mhz singleboard e desligar o hardware para explodir as portas e quad-core 3600mhz. Esta é realmente uma questão específica de hardware.

Como eles fazem isso? com algo parecido com isto link Esse é o dispositivo de $ 165k "Eu vou te quebrar". ou seja, 2 gigs de tráfego errôneo em um tubo de 1gig. Quando você começar a bater o sistema e quebrar o material, o gargalo da garrafa "revelará a si mesmo". Atualize suas habilidades no GDB!

Todo sistema tem um método diferente para resolver o problema. Algumas placas têm limitações de tecnologia que podem limitar você.

A resposta é ambígua porque a solução é ambígua. Posso pensar em 20 possibilidades diferentes, incluindo paginação, que pode variar da versão do sistema operacional para a versão.

    
por 10.06.2015 / 19:34
0

Eu estou querendo saber se é porque os esperas artificiais ou os sleeps foram inseridos no crypto. Não é muito provável que seja, mas ...

link

Não foi possível postar isso como um comentário, seria melhor se você se encaixasse dessa maneira.

    
por 08.05.2015 / 16:48
0

Pode ser que, em qualquer momento específico, apenas um dos dois núcleos esteja saturado, mas, em média, parece que ambos estão em cerca de 50% (porque o kernel atribui aleatoriamente um processo IPsec de encadeamento único a ambos os núcleos; Tanto quanto eu notei Linux (ao contrário do Windows) geralmente tenta manter um thread no mesmo núcleo).

Em alguns períodos curtos, o IPSec pode esperar também pela rede que, junto com a taxa de transferência lenta, seria um sinal de buffer deficiente.

Além disso, a compactação (se houver) e a sobrecarga do protocolo podem afetar seus testes.

    
por 14.05.2015 / 16:30