Eu tenho um servidor que tem duas portas ethernet, cada uma rodando em um NIC separado (eth0 e eth1). Eu gostaria de conectar a eth0 a uma máquina separada que transmite vídeo sobre UDP (e nenhum outro tráfego) enquanto a outra interface (eth1) está conectada ao gateway / roteador da rede.
Eu não me importo se a porta de tráfego do udp não se conecta à rede mais ampla.
Obrigado!
EDIT: Desde que esta questão foi colocada em espera, gostaria de esclarecer ainda mais o meu sistema de acordo com os comentários abaixo. Meu sistema consiste em uma máquina rodando linux, com duas placas de rede ethernet. Estou recebendo um fluxo UDP em uma dessas portas, de uma conexão LAN-LAN direta para uma câmera de segurança, e apesar de ter sido capaz de ler os pacotes vindos da câmera usando tcpdump
, ainda estou vendo qualquer coisa vindo através do via gstreamer
que eu planejo usar para exibir o vídeo.
As duas portas têm um endereço IP estático, configurado da seguinte forma:
eth0 Link encap:Ethernet HWaddr 5C:F8:21:34:80:F6
inet addr:192.168.1.233 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5ef8:21ff:fe34:80f6%132688/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1237 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113089 (110.4 KiB) TX bytes:14016 (13.6 KiB)
Interrupt:99
eth1 Link encap:Ethernet HWaddr 5C:F8:21:34:80:F7
inet addr:192.168.1.234 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1%132688/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:330 errors:0 dropped:0 overruns:0 frame:0
TX packets:330 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:277171 (270.6 KiB) TX bytes:277171 (270.6 KiB)
E a tabela de roteamento interna:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
A câmera está no endereço 192.168.1.239
e transmite para o meu servidor diretamente pelo UDP. (o MAC de destino é codificado nos pacotes) Ele está transmitindo um fluxo MJPEG, e quando eu pego os pacotes salvos por tcpdump
eu posso reconstruí-lo no MJPEG.
no entanto, quando eu uso gstreamer
usando o seguinte comando:
gst-launch-1.0 udpsrc multicast-iface=eth0, port=1234 ! filesink location=foo
foo
não salva nenhum dado. Eu usei essa máquina para salvar fluxos do udp usando gstreamer no passado, mas não quando as duas portas estavam em uso. Ou seja, o vídeo vinha de outra máquina, através do roteador, para esse servidor em questão.
Então, por que esses pacotes, que o servidor claramente vê e entende (não está soltando pelo menos), não chegam ao meu programa gstreamer?