Получать конкретное многоадресное сообщение на клиенте, подключенном через VPN - PullRequest
0 голосов
/ 06 ноября 2018

Корпус: [Подсеть A, 192.168.2.0/24, интернет-gw на основе прошивки Padavan]

[Подсеть B, 192.168.1.0/24, интернет-приложение на основе прошивки Padavan]

Хост из подсети A (2.155) подключается через VPN (возможные варианты: PPTP, OpenVPN, L2TP без ipsec) к подсети B и получает адрес, говоря 1.245/32

В подсети B существует хост (1.10/32), который отправляет многоадресные дейтаграммы на 224.0.0.50:9898; На роутере я вижу их с

tcpdump -i br0 -c 10 dst host 224.0.0.50 and port 9898 and multicast

13:46:54.345369 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135

Я ищу решения для приема / пересылки этих широковещательных сообщений, чтобы их могли видеть хосты, подключенные через VPN

На маршрутизаторе B, который основан на прошивке Padavan, у меня есть, и ограничен утилитами igmproxy udpxy, если это необходимо.

На клиентском хосте я использую Debian и обычно не ограничен в инструментах.

дейтаграммы являются проприетарным протоколом, то есть не iptv или видеопотоком.

Любые идеи приветствуются.

[UPD] Дополнительная информация - за обсуждение в комментариях

Это очень специфическое аппаратное устройство, которое не очень болтливое в терминах Ethernet (скажем, максимум 1-2 датаграммы за 5 секунд), поэтому, безусловно, должно быть довольно переадресованным. К сожалению, он отправляет обновления статуса только через трансляцию. в подсети А существуют аналогичные устройства + управляющее программное обеспечение. Таким образом, я ищу способ, чтобы дейтаграммы, транслируемые на 224.0.0.50:9898 в подсети B, снова появлялись в подсети A. Может быть, с помощью какого-то инструмента. Может быть smcroute, может быть udpxy, может быть igmproxy

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Для тех, кто сюда приходит, с таким же вопросом.

Когда у вас будет необходимая многоадресная рассылка на tap0,

вы можете создать мост из, скажем, eth0 и tap0

Записки всех заинтересованных, кто бы сюда пришел.

ip link add br0 type bridge
ip link set tap0 master br0
ip link set eth0 master br0

POC - обе многоадресные рассылки на одном интерфейсе

sudo tcpdump -i br0 dst host 224.0.0.50 and port 9898
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:09:51.823632 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135
21:09:55.045138 IP 192.168.2.214.4321 > 224.0.0.50.9898: UDP, length 136
0 голосов
/ 09 декабря 2018

Поскольку я не люблю оставлять без ответа решенные вопросы, вот действующее решение

В подсети B я установил конечную точку сервера openVPN, настроенную как L2.

В подсети A на управляющем хосте я установил клиент openvpn, который подключается к подсети B, назначенный интерфейс - tapz

20: tapz: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 0a:da:be:96:78:d9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.245/24 brd 192.168.1.255 scope global noprefixroute tapz
       valid_lft forever preferred_lft forever
    inet6 fe80::8da:beff:fe96:78d9/64 scope link 
       valid_lft forever preferred_lft forever

Итак, теперь на управляющем хосте у меня есть:

трансляция с локального устройства по физическому Ethernet enp5s0

sudo tcpdump -i enp5s0 -c 10 dst host 224.0.0.50 and port 9898 and multicast
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp5s0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:55:05.642963 IP lumi-gateway-v3_miio56591509.4321 > 224.0.0.50.9898: UDP, 
length 136

и теперь я также получаю трансляции с удаленного сетевого устройства на tapz

sudo tcpdump -i tapz -c 10 dst host 224.0.0.50 and port 9898 and multicast
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tapz, link-type EN10MB (Ethernet), capture size 262144 bytes
13:53:49.141751 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135

Пока что я искал необходимые дейтаграммы на VPN-клиенте. OpenVPN на удаленной стороне также может быть оптимизирован для фильтрации информации, передаваемой для многоадресных рассылок.

...