Goal:
Need lmc or "LAN Messenger" to work on 2 lans separated by a Linux gateway using iptables.
Information:
- Must be this program "LAN Messenger".
- Lmc uses multicast address 239.255.100.100:50000 to see users, then creates a tcp connection for chat.
- lan1 = olan1 = 192.168.2.0/24: gateway is a smart switch "Linksys Etherfast router" with filter multicast disabled.
- lan2 = slan1 = 10.10.10.0/24: gateway is the linux box
- gateway pc = Ubuntu 14 server. iptables to forward some traffic between lans.
iptable rules:
filter table:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i slan1 -o olan1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m iprange --src-range 192.168.2.100-192.168.2.254 -j ACCEPT
-A FORWARD -i olan1 -o slan1 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i olan1 -o slan1 -p tcp -m tcp --dport 9696 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i olan1 -o slan1 -p tcp -m tcp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i olan1 -o slan1 -p udp -m udp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -s 224.0.0.0/4 -d 224.0.0.0/4 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -p igmp -j ACCEPT
-A FORWARD -i olan1 -o slan1 -j DROP
nat table:
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -j MASQUERAD
Rules that I thought should forward multicast traffic:
-A FORWARD -i olan1 -o slan1 -p tcp -m tcp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i olan1 -o slan1 -p udp -m udp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -s 224.0.0.0/4 -d 224.0.0.0/4 -j ACCEPT
-A FORWARD -p igmp -j ACCEPT
Monitored the traffic of the gateway using tcpdump, I never saw multicast traffic go through as I changed iptable rules.
Will iptables forward multicast traffic?
Do I need to use a multicast routing daemon or proxy like pimd
or smcroute
?
pimd
andsmcroute
do?iptables
, and not a multicast routing demon like mrouted or similar (which is the intended way to handle this situation)? I am not even sure you actually can do this withiptables
.