Just in case someone finds this thread and is curious:
I got multicast over wireless working by using an openvpn tunnel.
Here's a brief description. If there a more questions, please be sure to also send me a PM!
This should work for whiterussian and kamikaze. I've used kamikaze 8.09.1.
The box setup is as follows:
IPTV-router <--cable--> WRT54GL (AP) <--wireless--> WRT54GL (STA) <--cable--> IPTV-Settopbox
In the end the settopbox should believe it is directly connected to the IPTV-router.
The steps that got multicasting over wireless working for me:
* break up the bridge between lan and wireless, i.e. use routed configuration
(directly multicasting over the wireless bridge never worked for me).
* create a bridge with only the lan interface connected. Openvpn's tap interface will be
bridged to it. The wireless interface is not connected to a bridge.
* setup (preferably encrypted) wireless network between AP and STA.
* install openvpn and setup a server on the AP and an openvpn client on the STA (configs follow),
both using a tap interface bridged to the lan interface. The multicast packets will be captured
there and tunneled over wireless, encapsulated within the openvpn packets.
I also tried to use gre tunnels first, but gre interfaces cannot be bridged. That's why I turned to openvpn.
* make sure that both the lan and tap interfaces are set into promiscuous _and_ allmulti mode.
openvpn server config:
cd /tmp/openvpn
port 1194
float
proto tcp-server
dev tap0
up /etc/openvpn/scripts/up.sh
down-pre /etc/openvpn/scripts/down-pre.sh
script-security 3
secret /etc/openvpn/secret.key
cipher none
auth none
no-iv
no-replay
mute-replay-warnings
persist-key
persist-tun
status /tmp/openvpn/status.log 60
verb 4
mute 5
mssfix 1440
sndbuf 131072
rcvbuf 131072
txqueuelen 1000
openvpn client config:
cd /tmp/openvpn
remote 192.168.1.1:1194
remote 192.168.2.1:1194
float
proto tcp-client
dev tap0
up /etc/openvpn/scripts/up.sh
down-pre /etc/openvpn/scripts/down-pre.sh
script-security 3
secret /etc/openvpn/secret.key
cipher none
auth none
no-iv
no-replay
mute-replay-warnings
persist-key
persist-tun
status /tmp/openvpn/status.log 60
verb 4
mute 5
mssfix 1440
sndbuf 131072
rcvbuf 131072
txqueuelen 1000
Notes about the openvon configuration:
* The client tries to connect over lan (192.168.1.1) first, then over wireless (192.168.2.1). That way, I can connect the STA to the lan
where available,
* I'm using a shared secret instead of a PKI with certificates to simplify matters as I only connect a single settopbox.
* Using tcp as a transport worked better for me (less hiccups). YMMV, though, so please also try udp transport.
* To lighten the CPU load on the WRT54GL, I run openvpn without _any_ encryption and _no_ authentication! Beware!
The openvpn tunnel is _only_ used as a transport, so I'd recommend to secure the wireless link with at least WPA or better WPA2.
* Two scripts are run when openvpn connection is established (up.sh) and lost (down-pre.sh) to ensure the interfaces have the proper flags set
and to add the tap interface to the lan-bridge. The scripts contents (don't forget to make them executable):
up.sh:
#!/bin/sh
/sbin/ifconfig $1 promisc multicast allmulti up
/usr/sbin/brctl addif br-lan $1
/sbin/ifconfig br-lan multicast allmulti
pre-down.sh:
#!/bin/sh
/usr/sbin/brctl delif br-lan $1
Last but not least, I tuned the tcp stack a little because of the use of the tcp transport.
I've added this to /etc/sysctl.conf:
net.core.rmem_max = 262144
net.core.wmem_max = 262144
net.core.rmem_default = 131072
net.core.wmem_default = 131072
net.ipv4.tcp_rmem = 16384 131072 262144
net.ipv4.tcp_wmem = 16384 131072 262144
net.ipv4.tcp_mem = 16384 131072 262144
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_rfc1337=1
net.ipv4.tcp_frto=1
net.ipv4.tcp_dsack=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_westwood=1
net.unix.max_dgram_qlen=100
So, I hope this helps somebody.