* setlan2wan.sh
authormitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Tue, 7 Jul 2009 10:33:04 +0000 (10:33 +0000)
committermitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Tue, 7 Jul 2009 10:33:04 +0000 (10:33 +0000)
   * see #4
 * setmasq.sh
   * replacement for setnapt.sh

git-svn-id: https://lab.mitty.jp/svn/lab/trunk@16 7d2118f6-f56c-43e7-95a2-4bb3031d96e7

iptables/setlan2wan.sh [new file with mode: 0644]
iptables/setmasq.sh [new file with mode: 0755]

diff --git a/iptables/setlan2wan.sh b/iptables/setlan2wan.sh
new file mode 100644 (file)
index 0000000..ca9e94a
--- /dev/null
@@ -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 <LAN_device> "}"
+
+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"
diff --git a/iptables/setmasq.sh b/iptables/setmasq.sh
new file mode 100755 (executable)
index 0000000..0f3f80f
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# set IP MASQUERADE with post-up command in INTERFACES(5)
+
+
+set -x
+
+## INTERFACES(5)
+# IFACE  physical name of the interface being processed
+# METHOD method of the interface (e.g., static)\r
+# MODE   start if run from ifup, stop if run from ifdown\r
+# PHASE  as per MODE, but with finer granularity, distinguishing the pre-\r
+#        up, post-up, pre-down and post-down phases.\r
+
+# optional argument to set default gateway devices connected to WAN manually
+# (try each of them in order)
+
+if [ "${PHASE}" = "post-down" ]; then
+    # remove MASQUERADE rule and exit
+    /sbin/iptables -t nat -D POSTROUTING -o ${IFACE} -j MASQUERADE
+    exit
+fi
+
+
+# set MASQUERADE rule
+/sbin/iptables -t nat -A POSTROUTING -o ${IFACE} -j MASQUERADE