2008-10-08 11 views
10

Simplificado, tengo una aplicación donde se pretende que los datos fluyan a través de Internet entre dos servidores. Idealmente, me gustaría probar en qué punto el software deja de funcionar. En qué límite de límite inferior (ancho de banda, latencia, paquetes descartados) las cosas dejan de funcionar para probar la fiabilidad del software.La mejor manera de simular una red WAN

Lo que yo pensaba que iba a hacer era la siguiente:

  1. de configuración hasta 3 máquinas (instancias de VMware)
  2. instalar el 2 aplicaciones en dos de los servidores.
  3. instalación de la tercera servidor para sentarse entre las dos máquinas de hacer algún tipo de magia con Enrutamiento y acceso remoto en Windows 2003
  4. instalar cualquiera Traffic Shaper XP o NetLimiter para limitar el ancho de banda
  5. Ejecutar algo así como TMnetSim Network Simulator para simular una mala conexión.

¿Suena como una buena idea o hay formas más fáciles/mejores de hacer esto? No estoy tan cómodo con Linux y mis compañeros de equipo lo son aún menos.

+0

¿Podría explicarnos qué tipo de pruebas de rendimiento está tratando de hacer? –

+0

Creo que el rendimiento fue la palabra incorrecta. Lo que realmente quiero probar es qué límite de límite inferior (ancho de banda, latencia, paquetes descartados) hacen que las cosas dejen de funcionar para probar la confiabilidad del software. –

Respuesta

3

FreeBSDs ipfw tiene disposiciones para simular enlaces con un ancho de banda determinado, latencia o tasa de error. Puede usar esa máquina FreeBSD como su máquina "en el medio" en su configuración anterior.

Probablemente también pueda ejecutar al menos uno de los puntos finales en la misma máquina si desea reducir la cantidad de servidores involucrados.

+0

Un colega y yo usamos ipfw con gran éxito para la prueba de carga proxy, hace muchos años. Reemplazó una solución costosa (que no tendrá nombre) que funcionó tan mal que traté de recuperar nuestro dinero. –

1

Tuvimos un requisito similar hace unos diez años, veré si puedo recordar cómo lo logramos.

Si mal no recuerdo, escribimos un programa de socket proxy que fue controlado por inetd en una caja UNIX. Este socket acepta conexiones de un cliente y abre sesiones equivalentes hasta el servidor. A continuación, se reproducirá, pasando mensajes en ambas direcciones.

La forma en que logramos las características WAN fue introducir retrasos aleatorios (con límites superior e inferior) tanto en el establecimiento de la conexión como en el paso de los datos una vez que el enlace estaba activo.

También tenía la función para soltar el enlace ocasionalmente ya que los enlaces WAN eran menos confiables para nosotros que el tráfico local.

Recuerdo que tuvimos que enhebrarlo para evitar que los retrasos afectasen al tráfico inverso en el enlace.

2

Alguien realmente ha empaquetado la configuración y lo que no es necesario para la solución de FreeBSD a este problema y lo llaman DUMMYNET.

Simula/impone limitaciones de cola y ancho de banda, retrasos, pérdidas de paquetes y efectos de multitrayectoria. También implementa una variante de Weighted Fair Queuing llamada WF2Q +. Se puede usar en estaciones de trabajo de usuarios o en máquinas FreeBSD que actúen como enrutadores o puentes.

Puede simular exactamente lo que quiere, y es gratis y se iniciará en el hardware básico. Incluso tienen una instalación en lata que es lo suficientemente pequeña como para colocarla en un disquete (!) Que puede descargar en ese enlace.

+0

¿Puede DummyNet funcionar en máquinas VMware? Lo descargué y lo miré, y parece que solo funciona en máquinas físicas. Los ejemplos que he visto utilizan dos cables cruzados entre las máquinas y la máquina freebsd y no estoy seguro de cómo configurar freebsd como una puerta de enlace. –

+0

No he probado dummynet en VMware, pero ciertamente es una idea interesante. Potencialmente, si construyes una caja rápida barata con varias tarjetas de red, puedes simular una topología completa con ella. –

8

WANem hace exactamente esto. Lo hemos usado tanto en una máquina virtual en el escritorio como en una vieja PC dedicada y funcionó de maravilla. Puede simular todo tipo de conectividad rota.

2

tal vez es hora de aprender un poco acerca de Linux porque la adición de un retardo de 50 ms en cada paquete saliente se puede hacer de escribir una sola línea:

tc qdisc add dev eth0 root netem delay 50ms 

Para más información, véase la Linux Traffic Control HOWTO

0

Hay una muy buena (y gratis) solución de Microsoft para eso, la usamos por bastante tiempo y funciona muy bien, puede simular muy fácilmente todo (pérdida de paquetes, bajo ancho de banda, desconexión, latencia ...) Este es el La mejor solución que encontré para un entorno de Windows

Más información y un enlace de descarga se pueden encontrar aquí: MARCO blog post

este producto ha ido un poco de evolución y que ahora está integrado en Visual Studio como parte de la automatización de pruebas, pero he encontrado el uso de la versión autónoma (es decir bastante difícil de encontrar, así que guarde una copia local) para trabajar mucho mejor. Tenga en cuenta que necesita al menos dos computadoras (o máquinas virtuales), ya que necesita pasar a través de un adaptador de red para que la aplicación funcione su magia.

Cuestiones relacionadas