Я нарисовал диаграмму ниже, чтобы помочь с этим вопросом!
Таким образом, одна компания опубликовала многоадресный UDP-канал (компания A), а другая компания подключается к нему (компания B). У меня есть двухточечный туннель до компании B.
Как я могу заставить нашу машину присоединиться к группе многоадресной рассылки, которую компания A публикует через машину компании B?
Мы можем пинговать машину компании B с терминала, если мы это сделаем
ping 192.168.255.1
Но, учитывая приведенный ниже сценарий Python, мы не получаем обратно никаких данных. Я предполагаю, что мы не маршрутизируем пакеты с 192.168.255.2 (наша машина) на 192.168.255.1 (машина компании B).
Есть идеи, как это сделать наилучшим образом?
Если да, то как мы можем это реализовать?
Большое спасибо заранее!
Диаграмма:
Вот код сокета, который я использую (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)
Вот конфиг:
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)