Hi,

I have bridged my WLAN and LAN interfaces to br0.

I want people from the outside and the inside of the internal network to access my www server through the public ip port 8181. That works fine for people accessing from WAN and WLAN but not from LAN. I don't understand why it works for WLAN but not for LAN if they are bridged.  Any suggestions ?

That`s what I use :

LAN=br0
WAN=vlan1

iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8181 -j DNAT --to $DEUX:8181
iptables        -A forwarding_rule -i $WAN -p tcp --dport 8181 -d $DEUX -j ACCEPT


echo port forwarding pour www du lan
iptables -t nat -A prerouting_rule -i $LAN -p tcp --dport 8181 -j DNAT --to $DEUX:8181
iptables        -A forwarding_rule -i $LAN -p tcp --dport 8181 -d $DEUX -j ACCEPT



The complete script in case there is come incompatibility with other commands:

#echo final
#!/bin/sh
. /etc/functions.sh
WAN=$(nvram get wan_ifname)
LAN=$(nvram get lan_ifname)
AUTH=192.168.5.100
DEUX=192.168.5.200

## CLEAR TABLES
for T in filter nat mangle; do
  iptables -t $T -F
  iptables -t $T -X
done
echo partie 0
iptables -N input_rule
iptables -N output_rule
iptables -N forwarding_rule

iptables -t nat -N prerouting_rule
iptables -t nat -N postrouting_rule
echo partie 1
### Allow SSH from WAN
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
iptables        -A input_rule      -i $WAN -p tcp --dport 22 -j ACCEPT
#iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8181 -j ACCEPT
#iptables        -A input_rule      -i $WAN -p tcp --dport 8181 -j ACCEPT


echo partie 2
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 81 -j ACCEPT
echo partie 3
#iptables -t nat -A input_rule -i $WAN -p tcp --dport 81 -j ACCEPT


#forwards
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8181 -j DNAT --to $DEUX:8181
iptables        -A forwarding_rule -i $WAN -p tcp --dport 8181 -d $DEUX -j ACCEPT


echo port forwarding pour www du lan
iptables -t nat -A prerouting_rule -i $LAN -p tcp --dport 8181 -j DNAT --to $DEUX:8181
iptables        -A forwarding_rule -i $LAN -p tcp --dport 8181 -d $DEUX -j ACCEPT


#----------

### INPUT
###  (connections with the router as destination)

  # base case
  iptables -P INPUT DROP
  iptables -A INPUT -m state --state INVALID -j DROP
  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -A INPUT -p tcp --syn --tcp-option \! 2 -j  DROP

  # allow
  iptables -A INPUT -i \! $WAN  -j ACCEPT       # allow from lan/wifi interfaces
  iptables -A INPUT -p icmp     -j ACCEPT       # allow ICMP
  iptables -A INPUT -p gre      -j ACCEPT       # allow GRE
  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A INPUT -j input_rule

  # reject (what to do with anything not allowed earlier)
  iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
  iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable

### OUTPUT
### (connections with the router as source)

  # base case
  iptables -P OUTPUT DROP
  iptables -A OUTPUT -m state --state INVALID -j DROP
  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  # allow
  iptables -A OUTPUT -j ACCEPT          #allow everything out
  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A OUTPUT -j output_rule
# reject (what to do with anything not allowed earlier)
  iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
  iptables -A OUTPUT -j REJECT --reject-with icmp-port-unreachable

### FORWARDING
### (connections routed through the router)

  # base case
  iptables -P FORWARD DROP
  iptables -A FORWARD -m state --state INVALID -j DROP
  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

  # allow
  iptables -A FORWARD -i br0 -o br0 -j ACCEPT
  iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
  #
  # insert accept rule or to jump to new accept-check table here
  #
  iptables -A FORWARD -j forwarding_rule

  # reject (what to do with anything not allowed earlier)
  # uses the default -P DROP

### MASQ
  iptables -t nat -A PREROUTING -j prerouting_rule
  iptables -t nat -A POSTROUTING -j postrouting_rule
  iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE