diff --git a/Shorewall/compiler b/Shorewall/compiler index 0725f2e5f..e2f187569 100755 --- a/Shorewall/compiler +++ b/Shorewall/compiler @@ -2452,7 +2452,12 @@ ${INDENT} fatal_error "Interface $interface must be up before Shorewall can s ${INDENT}ip -f inet addr show $interface 2> /dev/null | grep 'inet.*brd' | sed 's/inet //; s/brd //; s/scope.*//;' | while read address broadcast; do ${INDENT} address=\${address%/*} -${INDENT} run_iptables -t $MACLIST_TABLE -A $chain -s \$address -j RETURN +${INDENT} if [ -n "\$broadcast" ]; then +${INDENT} run_iptables -t $MACLIST_TABLE -A $chain -s \$address -d \$broadcast -j RETURN +${INDENT} fi +${INDENT} +${INDENT} run_iptables -t $MACLIST_TABLE -A $chain -s \$address -d 255.255.255.255 -j RETURN +${INDENT} run_iptables -t $MACLIST_TABLE -A $chain -s \$address -d 224.0.0.0/4 -j RETURN ${INDENT}done __EOF__