Tengo una computadora portátil con Ubuntu 15.10. Aquí hay un adaptador de red integrado al que agregué otro a través de USB. Ahora tengo dos interfaces de red que se muestran cuando escribo ifconfig. Luego los configuré a ambos con una IP estática: eno0 -> 192.168.0.21 (nic incorporado) eno1 -> 192.168.0.22 (USB-nic)
Ambos adaptadores están directamente en una PC de destino diferente con un cable Ethernet: 192.168.0.21 -> 192.168.0.1 (PC de destino 1) 192.168.0.22 -> 192.168.0.2 (PC de destino 2)
A continuación, tengo un script de Python para enviar paquetes UDP desde la computadora portátil a la PC de destino:
import socket
import time
#create socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind("192.168.0.21", 2000)
sock.sendto("test", ("192.168.0.1", 2000))
Esto funciona si solo hay un adaptador conectado. Cuando ambos adaptadores están conectados, esto solo funcionará para la interfaz que se conectó primero. Luego intenté enviar un ping a través de la interfaz que no funciona. Digamos que la interfaz eno0 está funcionando y puede enviar con éxito paquetes UDP a través del script Python, entonces esto no funcionará:
ping -I eno1 192.168.0.2
Muestra que los paquetes salen de la PC, y a través de Wireshark puedo verlos saliendo del nic, incluso puedo ver la PC de destino enviando una respuesta, pero en el término no aparece y al abortar con ctrl + c veo que 5 paquetes han sido enviados y todos se perdieron. Hacer ping a través de eno0 funciona perfectamente bien para la PC de destino.
¿Cómo puedo solucionar esto?