X-Git-Url: http://lab.mitty.jp/git/?a=blobdiff_plain;ds=sidebyside;f=iptables%2Fsetlan2wan.sh;fp=iptables%2Fsetlan2wan.sh;h=ca9e94a139938b3fe4b4ab2a4f5872f8b3730e45;hb=e829fd8dfc421a415a74d8719469a1a7c024e438;hp=0000000000000000000000000000000000000000;hpb=c8daa6983248628690543c953d99bad4dd6cb64d;p=lab.git diff --git a/iptables/setlan2wan.sh b/iptables/setlan2wan.sh new file mode 100644 index 0000000..ca9e94a --- /dev/null +++ b/iptables/setlan2wan.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# enable access to WAN device on router node from LAN clients +# + +set -x + +## INTERFACES(5) +# IFACE physical name of the interface being processed +# METHOD method of the interface (e.g., static) +# MODE start if run from ifup, stop if run from ifdown +# PHASE as per MODE, but with finer granularity, distinguishing the pre- +# up, post-up, pre-down and post-down phases. + +LANIF="${1:?"usage: $0 "}" + +LANIP=`/sbin/ip addr show dev ${LANIF} | grep -w inet | tr -s ' ' | cut -d ' ' -f 3 | cut -d / -f 1` +LANMASK=`/sbin/ip route show dev ${LANIF} | grep -w ${LANIP} | tr -s ' ' | cut -d ' ' -f 1` + +WANIP=`/sbin/ip addr show dev ${IFACE} | grep -w inet | tr -s ' ' | cut -d ' ' -f 3 | cut -d / -f 1` + +if [ "${PHASE}" = "pre-down" ]; then + # delete rule and exit + /sbin/iptables -t nat -D PREROUTING -i ${LANIF} -s ${LANMASK} -d ${WANIP} -j DNAT --to-destination ${LANIP} + echo "remove rule for access to WAN device on router node from LAN clients" + exit +fi + + +# set rule +/sbin/iptables -t nat -A PREROUTING -i ${LANIF} -s ${LANMASK} -d ${WANIP} -j DNAT --to-destination ${LANIP} +echo "set rule for access to WAN device on router node from LAN clients"