¿Cómo realizar una prueba de loopback de red usando TTCP o IPERF?

4

La PC tiene dos puertos Gigabit Ethernet. Funcionan como dos adaptadores de red separados. Estoy tratando de hacer una prueba simple de bucle invertido entre los dos. He probado TTCP e IPERF. Me están haciendo pasar un mal rato porque estoy usando la misma PC física.

Usando pcattcp ...

En el extremo del receptor:

C:\PCATTCP-0114>pcattcp -r
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Receive Test 0...
TCP Receive Test
  Local Host  : GIGA
**************
  Listening...: On TCPv4 0.0.0.0:5001

  Accept      : TCPv4 0.0.0.0:5001 <- 10.1.1.1:33904
  Buffer Size : 8192; Alignment: 16384/0
  Receive Mode: Sinking (discarding) Data
  Statistics  : TCPv4 0.0.0.0:5001 <- 10.1.1.1:33904
16777216 bytes in 0.076 real seconds = 215578.95 KB/sec +++
numCalls: 2052; msec/call: 0.038; calls/sec: 27000.000

C:\PCATTCP-0114>

En el extremo del transmisor:

C:\PCATTCP-0114>PCATTCP.exe -t 10.1.1.1
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Transmit Test 0...
TCP Transmit Test
  Transmit    : TCPv4 0.0.0.0 -> 10.1.1.1:5001
  Buffer Size : 8192; Alignment: 16384/0
  TCP_NODELAY : DISABLED (0)
  Connect     : Connected to 10.1.1.1:5001
  Send Mode   : Send Pattern; Number of Buffers: 2048
  Statistics  : TCPv4 0.0.0.0 -> 10.1.1.1:5001
16777216 bytes in 0.075 real seconds = 218453.33 KB/sec +++
numCalls: 2048; msec/call: 0.037; calls/sec: 27306.667

C:\PCATTCP-0114>

Está respondiendo bien. Pero, ¿por qué dice 0.0.0.0? ¿Está pasando por solo uno de los adaptadores de red?

Quiero que 10.1.1.1 sea el servidor (receptor) y 10.1.1.2 el cliente (transmisor). Estas son las direcciones IP asignadas manualmente a cada adaptador de red. ¿Cómo especifico estas direcciones en TTCP?

También existe la herramienta IPERF que tiene la -Bopción. Lamentablemente, solo he podido utilizar esta opción para vincular el servidor a la dirección 10.1.1.1. No pude vincular al cliente a la dirección 10.1.1.2. Podría estar haciéndolo mal. ¿Se -Bpuede usar la opción tanto para el servidor como para el lado del cliente? ¿Cómo se ve la sintaxis para el cliente?

Actualizar


Como puede ver en la respuesta que publiqué, descubrí cómo hacer esto usando IPERF. He buscado formas de usar TTCP para hacer lo mismo y he encontrado la -aopción, pero cuando intenté usarla recibí un error de Winsock en el lado del cliente.

En el lado del servidor:

C:\PCATTCP-0114>pcattcp -r -a 10.1.1.1
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Receive Test 0...
TCP Receive Test
  Local Host  : GIGA
**************
  Listening...: On TCPv4 10.1.1.1:5001

Del lado del cliente:

C:\PCATTCP-0114>pcattcp -t 10.1.1.1 -a 10.1.1.2
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
  IP Version  : IPv4
Started TCP Transmit Test 0...
TCP Transmit Test
  Transmit    : TCPv4 10.1.1.2 -> 10.1.1.2:5001
  Buffer Size : 8192; Alignment: 16384/0
  TCP_NODELAY : DISABLED (0)
*** Winsock Error: connect Failed; Error: 10061 (0x0000274D)

C:\PCATTCP-0114>

Parece que está tratando de conectarse a sí mismo?

Samir
fuente

Respuestas:

4

Revisé la ayuda para IPERF y creo que la obtuve ahora.

En el lado del servidor:

C:\>iperf -s -B 10.1.1.1
------------------------------------------------------------
Server listening on TCP port 5001
Binding to local address 10.1.1.1
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[160] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 35202
[ ID] Interval       Transfer     Bandwidth
[160]  0.0-10.0 sec   420 MBytes   352 Mbits/sec

s

Del lado del cliente:

C:\>iperf -c 10.1.1.1 -B 10.1.1.2
------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
Binding to local address 10.1.1.2
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[132] local 10.1.1.2 port 35202 connected with 10.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[132]  0.0-10.0 sec   420 MBytes   352 Mbits/sec

C:\>

C

Avísame si ves algún error aquí.

¿Todavía me gustaría saber si esto es posible y cómo hacerlo usando TTCP? Si conoce la respuesta a esto, publíquelo.

Samir
fuente
1

IP funciona eligiendo la mejor ruta desde el origen hasta el destino. El bucle de retorno dentro de un host es mejor que la interfaz Ethernet de un host, por lo que incluso si cree que está probando el bucle de Ethernet que conectó entre sus dos adaptadores de red, encontrará que el tráfico enviado entre dos direcciones IP de su máquina no pasar a través de él, en su lugar, cortocircuitos a través de bucle invertido.

Debería ejecutar dos instancias de enrutamiento distintas en un dispositivo y solo dar a conocer una de las interfaces externas a cada una si desea que el tráfico se repita en el exterior. Si su dispositivo fuera un enrutador, utilizaría VRF (Virtual Routing Facility) para separar las instancias de enrutamiento.

Dado que su máquina es un host, su mejor opción es instalar una VM y pasar una de las interfaces de red a la máquina virtual mientras que la otra es manejada por el "metal desnudo".

Karl
fuente