OSX como descartar pacotes aleatoriamente

3

Estou testando a resiliência de um de nossos aplicativos de streaming para lidar com perdas de pacotes. Em máquinas linux eu normalmente uso o iptables para descartar aleatoriamente pacotes como este:

iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP

Eu preciso testar isso em um servidor que está atualmente executando o OSX. Alguma idéia de como soltar aleatoriamente pacotes em um computador OSX Server ou Mac?

/ Andy

    
por Andy 02.02.2016 / 09:37

2 respostas

3

A ferramenta que você está procurando é dnctl . Para citar a manpage:

 plr packet-loss-rate
       Packet loss rate.  Argument packet-loss-rate is a floating-point number between 0 and 1, with 0 meaning no loss, 1 meaning 100% loss.  The loss rate is internally repre-
       sented on 31 bits.

E:

To drop random incoming IPv4 and IPv6 ICMP packets with a probability of 5%, create a pipe:

dnctl pipe 10 config plr 0.05
    
por 02.02.2016 / 10:52
1

A resposta do Teun Vink para usar o dnctl funciona, mas é um pouco complicada, pois depende de um pouco de outra configuração. Analisando essa ferramenta, descobri que o Xcode tem uma extensão chamada Condicionador de link de rede que é mais uma interface GUI para isso que funciona muito bem. Veja aqui para instruções.

Para uma solução com script, o Teun é o caminho.

Obrigado!

    
por 03.02.2016 / 19:19