Отправка многоадресных пакетов на виртуальную машину, работающую только на интерфейсе br0 - PullRequest
0 голосов
/ 06 марта 2019

Я попытался отправить многоадресные пакеты udp, используя приведенный ниже код, на определенный интерфейс и порт, т. Е. Br0 и порт XXXX, на котором работает сервер (сервер может работать только на интерфейсе br0), который предоставит мне свои пакеты обнаружения.Проблема в

  1. Я не получаю ответ от сервера.Я думаю, что пакеты падают после достижения сервера.Примечание. Пакеты достигают сервера, я проверил его с помощью инструмента анализа пакетов wireshark.

  2. Данные пакетов добавляются в поток udp на каждой итерации, которая просматривается wiresharkопция 'follow udp stream'. Мне нужно отправить отдельный поток udp.как для каждого пакета 'discovery_data' должен быть отправлен в каждой итерации.

Нужна помощь по двум вышеуказанным проблемам.

import socket
import time

MCAST_GRP='239.255.255.250'
MCAST_PORT=XXXX
data='discovery_data'
MULTICAST_TTL=32
sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, MULTICAST_TTL)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF,socket.inet_aton("10.224.1.1"))
while True:
    dt=sock.sendto(data,(MCAST_GRP,MCAST_PORT))
    print(dt)
    time.sleep(10)
...