Cómo simular la pérdida de paquetes en una conexión ssh usando scp

Cómo simular la pérdida de paquetes en una conexión ssh usando scp

Me gustaría observar la durabilidad de un nuevo protocolo de túnel VPN llamado wireGuard en un entorno de red inestable en plataformas macOS y Linux al transferir una gran cantidad de datos de un nodo a otro.

Tenga en cuenta que wireGuard funciona bajo UDP y quería tener una idea de cómo se aborda la pérdida de paquetes hasta cierto punto.

¿Existe algún método que pueda configurar la interfaz de red para que elimine algún porcentaje de los paquetes durante esta sesión de copia remota?

Respuesta1

Para Linux con iptables, algo como:

iptables -A OUTPUT -m statistic --mode random --probability 0.02 -j DROP

o

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

Notas:

  • Los comandos anteriores afectan a todos los paquetes procesados ​​por la cadena OUTPUT(o INPUTrespectivamente) de la filtertabla. Probablemente desee utilizar -p(protocolo) y, por ejemplo, --dport(puerto de destino) para apuntar únicamente a conexiones específicas:

    iptables -A OUTPUT -p udp --dport 1234 -m …
    
  • Mientras prueba diferentes variantes, recuerde eliminar reglas innecesarias en lugar de acumularlas. Para eliminar una regla, invoque el mismo iptables …comando, pero en -Dlugar de -A.


No lo sé nftableslo suficientemente bien. He encontrado esto:¿Cómo descartar paquetes según una probabilidad con nftables?


no conozco macosen absoluto. En mi investigación me he encontrado pfctljunto con dnctl. He encontrado esto para OSX:Cómo soltar paquetes al azar. No sé en absoluto si dnctllo usado en la respuesta se puede usar en macOS hoy en día. Lo siento.

Mover la "parte de macOS" a una pregunta separada (que creo que se puede hacer enapple.stackexchange.com), aunque dejar aquí sólo la "parte de Linux" puede ser una buena estrategia.

información relacionada