Configuration d'un routeur pour supprimer les paquets, introduire une latence, corrompre les données


13

Je me demandais si quelqu'un avait une expérience de la mise en place d'un environnement conçu pour des performances médiocres lors de l'envoi / la réception de demandes sur un réseau. Je suis en train de développer une application et j'aimerais la rendre robuste sur des réseaux extrêmement peu performants. Quelqu'un sait-il s'il est possible de configurer un routeur pour:

  1. abandonner par intermittence des paquets
  2. introduire par intermittence la latence dans les paquets
  3. données corrompues dans les paquets (celui-ci n'est pas requis car il faudrait ouvrir le paquet, changer les données et mettre à jour la somme de contrôle car la couche TCP intercepterait ce type de problème)

Si ce n'est pas possible sur un routeur, serait-il possible de configurer un ordinateur pour agir en tant que routeur et de le faire?

Merci beaucoup!

Réponses:


17

Si vous utilisez une boîte Linux comme routeur, netfilter a un certain nombre de façons de jouer avec le trafic de vos paquets.

Le randommodule peut être utilisé pour supprimer des paquets de manière aléatoire. Par exemple, ceci:

iptables -A FORWARD -m random --average 10 -j DROP

entraînera la perte aléatoire de paquets par le routeur à un taux moyen de 10%.

Vous pouvez également corrompre des paquets aléatoires avec la cible XOR, par exemple

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"

corrompra 1% des paquets transférés en les faisant XOR avec une clé dérivée de la chaîne donnée.


Cela semble génial! Merci Steven! Avez-vous déjà mis cela en place? Quelle distribution Linux?
Mark

J'ai réussi à créer des routeurs pour les petits réseaux utilisant Debian. Mais à peu près n'importe quelle distribution Linux avec un noyau récent devrait faire l'affaire, puisque netfilter est intégré au noyau. Je n'ai jamais vraiment essayé de créer un "mauvais" routeur comme décrit ici, mais cela pourrait être un projet intéressant pour un dimanche après-midi paresseux ...
Steven lundi

Si vous utilisez iptables version 1.3.5, la commande ci-dessus peut afficher une erreur avec le message "iptables v1.3.5: Impossible de charger la correspondance` random '". La commande ci-dessous a fonctionné pour moi - iptables -A FORWARD -m statistique --mode random --probability 0.2 -j DROP
prashantsunkari

3

J'ai utilisé WANem avec succès pour simuler les conditions de réseau d'un WAN entre l'Allemagne et l'Inde. WANem est livré sous forme de CD de démarrage ou d'appliance virtuelle. Il vous suffit de le démarrer, de configurer les propriétés réseau souhaitées, puis d'acheminer votre trafic à travers celui-ci. Citant la description officielle:

WANem est un émulateur de réseau étendu, destiné à fournir une véritable expérience d'un réseau étendu / Internet, lors du développement / test d'applications sur un environnement LAN. En règle générale, les développeurs d'applications développent des applications sur un réseau local alors que le but recherché pourrait être les mêmes, les clients y accédant via le WAN ou même Internet. WANem permet ainsi à l'équipe de développement d'applications de configurer une passerelle d'application transparente qui peut être utilisée pour simuler des caractéristiques WAN telles que le retard réseau, la perte de paquets, la corruption de paquets, les déconnexions, la réorganisation des paquets, la gigue, etc. WANem peut être utilisé pour simuler une zone étendue. Conditions de réseau pour le trafic de données / voix et est publié sous la licence GPL v2 largement acceptée.


2

Réglez le port de liaison montante sur 10 Mbps et semi-duplex si vous le pouvez. Utilisez ensuite un hôte sur le réseau pour en faire un ping. Cela devrait vous neutraliser décemment: D


Définissez également la taille des paquets sur les pings sur une valeur considérablement supérieure à la valeur par défaut. Cela peut être un moyen très efficace et facile de simuler des liaisons réseau saturées / généralement mauvaises - si vous pouvez paralyser la connexion spécifique comme indiqué en réglant délibérément sa bande passante sur une valeur inférieure à celle de la machine `` attaquante ''.
Andrew Barber

Vous pouvez également jouer avec MTU, choisissez une vraie taille excentrique :)
SpacemanSpiff
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.