It seems that there is a problem with local connections that have
preselected an outgoing interface. That will work just fine, but
ultimately the packet will be NATed back to the primary RED IP address.
To prevent this, we are adding some extra rules that skip the MASQUERADE
target.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
NO_MASQ_NETWORKS+=( "${ORANGE_NETADDRESS}/${ORANGE_NETMASK}" )
fi
+ local alias
+ for alias in $(get_aliases); do
+ NO_MASQ_NETWORKS+=( "${alias}" )
+ done
+
local network
for network in ${NO_MASQ_NETWORKS[@]}; do
iptables -t nat -A REDNAT -s "${network}" -o "${IFACE}" -j RETURN
printf -v "${array}[${key}]" "%s" "${val}"
done < "${file}"
}
+
+# Returns all enabled aliases
+get_aliases() {
+ local address
+ local enabled
+ local rest
+
+ local IFS=,
+
+ while read -r address enabled rest; do
+ if [ "${enabled}" = "on" ]; then
+ echo "${address}"
+ fi
+ done < /var/ipfire/ethernet/aliases
+}