Eu desenhei um diagrama abaixo para ajudar com essa pergunta!
Assim, uma empresa publicou um feed UDP multicast (empresa A) e outra empresa se conecta a ele (Empresa B). Eu tenho um túnel ponto-a-ponto para a empresa B.
Como posso fazer com que nossa máquina se junte ao grupo de multidifusão? A empresa A está publicando por meio da máquina da empresa B?
Podemos fazer o ping da máquina da empresa B bem no terminal, se fizermos
ping 192.168.255.1
Mas, dado o script Python abaixo, não estamos recebendo nenhum dado de volta. Meu palpite é que não estamos roteando pacotes de 192.168.255.2 (nossa máquina) para 192.168.255.1 (máquina da empresa B)
Alguma ideia de como fazer isso da melhor maneira?
Se sim, como poderíamos implementar isso?
Muito obrigado antecipadamente!
Aqui está o código de soquete que estou usando (Python):
import socket
import struct
MCAST_GRP = '233.xxx.xxx.xxx'
MCAST_PORT = 18000
host = '192.168.255.2'
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((MCAST_GRP, MCAST_PORT))
sock.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(MCAST_GRP) + socket.inet_aton(host))
while True:
print sock.recv(1024)
Aqui está a configuração:
tunnel Link encap:UNSPEC HWaddr xx-xx-xx-xx-xx-xx-xx-xx-00-00-00-00-00-00-00-00
inet addr:192.168.255.2 P-t-P:192.168.255.2 Mask:255.255.255.252
inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1476 Metric:1
RX packets:53 errors:0 dropped:0 overruns:0 frame:0
TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6872 (6.8 KB) TX bytes:17522 (17.5 KB)