Добрый день всем
Мое приложение в основном использует многоадресные пакеты на
ip = 224.8.0.1
Я тестировал обычный Wi-Fi / Ethernet и размещенные сети, и все они хороши.
Проблема:
На моем сервере OpenVZ работает OpenVPN: UDP. Мое приложение должно разрешать многоадресным пакетам проходить через VPN и получать их любым другим клиентом, подключенным к VPN, однако это не так.
Я сделал tcpdump на адаптере OpenVPN tun0, многоадресный трафик не отправляется, однако на стороне отправителя wirehark обнаруживает отправляемый трафик.
После исследования я наткнулся на этот пост
https://openvpn.net/archive/openvpn-devel/2004-04/msg00032.html
Я бы попробовал переключиться на «dev tap» (без моста), чтобы посмотреть, поможет ли это.
Я видел некоторые старые отчеты о том, что многоадресная передача / igmp не работает на устройствах tun, но также читал отчеты о том, что он «теперь работает» ...
Также убедитесь, что вы отключили rp_filter на устройстве tun, поскольку многоадресный адрес не проходит проверку rp_filter (/ proc / sys / net / ipv4 / conf / * / rp_filter)
Я не могу переключиться на тап, поэтому я попытался повторить эхо 1> ../../rp_filter, но он защищен от записи.
Основываясь на другом сообщении, вот 3 возможных решения:
https://community.openvpn.net/openvpn/ticket/79
(1) Позвольте ядру выполнять маршрутизацию. Это означает возврат к одному демону OpenVPN на каждом конце туннеля, как в 1.x.
(2) Используйте интерфейс tun в OpenVPN 2.0 в многоклиентном режиме. Это будет рассматривать многоадресную рассылку как широковещательную рассылку.
(3) Используйте многоадресные туннели - это будет туннелировать многоадресные пакеты через OpenVPN, инкапсулированные в контейнер IP-in-IP, который должен работать нормально.
Другое [возможное] [3] решение:
вам нужно будет прослушивать и перехватывать входящие пакеты IGMP, поддерживать состояние многоадресной маршрутизации и реплицировать многоадресные пакеты в соответствии с недавно введенной таблицей многоадресной пересылки.
Вариант (3) кажется наиболее подходящим, но я понятия не имею, как его настроить.
Может ли кто-нибудь помочь мне в этом?
server.conf
port 1025
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.0.0.2 255.255.255.252
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo no
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
push "remote-gateway x.x.x.x"
push "dhcp-option DNS 8.8.8.8"
ccd-exclusive
#for checking active clients
management localhost 7505
iptables хорош, недавно добавил
iptables -A INPUT -i tun0 -m pkttype --pkt-type multicast -j ACCEPT
iptables -A INPUT -i tun0 --protocol igmp -j ACCEPT
но не повезло